AP COMPUTER SCIENCE SYLLABUS 2009 – 2010

Course Description:

This course focuses on the study of programming methodology, algorithms, data structures, procedural and data abstraction, and object orientation, as well as the use of recursive and dynamically allocated structures. Although the programming language is taught as a vehicle for these concepts, the focus of the course remains on good design practice and well-known data structures and algorithms. Also integral to the course is an understanding of hardware and software components of computer systems and responsible use of technology. Students will be prepared for the Advanced Placement Computer Science exam and are expected to sit for it in May.

Moodle

All course materials can be found at the AP Computer Science page on pingry.moodle.com. You will be expected to check this page regularly and submit all assignments there.

Prerequisite:

Intro to Programming or consent of instructor.

Texts and Materials:

Litvin, Maria, and Gary Litvin. Java Methods A & AB. Andover, Mass.: Skylight Publishing, 2006.

Litvin, Maria. Be Prepared for the AP Computer Science Exam in Java. Andover, Mass.: Skylight Publishing, 2006.

The College Board's GridWorld Simulation Manual.

A memory stick, laptop, or “internet” hard drive (such as Windows SkyDrive) so that code can easily be accessed from home and class. (Note: E-mailing code to yourself as an attachment is not an acceptable practice.)

Software:

BlueJ (www..org) (www.greenfoot.org) JGrasp (www.jgrasp.org) (www.eclipse.org)

Topics Outline:

All readings and assignments are from Java Methods A & AB unless otherwise noted.

UNIT 0

Topic 0 – Syntax and Hardware Review

Reading: Chapters 5 and 6 Covers: Hardware components. Compilers. Java Virtual Machine. Operating Systems. Networking. FTP. Basic java syntax. Style and commenting. Variables. Reserved words. Statements and blocks. Error types. Variable scope. Primitive and objects. Constants. Arithmetic. Variables conversion.

Topic 1 – Algorithm Review

Reading: Chapters 4, 7, and 8. Covers: Iterations and recursion. if-else statements. Relational and logical operators. Order of operations. Short-circuit evaluation. The switch statement. Loops (while, for, do-while). Nesting.

Topic 2 – Objects

Reading: Chapters 3 and 9. Covers: Classes. Fields, constructors, and methods. Inheritance. Public, private, and protected. Object references. Calls on objects. Parameter passing. Overloaded methods. Static.

Topic 3 – Strings

Reading: Chapter 10. Covers: Literals. Constructors and immutability. Methods. Numbers and strings. StringBuffer.

UNIT 1

Topic 4 – Arrays and ArrayLists

Reading: Chapter 12. Covers: Creating and traversing an array. Creating an ArrayList. ArrayList methods. Iterations and for-each loops. Two-dimensional arrays.

Topic 5 – Searching and Sorting

Reading: Chapters 13 and 18. Covers: Using equals, compareTo, and compare. Sequential and Binary searches. Selection sort. Insertion sort. Mergesort. Quicksort. Big-O notation.

UNIT 2

Topic 6 – Hierarchies and Interfaces

Reading: Chapter 11. Covers: Hierarchies. Polymorphism. Abstract classes. Superclass. Interfaces.

Topic 7 – The GridWorld Case Study

Reading: GridWorld Case Study. Covers: of the GridWorld environment. Actor and Bug classes. Extending Actor and Bug. Runner class and subclasses. Location class. Grid interface. Critter class and subclasses. Example scenarios.

UNIT 3

Topic 8 – Input / Output and File Streams* Reading: Chapter 14. Covers: Pathnames. File class. Reading and writing from files.

Topic 9 – Graphics and GUIs* Reading: Chapters 15, 16, and 17. Covers: Shapes. Colors. Text. Swing. Menus. Events. Images.

UNIT 4

Topic 10 – The Java Collections Framework*

Reading: Chapter 19. Covers: Collections. Lists. Iterators. Stack. Queue. PriorityQueue. Sets. Maps.

Topic 11 – Stacks and Queues*

Reading: Chapter 21. Covers: Using a stack. Using a queue.

Topic 12 – Linked Lists and Binary Trees*

Reading: Chapters 20, 22, and 23. Covers: Creating and traversing binary trees and linked lists. Binary Search Trees. Using TreeNodes and ListNodes. Recursion.

UNIT 5

Topic 13 – AP Exam Review

Reading: Be Prepared for the AP Computer Science Exam in Java. Covers: All AP Computer Science Exam topics.

UNIT 6

Topic 14 – After AP Project*

Possible Topics: Building Java applets. Javascript.

* - Designates that some or all of this topic is not part of the AP Computer Science Exam A subset.

Assignment Types:

Problem Sets: Generally, one due per topic. They will consist primarily of exercises from the text. They are due by class time on the due date. Late assignments will not be accepted.

Practice Questions: These will be exercises and case studies from out of the text. They will not be graded, but we will go through many of them in class. It is not required that you do them in advance, but I encourage you to do so if you are having problems with a certain topic.

Quizzes: Short 15-20 minute, generally short answer or multiple choice. May be given in class or online. One every one to two weeks.

Labs: Longer problems in which students must write out an entire program to solve. See topics above for a listing. Some labs will be done together as a group, depending on time constraints.

Exams: Multiple choice questions as well as code writing, following the format of the AP Exam. Generally there will be one per unit (excluding unit 6).

Grade Breakdown:

Problem Sets: 30% Labs: 35% Quizzes and Tests: 35%

Honor Code:

Programming has the same plagiarism rules as anything else. Representing code that you did not write as your own is an honor code violation. You may speak with another student about what you are doing (ie- the algorithm you are thinking of, etc) but you may not show or look at another student’s code. For some projects you may be allowed to use code found elsewhere. If you do, you must cite it in your comments.