Teacher: Bram Moreinis ("Mr. M")
Credits: 1 Elective
Grades: 11 & 12
Prerequisites:
Successful completion of Algebra 2 and Intro to Computer Science or AP CS Principles
Program of Study Description: Prerequisite:
Students will develop skills to design and implement computer programs to solve problems. The approach to programming emphasizes algorithm development, fundamental data structure design, and the application of logic and formal methods to debugging. We use the Code.org course platform.
*You do not need to take the AP Exam to get course credit.
Grading is based on demonstrations of mastery of standards on this page. Standards in italics are not part of the AP exam, but are part of good coding practice.
Numeric and String Expressions (primitive types)
Objects (representation)
Boolean Expressions and If Statements (conditional controls)
Flow Charting and Documentation (abstraction)
Tracking and Debugging (production)
Classes and Methods (decomposition)
For and While Loop Controls (iteration)
Version Control and Refactoring (production)
1 and 2 Dimensional Arrays (data structures)
ArrayLists (data storage)
Objects (inheritance)
Recursion (sort algorithms)
The College Board's AP Curriculum below is offered with many implementations. In our class, we use Code.org's web-based course, with many interactive programming challenges. The headings below in yellow are also covered in Intro to Computer Science, a JavaScript course, with less depth.
You’ll learn the fundamentals of Java, a programming language, as well as other foundational concepts for coding.
Primitive data types including int, double, and Boolean
Evaluating arithmetic expressions in program code
Using assignment operators to produce a value
How variables and operators are sequenced and combined in an expression to create a result
2.5%–5% of exam score
You’ll explore reference data as a way to represent real-world objects in a digital world and discover methods to perform more complex operations.
Objects and classes as ways to describe instances, attributes, and behaviors
Creating objects by calling constructors with and without parameters
Utilizing class libraries, including Integer and Double
Defining an object’s behavior using methods, including static and Math class
Calling non-static void methods with and without parameters
Using String objects and methods
Using application program interfaces (APIs) and libraries
5%–7.5% of exam score
You’ll delve into the building blocks of algorithms and focus on using conditional statements to solve problems and control results.
Finding Boolean values with expressions involving relational operators
Using conditional statements to execute different statements based on input values
Building on conditional statements to create multiple possible outcomes
Creating the same value using equivalent Boolean expressions
Referencing objects with aliases
15%–17.5% of exam score
You’ll learn about iteration, another building block of algorithms that are for repetition.
Creating a loop to run an expression repeatedly until certain conditions are met
Standard arithmetic-based and String algorithms
Representing iterative processes in code using for and while loops
Nesting loop and iteration statements
17.5%–22.5% of exam score
You’ll explore how real-world interactions can be expressed digitally by organizing behaviors and attributes into classes, and you’ll examine the legal and ethical implications of computer programming.
The makeup of a class, including whether attributes are public or private
Setting an object’s attributes using constructors
Using comments to describe the functionality of code
Defining behaviors of an object using non-void, void, and static methods
Where variables can be used in program code
Breaking problems into smaller parts by creating methods to solve individual subproblems
Intellectual property and ethical concerns in programming
5%–7.5% of exam score
You’ll learn techniques and standard algorithms to work with collections of related data, known as data structures.
Representing multiple related items as array objects
Traversing an array by accessing the elements using iteration statements
Standard algorithms that utilize array traversals to perform functions
10%–15% of exam score
You’ll delve deeper into data sets, exploring ArrayList objects for larger amounts of data, as well as the privacy concerns related to personal data storage.
Representing collections of related object reference data using ArrayList objects
Traversing an ArrayList by accessing the elements using iteration statements
Standard algorithms that utilize ArrayList traversals to perform functions
Searching and sorting using standard algorithms
Ethical issues around data collections
2.5%–7.5% of exam score
Now that you’ve explored 1D arrays, you’ll branch out into 2D arrays and experiment with data sets represented in a table.
Representing collections of data as arrays of arrays, or 2D arrays
Traversing a 2D array by accessing the elements using nested iteration statements
7.5%–10% of exam score
You’ll learn how to manipulate programming without altering existing code by using subclasses to create a hierarchy.
Using common attributes and behaviors to group existing objects into superclasses
Defining and overriding methods within subclasses and superclasses
Creating references using inheritance hierarchies
Associating subclass objects with superclasses to create polymorphism
5%–10% of exam score
You’ll work on solving larger problems by solving smaller, simpler versions of the same problem using recursive methods.
Executing recursive methods
Searching and sorting using binary search and merge sort algorithms
5%–7.5% of exam score
Introduction
Numbers
Using numbers
Booleans
Strings
Input and output
Functions
Arrays
Control statements
Objects
Classes
Object-oriented programming
Interfaces
Inheritance
Best practices