
AP Computer Science A

This year-long college-like course is a capstone course that seeks to place emphasis on students’ interests and personal projects as it relates to computer science to prepare students to take the AP Computer Science exam. Students will develop computational thinking practices as it applies to Java by learning: conditional statements, arrays, array lists, 2d arrays, methods, loops, and object oriented programming. Lessons will incorporate pair-programming and hands-on applicable (such as Minecraft modifications in Java) projects as students work to complete a capstone project that they can add to their portfolios. (
Canvas Course Overview
The following are the objectives as outlined by the college board. I have broken them down and then divided them into four different units to be spread out among the year.
1.1 – I can describe what an algorithm is and explain the roles of compilers and interpreters in programming.
1.2 – I can declare and use variables of different data types in Java.
1.3 – I can use expressions and print statements to output values to the console.
1.4 – I can use assignment statements to update variables and receive user input.
1.5 – I can perform type casting and explain the limits of different primitive data types.
1.6 – I can use compound assignment operators to update variable values efficiently.
1.7 – I can use built-in Java libraries and understand how APIs provide reusable code.
1.8 – I can write comments and understand preconditions and documentation in Java programs.
1.9 – I can read and write method headers (signatures), including parameter and return types.
1.10 – I can call predefined class methods and understand how arguments are passed.
1.11 – I can use the Math class to perform common mathematical operations.
1.12 – I can describe what an object is and how classes create instances.
1.13 – I can use constructors to create and initialize objects from a class.
1.14 – I can call instance methods on objects and understand the effect of method calls.
1.15 – I can manipulate and compare Strings using Java String methods.
1.1.1 - I can prove that I know how to use objects and methods through demonstration and application
2.1 – I can trace and write algorithms that use selection and repetition (if and loops).
2.2 – I can write and evaluate Boolean expressions using relational and logical operators.
2.3 – I can write if statements to control program behavior based on conditions.
2.4 – I can write nested if statements to handle multiple levels of logic.
2.5 – I can write compound Boolean expressions using &&, ||, and !.
2.6 – I can apply De Morgan’s Laws to simplify and understand Boolean logic.
2.7 – I can use while loops to repeat actions based on a condition.
2.8 – I can write for loops to iterate a set number of times.
2.9 – I can implement algorithms that combine conditionals and loops.
2.10 – I can use loops and conditionals to solve problems involving Strings.
2.11 – I can write nested loops and understand how they operate with multiple dimensions.
2.12 – I can describe the runtime complexity of loops using informal analysis.
2.1.1 - I can prove that I know how to use selections and iterations through demonstration and application
3.1 – I can explain the role of abstraction in program design.
3.2 – I can identify design decisions that impact the readability, functionality, and efficiency of a program.
3.3 – I can describe the structure of a Java class and its components.
3.4 – I can write constructors to initialize object fields.
3.5 – I can define and call custom methods that perform specific tasks.
3.6 – I can pass objects to methods and return objects from methods.
3.7 – I can use class-level (static) variables and methods properly.
3.8 – I can explain variable scope and access modifiers in Java.
3.9 – I can use the this keyword to refer to the current object’s fields and methods.
3.1.1 - I can prove that I know how to use class creation through demonstration and application
4.1 – I can discuss ethical concerns and social impacts related to data collection and use.
4.2 – I can describe different types of data sets and how they are used in computing.
4.3 – I can declare, initialize, and access values in an array.
4.4 – I can traverse arrays using loops to examine or update elements.
4.5 – I can implement common algorithms that use arrays (e.g., finding max/min, sum, etc.).
4.6 – I can read and write data to and from text files in Java.
4.7 – I can use wrapper classes (like Integer and Double) with collections.
4.8 – I can declare and use ArrayList objects and their methods.
4.9 – I can traverse an ArrayList and perform updates or calculations.
4.10 – I can implement algorithms using ArrayList structures.
4.11 – I can create and access elements in 2D arrays.
4.12 – I can use nested loops to traverse 2D arrays.
4.13 – I can implement algorithms that use 2D arrays to solve problems.
4.14 – I can implement and trace searching algorithms like linear and binary search.
4.15 – I can implement and trace sorting algorithms like selection or insertion sort.
4.16 – I can write and trace recursive methods that solve simple problems.
4.17 – I can explain and apply recursive search and sort algorithms.
4.1.1 - I can prove that I know how to use data collections through demonstration and application