Advanced
Placement Computer Course Outline
Course Title: Advanced
Placement Computer Science (P) (10 Credits)
Grade
level: II, 12
Prerequisites:
Algebra I or Geometry with a grade 'B' or better; Computer
Programming
I or C++ Programming or Teacher Approval
Course Description:
Students
successfully completing this course will be able to program the microcomputer
in
JAVA language. Course content will include the use of algorithms, data
structures, and
methodology
to solve problems in several application areas. Students enrolling in AP
Computer
Science should plan to take the Advanced Placement Exam for college credit.
Student Performance
Objectives
for this course:
Students will
1. Object-Oriented Program
Design
The
overall goal for designing a piece of software (a 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.
A. Program Design
1. Read and understand a
problem's description, purpose, and goals.
2.
Apply data abstraction and encapsulation.
3.
Read and understand class specifications and relationships among the
classes (IS-
A,
HAS-A relationships).
4.
Understand and implement a given class hierarchy.
5.
Identify reusable components from existing code using classes and class
libraries.
B. Class Design
1. Design and
implement a class.
2.
Design an interface.
3.
Choose appropriate data representation and algorithms.
4.
Apply functional decomposition.
5.
Extend a given class using inheritance.
II.
Program Implementation
The
overall goals of 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.
Implementation techniques
1.
Methodology
a.
Object-oriented development
b.
Top-down development
c.
Encapsulation and information hiding
d.
Procedural abstraction
2. Programming constructs
Declaration
a.
Constant declarations
b.
Variable declarations
c.
Class declarations
d.
Interface declarations
e.
Method declarations
f.
Parameter declarations
Console
output (System.out.print/printin)
3. Control
a.
Methods
b.
Sequential
c.
Conditional
d.
Iteration
e.
Recursion
4. Java library classes
(included in the A-level AP Java Subset)
III. 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.
A.
Testing
1. Test classes and
libraries in isolation
2.
Identify boundary cases and generate appropriate test data
3.
Perform integration testing
III. Program Analysis
(continued)
B. Debugging
1.
Categorize errors: compile-time, run-time, logic
2.
Identify and correct errors
3.
Techniques: use a debugger, add extra output statements, hand-trace code
4.
Understand and modify existing code
C. Extend existing
code using inheritance
I. Understand error
handling
I
- Understand runtime exceptions
D. Reason about programs
1. Pre- and post-conditions
2.
Assertions
E. Analysis of algorithms
1. Informal
comparisons of running times
2.
Exact calculation of statement execution counts
3.
Numerical representations
IV. 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.
1. Implementation techniques
2.
Classes
3.
One-dimensional arrays
4.
Two-dimensional arrays
V. Standard Algorithms
Standard
algorithms serve as examples of good solutions to standard problems. Many are
intertwined
with standard data structures. These algorithms provide examples for analysis
of
program efficiency.
Operations on data structures as listed below
1. Traversals
2.
Insertions
3.
Deletions
V. Standard Algorithms
(continued)
Searching
1.
Sequential
2. Binary
Sorting
1. Selection
2.
Insertion
3.
Mergesort
VI. 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. These topics need not be covered in
detail,
but
should be considered throughout the course.
Major hardware components
1. Primary and
secondary memory
2.
Processors
3.
Peripherals
System software
1. Language
translators/compilers
2.
Virtual machines
3.
Operating systems
Types
of systems
1. Single-user
systems
2.
Networks
Responsible
use of computer systems
1.
System reliability
2.
Privacy
3.
Legal issues and intellectual property
4.
Social and ethical ramifications of use of computer in society
|
Instructional
Strategies 1.
Lecture, discussion, and demonstration 2.
Laboratory practices with microcomputers 3.
Reading assignment 4.
Written assignments 5.
Programming assignments 6.
Use of available audio-visual materials 7.
Use of available community resources 8.
Field trips (when possible) |
|
Instructional
Unit First
Semester Weeks |
|
Unit Introduction
to Computer Science, JAVA syntax, data types, and parts of a JAVA
program, First Java Program, Syntax Errors and debugging Introduction
to Control Statements Object
Oriented programming methodology. Functions, Passing of variables,
and Scope of Variables More Decision
Structures, Loops Structures and Control structures Improving
the User Interface Single
and Multidimensional arrays Classes
and Objects and object oriented programming terminology and
methodology Inheritance,
Classes for Parameters and Return Values, Error Handling
with Classes, Reference Types, Equality, and Object Identity |
|
18 Weeks Second
Semester Weeks
Unit 2
Searching
and Sorting Arrays 2
Recursion 2
Binary
and Quick Sort and Complexity Analysis 4
Preparation
for AP Exam 2
Two
Dimensional Graphics and Java file I/O 2
Introduction to HTML and Applets 2
Swing
and AWT, Layouts, Events, Dialogs |
|
18 weeks
|