AP Computer Science A

If you expand the AP Computer Science A Calendar tab below, you will find links to web-pages I will create for lessons 1-5 of unit 1, our first weeks' lessons. I only have created a summary for lesson 1, which turns out to be a waste of your time. The fun begins with lesson 2. While I have not yet created summaries of lessons 2-5, those pages do already contain links to the actual lessons on code.org. You are encouraged to play around with those lessons on code.org to familiarize yourself with the platform. I will be doing the same.

AP Computer Science A Calendar updated 7/24/2024
Date CC Week Lessons
First Semester
August 6 Week 1

Unit 1, Lesson 1: Welcome to CSA

Unit 1, Lesson 2: Java Lab

Unit 1, Lesson 3: Classes and Objects

Unit 1, Lesson 4: Instantiating Objects

Unit 1, Lesson 5: Methods

August 13 Week 2

Unit 1, Lesson 6: Methods with Parameters

Unit 1, Lesson 7: Loops

Unit 1, Lesson 8: Inheritance

Unit 1, Lesson 9: Writing Methods

Unit 1, Lesson 10: Programming Style and Feedback

August 20 Week 3

Unit 1, Lesson 11: Selection Statements

Unit 1, Lesson 12: Debugging Strategies

Unit 1, Lesson 13: Decomposition and Design

Unit 1, Lesson 14: Two-Way Selection Statements

Unit 1, Lesson 15: Asphalt Art Project

August 27 Week 4

Unit 1, Lesson 16: Spiral Painter FRQ

Unit 1, Lesson 17: Unit 1 Assessment

Unit 1, Lesson 18: Unit 1 Survey

Unit 2, Lesson 1: Attrributes

Unit 2, Lesson 2: No-Attribute Constructors

Unit 2, Lesson 3: Parameterized Constructors

September 3 Labor DAY

Unit 2, Lesson 4: The This Keyword

Unit 2, Lesson 5: Constructors and Inheritance

Unit 2, Lesson 6: Variables

Unit 2, Lesson 8: Operators and Expressions

September 10 Week 5

Unit 2, Lesson 7: Accessor Methods

Unit 2, Lesson 9: Mutator Methods

Unit 2, Lesson 10: Printing Objects

Unit 2, Lesson 11: Store Management Project

September 17 Week 6

Unit 2, Lesson 12: Burger Class FRQ

Unit 2, Lesson 13: Unit 2 Assessment

Unit 2, Lesson 14: Unit 2 Survery

September 24 Week 7

Unit 3, Lesson 1: One Dimensional (1D) Arrays

Unit 3, Lesson 2: Modifying Elements

Unit 3, Lesson 3: Traversing 1D Arrays

Unit 3, Lesson 4: For Loops

Unit 3, Lesson 5: Preconditions and Postconditions

Oct 1 Week 8

Unit 3, Lesson 6: Polymorphism

Unit 3, Lesson 7: Enhanced For Loops

Unit 3, Lesson 8: Array Algorithms

Unit 3, Lesson 9: Finding Duplicates

Unit 3, Lesson 10: Data for Social Good Project

October 8 Week 9

Unit 3, Lesson 11: TicketTracker FRQ

Unit 3, Lesson 12: Unit 3 Assessment

Unit 3, Lesson 13: Unit 3 Survery

October 14 Fall Break
October 22 Week 10

Unit 3, Lesson 17: Sandbox: The Theater

Unit 4, Lesson 1: The Theater

Unit 4, Lesson 2: Static Variables and Methods

Unit 4, Lesson 3: The Math Class

October 29 Week 11

Unit 4, Lesson 4: Casting and Rounding

Unit 4, Lesson 5: Random

Unit 4, Lesson 6 Object Aliases and Equality

Unit 4, Lesson 7: Nested if Statements

Unit 4, Lesson 8: Logical Operators

November 5 Week 12

Unit 4, Lesson 9: De Morgan's Laws

Unit 4, Lesson 10: Multi-Selection Statements

Unit 4, Lesson 11: Abstract Data Art Project

November 12 Week 13

Unit 4, Lesson 12: Bingo FRQ

Unit 4, Lesson 13: Unit 4 Assessment

Unit 4, Lesson 14: Unit 4 Survey

November 19 Week 14

Unit 5, Lesson 1: Two Dimensional (2D) Arrays

Unit 5, Lesson 2: 2D Array Elements

Unit 5, Lesson 3: Row-Major Traversal

