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

Evaluation

Student progress will be evaluated by:

A.  Completion and quality of assignments

B.   Class participation

C.  Test/Quizzes

D.  Homework

E.   Teacher Observation

F.  Teacher Evaluation

H. Final Exam

1.   Final Project

Material and Resources

Programming Basics Using Microsoft Visual Basic, C++, HTML, and Java.

By Knowlton, Barksdale, Turner, Collings, CEP, Inc.

Published by Course Technology ISBN 0-619-05803-X

 

Programming Basics Using Microsoft Visual Basic, C++, HTML, and Java.

By Knowlton, Barksdale, Turner, Collings, CEP, Inc.

Activities Workbook

Published by Course Technology ISBN 0-619-05800-5

 

Instructor Resourse Kit CD-ROM Package for Programming Basics Using Microsoft Visual Basic, C++, HTML, and Java.

Published by Course Technology ISBN 0-619-05800-3

 

Java Version 1.1 by Sun Microsystems both JAVA API (Application Programming

Interface) and Java JDK (Java Development Kit)

Visual Studio.NET by Microsoft includes Microsoft Visual Studio.Net, Visual J#.NET,

Visual Studio 6.0, Visual Studio .NET Teaching and Student Tool CDs.

 

 

 

 

1
Hosted by www.Geocities.ws