Mr. Rogers AP Computer Science A - Second Quarter Objectives

 Essential Question: Do we live in a binary world?

Chapter 7: Boolean Expressions and Conditional Control

1. Define conditional control.

2. Correctly use both if and if-else statements. (Be as one with the four Common if-else Errors on p. 156.)

3. Draw flowcharts for both if and if-else statements.

4. Correctly use boolean relational  operators. == ,  > ,  < ,  >= ,  <= ,  !=

5. Correctly use boolean logical operators. && ,  || , !

6. Given a set of  logic gates write the associated boolean expression (p. 3).

7. Write truth tables for "and", "or", and "xor" gates.

8. Evaluate complex boolean statements using correct order of operators (p. 163).

9. Correctly describe and use short-circuit evaluation.

10. Correctly use if-else-if tables for menus and selection processes like tax tables.

11. Correctly use switch statements. (Be as one with the six points on p. 197)

Homefun:  Exercises 1-7
Programming Assignments: Lab 7.10, Lab 7.12; exercises 14, 17
Tax Code Program II: rewrite the tax program entirely with if-else-if tables

Test: Chap 1 & 2 Objectives 1-29

 Essential Question: How can we access and perform similar manipulations on millions of volatile pieces of similar information without having to create millions of lines of code?

Chapter 8 Iterative Statements (Loops)

1. State the 3 elements which must be present for any loop (p. 299).
• initialization
• testing
• incrementing
1. Correctly use "while" loops.
2. Correctly use "for" loops.
3. Correctly use "do-while" loops.
4. State which loop always runs at least once.
5. State the most appropriate loop(s) to use when the number of iterations are known and when they are not known.
6. Appropriately use break and return statements for ending loops.
7. Correctly use loops for manipulating values in arrays.
8. Correctly use nested loops.
9. State the number of times each loop runs when using loops or nested loops.
10. Be aware that a break statement in an inner loop will only break out of the inner loop.
11. Use loops for the following programs:
• even/odd numbers
• factorials
• fibonacci numbers

Homefun: Exercises 8, 9, 13
Programming Assignment: Lab 8.6; Exercise 10, 11, 12

Test: Chap 8 Objectives 1-12

 Essential Question: Why use objects instead of just using variables?

Chapter 9: Implementing Classes and Using Objects

1. Properly declare a class.

2. Explain why fields are usually declared private and methods public.

3. Correctly declare and initialize (generally with the new operator) objects

4. Be as one with the nature of methods.

• must be called to run

• run sequentially from top to bottom unless branched

• can be called repeatedly

• when finished returns control of the program to the place the method was called.

• contain a small highly focused program or algorithm.

• modular and reusable

• defined in a class

• a form of control abstraction in which a single line of code, calling the method, can be used to perform a useful function without having to know all the details of how the method's code is written.

• static (called by a class name) or instance (called by an instance)

1. Correctly write the header which declares a method inside a class.

access (public or private) returnType methodName (type parameterName1, ... type parameterNameN)

1. Explain the terms precondition and post condition as they relate to methods and procedural abstraction.

2. Explain how assertions and runtime exceptions are used in debugging, especially for reusable code.

3. Correctly use comments with method declarations so that a programmer could use the method without knowing the details about how the code is implemented.

4. Explain the nature of parameters.

• creates a local variable inside the method

• used for passing values into the method

• when using objects can also pass a value out of the method

1. Explain the difference between an argument and a parameter.

2. Correctly use overloaded methods. (Same name different arguments)

• different numbers or types of parameters

• return type must be the same.

1. Correctly use constructers.

• name is identical to the class name

• no return type, not even void

• not required

1. Correctly use copy constructors.

2. State when the default constructer runs and how it initializes fields.

• numbers = 0

• booleans = false

• references = null

1. Correctly use the "final" reserved word.

2. Correctly initialize objects and use the new operator (p. 224).

Homefun: read Sections 9.1 - 9.5; Exercises 1-6

1. State which type of fields can be accessed and what type methods can be called using a static method. (p. 223).

• can access static field - only one value & one memory address

• can call static method

• can access instance field of a different class

• can call instance method of a different class

1. State which type of fields can be accessed and what type methods can be called using an instance method (p. 223).

