The AP CSA exam is on Friday May 15, 2026 at 12:00 PM!
Time remaining:
About the Course
- Course Syllabus. Read all about this course, student expectations, and how you will be evaluated.
- AP Computer Science A Description. The official College Board information about this course.
- Code of Honour. All about how to collaborate without plagiarism in this course.
- About the AP Exam. Updated for 2024-25.
- Send me your GitHub username for handin!
Resources
- We are using the textbook Think Java 2nd Edition by Allen Downey and Chris Mayfield. You can download the pdf version, use the online version, or use the interactive version.
- Some additional free text books: CS Awesome (requires free account), Tokyo EdTech's Intro to Java
Chapter 1. Computer Programming
Ch 1 introduces the fundamentals of computers and programming, covering what a computer is, and basic programming instructions like input, output, mathematical operations, decisions, and repetitions. It presents the "Hello World" program to explain Java classes, methods, statements, and comments. The chapter also distinguishes between high-level and low-level languages, detailing the compilation and interpretation process (javac, java, JVM, byte code). It discusses displaying multiple messages using print vs println, source code formatting, escape sequences, and introduces the broader field of computer science. Finally, it outlines the three types of programming errors: compile-time, run-time, and logic errors, and provides initial debugging advice
Additional Notes:
- Chapter 1 from "Introduction to Programming Using Java" by David J. Eck is recommended for expanding upon the topic of "What is a computer."
- Notes about Compilers, Interpreters, and Java
- YouTube playlist of my explanation of Compilers, Interpreters, and Java
Chapter 2. Variables and Operators
This chapters delves into variables for storing values (numbers, text) and their declaration and assignment. It introduces memory diagrams to visualise how values are stored and changed. The chapter covers arithmetic operators (+, -, *, /, %) and introduces floating-point numbers (double), discussing rounding errors and string concatenation. It further explains compiler error messages, run-time errors, and logic errors, providing insights into their identification.
Assigned Work: Repository "ch2", assigned Sept. 9th
- 2.2: Date.java
- 2.3: Time.java
Chapter 3. Input and Output
This chapters focuses on user interaction, explaining the System class (System.out, System.in) and the Scanner class for reading keyboard input. It details Java's language elements such as packages, classes, methods, statements, expressions, and tokens. The chapter covers literals and constants, formatting output with printf and format specifiers, and how to interpret error messages. It also introduces type cast operators and the remainder (modulo) operator, integrating these concepts into complete programs. We also deal with the "Scanner Bug," which is an annoying problem but easy to avoid if you know about it.
Assigned Work: Repository "ch3", assigned Sept 11th
- 3.2: Temperature.java
- 3.3: ConvertTime.java
- 3.4: GuessMyNumber.java
Additional Notes
Chapter 4. Methods and Testing
This chapter teaches how to organise programs into multiple methods. It differentiates between void methods (no return value) and value-returning methods, explaining return types and return statements. Concepts such as flow of execution, parameters and arguments, and multiple parameters are introduced. Stack diagrams are presented as a tool to visualise the scope of variables and method execution. The chapter also explores methods in the Math class and the principle of composition, concluding with a discussion on incremental development and the use of stubs and scaffolding for testing.
Assigned Work: Repository "ch4", assigned Sept 16th
- 4.1: FormatDate.java
- 4.2-4.5 Do these on a piece of paper. No need to submit to GitHub
- 4.6: Multadd.java