Please enable JavaScript to use CodeHS

Indiana Principles of Computing


Unit Description
Programming With Karel : Karel helps teach foundational skills in programming by simplifying JavaScript to four simple commands. Using these commands, students solve increasingly difficult problems and explore how complex programming languages can be developed from simple commands.
Karel Challenges: Students take all the foundational concepts from Karel to solve programming challenges.
Cybersecurity: Students learn topics on Internet etiquette, how to stay safe on the web, potential effects of digital footprints, how to protect their information, and the implications of cyberbullying.
What is Computing?: Students dive into the history of computing, consider how computing impacts today's world, and learn about the various parts that make up modern computers.
Digital Information: Students learn about the various ways we represent information digitally including number systems, encoding data, and creating pixel images.
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 choose an innovation that was enabled by the Internet and explore the effects of this innovation!
JavaScript and Graphics: Students learn the basics of JavaScript, including variables, user input, mathematics, and basic graphics.
Graphics Challenges: Students learn the basics of pair programming and take all the foundational concepts from JavaScript Graphics to solve programming challenges.
JavaScript Control Structures: This module covers the basics of how to use control structures such as if/else statements and loops to make more advanced programs in JavaScript.
Control Structures Challenges: This module requires students to use all the foundational concepts from the Control Structures module to solve programming challenges.
Functions and Parameters: This module teaches students how to write reusable code using functions and parameters.
Functions Challenges: This module requires students to use all the foundational concepts from the Functions module unit to solve programming challenges.
Operating Systems and Software: Students will compare and contrast common operating systems (Windows, Linux, OS) and explain the importance of compatibility. Students will also explore software and apps while discussing software licenses and running through the software development life cycle.
IT Infrastructure: Students learn about the physical elements of computers and networking, such as motherboards, RAM, routers, and the use of port numbers, ethernet, and wireless devices.
Data: In this unit, students will explore using computational tools to store massive amounts of data, manipulate and visualize data, find patterns in data, and pull conclusions from data.
Final Project: Students take all the skills they've learned throughout the course to create a final program with a partner.
Final Exam: This module includes a culminating exam, testing students on their knowledge of all course materials.

Unit Description
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.
Animation and Games: Students learn how to make objects move around the screen, and how to let users interact with programs using the mouse.
Animation Challenges: This module requires students to use all the foundational concepts from the Animations unit to solve some programming challenges.
Project: Breakout: In this module, students build their very own breakout game from scratch using JavaScript.
Extra Karel Puzzles: A set of all the trickiest Karel puzzles for you to solve
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.
More Graphics and Animation: A bunch of fun graphics programs to get practice with 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.
Evolution Simulation:
Demo Problems:
Extra Quiz Questions:
Visualizing Music: Learn how to create your own music visualizer!
Data Structures: We introduce lists/arrays, maps/objects, sets, and grids. These are the essential basic data structures that any program will use.
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.
Principles of Computing Pretest:
More Cloud Storage Resources: