Syllabus#
AP Computer Science A (APCS)
2024-25
Dr. Kessner
Marlborough School, Los Angeles
Free periods: FI in D215
Course Description#
In this course we will dive deeply into object-oriented programming in the Java language. While we explore computer science concepts using Java, these concepts are applicable to all programming languages. In addition to building your coding skills through coding assignments, you will work on a larger software project using the Processing libraries. Along the way you will gain valuable experience testing and debugging your code.
Learning Targets by Unit#
Unit 0 (Command line, numeric conversion)#
command line
run commands from the Terminal command line
understand and navigate directory structure
understand relative vs. absolute paths
copy, move, delete files
edit files with a text editor
compile and run a Java program
numeric conversion
understand the binary, octal, hexadecimal, and decimal number systems
convert between decimal and other bases:
binary <-> decimal
octal <-> decimal
hexadecimal <-> decimal
fast conversion to/from binary:
binary <-> octal
binary <-> hexadecimal
Unit 1 (Java Basics)#
write, compile, run, and debug Java programs
remember basic syntax from Processing
conditions (if statements)
loops (for statements)
Unit 2 (Functions and Conditionals)#
write functions
understand how to pass variables as input
understand how to return values
write unit tests
write helpful output for validation and debugging
Unit 3 (String, Math, Random)#
use the basic String functions
use the Math library functions
use the rand() function to generate:
random floats in any interval
random integers in any interval
Unit 4 (Loops / Algorithms)#
use a loop to perform computations
Unit 5 (Classes & Objects)#
write a class definition
create objects of a class
use constructor for initialization
declare member methods and variables
understand public vs private access
understand local vs member variable scope
Unit 6 (Processing libraries)#
understand how to create a graphics program in Java using the Processing libraries
remember basic Processing functions for drawing
Unit 7 (Arrays)#
declare an array of basic types or objects
array functions and access
iterate over an array
for loop
for-each loop
Unit 8 (ArrayList)#
declare an ArrayList of objects
ArrayList functions and access
iterate over an ArrayList
for loop
for-each loop
Unit 9 (Array Algorithms)#
write functions that operate on arrays / ArrayLists
search / compute
filter
transform
Unit 10 (Lists of Objects)#
create an array or ArrayList of objects
adding / editing / removing objects
iterate through a list of objects
for loop
for-each loop
Unit 11 (Inheritance and Interfaces)#
create a subclass of a class
write an interface
implement an interface
operating on a list of objects of a given interface or base class
Unit 12 (2D arrays)#
create a 2D array of base types or objects
initialize a 2D array using a nested for loop
iterate through a 2D array
for loops
for-each loops
Unit 13 (Interacting Classes)#
write a class with member variables that are also classes
write a class with an ArrayList as a member variable
Unit 14 (Algorithm analysis)#
understand the asymptotic runtime of basic searching and sorting algorithms
search
linear
binary
sort
selection sort
insertion sort
bubble sort (optional)
mergesort
Unit 15 (Recursion)#
write a recursive function
mentally trace through the calls of a recursive function