TheHomeschoolingCompany Quick Start Curriculum Resources About Compare Pricing Placement Blog

Advanced Computer Science A homeschool curriculum.

By , founder of TheHomeschoolingCompany. Reviewed .

Write Java that works, and understand why it works.

A personalized lesson from the course

Object-oriented design makes a larger program manageable by assigning responsibility, state, and behavior, but only when those boundaries are tested.

Lesson
Objects Cooperate or They Fail
Goal
Design interacting classes and collections, then use tests to expose a weak assumption in the system.
Advanced Computer Science A lesson "Objects Cooperate or They Fail": the lesson opening, its goal, and its project

How a lesson works

  1. A 10-minute reading

    This example lesson comes from the unit on Java classes, collections, algorithms, and testing. It moves from “Responsibility is a design choice” to “Collections reveal assumptions” and builds to one idea: a class is a promise about responsibility; a test checks whether the rest of the program can rely on that promise.

  2. Help inside the reading

    Your child can highlight any line of “Objects Cooperate or They Fail” and ask our Always-On Mentor about it or ask for a visual, and it offers help on its own whenever they seem stuck.

  3. A check halfway through

    Your child answers “Why should a data structure be chosen by required operations rather than familiarity?” before reading on, and the Reading Check at the end asks new questions.

A project your child hands in

Build a small Java system with interacting classes and collections around a bounded scenario such as a library, inventory, or game roster.

Task
Document the tests that exposed and corrected its weakest assumption
Hand in
Java prototype with tests, class diagram, and README
Advanced Computer Science A assignment brief and written response in the learner's workspace

See the reasoning behind the answer

Students write and debug Java throughout the course, then explain the choices they made. Regular access to a computer supports that practice. Advanced Computer Science A runs through 21 units and 105 skills, starting with primitive types, using objects, and boolean expressions and control flow.

  • Tested Java programs
  • Debugging and design notes
  • Timed method, class, array, and 2-D array responses

Units and skills

Advanced Computer Science A21 units · 105 skills
Primitive types5 skills
  • Design a program or class involving Primitive types
  • Develop correct Java code involving Primitive types
  • Analyze Java code behavior involving Primitive types
  • Document code and computing systems involving Primitive types
  • Apply responsible-computing practices to Primitive types
Using objects5 skills
  • Design a program or class involving Using objects
  • Develop correct Java code involving Using objects
  • Analyze Java code behavior involving Using objects
  • Document code and computing systems involving Using objects
  • Apply responsible-computing practices to Using objects
Boolean expressions and control flow5 skills
  • Design a program or class involving Boolean expressions and control flow
  • Develop correct Java code involving Boolean expressions and control flow
  • Analyze Java code behavior involving Boolean expressions and control flow
  • Document code and computing systems involving Boolean expressions and control flow
  • Apply responsible-computing practices to Boolean expressions and control flow
Iteration5 skills
  • Design a program or class involving Iteration
  • Develop correct Java code involving Iteration
  • Analyze Java code behavior involving Iteration
  • Document code and computing systems involving Iteration
  • Apply responsible-computing practices to Iteration
Writing classes5 skills
  • Design a program or class involving Writing classes
  • Develop correct Java code involving Writing classes
  • Analyze Java code behavior involving Writing classes
  • Document code and computing systems involving Writing classes
  • Apply responsible-computing practices to Writing classes
Arrays5 skills
  • Design a program or class involving Arrays
  • Develop correct Java code involving Arrays
  • Analyze Java code behavior involving Arrays
  • Document code and computing systems involving Arrays
  • Apply responsible-computing practices to Arrays
ArrayList5 skills
  • Design a program or class involving ArrayList
  • Develop correct Java code involving ArrayList
  • Analyze Java code behavior involving ArrayList
  • Document code and computing systems involving ArrayList
  • Apply responsible-computing practices to ArrayList
Two-dimensional arrays5 skills
  • Design a program or class involving Two-dimensional arrays
  • Develop correct Java code involving Two-dimensional arrays
  • Analyze Java code behavior involving Two-dimensional arrays
  • Document code and computing systems involving Two-dimensional arrays
  • Apply responsible-computing practices to Two-dimensional arrays
Inheritance5 skills
  • Design a program or class involving Inheritance
  • Develop correct Java code involving Inheritance
  • Analyze Java code behavior involving Inheritance
  • Document code and computing systems involving Inheritance
  • Apply responsible-computing practices to Inheritance
Recursion5 skills
  • Design a program or class involving Recursion
  • Develop correct Java code involving Recursion
  • Analyze Java code behavior involving Recursion
  • Document code and computing systems involving Recursion
  • Apply responsible-computing practices to Recursion
Testing and debugging5 skills
  • Design a program or class involving Testing and debugging
  • Develop correct Java code involving Testing and debugging
  • Analyze Java code behavior involving Testing and debugging
  • Document code and computing systems involving Testing and debugging
  • Apply responsible-computing practices to Testing and debugging
