Allan Didier

APCS Syllabus

Course Overview

This AP Computer Science A class is designed to cover the topics outlined in the AP Computer Science A Course Description, and thereby prepare students for the AP Computer Science A Exam. It is an intensive study of object-oriented design and problem solving, using common algorithms and data structures, implemented with the Java programming language. Students are required to take the AP Exam in the spring

Prerequisites

Intro to Computer Science (High or Mid school) AND concurrent enrollment in a math class above Algebra 2.

Textbooks
  1.  Lewis, John and William Loftus. Java Software Solutions: Foundations of Program Design, 7th ed. Boston: Addison Wesley, 2012.
  2. Teukolsky, Roselyn. Baron’s AP Computer Science A, New York: Barron’s Educational Series, 2020.
Other Materials
  • Notebook: paper or digital.
  • A computer at home with software to write Java code (a Java IDE). The Chromebooks won’t do this. It does not matter which software you choose. Java code is Java code regardless of the program that writes it. Some of the most common, free IDEs include:
  • You may also need to install the Java SE Developerment Kit in order for the IDEs above to run. 
Class Rules and Expectations
  1. Do onto others as you want them to do onto you.
  2. If you want to be treated like an adult, act like an adult.
  3. My job is to teach. Your job is to learn. I have a problem with whatever gets in the way of us doing our jobs.
Goals

Students will learn to:

  • Design, implement, and analyze solutions to problems;
  • Implement and use common algorithms;
  • Develop and select appropriate algorithms and data structures to solve new problems;
  • Write solutions fluently in an object-oriented paradigm;
  • Write, run, test, and debug solutions in the Java programming language, utilizing standard Java library classes and interfaces from the AP Java subset;
  • Read and understand programs consisting of several classes and interacting objects;
  • Read and understand a description of the design and development process leading to such a program;
  • Understand the ethical and social implications of computer use.
Grading

Grading is done on a point-based system. Your grade will be based on a straight percentage of the points that you earn. The points, though, will be roughly distributed in this manner:

  • Tests and Projects: ~80%
  • Homework and daily work: ~20%

 Programs will be assessed using the Programming Assignment Rubric.

Homework

Homework will be given on a weekly basis. It will consist of readings and programs.

Late Work

Late work for most projects is accepted without penalty. Some projects are time based and late work will not be accepted. 

Topic Outline
  1.  Object-Oriented Program Design: Program and class design
  2. Program Implementation
    1. Implementation techniques
    2. Programming constructs
    3. Java library classes and interfaces included in the AP Java Subset
    4. Conditionals
    5. Iteration
  3. Program Analysis
    1. Testing
    2. Debugging
    3. Runtime exceptions
    4. Program correctness
    5. Algorithm analysis
  4. Standard Data Structures
    1. Numerical representations of integers
    2. Primitive data types (int, boolean,  double)
    3. Strings
    4. Classes & Objects
    5. Inheritance
    6. Arrays (1-dimensional and 2-dimensional)
    7. Lists & ArrayLists
  5.  Operations on data structures
    1. Searching
    2. Sorting
    3. Recursion
  6. Computing in Context
    1. System reliability
    2. Privacy
    3. Legal issues and intellectual property
    4. Social and ethical ramifications of computer use

This syllabus is subject to change and revision.