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.

Lessons with summary notes are highlighted thus:

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

Tuesday

Unit 2, Lesson 7: Accessor Methods

(including Scanner class)

Unit 2, Lesson 9: Mutator Methods

September 12

Week 5

Thursday

Unit 2, Lesson 10: Printing Objects

Unit 2, Lesson 11: Store Management Project

September 17

Week 6

Tuesday

Unit 2, Lesson 12: Burger Class FRQ

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

Unit 3, Lesson 2: Modifying Array Elements

Unit 2, Lesson 13: Unit 2 Assessment

Unit 2, Lesson 14: Unit 2 Survery

September 20

Week 6

Fri

Unit 3, Lesson 3: Traversing 1D Arrays

Unit 3, Lesson 4: For Loops

September 24

Week 7

Tues

Unit 3, Lesson 5: Preconditions and Postconditions

Unit 3, Lesson 6: Polymorphism

Review Unit 2 Code.org test results

Broad Review of Units 1 and 2

September 26

Week 7

Thurs

Unit 3, Lesson 7: Enhanced For (for-each) Loops

Unit 3, Lesson 8: Array Algorithms

Unit 3, Lesson 9: Finding Duplicates

Oct 1

Week 8

Tues

Unit 3, Lesson 10: Data for Social Good Project

October 3

Week 8

Thurs

Unit 3, Lesson 11: TicketTracker FRQ

Unit 3, Lesson 12: Unit 3 Assessment

Unit 3, Lesson 13: Unit 3 Survery

Unit 4, Lesson 1: The Theater

October 8

Week 9

Tuesday

Unit 4, Lesson 2: Static Variables and Methods

Unit 4, Lesson 3: The Math Class

Unit 4, Lesson 4: Casting and Rounding

October 10

Week 9

Thursday

Unit 4, Lesson 4: Casting and Rounding

AP Classroom Test Units 1 & 2

Unit 4, Lesson 5: Random

October 14 Fall Break
October 22

Week 10

Tuesday

Unit 4, Lesson 6 Object Aliases and Equality

Unit 4, Lesson 7: Nested if Statements

October 24

Week 10

Thursday

Unit 4, Lesson 8: Logical Operators

Unit 4, Lesson 9: De Morgan's Laws

Unit 4, Lesson 10: Multi-Selection Statements

October 29 Week 11

Unit 4, Lesson 11: Abstract Data Art Project

Unit 4, Lesson 12: Bingo FRQ

Unit 4, Lesson 13: Unit 4 Assessment

Unit 4, Lesson 14: Unit 4 Survey

November 5

Week 12

Tuesday

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

Unit 5, Lesson 2: 2D Array Elements

November 7

Week 12

Thursday

Unit 5, Lesson 3: Row-Major Traversal

Unit 5, Lesson 4: Column-Major Traversal

Unit 5, Lesson 5: Enhanced for Loops

November 12

Week 13

Tuesday

Unit 5, Lesson 6: Images in the Theater

Unit 5, Lesson 7: 2D Array Algorithms

November 14

Week 13

Thursday

Unit 5, Lesson 8: Modifying Images

Unit 5, Lesson 9: Impacts of Programs

Unit 5, Lesson 10: Personal Narrative Project

Unit 5, Lesson 11: Grayscaleimage FRQ

Unit 5, Lesson 12: Unit 5 Assessment

November 19

Week 14

Tuesday

Unit 6, Lesson 1: Project Planning

Unit 6, Lesson 2: Substrings

Unit 6, Lesson 3: Integer and Double Objects

November 21

Week 14

Thursday

Unit 6, Lesson 4: ArrayLists

Unit 6, Lesson 5: Manipulating Elements

Unit 6, Lesson 6: Comparing Strings

November 25 Thanksgiving Break
December 3

Week 15

Tuesday

Unit 6, Lesson 7: Lists of Objects

Unit 6, Lesson 8: Removing Elements

Unit 6, Lesson 9: ArrayList and String Algorithms

December 5

Week 15

Thursday

Unit 6, Lesson 10: Natural Language Processing Project

Unit 6, Lesson 11: TemperatureAction FRQ

Unit 6, Lesson 12: Unit 6 Assessment

Unit 6, Lesson 13: Unit 6 Survey

December 10 Christmas Break
Christmas Break
Second Semester
January 7

Week 16

Tuesday

Unit 7, Lesson 1: Project Planning

Unit 7, Lesson 2: Object References as Parameters

January 9

Week 16

Thursday

Unit 7, Lesson 3: Overloaded Methods

Unit 7, Lesson 4: Private Methods

Unit 7, Lesson 5: Overriding Methods

January 14

Week 17

Tuesday

Unit 7, Lesson 6: Intellectual Property

Unit 7, Lesson 7: Recursion

Unit 7, Lesson 8: Project Development

January 16

Week 17

Thursday

Unit 7, Lesson 9: System Reliability

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

Unit 7, Lesson 11: MusicQueue FRQ

Unit 7, Lesson 12: Unit 7 Assessment

Unit 7, Lesson 13: Unit 7 Survey

January 21

Week 18

Tuesday

January 23

Week 18

Thursday

January 28 Week 20
February 4 Week 21
February 10 Winter Break
February 18 Week 22
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.