Unit 5, Lesson 4: Column-Major Traversal

Unit 5, Lesson 5: Enhanced for Loops

November 25 Thanksgiving Break
December 3 Week 15

Unit 5, Lesson 6: Images in the Theater

Unit 5, Lesson 7: 2D Array Algorithms

Unit 5, Lesson 8: Modifying Images

Unit 5, Lesson 9: Impacts of Programs

Unit 5, Lesson 10: Personal Narrative Project

December 10 Christmas Break

Unit 5, Lesson 11: Grayscaleimage FRQ

Unit 5, Lesson 12: Unit 5 Assessment

Unit 5, Lesson 13: Unit 5 Survey

Christmas Break
Second Semester
January 7 Week 17

Unit 6, Lesson 1: Project Planning

Unit 6, Lesson 2: Substrings

Unit 6, Lesson 3: Integer and Double Objects

Unit 6, Lesson 4: ArrayLists

Unit 6, Lesson 5: Manipulating Elements

January 14 Week 18

Unit 6, Lesson 6: Comparing Strings

Unit 6, Lesson 7: Lists of Objects

Unit 6, Lesson 8: Removing Elements

Unit 6, Lesson 9: ArrayList and String Algorithms

Unit 6, Lesson 10: Natural Language Processing Project

January 21 Week 19

Unit 6, Lesson 11: TemperatureAction FRQ

Unit 6, Lesson 12: Unit 6 Assessment

Unit 6, Lesson 13: Unit 6 Survey

January 28 Week 20

Unit 7, Lesson 1: Project Planning

Unit 7, Lesson 2: Object References as Parameters

Unit 7, Lesson 3: Overloaded Methods

Unit 7, Lesson 4: Private Methods

Unit 7, Lesson 5: Overriding Methods

February 4 Week 21

Unit 7, Lesson 6: Intellectual Property

Unit 7, Lesson 7: Recursion

Unit 7, Lesson 8: Project Development

Unit 7, Lesson 9: System Reliability

Unit 7, Lesson 10: Creative Coding with the Theater Project

February 10 Winter Break
February 18 Week 22

Unit 7, Lesson 11: MusicQueue FRQ

Unit 7, Lesson 12: Unit 7 Assessment

Unit 7, Lesson 13: Unit 7 Survey

February 25 Week 23

Unit 8, Lesson 1: Project Planning

Unit 8, Lesson 2: Searching

Unit 8, Lesson 3: Binary Search

Unit 8, Lesson 4: Selection Sort

Unit 8, Lesson 5: Insertion Sort

March 4 Week 24

Unit 8, Lesson 6: Merge Sort

Unit 8, Lesson 7: Searching and Sorting

Unit 8, Lesson 8: Project Development

Unit 8, Lesson 9: Privacy and Security

Unit 8, Lesson 10: Creative Coding with the Console Project

March 11 Week 25

Unit 8, Lesson 11: SeatingChart FRQ

Unit 8, Lesson 12: Unit 8 Assessment

Unit 8, Lesson 13: Unit 8 Survey

March 18 Week 26

Unit 9, Lesson 1: The AP CSA Exam

Unit 9, Lesson 2: MCQ Pre-Assessment

Unit 9, Lesson 3: MCQ Study Plan

Unit 9, Lesson 4: MCQ Practice Day1

Unit 9, Lesson 5: MCQ Practice Day 2

March 24 Spring Break
April 1 Week 27

Unit 9, Lesson 6: FRQ Pre-Assessment

Unit 9, Lesson 7: FRQ Study Plan

Unit 9, Lesson 8: FRQ Practice Day 1

Unit 9, Lesson 9: FRQ Practice Day 2

Unit 9, Lesson 10: Mock MCQ Exam Day 1

April 8 Week 28

Unit 9, Lesson 11: Mock MCQ Exam Day 2

Unit 9, Lesson 12: Mock MCQ Exam Day 3

Unit 9, Lesson 13: Mock FRQ Exam Day 1

Unit 9, Lesson 14: Mock FRQ Exam Day 2

Unit 9, Lesson 15: Mock FRQ Exam Day 3

For the computer science course, you will need access to two web sites:

  1. code.org
  2. myapp.collegeboard.org

You already have your account at code.org. You still need an account with the college board, both for this course AND to be able to take the AP exam with the college board at the end of the year.

