Borui Academy

Chapter 1

Course Overview

Curriculum outline

AP Computer Science A AP 计算机科学A

📌 Course at a glance
· 4 units · key topics drilled across the official outline
· Next exam: 2026-05-06 · 2026-05-06

📝 Full chapter-by-chapter lecture walkthroughs are being written. This page is the course outline — every unit and topic that will be covered, with key concepts you can already start to recognise. Use it as a study map; the chapter notes drop in over the coming weeks.


What you can already do today (free)

  • 📺 Watch curated YouTube videos on every topic (links from the chapter pages as they release)
  • 🎯 Take 1 free diagnostic quiz to see your starting level
  • 📊 Browse the full course outline below to plan your study path

With All-Access (free 7-day trial):

  • 🧠 Memory Curve spaced review with email reminders
  • 📝 Unlimited MCQ / FRQ practice
  • 📑 Mock exams and progress analytics

Course outline

Unit 1 · Using Objects and Methods 使用对象与方法

Exam weight: 15-25%

1.1 — Why Programming? Why Java? 为什么学编程?为什么学Java?
· Purpose of programming · Features of the Java language · IDE and development environment

1.2 — Variables and Data Types 变量与数据类型
· int · double · boolean · Variable declaration and assignment · Constants

1.3 — Expressions and Assignment Statements 表达式与赋值语句
· Arithmetic operators · Compound assignment operators · Increment and decrement · Integer division · Modulo operation

1.4 — Casting and Ranges of Variables 类型转换与变量范围
· Implicit casting · Explicit casting (type casting) · Integer overflow · Loss of precision

1.5 — Objects and Classes 对象与类
· Relationship between classes and objects · Instantiation · Reference types vs. primitive types · null reference

1.6 — Creating Objects (Constructors) 创建对象(构造方法)
· The new keyword · Constructors · Parameter passing · Overloaded constructors

1.7 — Calling Methods 调用方法
· void methods · Methods with return values · Actual vs. formal parameters · Method signature

1.8 — String Objects and Methods String对象与方法
· String immutability · length() · substring() · indexOf() · equals()

1.9 — Math Class Methods Math类方法
· Math.abs() · Math.pow() · Math.sqrt() · Math.random() · Calling static methods

1.10 — Wrapper Classes: Integer and Double 包装类:Integer和Double
· Autoboxing · Unboxing · Integer.MAX_VALUE · Integer.MIN_VALUE


Unit 2 · Selection and Iteration 选择与迭代

Exam weight: 25-35%

2.1 — Boolean Expressions 布尔表达式
· true and false · Relational operators (==, !=, <, >, <=, >=) · Boolean variables

2.2 — if Statements and Control Flow if语句与控制流
· if statements · Conditional execution · Code blocks

2.3 — if-else and else if Statements if-else与else if语句
· if-else branching · else if chains · Multi-way selection · Nested conditionals

2.4 — Compound Boolean Expressions 复合布尔表达式
· && (AND operator) · || (OR operator) · ! (NOT operator) · Short-circuit evaluation · De Morgan's Laws

2.5 — Equivalent Boolean Expressions 等价布尔表达式
· Application of De Morgan's Laws · Simplifying Boolean expressions · Logical equivalence

2.6 — while Loops while循环
· while loop syntax · Loop condition · Infinite loops · Loop termination condition

2.7 — for Loops for循环
· for loop syntax · Initialization/condition/update · Loop variable · Loop counting

2.8 — Nested Iteration 嵌套迭代
· Nested loops · Outer and inner loops · Time complexity · Pattern printing

2.9 — Developing Algorithms Using Strings 使用字符串开发算法
· String traversal · charAt() · Substring search · String algorithms

2.10 — Informal Code Analysis 非正式代码分析
· Loop tracing · Number of iterations · Program output analysis · Hand-tracing code


Unit 3 · Class Creation 类的创建

Exam weight: 10-18%

3.1 — Anatomy of a Class 类的结构
· Class definition · Components of a class · public and private access modifiers

3.2 — Instance Variables and Encapsulation 实例变量与封装
· private instance variables · Encapsulation principles · Data hiding · Information hiding

3.3 — Writing Constructors 编写构造方法
· Writing constructors · Parameter initialization · Default constructors · The this keyword

3.4 — Accessor and Mutator Methods 访问器与修改器方法
· Getter methods · Setter methods · Return values · void methods

3.5 — Writing Methods 编写方法
· Method design · Parameters and return values · Method calls · The toString() method

3.6 — Static Variables and Methods 静态变量与方法
· The static keyword · Class variables vs. instance variables · Static methods · When to use static

3.7 — Scope and Access 作用域与访问控制
· Local variables · Instance variables · Parameter scope · Variable shadowing

3.8 — this Keyword this关键字
· this refers to the current object · this in constructors · Using this to resolve ambiguity


Unit 4 · Data Collections 数据集合

Exam weight: 30-40%

4.1 — Array Creation and Access 数组的创建与访问
· Array declaration · Creating arrays with new · Index-based access · Default values · ArrayIndexOutOfBoundsException

4.2 — Traversing Arrays 遍历数组
· for loop traversal · Enhanced for loop (for-each) · Array length (.length)

4.3 — Array Algorithms 数组算法
· Finding maximum and minimum values · Sum and average · Search algorithms · Element shifting · Array reversal

4.4 — Introduction to ArrayList ArrayList简介
· Importing ArrayList · Generics (<>) · Dynamic sizing · Differences from arrays

4.5 — ArrayList Methods ArrayList方法
· add() · get() · set() · remove() · size()

4.6 — ArrayList Algorithms ArrayList算法
· Insertion and deletion · Search algorithms · Removing duplicates · Data filtering

4.7 — 2D Array Creation and Access 二维数组的创建与访问
· 2D array declaration and creation · Rows and columns · Index access [row][col] · Matrix concepts

4.8 — Traversing 2D Arrays 遍历二维数组
· Nested for loop traversal · Row-major traversal · Column-major traversal · Enhanced for loop with 2D arrays

4.9 — 2D Array Algorithms 二维数组算法
· Row and column sums · Diagonal operations · Matrix search · Basic image processing

4.10 — Searching Algorithms 搜索算法
· Linear search · Binary search · Comparing search efficiency

4.11 — Sorting Algorithms 排序算法
· Selection sort · Insertion sort · Merge sort (recursive) · Comparing sort efficiency

4.12 — Recursion 递归
· Recursive methods · Base case · Recursive case · Call stack · Recursion vs. iteration

4.13 — Reading Data from Files (NEW) 从文件读取数据(新增)
· File class · Scanner class for file reading · nextInt() · nextLine() · hasNext()


Ready to start?