Advanced Placement Computer Science Outline

INSTRUCTOR: Shanice M. White

Email:

Phone: 301-636-8000 x275

Course Description:

The Advanced Placement Computer Science course is the third course in the series of computer science courses offered in Prince Georges County. Because the development of computer programs to solve problems is a skill fundamental to the study of computer science, a large part of the course is built around the development of computer programs or parts of programs that correctly solve a given problem. The course also emphasizes the design issues that make programs understandable, adaptable, and, when appropriate, reusable. At the same time, the development of useful computer programs and classes is used as a context for developing other important concepts in computer science, including the development and analysis of algorithms, the development and use of fundamental data structures, and the study of standard algorithms and typical application. In addition, an understanding of the basic hardware and software components of computer systems and the responsible use of these systems are integral parts of the course.

Course Outline:

Unit 1: Introduction to Computer Systems and Ethics

Lesson 1.1: Computer Processing

Lesson 1.2: Hardware Components

Lesson 1.3: Networks
Lesson 1.4: The Java Programming Language

Lesson 1.5: Program Development
Lesson 1.6: Object Oriented Programming

Unit 2: Data and Expressions

Lesson 2.1: Character Strings

Lesson 2.2: Variables and Assignments

Lesson 2.3: Primitive Data Types
Lesson 2.4: Expressions

Lesson 2.5: Data Conversion
Lesson 2.6: Interactive Programs

Lesson 2.7: Graphics
Lesson 2.8: Applets

Lesson 2.9: Shapes

Unit 3: Using Classes and Objects
Lesson 3.1: Creating Objects
Lesson 3.2 The String Class
Lesson 3.3 Packages
Lesson 3.4 The Random Class
Lesson 3.5 The Math Class
Lesson 3.6 Formatting Output
Lesson 3.7 Enumerated Types
Lesson 3.8 Wrapper Classes
Lesson 3.9 Components and Containers
Lesson 3.10 Nested Panels
Lesson 3.11 Images

Unit 4 Writing Classes
4.1 Classes and Objects Revisited
4.2 Anatomy of a Class
4.3 Encapsulation
Visibility Modifiers
Accessors and Mutators
4.4 Anatomy of a Method
The return Statement
Parameters
Local Data
on 4.5 Constructors Revisited
4.6 Graphical Objects
4.7 Graphical User Interfaces
4.8 Buttons
4.9 Text Fields

Unit 5 Conditionals and Loops
5.1 Boolean Expressions
Equality and Relational Operators
Logical Operators
5.2 The if Statement
The if-else Statement
Using Block Statements
Nested if Statements
5.3 Comparing Data
Comparing Floats
Comparing Characters
Comparing Objects
5.4 The while Statement
Infinite Loops
Nested Loops
5.5 Iterators
5.6 The ArrayList Class
5.7 Determining Event Sources
5.8 Check Boxes and Radio Buttons

Unit 6 More Conditionals and Loops
6.1 The switch Statement
6.2 The Conditional Operator
6.3 The do Statement
6.4 The for Statement
The for-each Loop
Comparing Loops
6.5 Drawing with Loops and Conditionals
n 6.6 Dialog Boxes

Unit 7 Object-Oriented Design
7.1 Software Development Activities
7.2 Identifying Classes and Objects
Assigning Responsibilities
7.3 Static Class Members
Static Variables
Static Methods
7.4 Class Relationships
Dependency
Dependencies Among Objects
of the Same Class
Aggregation
The this Reference
7.5 Interfaces
The Comparable Interface
The Iterator Interface
7.6 Enumerated Types Revisited
7.7 Method Design
Method Decomposition
Method Parameters Revisited
7.8 Method Overloading
7.9 Testing
Reviews
Defect Testing
7.10 GUI Design
7.11 Layout Managers
Flow Layout
Border Layout
Grid Layout
Box Layout
7.12 Borders
7.13 Containment Hierarchies

Unit 8 Arrays 379
8.1 Array Elements
8.2 Declaring and Using Arrays
Bounds Checking
Alternate Array Syntax
Initializer Lists
Arrays as Parameters
8.3 Arrays of Objects
8.4 Command-Line Arguments
8.5 Variable Length Parameter Lists
8.6 Two-Dimensional Arrays
Multidimensional Arrays
8.7 Polygons and Polylines
The Polygon Class
8.8 Mouse Events
8.9 Key Events

Unit 9 Inheritance
9.1 Creating Subclasses
The protected Modifier
The super Reference
Multiple Inheritance
9.2 Overriding Methods
Shadowing Variables
9.3 Class Hierarchies
The Object Class
Abstract Classes
Interface Hierarchies
9.4 Visibility
9.5 Designing for Inheritance
Restricting Inheritance
9.6 The Component Class Hierarchy
9.7 Extending Adapter Classes
9.8 The Timer Class

Unit 10 Polymorphism
10.1 Late Binding
10.2 Polymorphism via Inheritance
10.3 Polymorphism via Interfaces
10.4 Sorting
Selection Sort
Insertion Sort
Comparing Sorts
10.5 Searching
Linear Search
Binary Search
Comparing Searches
10.6 Designing for Polymorphism
10.7 Event Processing
10.8 File Choosers
10.9 Color Choosers
10.10 Sliders

Unit 11 Exceptions
11.1 Exception Handling
11.2 Uncaught Exceptions
11.3 The try-catch Statement
The finally Clause
11.4 Exception Propagation
11.5 The Exception Class Hierarchy
Checked and Unchecked Exceptions
11.6 I/O Exceptions
11.7 Tool Tips and Mnemonics
11.8 Combo Boxes
11.9 Scroll Panes
11.10 Split Panes
Unit 12 Recursion 583
12.1 Recursive Thinking
Infinite Recursion
Recursion in Math
12.2 Recursive Programming
Recursion vs. Iteration
Direct vs. Indirect Recursion
12.3 Using Recursion
Traversing a Maze
The Towers of Hanoi
12.4 Recursion in Graphics
Tiled Pictures
Fractals

Unit 13 Collections
13.1 Collections and Data Structures
Separating Interface from Implementation
13.2 Dynamic Representations
Dynamic Structures
A Dynamically Linked List
Other Dynamic List Representations
13.3 Linear Data Structures
Queues
Stacks
13.4 Non-Linear Data Structures
Trees
Graphs
13.5 The Java Collections API
Generics

COLLEGE BOARD MANDATED GRADING:

Labs – 10%

Classwork/Homework/Warmups – 20%

Assessments – 40%

Seasonal Packets and Projects - 30%

Additional Course Resources:

Java Software Solutions for AP Computer Science A, J. Lewis, W. Loftus, and C. Cocking 2ndEdition, 2007, Prentice Hall

Be Prepared for the AP Computer Science Exam in Java, M. Litvin, 3rdEdition, 2008, Skylit Publishing

AP Gridworld Case Study

http://www.allstudentscanlearn.org – Ms. White”s website and blog. A password protected area will contain documents for download by students.

http://java.sun.com/javase/downloads/index/jsp – Sun”s website to download the latest Java resources

Student fs Signature______

Parent/Guardian Signature______

Parent/Guardian Email Address______