Adult and Community Education
        Search FCPS:   


Program of Study for High School Mathematics

AP COMPUTER SCIENCE (318504)
Grade: 11-12
Prerequisite: Computer Science or equivalent
Credit: One

Overview

Required Basal Textbooks

Objectives


Overview

This course is designed to build and expand on the concepts learned in Computer Science. Programming methodology with emphasis on structured programming and top-down design will be reinforced. The fundamental algorithms and data structures of computer science will be closely examined. Applications will be used to develop student awareness of the need for particular algorithms and data structures as well as to provide topics for programming assignments to which students can apply their knowledge.

Practice with programming is an important component of this course. Students will be writing more significant programs than they did in the previous course. Each student will be expected to spend between 2.5 to 3 hours on the computer per week.

At the end of this course, students should be prepared for placement in second-year computer science classes in postsecondary educational institutions, either directly or through the advanced placement examination available through the College Entrance Examination Board.

back to top


Required Basal Textbooks

· Litvin, Maria & Litvin, Gary. Java Methods AB: Data Structures. Skylight Publishing. 2003.

· Lambert, Kenneth & Osborne, Martin. Fundamentals of Java: Comprehensive Course. Thomson Learning. 2003.


Objectives

During the study of Advanced Placement Computer Science, students will:

1. Become more adept at problem-solving techniques.

2. Improve in ability to code in a structured language.

3. Design and implement computer-based solutions to problems in several application areas.

4. Learn the elementary algorithms and data structures of computer science.

5. Develop and select appropriate algorithms and data structures to solve problems.

6. Use and apply computer application tools.


I. Review

Benchmark

None

Key Terms

none

Indicators

A. Problem-Solving Strategies

B. Computer Organization Overview

C. Programming Language

  1. Use block structure and scope.
  2. Use control structures.
  3. Use functions and procedures.
  4. Use data structures such as:
    1. Arrays.
    2. Records.
    3. Strings-packed arrays.
    4. Files.

back to top


II. Programming Methodology

Benchmark
None

Key Terms

none

Indicators

  1. Program Definitions and Requirement

  2. Decomposition
    1. Adapt and minimize dependencies.
    2. Compare top-down and bottom-up.

  3. Abstract Data Types
    1. Understand information hiding.
    2. Understand parameter passings by value and by variable.

  4. Program and Subprogram Specifications
    1. Use documentation.
    2. Use pre- and postconditions.
    3. Use pictorial representation.

  5. Stepwise Refinement
    1. Develop algorithms.
    2. Understand assertions and invariants (loop control).

  6. Coding
    1. Use block structure.
    2. Examine style and clarity of expression.
      1. Indentation
      2. Mnemonic identifiers
      3. User interface

  7. Testing
    1. Generate test data.
    2. Relate to project design.
    3. Debug when necessary.

  8. Critique and Analysis

back to top


III. Algorithms

Benchmark
None

Key Terms

none

Indicators

  1. Searching
    1. Use the following techniques:
      1. Linear
      2. Binary
      3. Hashing
    2. Examine efficiency of algorithms.
      1. Means of measurement
      2. Comparison of efficiency
      3. Improvement of efficiency
    3. Apply techniques to real problems.

  2. Sorting
    1. Understand the following techniques:
      1. Exchange
      2. Shell
      3. Quick
      4. Insertion
      5. Selection
      6. Merge
      7. Radix
    2. Examine efficiency of algorithms.
      1. Means of measurement
      2. Comparison of efficiency
      3. Improvement of efficiency
    3. Apply techniques to real problems.

  3. Recursion and Iteration
    1. Examine conceptual differences.
    2. Examine transformation between each.
    3. Compare clarity and efficency.
    4. Verify.
    5. Apply to:
      1. Binary search
      2. Quick sort
      3. Merge sort
      4. Games (Tower of Hanoi, Mazes, Chess)
  4. Numerical methods (low priority)
    1. Examine techniques.
    2. Apply to areas in mathematics and science.
      1. Approximations
        1. Zeros of functions
        2. Monte Carlo techniques
      2. Statistical Algorithms
        1. Measure of central tendency
        2. Measure of dispersion
    3. Analyze errors.

back to top


IV. Data Structures

Benchmark
None

Key Terms

none

Indicators

  1. Static Data Structures
    1. Examine the following structures:
      1. Multidimensional arrays
      2. Sets
      3. String processing including packed arrays
    2. Use the following operations:
      1. Add
      2. Delete
      3. Search
      4. Sort
      5. Change
      6. Merge
    3. Know special vocabulary.
    4. Choose a structure.
      1. Physical versus logical
      2. Advantages and disadvantages
    5. Apply to real problems.

  2. Dynamic Data Structures
    1. Examine the following structures:
      1. List
        1. Unordered
        2. Ordered
      2. Queue
      3. Stack
      4. Tree
        1. Terminology
        2. Binary trees
        3. General tree structure
      5. File
    2. Use the following operations:
      1. Add
      2. Delete
      3. Search
      4. Sort
      5. Change
      6. Merge
    3. Know special vocabulary.
    4. Use array and pointer with:
      1. List
      2. Queue
      3. Stack
    5. Choose a structure.
      1. Physical versus logical
      2. Advantages and disadvantages
    6. Apply to real problems.

  3. Graph Theory (low priority)
    1. Understand the basic concepts and terminology.
    2. Apply to:
      1. Hashed list.
      2. Radix sort.
      3. Heap sort.
      4. Expressions.
        1. Index
        2. Prefix
        3. Postfix

back to top


V. Applications

Benchmark
None

Key Terms

none

Indicators

  1. Graphics
    1. Identify components of a system.
    2. Identify special input devices.
    3. Identify special output devices.
    4. Be aware of applications to business and industry.
    5. Use selected commercial software package.

  2. Simulation and Modeling
    1. Identify characteristics of a system; special languages.
    2. Apply quality of assumptions to the process.
    3. Be aware of applications to business and industry.
    4. Be aware of several major software packages.

  3. Information Retrieval and Storage
    1. Understand various types of systems such as:
      1. Database
      2. Bibliographic
    2. Understand methods of searching a retrieval system.
      1. Query language
      2. Boolean algebra
    3. Understand use of commercial information system.
    4. Understand fundamental techniques in storing and retrieving data.

  4. System Software
    1. Be aware of file management routines (e.g., mail systems)
    2. Be aware of syntax analysis routines.
      1. Command scanners
      2. Evaluation of arithmetic expressions

back to top


VI. Social Implications

Benchmark
None

Key Terms

none

Indicators

  1. Responsible Use of Computer Systems

  2. Social Ramifications of Computer Applications
    1. Be aware of privacy issues.
    2. Be aware of values implicit in the construction of systems.
    3. Be aware of reliability of systems.

David Van Vleet
Mathematics Specialist
DVanVleet@fcps.edu
703-846-8650

Donald Lacey Instructional Center
3705 Crest Drive
Annandale, VA 22003


Last Updated
4/18/2005

Contact
Yvonne Griggs
Yvonne.Griggs
@fcps.edu
Adult & Community Education Early Childhood & Family Services
Elementary School Instruction English for Speakers of Other Languages
High School Instruction & K-12 Curriculum Services Instructional Technology Services
Middle School Instruction Professional Technical Studies Staff Development