Using the CodeHS Project Catalog

Search for additional projects for students in the CodeHS Project Catalog

Sara Jenis avatar
Written by Sara Jenis
Updated over a week ago
Free Feature

The Project Catalog is a curated list of projects that range from short, beginner-level projects that may take an hour or less to complete, to more challenging projects that could take several weeks. Projects often involve more problem-solving and open-ended problem statements and are designed to challenge students on skills already learned by combining concepts in ways they may not need to do with in-course assignments.

Selecting Projects from the Project Catalog

With over 100 projects in the catalog, you may find it easiest to filter the results as you browse for a suitable project for your class. The results can be filtered based on the programming language, grade level, difficulty level, tag, or a keyword search.

Gif showing project catalog being filtered by language, grade, difficulty, tag, or keyword

Programming Language

The programming language is the language that that project is set up to run. Many projects are available in several languages, but you should select the the language students are using in your classroom, as starter code, solution code, and autograders will be based on this language. If more than one language is listed for a particular project, such as Javascript and HTML, both languages will be needed to solve the problem.

Grade Level

Projects are labeled as middle school or high school. These are suggested bands that can be used based on the level of your class.

Difficulty Level

Each project has a difficulty level of easy, medium, or hard. It is important to note that the difficulty is relative to other projects in that language. For example, an easy C++ project is easier than a medium C++ project, but C++ as a language may be more challenging than a language such as Python. As a result, easy C++ projects may be more challenging than easy Python projects.


  • Beginner - The beginner tag is used to signify a project that only requires introductory level skills, such as input/output and basic control statements.

  • Autograded - The autograded tag is used to signify that the project has an autograder for at least some of the tasks of the project. Since projects tend to be more open-ended, even an auto-graded problem may still require teachers to review aspects of the students' code. Check out CodeHS Autograders to learn more about what our Autograders can check for.

  • AP CSA Lab - The AP CSA Lab tag is used to signify a project that is implemented from the official AP CSA College Board recommended labs. You can find more information about these labs, including sample solutions, in the AP Classroom on the College Board website.

More Details on Projects

Gif showing full details of Project Card, including the description, overview, demo, and estimated completion time.

Estimated Time - Each project card displays an estimated number of hours to complete that particular project. In general, more difficult projects involve more code and will take longer to complete.

Demos - When clicking into the project card, you will see demos for nearly all projects. The demos are there to provide an example of what the students may produce, however at times and may be hard to understand the demo without more context from the project instructions.

Project Overview and Description- Each project includes a description and brief overview of activities included.

Assigning Projects to Your Course

When assigning a project to your Course, the project will be added as a new module at the end of your Course. Once the project is assigned, you will have access to example solutions and Lesson Plans, when applicable. See Accessing Solutions and Lesson Plans for more information.

Assigning from the Project Catalog:

  1. Navigate to the Project Catalog or choose Project Catalog from the left side navigation panel

  2. Choose the project you would like to assign.

  3. Click the Green Assign button to add the project to one of your courses.

  4. Verify which Section(s) the project should be added to and click Assign. The project will be added as a module to the end of your Course.

Assigning from your Assignments Page:

  1. Click the blue Add button and choose Projects.

  2. Use the search bar to find the Project you would like to add.

  3. Click Assign.

Still have questions? Contact our team at to learn more!

Did this answer your question?