Mr. Rogers AP Computer Science A - First Quarter Objectives

Syllabus
Syllabus 1st Quarter 2nd Quarter 3rd Quarter 4th  Quarter

Latin/Greek Root Words

arch--------->ancient, example: archtype;         chrono------>time, example: chronology;             -dom----------->quantity/state, example: freedom               fer-------->carry, example: transfer;               gen--------->birth, example: generate;                 luc-------->light, example lucid;                 neo--------->new, example: neonatologist;                olig--------->few, example: oligarchy;              omni--------->all, omniscient;            sym--------->together, symbol;

(Comp Sci connection)

 

Essential Question: How do you write a program?

Chapter 1 & 2: Software Basics

(AP Computer Science Standard: II Program Implementation, III Program Analysis, VI Computing in Context)

First Day

Introduction - Hand out syllabus

  1. Use console output (System.out.println)

Programming Assignment 1: Write a program that outputs "Hello World" to the screen.

  1. Define the term debugging.
  2. Define compiling error and describe a way to cause one.

Deliberately delete a ";" from the above program and note the error message. Deliberately alter other elements of the program to see what happens

Second Day

  1. Describe how byte code and the Java virtual machine work together.
  2. Give examples of different operating systems and explain why the Java virtual machine is needed.
  3. Explain what compilers and interpreters do with respect to Java.
  4. Define encapsulation and information hiding--example: TV, System.out.println

Programming Assignment 2: Write a program that inputs (your name) and (your age) on the command line and outputs "Hello (your name) you are (your age) years old".

  1. Define run-time error and describe a way to cause one. (Usually throws an exception.)

Deliberately cause a run time error in  the above program and note what happens.

  1. Define the term iteration and describe a way to do it--example: pounding a nail, "for" loop

Programming Assignment 3: Modify Programming Assignment 2 with a "for loop" so that the message repeats itself 10 times. once the program is running, modify it so that it has an infinite loop and see what happens when you run it.

  1. Define logic error and describe a way to cause one.
  2. Be aware that while a program can branch to a different part of the code or go round-and-round in a loop, it otherwise executes sequentially from the top to the bottom for a given method.
  3. Describe one of the key strategies in the creation of complex software: functional decomposition ( breaking down an overwhelmingly complex task into smaller doable tasks). Note: Creating a a software project of even a few hundred lines of code rapidly becomes complex if not overwhelming. The key to success is to take baby steps.
  4. Complete the first chapter of the AP Computer science case study GridWorld.
 

 

Assignments: The below assignments are to be completed within the first 10 days of school.

GridWorld: Read Chapter 1; Do exercises 1-4. Note: you will not understand all of the terminology. Don't worry: your not supposed to. However, you'll find that if you don't let the jargon bother you, you can muddle through. In programming, muddling is a highly valued art.

Programming Assignment 4: Write a program which receives three input characters and outputs your printed initials in large size (at least 2 inches high) using the 3 input characters stored in string variables. Note: you need to write the initials on graph paper in order to know how many spaces to put between the string variables.

Example:

Input: "T", "K", "R"

Output:

T T T T T K K R R R R
T K K R R
T K K R R R
T K K R R
T K K R R

Read Sections: 2.1 to 2.3  

 

Essential Question: What is a computer?

    Chapter 1 & 2 (continued): Hardware Basics

    (AP Computer Science Standard: VI Computing in Context)

  1. Define the terms bit, byte, kilobyte, megabyte, and gigabyte.
  2. State the basic types of gates and give logic tables for each. http://scitec.uwichill.edu.bb/cmp/online/P10F/logic_gates2.htm
  1. Correctly identify and describe the functions of the following components.
  2.  

  3. Describe the function of ROM and the BIOS.
  4. Describe the function of a UPS.
  5. Name the 2 most common I/O devices.
  6. Compare single user computer systems with Networks.

Read Sections: 1.1 to 1.4

Test: Chap 1 & 2 Objectives 1-19


 

Essential Question: How are numbers, letters, and colors represented in computers?

