Please enable JavaScript to use CodeHS

AP Computer Science A (Mocha)

Learn the basics of object-oriented programming with a focus on problem solving and algorithm development. Take this course and prepare to ace the AP® Computer Science A test.


Units: 12
Timeframe: Year
Contact Hours: 180

By the Numbers

Contact Hours 180
Lessons 113
Videos 98
Exercises 171
Challenges 30
Offline Handouts 134


Unit Description
Introduction to Programming in Java with Karel the Dog: In this module, students learn the basics of java commands, control structures, and problem solving by solving puzzles with Karel.
Basic Java: In this module, students learn the basics of the Java programming language. This module covers printing, variables, types, as well as how to use the basic control structures in the Java language.
Methods: In this module, students learn how to define methods in their programs and use autograders to test if their methods are working correctly.
Classes and Object-Oriented Programming: This module teaches students the basics of Object Oriented Programming in Java, which is a powerful programming paradigm. Students will learn how objects store data and interact with each other in Java programs. Students will design and implement classes and extend classes using inheritance.
Data Structures: In this module, students learn basic data structures in Java including arrays, ArrayLists, 2 dimensional arrays and HashMaps. Data structures will be used to design larger applications.
Blackjack: In this project, students will develop the classic game BlackJack!
Battleship: In this project, students use Object Oriented design to implement the board game Battleship.
Algorithms and Recursion: In this module, students will be introduced to fundamental searching and sorting algorithms including sequential search, binary search, insertion sort, selection sort, and mergesort, as well as the important concept of recursion.
AP Test Practice: In this module, students will get a practice exam in the same format as the AP Computer Science in Java test.
Final Project: In this module, students take the skills they've learned throughout the course to create a final project.


Click on a demo to test it out.

Testing the GeoLocation Class

Rock, Paper, Scissors! (Duplicate)

The Blackjack Game


Here are a few examples of teacher resources and materials to use in the AP Computer Science A (Mocha) course

Format of Course

The entirely web-based curriculum is made up of a series of learning modules that cover the fundamentals of programming. Each module is made up of short video tutorials, example programs, quizzes, programming exercises, challenge problems, and unit tests. The course is designed for a year long class that meets 5 days per week, though schools implement it in a variety of ways.

Who is it for?

There are no official prerequisites for the CodeHS AP CS A (Mocha) course, however we recommend that students take our Introduction to Computer Science prior to AP CS A. Students who have completed our Intro to CS course will be able to apply knowledge of concepts covered in the Intro course to the more advanced setting of the AP Java course. It is also expected that students know basic English and algebra. Students should be comfortable with functions and function notation, such as f(x) = x + 2 and f(x) = g(h(x)).


These additional resources are available on CodeHS to help supplement and enrich the learning material for AP CS A:

  • FRQ Center - The Free Response Question center is home to a variety of free response questions created by College Board and reformatted to work on CodeHS. Each free response focuses on a specific concept in Java, and gives students practice answering questions in the format they will see them on the AP exam.

  • CodeHS Practice - CodeHS Practice is a curated list of practice problems to help students gain a stronger understanding of basic programming skills. Each Practice problem is autograded meaning students' code will be run through a series of Test Cases to ensure that their code is functionally and stylistically sound, and accomplished the goals of a given exercise.

Professional Development

Teaching AP® Computer Science A

Learn how to lead a successful AP® Computer Science A class with CodeHS. The Teaching AP® Computer Science A professional development course prepares teachers to teach AP® Computer Science A with a focus on the Java programming language. Teachers will practice the skills they need to teach tricky concepts, debug programs, answer questions, and lead a blended classroom.

View Units
CodeHS PD Options