• instance field - Many values & memory addresses. A field has one value per object

• static field - Only one value & memory address

• instance method

• static method

1. Correctly call both static and instance methods (p. 226).

• Use class name & dot operator when calling static methods from another class.

• Use object & dot operator when calling instance methods from another class.

• Class name & dot operator are optional when calling static methods in a class.

• Use "this" & dot operator or nothing when calling instance methods in a class.

1. Compare the two ways to pass arguments to methods and constructers (p. 230).

• Primitive data types are always passed as values--the variable containing the value and the value ceases to exist after the method has run

• Objects are always passed as references--the address of a memory location that continues to exist after the method has run.

1. Correctly use return statements.

Homefun: Read Sections 8.6 - 8.10; Exercises 8, 9, 13
Programming Assignment: Lab 8.6; Exercise 10, 11, 12

Test: Chap 9 Objectives 1-20

 Essential Question: How can we store and manipulate not just numbers but human text in a computer program?

Chap. 10 Strings

1. Recognize literal strings.
2. Be familiar with the 2 most common of String's 9 constructors.
• String ()
• String (String s)
1. Be aware that Strings are immutable objects.
2. Understand how Strings are initialized.
• String s1 = " ";                   //s1 is set to an empty String
• String s2 = new String();  //s2 is set to an empty String
• String s3;                           //s3 is set to null
1. Be aware that calling a String method with a String set to null will give run-time errors. (An empty string initialized to " " is not the same thing as a string initialized to null.)
2. Correctly use common String methods (See table on p. 265.)
• length()
• charAt (pos)    //Note that characters are counted starting at 0.
• substring (pos)
• substring (fromPos, toPos)
• compareTo (s2)  //returns neg int if s1 <s2, 0 if s1 = s2, pos int if s1>s2
• compareToIgnoreCase (s2)   //returns neg int if s1 <s2, 0 if s1 = s2, pos int if s1>s2 ignoring case
• equals(s2)   //returns a boolean true or false
• equalsIgnoreCase(s2)  //returns a boolean true or false ignoring case
• indexOf (ch)   //four types
• lastIndexOf (ch)   //four types
• trim()   //removes white space characters from beginning and end of string
• replace (oldChar, newChar)
• toUpperCase()
• toLowerCase()
1. Correctly use the various ways of doing concatenation (adding Strings). (p. 266)
• yourString += str;
• yourString = yourString1 + str;
• yourString.concat (str);
1. Correctly use relational operators with Strings. p. 268)
2. CANNOT use == , != , < , >, <= , >=
3. CAN use equals(s2), equalsIgnoreCase(s2), compareTo(s2) methods, compareToIgnoreCase (s2)
4. Correctly convert numbers into Strings and Strings into numbers.

examples

Integer.parseInt(yourString)

String.valueOf(yourNumber)

1. Explain the term wrapper class.
2. Correctly use the Character wrapper class methods. (p.275)
3. Correctly use the StringBuffer class (p. 278).

Homefun: Exercises 1-6;
Programming assignments: Lab 10.8
• Write a program that inputs 2 strings using command line input.
• Output the length of both strings, the 3rd character in both strings.
• Test the strings to see if they are the same and output whether they are. Concatenate the two strings and output the result.
• Output any capital letters in the concatenated string along with their position.

Test: Chap 10 Objectives 1-13

 Essential Question: How does OOP  development using Java compare with the process of writing a book using English?

Chapter 11: Class Hierarchies and Interfaces

1. Name 2 reasons why duplicate code is a bad idea. (wasteful, hard to maintain)
2. Explain the purpose of having a hierarchy of classes and how it helps facilitate functional decomposition ( breaking down an overwhelmingly complex task into smaller doable tasks).
3. Define polymorphism and explain why it is useful (page 293).
4. Create and use abstract methods (methods that are declared but not defined).
Example declaration:
public abstract int tax();  // Note that there is no code, not even brackets.
5. Create abstract classes (classes with one or more abstract methods).
Example declaration:
public abstract class People {
. . .
}
1. Correctly declare an interface.
Example declaration:
public interface Career {
. . .
}
1. Define the term concrete class.

Has no abstract methods.