accessor method
gives the value that is currently assigned to an instance variable
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
alias
a reference variable that points to the same object as another reference variable
application program interface (API)
a library of prewritten classes
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
autoboxing
the process of automatically converting a primitive type value into an object of the corresponding wrapper class
base case
the instance where a recursive method will return a value rather than calling itself
behavior
an action that an object can perform
benchmark
a standard or point of reference to assess progress
Boolean expression
a logical statement that gives either a true or false value
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.
cast
to assign a value of one type to another
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
column
a vertical (up and down) series of data in a two-dimensional (2D) array
column-major order
traversing a 2D array by accessing each column from left to right
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
compound Boolean expression
an expression using logical operators that evaluates to a Boolean value
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
constant
a variable whose value cannot be changed once it has been assigned
constructor
a block of code that has the same name as the class and tells the computer how to create a new object
data structure
a structure for organizing, processing, retrieving, and storing data
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
decrement
to decrease a value by one
De Morgan's Laws
a set of rules that describe how to simplify complex Boolean expressions
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
dynamic data structure
a data structure that grows and shrinks as needed
efficient
getting the best outcome with the least amount of waste
element
a single value or object in a data structure
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
end user
the person who will use the program
escape sequence
starts with a \ to indicate how to display a String
formal parameter
the value to be passed to a constructor or method
HTML
stands for Hypertext Markup Language; the standard system for tagging text files to be displayed on the World Wide Web
increment
to increase a value by one
index
an integer value that indicates the position of a value in a data structure
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 ( = )
initializer list
a comma-separated list of values or objects given inside curly braces ( { } )
inner array
an array that is nested inside another array
instance method
a method that requires an object of the class to be created before it can be called
instance variable
a variable defined in a class that represents an attribute of an object
instantiate
to call the constructor to create an object
intellectual property
the legal ownership of an individual or company's creations of the mind, such as inventions, literary and artistic works, designs, symbols, names, and images
iteration statement
a control structure that repeatedly executes a block of code
Javadocs
the documentation tool for Java that generates an HTML document from comments written inside /** */ and formatted using @ tags
library
a collection of methods or reusable components 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
loop control variable
a variable that is changed by a constant value and determines the end of a loop
method
a named set of instructions to perform a task
method signature
consists of a name and parameter list
multi-selection statement
a statement that selects a single action from three or more conditional statements based on which Boolean expression is true
mutable
the ability to change after initialization
mutator method
changes the value assigned to an instance variable
natural language processing (NLP)
the ability of a computer program to understand human language
nested conditional statement
a conditional statement nested inside of another conditional statement
nested loop
a loop inside of another loop
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
off-by-one error
an error that occurs when a loop repeats one time too many or one time too few
one-dimensional (1D) array
a data structure that holds multiple values of the same data type
outer array
the outermost array of a two-dimensional array
overflow error
an error that occurs when an operation makes an integer value greater than its maximum
Overloading
defining two or more constructors or methods with the same name but different signatures
override
to define a method in a subclass with the same method signature as a method inherited from a superclass
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
parsing
the process of dividing text into parts for analysis or conversion
pass by value
the process of making a copy of the actual value of a variable to pass to a constructor or method
pixel
the smallest unit of information in an image
polymorphism
where the same object or method has more than one form
postcondition
a condition that must always be true just after the execution of a code segment
precondition
a condition that must always be true just before the execution of a code segment
primitive type
a basic data type that Java predefines
programming style
a set of guidelines and best practices for formatting program code
project backlog
a prioritized list of tasks to complete for a project
pseudocode
a plain language description of the steps in an algorithm
recursion
when a method calls itself/dd>
recursive case
the instance where a recursive method calls itself
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
return by value
a copy of the value is given to where the method is called
redundant
code that is unnecessary
reference type
a data type that contains a pointer to the memory location of an object
relational operator
an operator used to compare values or expressions
return type
the value returned before a method completes its execution and exits
RGB
a color model consisting of red, green, and blue lights to display images
row
a horizontal (left to right) series of data in a two-dimensional (2D) array
row-major order
traversing a 2D array by accessing each row from top to bottom
scope
where a variable can be used
selection statement
a statement that only executes when a condition is true
short-circuited evaluation
a process in which the evaluation of a logical expression exits when the result is clear, even before the complete evaluation of the expression
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
static data structure
a data structure that is fixed in size
static method
a method that can be called without creating an object of the class
static variable
a variable that is shared by all instances of a class
stop word
a word that is filtered out of a list before or after processing text
stop word removal
the process of removing commonly used words from a list before or after processing text
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
text file
a file that contains letters, numbers, and/or symbols but has no special formatting
text segmentation
the process of dividing text into words, sentences, or topics
traverse
to access elements in a data structure one by one
truth table
a table used to determine the truth values of a Boolean expression
two-dimensional (2D) array
an array of arrays often represented as a table with rows and columns
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
unboxing
automatically converting an object of a wrapper class to its corresponding primitive type
underflow error
an error that occurs when an operation makes an integer value less than its minimum
user story
an informal explanation of a program feature written from the perspective of the user
variable
a container that stores a value in memory
void
specifies that a method should not have a return value
widen
automatically cast from a smaller type to a larger type
wrapper class
a class used to convert primitive data types into objects