Advanced Computer Science Principles homeschool curriculum.
Learn computing by designing, testing, explaining, and considering its consequences.
A personalized lesson from the course
A program is not complete when it runs; it is complete when a real user can understand its choices, recover from errors, and see its limits.
- Lesson
- The Algorithm Has a User
- Goal
- Connect data representation and an algorithm to a user's need, then evaluate the program with evidence and a responsible impact note.

How a lesson works
A 10-minute reading
This example lesson comes from the unit on data, abstraction, algorithms, and impact. It moves from “Abstraction chooses what survives” to “Testing includes consequences” and builds to one idea: computational thinking includes asking who the system helps, what it assumes, and what happens when the input is different.
Help inside the reading
Your child can highlight any line of “The Algorithm Has a User” and ask our Always-On Mentor about it or ask for a visual, and it offers help on its own whenever they seem stuck.
A check halfway through
Your child answers “Why should an introductory program include an impact note?” before reading on, and the Reading Check at the end asks new questions.
A project your child hands in
Design a small program that solves a bounded problem for a named user and document the decisions behind its data and algorithm.
- Task
- Test normal and edge cases, then explain one limitation or impact concern
- Hand in
- Working prototype, test evidence, README, and impact reflection

See the reasoning behind the answer
The course covers computing concepts and a Create project. Students document their choices and explain how their program works. Advanced Computer Science Principles runs through 22 units and 132 skills, starting with creative development, data, and algorithms and programming.
- Computing-innovation investigations
- Original program code and demonstration video
- A carefully prepared personalized project reference
Units and skills
Advanced Computer Science Principles22 units · 132 skills
Creative development6 skills
- Design a computational solution involving Creative development
- Develop and evaluate algorithms or programs for Creative development
- Use abstraction effectively while developing Creative development
- Analyze program behavior and code connected to Creative development
- Investigate the purpose and impact of a computing innovation in Creative development
- Evaluate responsible-computing implications of Creative development
Data6 skills
- Design a computational solution involving Data
- Develop and evaluate algorithms or programs for Data
- Use abstraction effectively while developing Data
- Analyze program behavior and code connected to Data
- Investigate the purpose and impact of a computing innovation in Data
- Evaluate responsible-computing implications of Data
Algorithms and programming6 skills
- Design a computational solution involving Algorithms and programming
- Develop and evaluate algorithms or programs for Algorithms and programming
- Use abstraction effectively while developing Algorithms and programming
- Analyze program behavior and code connected to Algorithms and programming
- Investigate the purpose and impact of a computing innovation in Algorithms and programming
- Evaluate responsible-computing implications of Algorithms and programming
Computer systems and networks6 skills
- Design a computational solution involving Computer systems and networks
- Develop and evaluate algorithms or programs for Computer systems and networks
- Use abstraction effectively while developing Computer systems and networks
- Analyze program behavior and code connected to Computer systems and networks
- Investigate the purpose and impact of a computing innovation in Computer systems and networks
- Evaluate responsible-computing implications of Computer systems and networks
Impact of computing6 skills
- Design a computational solution involving Impact of computing
- Develop and evaluate algorithms or programs for Impact of computing
- Use abstraction effectively while developing Impact of computing
- Analyze program behavior and code connected to Impact of computing
- Investigate the purpose and impact of a computing innovation in Impact of computing
- Evaluate responsible-computing implications of Impact of computing
Computing innovation investigation6 skills
- Design a computational solution involving Computing innovation investigation
- Develop and evaluate algorithms or programs for Computing innovation investigation
- Use abstraction effectively while developing Computing innovation investigation
- Analyze program behavior and code connected to Computing innovation investigation
- Investigate the purpose and impact of a computing innovation in Computing innovation investigation
- Evaluate responsible-computing implications of Computing innovation investigation
Program design6 skills
- Design a computational solution involving Program design
- Develop and evaluate algorithms or programs for Program design
- Use abstraction effectively while developing Program design
- Analyze program behavior and code connected to Program design
- Investigate the purpose and impact of a computing innovation in Program design
- Evaluate responsible-computing implications of Program design
Lists and data abstraction6 skills
- Design a computational solution involving Lists and data abstraction
- Develop and evaluate algorithms or programs for Lists and data abstraction
- Use abstraction effectively while developing Lists and data abstraction
- Analyze program behavior and code connected to Lists and data abstraction
- Investigate the purpose and impact of a computing innovation in Lists and data abstraction
- Evaluate responsible-computing implications of Lists and data abstraction
Procedures and algorithms6 skills
- Design a computational solution involving Procedures and algorithms
- Develop and evaluate algorithms or programs for Procedures and algorithms
- Use abstraction effectively while developing Procedures and algorithms
- Analyze program behavior and code connected to Procedures and algorithms
- Investigate the purpose and impact of a computing innovation in Procedures and algorithms
- Evaluate responsible-computing implications of Procedures and algorithms
Testing and debugging6 skills
- Design a computational solution involving Testing and debugging
- Develop and evaluate algorithms or programs for Testing and debugging
- Use abstraction effectively while developing Testing and debugging
- Analyze program behavior and code connected to Testing and debugging
- Investigate the purpose and impact of a computing innovation in Testing and debugging
- Evaluate responsible-computing implications of Testing and debugging
Create performance task6 skills
- Design a computational solution involving Create performance task
- Develop and evaluate algorithms or programs for Create performance task
- Use abstraction effectively while developing Create performance task
- Analyze program behavior and code connected to Create performance task
- Investigate the purpose and impact of a computing innovation in Create performance task
- Evaluate responsible-computing implications of Create performance task
Personalized project reference6 skills
- Design a computational solution involving Personalized project reference
- Develop and evaluate algorithms or programs for Personalized project reference
- Use abstraction effectively while developing Personalized project reference
- Analyze program behavior and code connected to Personalized project reference
- Investigate the purpose and impact of a computing innovation in Personalized project reference
- Evaluate responsible-computing implications of Personalized project reference
Program design and implementation6 skills
- Design a computational solution involving Program design and implementation
- Develop and evaluate algorithms or programs for Program design and implementation
- Use abstraction effectively while developing Program design and implementation
- Analyze program behavior and code connected to Program design and implementation
- Investigate the purpose and impact of a computing innovation in Program design and implementation
- Evaluate responsible-computing implications of Program design and implementation
Testing, debugging, and code quality6 skills
- Design a computational solution involving Testing, debugging, and code quality
- Develop and evaluate algorithms or programs for Testing, debugging, and code quality
- Use abstraction effectively while developing Testing, debugging, and code quality
- Analyze program behavior and code connected to Testing, debugging, and code quality
- Investigate the purpose and impact of a computing innovation in Testing, debugging, and code quality
- Evaluate responsible-computing implications of Testing, debugging, and code quality
Code explanation and authorship6 skills
- Design a computational solution involving Code explanation and authorship
- Develop and evaluate algorithms or programs for Code explanation and authorship
- Use abstraction effectively while developing Code explanation and authorship
- Analyze program behavior and code connected to Code explanation and authorship
- Investigate the purpose and impact of a computing innovation in Code explanation and authorship
- Evaluate responsible-computing implications of Code explanation and authorship
Controlled performance-task planning6 skills
- Design a computational solution involving Controlled performance-task planning
- Develop and evaluate algorithms or programs for Controlled performance-task planning
- Use abstraction effectively while developing Controlled performance-task planning
- Analyze program behavior and code connected to Controlled performance-task planning
- Investigate the purpose and impact of a computing innovation in Controlled performance-task planning
- Evaluate responsible-computing implications of Controlled performance-task planning
Final artifact integrity and attestation6 skills
- Design a computational solution involving Final artifact integrity and attestation
- Develop and evaluate algorithms or programs for Final artifact integrity and attestation
- Use abstraction effectively while developing Final artifact integrity and attestation
- Analyze program behavior and code connected to Final artifact integrity and attestation
- Investigate the purpose and impact of a computing innovation in Final artifact integrity and attestation
- Evaluate responsible-computing implications of Final artifact integrity and attestation
Sustained artifact development6 skills
- Design a computational solution involving Sustained artifact development
- Develop and evaluate algorithms or programs for Sustained artifact development
- Use abstraction effectively while developing Sustained artifact development
- Analyze program behavior and code connected to Sustained artifact development
- Investigate the purpose and impact of a computing innovation in Sustained artifact development
- Evaluate responsible-computing implications of Sustained artifact development
Selection, reflection, and presentation6 skills
- Design a computational solution involving Selection, reflection, and presentation
- Develop and evaluate algorithms or programs for Selection, reflection, and presentation
- Use abstraction effectively while developing Selection, reflection, and presentation
- Analyze program behavior and code connected to Selection, reflection, and presentation
- Investigate the purpose and impact of a computing innovation in Selection, reflection, and presentation
- Evaluate responsible-computing implications of Selection, reflection, and presentation
Advanced Computer Science Principles cumulative assessment6 skills
- Design a computational solution involving Advanced Computer Science Principles cumulative assessment
- Develop and evaluate algorithms or programs for Advanced Computer Science Principles cumulative assessment
- Use abstraction effectively while developing Advanced Computer Science Principles cumulative assessment
- Analyze program behavior and code connected to Advanced Computer Science Principles cumulative assessment
- Investigate the purpose and impact of a computing innovation in Advanced Computer Science Principles cumulative assessment
- Evaluate responsible-computing implications of Advanced Computer Science Principles cumulative assessment
Advanced Computer Science Principles exam-mode practice6 skills
- Design a computational solution involving Advanced Computer Science Principles exam-mode practice
- Develop and evaluate algorithms or programs for Advanced Computer Science Principles exam-mode practice
- Use abstraction effectively while developing Advanced Computer Science Principles exam-mode practice
- Analyze program behavior and code connected to Advanced Computer Science Principles exam-mode practice
- Investigate the purpose and impact of a computing innovation in Advanced Computer Science Principles exam-mode practice
- Evaluate responsible-computing implications of Advanced Computer Science Principles exam-mode practice
Advanced Computer Science Principles reflection and transfer6 skills
- Design a computational solution involving Advanced Computer Science Principles reflection and transfer
- Develop and evaluate algorithms or programs for Advanced Computer Science Principles reflection and transfer
- Use abstraction effectively while developing Advanced Computer Science Principles reflection and transfer
- Analyze program behavior and code connected to Advanced Computer Science Principles reflection and transfer
- Investigate the purpose and impact of a computing innovation in Advanced Computer Science Principles reflection and transfer
- Evaluate responsible-computing implications of Advanced Computer Science Principles reflection and transfer
Questions parents ask
How does Advanced Computer Science Principles prepare my student for AP Computer Science Principles?
- Advanced Computer Science Principles follows the AP Computer Science Principles 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.
What about the AP Computer Science Principles Create task?
- AP Computer Science Principles combines an end-of-course exam with Create performance-task materials submitted through the AP Digital Portfolio. Families must coordinate both parts through an AP coordinator; this curriculum does not register or submit either component for the student.
Which course title goes on a homeschool transcript?
- Advanced Computer Science Principles, not AP Computer Science Principles. 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 Principles, with the teaching and records handled
$49/month after the trial.