1. Be aware that all classes automatically extend the class Object.
2. State the difference between an interface, abstract class, and concrete class.
3. Be aware that Java does not allow the creation of objects (instances) of an abstract class or an interface.
4. Describe the reasons for using an interface.
• A class can only extend one class but can implement multiple interfaces.
• Interfaces make code readable a uniform by standardizing terms (fields) and procedures (methods).
1. Be aware that if a class implements an interface (and it can implement as many as it wants), it must supply all the methods specified in the interface.
2. Invoke a superclass's constructors (p.298).
• a superclass's constructors must be used to initialize private fields
• a superclass's constructors can be called inside the subclasses constructor using super (<appropriate arguments>);
• if the superclass's constructor is not called the no-arguments-constructor of the superclass is run by default
• if there is not a no-arguments-constructor, an error message results
1. Write programs that extend a given class using inheritance.
2. Write programs that implement interfaces.
3. Explain how polymorphism applies to interfaces.

Homefun: Exercises 1-5

Programming assignments: 6a

Test: Chap 11 Objectives 1-15

 Essential Question: How can we store millions of volatile pieces of similar information without having to create millions of variables in a computer program?

Chap. 12 Arrays and ArrayLists

1. Correctly declare and initialize arrays.
• int scores [ ] = new int[5];
• int scores [ ] =  { 93, 67, 99, 87, 91};
1. State the default values when initializing arrays
• numbers = 0
• boolean = false
• objects = null
1. Know that once declared and initialized, the size of an array cannot be changed.
2. Know that the elements of arrays are numbered starting with 0. These elements can be randomly accessed using the indices or subscripts.
3. Correctly use the array length field.
4. Be aware that arrays are always passed to methods by reference.
5. Correctly declare and initialize 2D arrays.
final int ROWS = 2;
final int COLS = 3;
double name2DArray [ ] [ ] = new double [ROWS][COLS];
or
double name2DArray [ ] [ ] =
{
{0.0, 2.7, 5.6},
{4.3, 1.4, 7.2}
};
1. Be aware that the first dimension in a two dimension array is considered the number of rows while the second dimension is the number of columns.
2. Correctly use the length field to  find the number of rows and columns.
• twoDArray.length gives the number of rows
• twoDArray[0].length gives the number of columns
1. Be aware that arrays with more than 2 dimensions can be declared.
2. Correctly use parallel arrays.
3. State the advantage of using ArrayList. Can expand and contract as needed
4. Be familiar with ArrayList's constructors and methods (see page 331).
5. Be aware of the pitfalls of using ArrayLists.
6. Describe how classes and arrays are key elements used to form data structures.
7. Describe why abstraction is an important theme in data structures.
8. Be as one with Chapter 2 of GridWorld.

Homefun: Exercises 1-5;
Programming assignments: Lab 12.9, 12.11

12.1 Simple Data Base Program
Create a program with a class called Employees. In the main method create 3 parallel ArrayLists: 2 holding 6 first names and 6 last names plus a third ArrayList with the corresponding Salary for each employee. Use an output method concatenate the first and last names, and output the data in two columns as shown in the example:

Name                 Salary \$1000/yr
Bob Arnold            90
Herb Bobo            12
Jane Cool             27
Alfred Nameless   49
Juan  Smith          200
Betty Taylor         142

Next, output the total of all salaries. Use a random number generator to fire two employees. Remove them from the Array List then add a new employee called Bob Newguy with a salary of \$200,000. Again, output a table with the names of the current employees and their salaries. Also output the total of all salaries.

12.2 2-D Array Output
Create a program with a class called Alphabet with 3 local (inside main method) of 2-dimentional arrays: each will contain a large-sized letter respectively A, B, and C. Use a separate method to output the letters alphabetically in a column with A at the top.

Note: You need to write the letters on graph paper or in an Excel spread sheet in order to understand how many spaces are needed. To understand how the arrays should be initialized look at chapter 10 objective 7 above. You do not need to reproduce the grid lines in your program's output.

 0 1 2 3 4 5 6 7 8 9 10 0 A 1 A A 2 A A 3 A A A A A A A 4 A A 5 A A

GridWorld: Read Chapter 2, Exercises 1-4

Test: Chap 12 Objectives 1-16