Chapter 1 & 2 (continued): How Information is Represented

  1. Describe the following number systems: binary, decimal, and hexadecimal
  2. Convert binary to decimal numbers.
  3. Convert binary to hexadecimal numbers.
  4. Convert hexadecimal to binary.
  5. Convert hexadecimal to decimal numbers.
  6. State how characters are represented inside computers and give the name of the 2 types of code.
Code Type Bytes Possible Characters
ASCII 1 256
Unicode (used in Java) 2 65,536
  1. Describe how colors are commonly represented
  2. Given a quantity of bits specify the largest number which can be represented.
  3. Given a number of bits specify the largest number of objects or colors which can be specified.
Read Sections: 1.5 to 1.7
Homefun: Complete the number conversion and Unicode worksheet

 

Essential Question: What is the most important part of a piece of software's life cycle?
    Chapter 1 & 2 (continued): Software Design Basics

    (AP Computer Science Standard: I Object-Oriented Program Design)

  1. Use the two major computer program development tools.
  1. Contrast procedural and object oriented programming. (Note: Java is object oriented.)
  1. List and explain the 6 phases of the Software System Life Cycle. Note that knowledge of the system's subject is often as important as knowledge of computing.
    • Analysis
    • Design
    • Coding
    • Testing/verification---gone awry ... lobster people !
    • Maintenance
    • Obsolescence

Prediction

In the near term future there will not be enough people with Computer Science degrees. The solution: Liberal Arts, Biology, Business, and other types of majors with any background in computing will be used to compensate. These people will have an increased number of job opportunities.

  1. Describe top-down design.
  2. Describe key strategies in the test phase.
  1. State the type of program used for delivering Java programs over the internet.
  2. Write a simple applet.
Homefun: Read Chap. 2, Exercises 1, 6, p. 38
Programming Assignment: Exercise 14, 16

Test: Chap 1 & 2 Objectives 1-17


 

Essential Question: If a program has several million lines of code and is being worked on by people around the globe 24 hours a day, how do you prevent one part of the code from interfering with the other parts?
 
Chapter 3: Introduction to Classes & Objects

(AP Computer Science Standard: I Object-Oriented Program Design, II Program Implementation)

  1. Correctly use the following terms and be able to identify and use them in programming:

  1. Explain how inheritance works and why it is used.

     

  2. Explain the "has-a" relationship.

  1. Explain the term "primitive data types" and give examples.

  2. Name four classes contained in the java.lang package which is automatically imported into your java programs.

Homefun: Read Chap. 3

 

1) Write brief definitions for the above terms in objectives 1 and 2.
2) Next find a program(s) with examples of each and identify them. You may use programs from the book, the internet, or ones you've written yourself. You may work as a group on part 2.

 

Programming Assignment Exercise 9, 10, 12

Programming Assignment: Write an applet with 2 classes a Student class and a School class. The student class will have fields for name, test1, test2, and average grade. It's constructor will have parameters for initializing all the fields except average grade. The student class will also have a method that calculates average grade. The school is to have 3 students created in the school class and is to output all the school's information in a table as follow shown in the following example:

Name          Test 1       Test 2          Average Grade

Bob              50            100              75

Jane             90            100              95

Martha          80            90                85

 
Essential Question: How does an algorithm compare to a mathematical model in physics or engineering?

 
Chapter 4: Algorithms

(AP Computer Science Standard: III Program Analysis)

  1. Define the term algorithm.
  2. Correctly use recursion
Programming Assignment: Write a program that inputs an integer n using command line input and uses it to calculate n factorial using recursion.

Programming Assignment: Write a program that finds and outputs Pi using recursion and the following series:

(Pi 2)/6 = 1 + 1/22 + 1/32 + ... + 1/n2

Input the number of times the recursion should run using command line input.

 

  1. Determine the number of iterations a given recursion will have.
  2. Define list in abstract terms.
  1. Define traversal.
  1. Compare sequential to binary search.
  2.  
