AP JAVA : Syllabus

**Note: The following curriculum outline is subject to change.**
Visit the Google Classroom for the current Lessons, Assignments, & Projects.
Visit the Google Site for this course for the updated curriculum: https://sites.google.com/newutrechthighschoolnyc.com/apjava/



Semester 1

Back to top

Weeks 1 to 3

  • Bits and Bytes (1.2.2)
  • Memory (1.2.3)
  • Programming Languages (1.3)
    • Machine Language
    • Assembly Language
    • High-Level Language
  • What is Java? (pages 10 - 11)
    • 1.5 Java, the World Wide Web, and Beyond
    • 1.6 The Java Language Specification, API, JDK, JRE, and IDE
  • Creating a Simple Java Program (Welcome to Java Application)
    • What are the parts of a Java Program?
    • Creating, Compiling, and Executing a Java Program
  • Programming Style and Documentation
    • Adding comments to your program
    • Proper Indentation and Spacing
  • Programming Errors (syntax, runtime, and logic)
    • Common Errors
  • Printing Strings
  • Identifiers and Variables
  • Numeric Operators
  • Concatenating strings with other strings/characters and variables
  • Data Input: Obtaining input from the console by using the Scanner Class


    Assignments

    • Assignment 1: Textbook - Page 29 # 1.1, 1.3, 1.4 (due TBA)
    • Assignment 2: Textbook - Page 29 # 1.5 - 1.9 (due TBA)

Weeks 3 to 4

  • Data Input: Scanner Class (continued)
  • dot (.) operator
  • Identifiers and Variables (Naming Conventions)
  • Data Types
  • Numeric Operators (continued)
  • Constants
  • Numeric Literals
    • Integer Literals
    • Floating-Point Literals
    • Scientific Notation
  • Write and evaluate numeric expressions
  • Augmented Assignment Operators
  • Increment and Decrement Operators
  • Software Development Process
    • Case Study : Chapter 2.17 ( Listing 2.10) ComputeChange.java: Page 58 - 60
    • Common Errors and Pitfalls : Chapter 2.18 : Page 60 - 62

Weeks 5 to 6: Selections and Conditional Statements

  • Declaring boolean variables and writing boolean expressions
  • Implementing selection controls
    • One-way if statements
    • two-way if-else statements
    • nested and multi-way if statements
    • switch statements
  • Generate random numbers using Math.random() method
  • Program a variety of samples by using the selection statements. ( 3.7 - 3.9)

  • Combining logical operators (!, &&, ||, and ^)
    • Programming with selection statements and combined conditions ( 3.11 - 3.12)
  • Conditional Operators (3.14)
  • Rules of operator precedence and associativity (3.15)
  • Common techniques to debug errors (3.16)

Weeks 7 to 9: Mathematical Functions, Characters, and Strings

  • Solving mathematical problems with methods from the Math Class

  • Character Data Type and Operations (4.3)
    • char type
    • Unicode and ASCII code
    • Escape Sequences for Special Characters
    • Casting between numeric and char types
    • Comparing and Testing characters with the Character class

  • String type
    • getting the string length
    • reading characters from a string
    • concatenating strings
    • Converting Strings
    • Reading a String from a Console
    • Comparing Strings
    • Obtaining and finding characters and substrings

Weeks 10 to 11: LOOPS

  • while loops and do-whileLoops
  • for Loop
  • Which Loop to use? (Chapter 5.5)
  • Nested Loops
  • Keywords: break and continue

Weeks 11 - 14: Methods

  • Defining and Calling Methods
  • Passing Arguments by Values
  • Modular Programming
  • Converting Hexadecimals to Decimals
  • Overloading Methods
  • Scope of Variables
  • Generating Random Characters
  • Concepts of Software Development
    • Object- Oriented Programming (OOP)
    • Method Abstraction and Stepwise Refinement
    • Top-Down Design
    • Bottom-Up Implementation

Weeks 15 - 16: Semester Review

Week 17 : Semester Final




Semester 2

Back to top

Weeks 18 - 21: Single-Dimensional Arrays and Multidimensional


Chapter 7

  • What is an Array?
  • Single Dimensional Array
  • Array Basics
    • Declaring Array Variables
    • Creating Arrays
    • Array Size and Default Values
    • Accessing Array Elements
    • Processing Arrays
    • Foreach Loops
  • Case Study
    • Analyzing Numbers
    • Deck of Cards
  • Copying Arrays
  • Passing Arrays to Methods
  • Returning an Array from a Method
  • Variable-Length Argument List
  • Searching Arrays
    • Linear Search
    • Binary Search
    • Sorting Arrays
    • Insertion Sort
  • The Arrays Class

Chapter 8

  • Two-Dimensional Array Basics
    • Declaring variables of two-Dimensional Arrays
    • Creating Two-Dimensional Arrays
    • Ragged Arrays
  • Processing Two-Dimensional Arrays
  • Passing Two-Dimensional Arrays to Methods
  • Multidimensional Arrays

Weeks 22 - 24 (Chapter 9): Objects and Classes

  • Object-oriented programming
  • Defining Classes for Objects
    • state of an object
    • behavior of an object
  • Constructing Objects Using Constructors
  • Accessing Objects via Reference Variables
    • dot (.) operator
    • Reference Variables and Reference Types
    • Accessing an Objects Data and Methods
    • Reference Data Fields and the null Value
    • Difference between Variables of Primitive Types and Reference Types
  • Using Classes from the Java Library
    • Date Class
    • Random Class
    • Point2D Class
  • Static Variables
  • Constants
  • Methods
  • Visibility Modifiers
  • Data Field Encapsulation
  • Passing Objects to Methods
  • Array of Objects
  • Immutable Objects and Classes
  • The Scope of Variables
  • this Reference

Weeks 25 - 27 (Chapter 10 & 11) Object Oriented Thinking, Inheritance, and Polymorphism

Chapter 10

  • Class Abstraction and Encapsulation
  • Thinking in Objects
  • Class Relationships (10.4)
    • Association
    • Aggregation and Composition
  • Processing Primitive Data Type V
  • Values as Objects (10.7)
  • Automatic Conversion between Primitive Types and Wrapper Class Types
  • String Class (10.10)
    • Immutable Strings
    • Interned Strings
    • Replacing & Splitting Strings
    • Matching, Replacing, and Splitting Strings by Patterns
    • Conversion between Strings and Arrays
    • Converting Characters and Numeric Values to Strings
    • Formatting Strings

Chapter 11

  • Inheritance
  • Superclasses and Subclasses
  • Use the super keyword to invoke the superclasses's constructors and methods
  • Override instance methods in a subclass
  • Differences between Overriding and Overloading
  • The Object Class java.lang.Object
    • toString() (11.6)
    • equals method (11.10)

  • Polymorphism and Dynamic Binding (11.7 - 11.8)
  • Casting & Downcasting (11.9)
  • Construct an Array list from an array
    • Sort and shuffle a list
    • Find the MAX and MIN element from a list
  • Array List
    • Stack class
  • protected visibility modifier
  • final modifier

Weeks 28 - 29 Exception Handing and Text I/O ; Abstract Classes and Interfaces


Week 30 - 31 Recursion and Merge Sort/ Quick Sorts


Weeks 31 - 33 AP Test Practice Exam/ AP Review

Weeks 34 - 37 Post - AP Project