Please enable JavaScript to use CodeHS

AP Computer Science Principles in JavaScript (Deep Copy)

AP Computer Science Principles introduces students to the foundational concepts of computer science and programming in JavaScript. With a unique focus on creative problem solving and real-world applications, it challenges students to explore how computing and technology can impact the world. [Endorsed by the College Board and updated for the 2020-2021 school year.]

Overview & Highlights

Level
High School
Contact Hours
125
Timeframe
Year

Course Overview

To view the entire syllabus, click here or click to explore the full course.

Introduction to Programming
Karel is a dog that only knows how to move, turn left, and place tennis balls in his world. You can give Karel these commands to instruct him to do certain things. We use Karel to show you what it means to program, and allow you to focus on problem-solving.
Practice PT: Pair-Programming Paint!
Karel is a dog that only knows how to move, turn left, and place tennis balls in his world. You can give Karel these commands to instruct him to do certain things. We use Karel to show you what it means to program, and allow you to focus on problem-solving.
Programming with JavaScript
Students learn the basics of JavaScript, including variables, user input, control structures, functions with parameters and return values, and basic graphics, how to send messages to objects.
JavaScript Control Structures
Students learn how to use booleans and logical operators with control structures to make more advanced programs in JavaScript.
Functions and Parameters
Students learn how to write reusable code with functions and parameters.
Practice PT: Tell a Story
Students apply what they've learned from the previous module to write reusable code with functions and parameters.
Basic Data Structures
Students learn about lists and arrays which are essential basic data structures that any program will use.
Digital Information
Students learn about the various ways to represent information digitally including number systems, encoding data, programmatically creating pixel images, comparing data encodings, compressing and encrypting data.
Practice PT: Steganography
Students learn about the various ways we represent information digitally. Topics covered include number systems, encoding data, programmatically creating pixel images, comparing data encodings, compressing and encrypting data.
Practice PT: Create an Image Filter!
Students learn about the various ways we represent information digitally. Topics covered include number systems, encoding data, programmatically creating pixel images, comparing data encodings, compressing and encrypting data.
The Internet
Students explore the structure and design of the internet, and how this design affects the reliability of network communication, the security of data, and personal privacy.
Project: The Effects of the Internet
Students explore the structure and design of the internet, and how this design affects the reliability of network communication, the security of data, and personal privacy.
Data
Students explore using computational tools to store massive amounts of data, manipulate and visualize data, find patterns in data, and pull conclusions from data.
Project: Present a Data-Driven Insight
Students explore using computational tools to store massive amounts of data, manipulate and visualize data, find patterns in data, and pull conclusions from data.
Project: The Impacts of Computing
While the performance task is no longer a graded part of the AP test, the skills needed for the performance task are still a part of the curriculum. This module will give students a chance to apply these concepts in a project format.
Create Performance Task
Students review course content and practice the skills necessary to complete each AP CSP Performance Task.
AP Exam Review
Students review of the topics covered in the course and practice solving AP Exam style multiple choice questions.
Creative Development
This unit introduces students to the theory and practice of user interface design. Students learn about what makes an engaging and accessible user interface, and will employ an iterative design process including rapid prototyping and user testing to design and develop their own engaging web pages.
Final
Final exam for the course.
Midterm
Extra Karel Practice
It can take some time to learn all of Karel's tricks. Brush up here with some extra Karel practice problems. These reinforce all of the fundamental concepts introduced in Karel, including commands, functions, loops, conditions control structures, and problem decomposition.
Extra Karel Puzzles
A set of all the trickiest Karel puzzles for you to solve
Karel Challenges
In this module you'll take all the foundational concepts from Karel to solve some programming challenges.
Web Development
In this unit, students will go through a high level introduction to HTML, CSS, and the processes involved in viewing web pages on the internet. Students will create several simple web pages using the CodeHS online editor to gain practice using the various features of HTML and CSS.
Functions and Parameters Practice
Functions are the critical building block of any program. To be able to use functions, you want to make sure you fully understand parameters, return values, and how to create your own functions. That is what this practice module is for.
Extra Console Challenges
A bunch of fun console programs to get practice with JavaScript.
Animation and Games
Now, your graphics will come to life. You will learn how to make objects move around the screen. You will also learn how to let the user interact with your program with the mouse. At the end of this section, you will program your very own video game.
Project: Breakout
Learn to make the game invented by Steve Jobs and Steve Wozniak! In this module, you will build your very own breakout game from scratch using JavaScript.
Data Structures Challenge Problems
Learn to code Conway's Game of Life and your own Connect Four game using your skills in data structures.
Visualizing Music
Learn how to create your own music visualizer!
Project: Tic Tac Toe
Did you know that Tic Tac Toe may have been played in Ancient Egypt? Now, you get to make your own game of tic tac toe on the computer! In this module, you will take what you have learned about data structures and make a two player tic tac toe game.
Project: Helicopter Game
You now have the tools to make amazing games. This module walks you through the creation of the classic Helicopter game one step at a time.
More Basic Data Structures
We introduce more data structures: sets, objects, and grids. These are the essential basic data structures that any program will use.
Computer Science Principles Pretest
This is a pretest to get a baseline level of understanding before the course begins.
Computer Science Principles Posttest
This is a posttest to help get a baseline of grown for students.
Practice PT: The Shopping List
Practice PT: Testing 1, 2, 3 ...

152
Lessons
129
Videos
252
Exercises
67
Challenges
200
Offline Handouts

Demo Programs

Explore programs that your students will build throughout this course!

Customizable Assignments

Create and organize Assignments in any CodeHS course that you're teaching. You can even add custom assignments to pre-existing CodeHS courses.

Learn More

Actions for Teachers

Didn’t find what you were looking for? Here are a few links that might be useful to you.