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.
By the Numbers
|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)).
AP Computer Science A (Mocha) is aligned with the following standards
|Standards Framework||View Alignment|
|Arkansas 9-12||View (48.4%)|
|California 9-12||View (36.7%)|
|Idaho 11-12||View (26.5%)|
|Maryland 11-12||View (35.5%)|
|Microsoft Technology Associate Java Certification||View (71.0%)|
|North Carolina Computer Programming I||View (68%)|
|Nevada 9-12||View (45.2%)|
|Nevada 9-12 CTE||View (50%)|
|Ohio 9-12 Advanced||View (41.9%)|
|Texas Computer Science 1||View (68.3%)|
|Texas Computer Science 2||View (76.4%)|
|Texas Fundamentals of Computer Science||View (44.7%)|
|Virginia Computer Science Foundations||View (44%)|
|Virginia Computer Science Programming||View (76.2%)|
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.