Course Container Standards
Description and Purpose
Courses are a general container for content, covering a single topic. Courses are perfect for individuals who know a specific topic that they would like to learn, such as a certain language, framework, library, or task. Courses offer everything you need to learn such content in about 1-2 months. Each course contains an assorted list of content items designed to help you learn and practice real-world skills.
Courses exist at the Track level of our Curriculum content and are our shortest Curriculum product, smaller than Skill Paths and Career Paths. Courses are made up of a single Track, which in turn is made up of Modules containing assorted content items (including, but not limited to Informationals, Articles, Interactive Articles, Lessons, Quizzes, Videos, Practice Projects). Courses may feature as Units in Skill Paths and Career Paths (Courses and Units are learner facing terms for Tracks). Not all content in Skill Paths and Career Paths exist in our separate course catalog.
- All content is written in Markdown and adheres to Codecademy’s Markdown Style Guide.
- All content adheres to Codecademy's Editorial and Pedagogy Standards.
- Content adheres to Codecademy’s diversity, equity, inclusion, & accessibility standards.
- All work is original. Sources are cited via links or, for datasets, by following the dataset guidelines.
- Focus on specific languages and concepts: Unlike Skill Paths and Career Paths which aggregate and curate material together into a specific roadmap, courses focus on specific topics, like a language or concept. If a course begins to extend beyond that scope, it's a good sign that it needs to be broken up into multiple courses and/or be combined into a Skill Path with additional off-platform projects.
- Content Types: Courses may include single-topic Challenge Projects, but NOT cumulative (more than one topic) Challenge Projects or Portfolio Projects.
Fields in Author
Courses are Tracks, so a track will be the parent-level container for a course.
This is the list of modules that make up the course.
- Anywhere between 1 to ~8 Modules, but you should aim for between 3-5 when scoping new projects.
- Courses typically should have more than one module, but due to production constraints and timelines may be released with only one module at first.
These are visible to learners in the catalog, and they also serve as meta descriptions for courses. They are often short excerpts from the Landing Page.
- Aim for 125 characters or less. There is a strict maximum of 140 characters.
- Include at least one SEO keyword that relates to the topic.
The Landing Page description is visible to learners after they first click on the course. They can see this on the Overview page. This is a longer, detailed description of a course and it should include relevant keywords and SEO terms.
It should be written in Markdown and include two sections: 1. About this course 2. Skills you'll gain
### About this course Ready to start your journey into the [language/topic]? [1-2 actionable sentences describing the learning objectives of the course.] [1 sentence about what jobs or domains use the language/topic being taught.] [1-2 sentences about what learners will be able to do after taking this course.] ### Skills you’ll gain * [3-5 clear bulleted outcomes] * [Start with an action verb] * [30 characters max per bullet]
### Notes on prerequisites We recommend that you complete [Previous course name](link) before completing this course.
There are several different types of courses, and the title should be consistent with the type of course.
- For language and framework courses: “Learn X“
- Learn X [language]
- Learn X [skill] with Y [language/library/software]
- For concepts: “Learn the Basics of X“
- Learn the Basics of X [concept]
- Learn the Basics of X [concept] with Y [language/library/software]
- For specific tasks: “How to X“
- How to X [task]
- How to do X [task] with Y [language/library/software]
- For survey courses: “Introduction to X [topic]”
- For courses that teach new programming languages to programmers: “X [language] for Programmers”
This is will be a part of the URL for the course and will be used to identify this course in data collection.
- Track slug must be unique and is easily identifiable.
- Track slug should be all lowercase with words separated by dashes (
Each container can have one of three difficulties: Beginner, Intermediate or Advanced.
- Beginner containers require no prior coding knowledge and have no prerequisites.
- Intermediate containers have prerequisites and may require experience with code.
- Advanced containers have prerequisites and may require more experience with code than intermediate containers.
Difficulty should be determined using factors like:
- HackerRank Skills Directory
- Relative Difficulty against similar courses/paths
- Prerequisites of the container
This toggle determines if this container is free or Pro. Toggling this to the right so that the toggle is next to the word “Pro-Exclusive” will make this course Pro.
Note: Toggling the course to free or “Pro-Exclusive” does NOT automatically change all of the content items as well. They may need to individually be made free or Pro.
This toggle determines if this container gives the learner a Certificate upon completion. Toggling this to the right so that the toggle is next to the word “Certificate” will make this course award a certification.
- Unless there is a specific reason for not giving learners a certificate, all courses should award a certificate for completing all content.
- If a course is not complete it is a "stub course" and is not eligible for certification until the course is considered complete.
This section contains Tracks which you suggest learners take before beginning this Track. You can only list other Tracks as prerequisites, and you cannot list Tracks that have this Track as a prerequisite. Press the Add Prerequisite Tracks button to add Tracks to this list.
Courses should not have alerts added without a discussion with Domain Managers and/or marketing.
A customized completion message shown to the user upon completing the track. This is recommended for tracks that will not grant a certificate of completion.
If a partner should be credited or advertised with this course, include their information in this section. This information will show up on the course’s Overview page.
This is the URL of the location where the partner’s logo image is stored. This will likely be in our CMS.
This is a link that will be attached to the partner’s logo image. When a user clicks on that image, they will visit this link.
Not all partners will have a tagline, but that text can optionally be included here.
This field is automatically generated. Its contents are generated from the list of authors that have worked on the current draft.
Categories are used to group journeys, paths, and courses in the catalog.
- All courses should include a Category for either the Computer Science Domain, Web Development Domain, Data Science Domain, or Codecademy for Business Domain. These categories are used to filter courses in Author’s search feature and are NOT used to determine the Hub Pages this course will appear on.
Note: Domain categories will always contain the word "Domain" at the end. For example, a course will likely have the "Computer Science Domain" AND "Computer Science" categories.
- Include categories that match the Hub Pages you would like this course to appear on in the catalog. All courses must have one Category besides a “Domain” category.
- The Beta Category is used for courses when they are in beta. This category is removed at the end of the beta period.
Containers That Use This Track
This field is automatically generated. Its contents are generated from the list of containers that contain this track. A course is a track and tracks can be contained in paths.