Advanced Placement Computer Science Outline INSTRUCTOR: Shanice M. White Email: shanice.white@pgcps.org 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__________________________________