PTP511: AP Computer Science A (2011-2012)
CURRICULUM PROGRAM: Advanced Placement
COURSE TITLE: AP Computer Science A
CALENDAR YEAR: 2011-2012
GRADE LEVEL: 11-12
COURSE LENGTH: 36 weeks
SUGGESTED PREPARATION: Java Programming I, Visual Basic Programming I
About the Program:
AP Computer Science A serves as an introductory course in computer science and contains content that is equivalent to a first semester University level Computer Science course. It is not expected, however, that all students in an AP Computer Science course will major in computer science at the university level. An AP Computer Science course is intended to serve both as an introductory course for computer science majors and as a course for people who will major in other disciplines that require significant involvement with computing. AP Computer Science A focuses around developing computer programs or parts of programs to correctly solve a problem. Students will also learn about program design principles that will allow them to write programs that are understandable, adaptable and reusable. Students will also be introduced to other important computer science concepts including the development and analysis of algorithms, the development and use of fundamental data structures. Students will also be exposed to the topics of design and abstraction. Students will also gain an understanding of the basic hardware and software components of computer systems. Assessments and student work focuses on correctly solving real world problems and applying programming skills in a variety of ways, as well as understanding the basics of design concepts and data structures. Knowledge of basic algebra and experience in problem solving is beneficial. Students should also possess competence in written communication. Students are expected to take the AP exam at the end of this course.
Major Concepts/Content: (AP Course Description Booklet, Pg 7)
- Object Oriented Program Design: The overall goal for designing a piece of software (computer program) is to correctly solve the given problem. At the same time, this goal should encompass specifying and designing a program that is understandable, can be adapted to changing circumstances, and has the potential to be reused in whole or in part. The design process needs to be based on a thorough understanding of the problem to be solved.
- Program Implementation: The overall goals of the program implementation parallel those of program design. Classes that fill common needs should be built so that they can be reused easily in other programs. Object oriented design is an important part of program implementation.
- Program Analysis: The analysis of programs includes examining and testing programs to determine whether they correctly meet their specifications. It also includes the analysis of programs or algorithms in order to understand their time and space requirements when applied to different data sets.
- Standard Data Structures: Data structures are used to represent information within a program. Abstraction is an important theme in the development and application of data structures.
- Standard Algorithms: Standard Algorithms serve as examples of good solutions to standard problems. Many are intertwined with standard data structures. These algorithms provide examples of analysis of program efficiency.
- Computing in Context: A working knowledge of the major hardware and software components of computer systems is necessary for the study of computer science, as is the awareness of the ethical and social implications of computing systems.
Course Objectives: (AP Course Description Booklet, Pg 7)
- Students will be able to design and implement computer-based solutions to problems in several application areas.
- Students will learn well-known algorithms and data structures.
- Students will be able to develop and select appropriate algorithms and data structures to solve problems.
- Students will be able to 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.
- Students will be able to read and understand a large program consisting of several classes and interacting objects. Students should be able to read and understand description of the design and development process leading to such a program. (Examples of such programs are the AP Computer Science Case Studies.)
- Students will be able to identify the major hardware and software components of a computer system, their relationship to one another, and the roles of these components within the system.
- Students will be able to recognize the ethical and social implications of computer use.
Course Philosophy: This is a very student centered class where students engage with the material while learning to work collaboratively, as well as independently. This is a higher level computer science course combining both program development and concrete application. Higher order problem solving with critical thinking and creativity are necessary to go beyond the initial programming skills to develop new applications.