Charlottesville High School CURRICULUM MAP COURSE: LENGTH OF COURSE: NUMBER OF CREDITS: GRADE LEVEL (S): PREREQUISITE (S): AP Computer Science A / AB 1 year 1 11, 12 Computer Science A and/or Teacher Recommendation BRIEF COURSE DESCRIPTION: This full year course is designed to teach students to write code using Java as the programming language. Students will study the operation of the computer and its related equipment, how to select appropriate algorithms and data structures to solve problems and to design, maintain, and adapt preexisting code which follows the OOP paradigm. AP Computer Science A is designed to be equivalent to a first semester college-level course and students may elect to take the Advanced Placement exam upon completion of this course. COURSE OBJECTIVES: I. Program Design Read and understand a problem description, purpose, and goals. Apply data abstraction and encapsulation. Read and understand class specifications among the classes. Understand and implement a given class hierarchy. Identify reusable components from existing code using classes and class libraries. II. Class Design Design and implement a class. Design an interface. Choose appropriate data representations and algorithms. Apply functional decomposition. Extend a given class using inheritance. III. Implementation Techniques Methodology o Object-oriented development o Top-down development o Encapsulation and information hiding o Procedural abstraction Programming Constructs o Primitive types vs. objects o Declaration Constant declarations Variable declarations Class declarations Interface declarations Method declarations AP Computer Science A Revised September 2004 2 Parameter declarations Console Output { System.out.println() } Control o Methods o Sequential o Conditional o Iteration o Recursion IV. Program Analysis Testing o Test class and libraries in isolation o Identify boundary cases and generate appropriate test data. o Perform integration Debugging o Categorize errors: compile-time, run-time, logic o Identify and correct errors o Techniques: use a debugger, add extra output statements, hand-trace code. Understand and modify existing code. Extend existing code using inheritance. Understand error handling Reason about programs o Pre – and Post-conditions o Assertions o Invariants Analysis of algorithms o Informal comparisons of running times o Exact calculation of statement execution counts. Numerical representations and limits o Representations of numbers in different bases. o Limitations of finite representations. V. Standard Data Structures Simple data types { int , boolean, double, char } Classes One-dimensional arrays Two-dimensional arrays Linked lists { singularly, doubly, circular } Stacks Queues Trees Heaps Priority queues Sets AP Computer Science A Revised September 2004 3 Maps VI. Standard Algorithms Traversals Insertions Deletions Searching o Sequential o Binary o Hashing Sorting o o o o o Selection Insertion Mergesort Quicksort Heapsort VII. Case Study Java Marine Biology Case Study o Test and debug existing code. o Make adaptations to MBS code. o Create new methods to extend the Java MBS AP Computer Science A Revised September 2004 4 MATERIALS: Textbook Computing Concepts with Java Essentials John Wiley & Sons, Inc. 2003 Java Methods AB Skylight Publishing 2003 Computing Concepts with Java Essentials Advanced Placement Computer Science Study Guide John Wiley & Sons, Inc. 2004 Instructional Materials and Resources METHODS OF INSTRUCTION: Direct Instruction (Lecture) Student group work and investigations Student presentations METHODS OF EVALUATION: Tests Quizzes Projects Programs Notebook Homework/Classwork Labs Class participation Group work Student presentations AP Computer Science A Revised September 2004 5 COURSE OUTLINE: Major Topic Textbook Reference Timeline (in Clock Hours) 1st Semester I. II. III. IV. V. VI. Program Design Class Design Implementation Techniques Selection Statements Repetition / Iteration Arrays / ArrayList Exam Review Ch. 1 Ch. 2 Ch. 3, 4 Ch. 5 Ch. 6 Ch. 13 8 12 12 8 12 16 4 Ch. 7,8 Ch. 9,11 Ch. 12 AP Computer Science Study Giude 18 18 12 8 2nd Semester VII. VIII. IX. X. Multi-Class Design Interfaces / Polymorphism/ Inheritance Recursion, Searching and Sorting Case Study AP Exam Review XI. Linked List Ch. 11 AP Computer Science A Revised September 2004 Depending on exam scheduled date As time allows