US+-+AP+Computer+Science

=Advanced Placement Computer Science=

AP Computer Science is a college-level course that introduces the fundamental concepts of object-oriented programming in the context of the Java programming language. In addition to becoming proficient in writing and understanding such code, students also learn some of the foundational principles of computer science.


 * Overarching Essential Questions that motivate all our computing education**

Essential Questions

 * 1) What is an algorithm?
 * 2) How does the way data is stored affect the kinds of computation we do with it?
 * 3) If there are many ways to solve a problem, can we figure out an optimal solution?
 * 4) Why are stacked layers such an important feature of any complex system?
 * 5) In a system built from many components, what are the relative merits of coupling those components loosely or tightly?
 * 6) Why is code reuse desirable, and how can it be achieved and sustained?
 * 7) What value does object-oriented programming add to the purely procedural paradigm?
 * 8) How is software designed?
 * 9) What are the limits of computation?

Course Units

 * 1) Basic Object-Oriented Programming (Objects and Classes), Java Fundamentals
 * 2) Advanced Object-Oriented Programming (Inheritance and Polymorphism), Debugging, Testing
 * 3) Data Structures and Algorithms
 * 4) Large-Scale Programming Project

Benchmark Skills
Students should be able to:
 * design and implement solutions to problems by writing, running, and debugging computer programs.
 * use and implement commonly used algorithms and data structures.
 * develop and select appropriate algorithms and data structures to solve problems.
 * code fluently in an object-oriented paradigm using the programming language Java. Students are expected to be familiar with and be able to use standard Java library classes from the AP Java subset.
 * read and understand a large program consisting of several classes and interacting objects. Students should be able to read and understand a description of the design and development process leading to such a program. (An example of such a program is the AP Computer Science Case Study.)
 * recognize the ethical and social implications of computer use.

Resources
[|Big Java], Cay Horstmann [|AP Computer Science Course Description]

Assessment
Assessment of students takes place weekly, based on regular journal entries.

Each weekly journal entry will be assessed on three scales. This indicates how the student used his or her class time during the week. Good evidence is detailed, with specific examples, and it should show the progress that was made during the week. This is the student's reflection about the past week in class. Good reflection is honest, questioning and probing. It thinks about why and how, not just who and what. This is the style of writing. Good communication is easy and clear to read, and presents a coherent narrative to the reader.
 * Evidence**
 * Self-analysis**
 * Communication**