Cumulative Java free response5 skills
  • Design a program or class involving Cumulative Java free response
  • Develop correct Java code involving Cumulative Java free response
  • Analyze Java code behavior involving Cumulative Java free response
  • Document code and computing systems involving Cumulative Java free response
  • Apply responsible-computing practices to Cumulative Java free response
Program design and implementation5 skills
  • Design a program or class involving Program design and implementation
  • Develop correct Java code involving Program design and implementation
  • Analyze Java code behavior involving Program design and implementation
  • Document code and computing systems involving Program design and implementation
  • Apply responsible-computing practices to Program design and implementation
Testing, debugging, and code quality5 skills
  • Design a program or class involving Testing, debugging, and code quality
  • Develop correct Java code involving Testing, debugging, and code quality
  • Analyze Java code behavior involving Testing, debugging, and code quality
  • Document code and computing systems involving Testing, debugging, and code quality
  • Apply responsible-computing practices to Testing, debugging, and code quality
Code explanation and authorship5 skills
  • Design a program or class involving Code explanation and authorship
  • Develop correct Java code involving Code explanation and authorship
  • Analyze Java code behavior involving Code explanation and authorship
  • Document code and computing systems involving Code explanation and authorship
  • Apply responsible-computing practices to Code explanation and authorship
Multiple quantitative representations5 skills
  • Design a program or class involving Multiple quantitative representations
  • Develop correct Java code involving Multiple quantitative representations
  • Analyze Java code behavior involving Multiple quantitative representations
  • Document code and computing systems involving Multiple quantitative representations
  • Apply responsible-computing practices to Multiple quantitative representations
Graph construction and interpretation5 skills
  • Design a program or class involving Graph construction and interpretation
  • Develop correct Java code involving Graph construction and interpretation
  • Analyze Java code behavior involving Graph construction and interpretation
  • Document code and computing systems involving Graph construction and interpretation
  • Apply responsible-computing practices to Graph construction and interpretation
Written mathematical justification5 skills
  • Design a program or class involving Written mathematical justification
  • Develop correct Java code involving Written mathematical justification
  • Analyze Java code behavior involving Written mathematical justification
  • Document code and computing systems involving Written mathematical justification
  • Apply responsible-computing practices to Written mathematical justification
Advanced Computer Science A cumulative assessment5 skills
  • Design a program or class involving Advanced Computer Science A cumulative assessment
  • Develop correct Java code involving Advanced Computer Science A cumulative assessment
  • Analyze Java code behavior involving Advanced Computer Science A cumulative assessment
  • Document code and computing systems involving Advanced Computer Science A cumulative assessment
  • Apply responsible-computing practices to Advanced Computer Science A cumulative assessment
Advanced Computer Science A exam-mode practice5 skills
  • Design a program or class involving Advanced Computer Science A exam-mode practice
  • Develop correct Java code involving Advanced Computer Science A exam-mode practice
  • Analyze Java code behavior involving Advanced Computer Science A exam-mode practice
  • Document code and computing systems involving Advanced Computer Science A exam-mode practice
  • Apply responsible-computing practices to Advanced Computer Science A exam-mode practice
Advanced Computer Science A reflection and transfer5 skills
  • Design a program or class involving Advanced Computer Science A reflection and transfer
  • Develop correct Java code involving Advanced Computer Science A reflection and transfer
  • Analyze Java code behavior involving Advanced Computer Science A reflection and transfer
  • Document code and computing systems involving Advanced Computer Science A reflection and transfer
  • Apply responsible-computing practices to Advanced Computer Science A reflection and transfer

Questions parents ask

How does Advanced Computer Science A prepare my student for AP Computer Science A?

Advanced Computer Science A follows the AP Computer Science A framework unit by unit, as its skill tree shows. Your teen explains and applies the ideas in written responses and projects, so the work shows which skills are secure and which need more practice.

How does a homeschooler register for an AP exam?

An AP coordinator at an AP-authorized local school arranges registration. Use College Board’s homeschool exam guidance to find a host school. That school sets its deadlines and outside-student policies; its coordinator orders the exam, collects fees, and tells your child where and when to test.

Which course title goes on a homeschool transcript?

Advanced Computer Science A, not AP Computer Science A. The AP designation requires College Board Course Audit authorization of the course, which framework alignment does not give. We generate the transcript with that title, ready for you to sign as homeschool administrator.

How can AP scores earn college credit?

Colleges award credit under their own AP score policies. College Board reports scores on a 1–5 scale, separately from our coursework grades; check the college’s required score and whether it grants credit, placement, or both.

Advanced Computer Science A, with the teaching and records handled

Start your 14-day free trial

$49/month after the trial.

Sources (6)