Homefun: Read Chap. 4; Exercises 1,  7, 9,
Programming Assignment: Exercise 10
Test: Chap 3 & 4 Objectives 1-10

 

Essential Question: What's the difference between style and syntax?

Chap. 5: Java Syntax and Style

(AP Computer Science Standard: II Program Implementation, III Program Analysis)

  1. Correctly use the three forms of comments:

  1. Identify reserved words (p. 107).

  2. Correctly use the naming conventions for classes, methods, and fields.

  1. Correctly indent programs.

Homefun: Read Chap. 5; Exercises 3, 4, 5, 7, 8, 10
Programming Assignment: Lab 5.6

 
Essential Question: Why did you learn to find remainders in grade school instead of going straight to long division ?

 

Chapter 6: Data Types, Variables, and Arithmetic

(AP Computer Science Standard: II Program Implementation, III Program Analysis)

  1. Understand the meaning and use of the equal sign in Java.

  1. Correctly declare fields and local variables.

  2. Correctly initialize fields and local variable.

  3. State the default value used for initializing fields.

  4. State the default value used for initializing local variables.

  1. State the eight types of primitive data types and their sizes in bytes.

  2. Explain why the largest size of and integer of long can be a major issue.

  3. Explain the limitations of precision on floating point data types and why these limitations can produce round-off errors.

  4. State the primitive data types which do not have a true decimal point and explain why this can be a problem.

  5. Correctly Use:

  1. Understand the term scope (p. 133). Note: the concept of scope is incredibly important to programming in Java. You must consider it whenever you create a variable. As a matter of style, variables should be declared at the top limit of their scope.

  1. Correctly convert numbers and objects into strings.

Homefun: read Sections 6.1 to 6.5; Exercises 1- 7 p.146-147

 

  1. Perform integer division.

  2. Truncate and round numbers using integer division.

  3. Cast variables.

Example:
int a, b;
double c;
c = (double) a / (double) b;
  1. Use literal constants as either int or doubles (Example: 2, 2.0).

  2. Correctly use various arithmetic operators including:

  1. Correctly use the order of operation for arithmetic.

  1. parentheses

  2. division, multiplication, modulus

  3. addition, subtraction

Homefun: Read Sections 6.6 to 6.10; Exercises 8, 10, 11 p.147-148
Programming Assignment: Lab 6.8, 6.9, Exercises 12, 13 p.167

 

Programming Assignment: Write a program which uses command line input to input a single dimension in centimeters. Use this dimension to calculate and output the surface area and volume of a cube, sphere, and cylinder along with the correct units. The radius and height of the cylinder are equal to the dimension. Use a separate method for each calculation.

 
Essential Question: How does a progressive income tax system work and is it a good idea?

Tax code program:

Input: Using the command line input income in dollars. (This needs to be changed to cents inside the program.)

Output:

NTR = (taxDue) / (income) *100

Description: The program will round any tenths of a cent upward. "If" statements are not allowed. The program will use only algorithms to calculate taxes. It will use the following progressive tax table:

 
Income ($) Tax Rate Comments
        0 to 19,999.99  00 %

This part of income is never taxed

20,000 to 29,999,99 25 % Only income above $19,999.99 is taxed at 25%
30,000 +                    35 % Only Income above $29,999.99 is taxed at 35%. Note this is an additional 10% above the 25% tax that kicks in at $29,999.99.

 

Test: Chap 5 & 6 Objectives 1-25


Mr
 

Check out other web sites created by Mr. R:

 

First the web site, now the book!


Mr. Rogers Home | Common Sylabus | AP Physics Mech | AP Physics E&M | AP Comp Sci I | AP Comp Sci I | IB Design Tech | Southside

[ Intuitor Home | Physics | Movie Physics | Chess | Forchess | Hex | Intuitor Store |

Copyright © 1996-2007 T. K. Rogers, all rights reserved. Forchess ® is a registered trademark of T. K. Rogers.
No part of this website may be reproduced in any form, electronic or otherwise, without express written approval.