Please enable JavaScript to use CodeHS

AP Computer Science A (Mocha)


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: In this module, students learn the basics of Object Oriented Programming in Java, which is a powerful programming paradigm. Students learn how objects store data and interact with each other in Java programs. Students 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 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 are 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 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.

Unit Description
Project: Pokemon Simulation: Create your own version of the Nintendo game Pokemon!
Project: Mad Libs: In this project you'll write a program that allows users to create their own Mad Lib stories!
Java Outside of CodeHS: Learn how to write and run Java programs offline, outside of the CodeHS editor!
Project: Quiz Creation: In this project, you'll write a program that allows users to take quizzes that are generated from a template file.
Elevens: In the Elevens lab, you will use Object Oriented design to create a solitaire card game. At the end of the lab, you'll use a Graphical User Interface to play the game you create!
Magpie: In the Magpie lab, you will use String methods and pattern matching to create a chat bot that you can have a conversation with.
Picture Lab: In this lab, you will write methods to modify pictures. You'll explore the way pictures are stored in memory, nested loops, interfaces, and inheritance.
Consumer Review Lab: The persuasive power of words can be seen in a variety of places such as entertainment, news, social media, and even reviews and comments. Students learn about sentiment value and how this can be used to construct or modify a review to be more positive or negative using String manipulation. This lab can be used after Unit 4: Iteration in Nitro, and Unit 3 Methods in Mocha
Celebrity Lab: Students will discuss class design as it relates to the game Celebrity, where a person or team tries to guess the name of a celebrity from a given clue or set of clues. This lab includes inheritance as the basis for one of the activities, and also includes a Graphical User Interface. This lab can be completed after Unit 9 Inheritance in Nitro, and Unit 5 Data Structures in Mocha.
Steganography Lab: Steganography is the practice of concealing messages or information within other non-secret text or data. Students will use the same code from Picture Lab to explore the concepts of steganography and 2D arrays, hiding images or text inside of other images. This lab can be completed after Unit 8 2D Arrays in AP CS A Nitro, and after unit Unit 5 Data Structures in AP CS A Mocha.
Java Level 1 Certification Practice: Students prepare for the CodeHS Java Level 1 Certification by taking practice quizzes and reviewing content from the CodeHS Java courses.