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______
