Course Description

AP Computer Science introduces you to the formal concepts of object-oriented computer programming, including program design, control structures, data structures and algorithms using the Java programming language. It is a year-long course designed to be comparable to a first-year college-level computer programming class. During the first semester, you will gain an understanding of the basics of object-oriented programming, as well as the ethical considerations of computer science. You will also gain a familiarity with Java classes, objects, and data types; basic Java syntax; constructors, decision and looping statements; and logical operators, among others. During the second semester, You will have the opportunity to further develop and refine your programming skills by focusing on the techniques of data abstraction, including encapsulation and inheritance. In particular, the emphasis is on the organization of information and the implementation of common data structures such as arrays and array lists, as well as various searching and sorting methods through such structures. You also explore recursion and the close relationship between data structures and algorithms including basic complexity analysis and comparisons between several different methods.

Course Overview

This course is equivalent to a first semester, college level course in computer science. It introduces you to some of the fundamental concepts of computer science using the Java programming language.

The order of the course is as follows:

The first unit of the course is designed to introduce you to the world of Java and working with the BlueJ Integrated Development Environment (IDE).

This unit covers:
  • Computer Hardware
  • Number Conversion - Base 10 / Binary / Hexadecimal
  • Interpreters VS Compilers
  • Java Virtual Machine
  • BlueJ IDE
  • Console Output
  • Errors
  Go To Unit 1


The second unit of the course is designed to introduce you to 3 of the data types that you are required to know for the APCS exam in May; int, double, String. You will learn how to declare, initialize, and modify variables associated with these 3 data types. The unit will also teach you how to make your programs more interactive by showing you to obtain and work with data obtained from user input.

This unit covers:
  • Variables
  • Constants
  • Data Types: int, double, String
  • Comments
  • Arithmetic
  • Obtaining User input
  Go To Unit 2


The third unit of the course is designed to introduce you to the if ... else if ... else decision or control structures that you are required to know for the APCS exam in May.

This unit covers:
  • if ... else if ... else control Structures
  • Relational Operators
  • Comparing Strings
  • Nested Branches
  • Boolean Variables and Operators
  • Input Validation
  • Hand Tracing
  Go To Unit 3


The fourth unit of the course is designed to introduce you to interactive or looping that you are required to know for the APCS exam in May; while loops and for loops. You will learn about loop statements in Java, as well as techniques for programs that process user input and simulate activities in the real world. The unit will also teach you how to generate and use random numbers.

This unit covers:
  • While Loops
  • For Loops
  • Common Loop Algorithms
    • Sum and Average
    • Counting Matches
    • Finding The First Match
    • Promoting Until a Match is Found
    • Maximum and Minimum
    • Comparing Adjacent Values
  • Nested Loops
    • Printing Patterns
  • Random Numbers
  Go To Unit 4


The fifth unit of the course is designed to introduce you to working with methods. You will learn how to implement and pass data to methods. You have been using built-in Java methods up until this point in the course. This unit will teach you how to implement your own methods.

This unit covers:
  • Methods As Black Boxes
  • Method Implementation
  • Method Parameters
  • Method Return Values
  • Methods without Return Values
  • Reusable Methods
  • Variable Scope
  Go To Unit 5


The sixth unit of the course is designed to introduce you to the world of Object Orientated Programming. You will learn how to create and modify classes and objects.

This unit covers:
  • Object Orientated Programming
  • Objects, Classes, and Methods
  • Constructing Objects
  • Black boxes and abstraction
  • Encapsulation
  • Specifying the public interface of a class
  • Commenting the public Interface
  • Implicit and Explicit Method Parameters
  • Object references
  Go To Unit 6


This week is spent reviewing all of the concepts covered in the first six units of the course. The week will end with a three-hour AP style exam. The format of the midterm will simulate the test that will be taken in May. It will consist of 40 multiple choice questions and 5 Free Response questions. All test questions will be taken from previous AP exams.

This unit covers:
  • Binary to Hexadecimal Number Conversion
  • Working With Data Types: int, double, String
  • Controlling Program Flow with Decision Structures and Loops
  • Obtaining and Processing User input
  • Creating and Modifying Classes, Objects, and Methods
  Go To Unit 7


The eighth unit of the course is designed to teach you about inheritance, polymorphism, and the interfaces types that you are required to know for the APCS exam in May.

This unit covers:
  • Inheritance hierarchies
  • Implementing subclasses
  • Overriding methods
  • Polymorphism
  • Object superclass
  • Interface types
  Go To Unit 8


The ninth unit of the course is designed to teach you about arrays and arraylists that you are required to know for the APCS exam in May.

This unit covers:
  • Arrays
  • Array Lists
  • Wrappers and Autoboxing
  • The Enhanced for Loop
  • Two-Dimensional Arrays
  • Copying Arrays
  Go To Unit 9


The tenth unit of the course is designed to teach some of the most common data structures and algorithms found in computer science. 

This unit covers:
  • Recursion
  • Selection Sort
  • Merge Sort
  • Linear Search
  • Binary search
  Go To Unit 10


The eleventh unit of the course is a month long review. The unit will cover all of the major topics covered in the course up to this point. 

This unit will review using the following resources:

  • Barron's chapters 1-8
  • CodingBat practice exercises
  • 3 Practice exams


Your progress and understanding will be evaluated through a combination of homework assignments, practical in-class assignments, individual and group labs, tests, and class participation.

Homework assignments will consist of a combination of readings and related worksheets. The purpose of homework is to further your understanding of the concepts covered in class and/or to prepare you for an upcoming class. Please see the homework section to know what homework is required for each class.
Throughout the year you will be given assignments in class that must be completed in class. These assignments will be used to check your understanding of the concepts that we are covering in class.
Each quarter you will have to complete a lab. You need to think of the labs as a chance to showcase the skills and knowledge that you have learned in class. These labs will be individual or group based. We will go over the requirements of each lab in class. You will also be provided time in class to work on them. As per the rules spelled out by the College Board, labs must take up a minimum of 20 hours of the year.
At the end of each unit of study, there will be a summative test to check your understanding of the concepts covered during that quarter. Tests are made up of two sections: 1- Multiple Choice, 2 - Free Response Questions to match the style and format of the AP test in taken in early May.

Participation involves showing up to class with a positive attitude and a willingness to learn. More specifically this includes showing up to class on time before the bell rings with the proper materials, actively participating in all classroom activities and discussions, completing work on time (see late work policy below), and treating your fellow classmates and teacher in a respectful and mature manner.

  Grade Breakdown

Homework 20%
In-Class Assignments 40%
Labs 15%
Tests 15%
Partic 10%

  Late Work Policy

Throughout the year you will be asked to complete various assignments for grades. It is your responsibility to get your work completed on time. Homework is due before the start of class on the due date. If work is handed in after the start of class, it is considered late.

Failure to get your work turned in on time will result in the following:

  •  Deduction of 10% per calendar day that it is late, up to 2 days.
  •  A detention for each day that it is late.
  •  If work is not handed in after 2 days, you will receive a zero for the graded assignment and your parents will be notified through e-mail of the situation.
  •  If work is not handed in a 2nd time in a quarter, along with the above repercussions, your parents will be called in for a 1:1 meeting to discuss the situation.


 Class Syllabus

If you want to know more detailed information about what you are learning this year and how you will be evaluated, click on the button to view your official class syllabus