You will need to go to here and enroll in my class using the code I sent you in a separate e-mail. While code.org will provide instruction and give you practice with computer science concepts, the college board site has a large question bank of AP exam style questions with which I will be able to create quizzes. It additionally contains instructional videos which hopefully will be more useful than what I have seen so far on code.org.

Anyway, there is nothing you need to do on myap.collegeboard.org at this time except for enroll in my class. As for code.org, all I would like for you to do at this time is go to Java Lab #1 | Object-Oriented Programming - Code.org and play around on the page becoming familiar with the code.org platform.

Our first class will be Aug 6 at 8am. We can meet at my house or we can meet over zoom:

See you all on Aug 6th.The zoom link for the class is in an e-mail I sent to you. As this web-site is public, I will not place the zoom link here.

access modifier
a keyword used to set the visibility of classes, variables, constructors, and methods
actual parameter
the value to assign to the formal parameter
algorithm
a finite set of instructions that accomplish a task
argument
the specific value provided when a method or constructor is called
assignment
using the assignment operator ( = ) to initialize or change the value stored in a variable
attribute
a characteristic of an object
behavior
an action that an object can perform
call by value
copying the value of the actual parameter to the constructor's formal parameter
camel case
a naming convention where the first letter of the first word is upper or lowercase, and the first letter of each additional word is uppercase.
class
a programmer-defined blueprint from which objects are created
class header
consists of the class keyword and the name of the class
code review
the process of examining code and providing feedback to improve the quality and functionality of the program
comment
a text note to explain or annotate the code and is ignored when the program is run
commit
an operation which saves the latest changes of the code and represents a snapshot of a project
constructor signature
the first line of the constructor which includes the public keyword, the constructor name, and any parameters
condition
determines whether or not to execute a block of code
constructor
a block of code that has the same name as the class and tells the computer how to create a new object
data type
the format of the data that can be stored in a variable
declaration
giving a name and data type to a variable
default value
a predefined value that is used by a program when the user does not provide a value
decomposition
the process of breaking a problem down into smaller parts to write methods for each part
documentation
written descriptions of the purpose and functionality of code
dot operator
used to call a method in a class
DRY principle
a software development principle that stands for "Don't Repeat Yourself" which aims to reduce repetition in code
efficient
getting the best outcome with the least amount of waste
encapsulation
an object-oriented programming concept where the instance variables of a class are hidden from other classes and can be accessed only through the methods of the class
formal parameter
the value to be passed to a constructor or method
inheritance
an object-oriented programming principle where a subclass inherits the attributes and behaviors of a superclass
initialization
giving a starting value to a variable using the assignment operator ( = )
instance variable
a variable defined in a class that represents an attribute of an object
instantiate
to call the constructor to create an object
iteration statement
a control structure that repeatedly executes a block of code
literal
a source code representation of a value, such as a number or text
local variable
a variable declared and accessible within a specific block of code
logical operator
an operator that returns a Boolean value
method
a named set of instructions to perform a task
method signature
consists of a name and parameter list
no-argument constructor
a constructor with no parameters
object
an instance of a class
object-oriented programming
an approach to creating and using models of physical or imagined objects
overloading
defining two or more constructors or methods with the same name but different signatures
parameter
defines the type of value to receive when a method or constructor is called
parameterized constructor
a constructor that has a specific number of arguments to be passed to assign values to an object's instance variables
primitive type
a basic data type that Java predefines
programming style
a set of guidelines and best practices for formatting program code
pseudocode
a plain language description of the steps in an algorithm
refactor
to improve the readability, reusability, or structure of program code without altering its functionality
return
to exit a method and go back to the point in the program that called it with the requested value or information
redundant
code that is unnecessary
reference type
a data type that contains a pointer to the memory location of an object
return type
the value returned before a method completes its execution and exits
scope
where a variable can be used
selection statement
a statement that only executes when a condition is true
Software Engineer
A software engineer designs, develops, and tests software for home, school, and business use.
source code
a collection of programming commands
state
the attributes of an object that are represented by its instance variables
string literal
a sequence of characters enclosed in quotation marks ( " " )
subclass
a class that extends a superclass and inherits its attributes and behaviors
superclass
a class that can be extended to create subclasses
syntax
the rules for how a programmer must write code for a computer to understand
syntax error
a mistake in the code that does not follow a programming language's syntax
tester class
the class that contains the main method and from where the program starts running
two-way selection statement
specifies a block of code to execute when the condition is true and a block of code to execute when the condition is false
variable
a container that stores a value in memory
void
specifies that a method should not have a return value