-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Course Documentation
A Course (or subtopic) represents a specific area of content within a Topic. They are particularly useful when tackling broad topics (such as Java, Python etc.) where further subject-based vision makes sense.
Every course is in a child-parent relationship with a topic. Hence, we place courses as folders within a topic to enforce this relationship. Similarly, we define course folders with a** human-readable slug**.
A valid course folder is accompanied by its README.md
- the manifest which defines all course-related metadata.
For example, under the JavaScript topic, we can find various subtopics such as:
- Ecmascript 2015
- Core
- Promises
- Gulp
- etc.
Same goes to Java with:
- Annotation
- GUI
- Testing
- etc.
This field is shown in the app together with any other more-granular content piece (e.g. Insights, Workouts). It needs to be short- less than 20 characters max.
This field can be used in the app to accompany any course-related content. It helps to pinpoint the area of discussion. It can be a little longer, but should still remain under 100 characters.
The core
field is a boolean that marks whether a course is core or not. Core courses are the first ones to be served to a beginner user and usually try to demystify the basics of the technology/subject they talk about.
NOTE THAT THERE SHOULD BE EXACTLY 1 CORE COURSE PER TOPIC
The sections
field simply denotes the structure and order of workouts within the course. Breaking down all workouts into sections furthermore helps with the encapsulation of information into digestible blocks. When a section ends we usually allow the user to progress to the next one by taking a placement test. While this can be thought of as a revision test, keep in mind that any arbitrary section can be unlocked by passing this test. Essentially, this allows users with pre-existing expertise to skip to the section they care the most about.
We use string numbers for the section names. Within each section, we list the relevant workout slugs in the desired order.
The next
field allows the creation of links between courses. We usually present content by iterating through the courses given these links. Starting from the CORE course, we first move to the course referenced by its next
field. This process is repeated until the end of the content.
The syntax used here is topic-slug:course-slug
. While the syntax allows referencing courses from other topics, currently we're using only links from within the same topic.
A course's README file looks like this:
name: Data Structures and Algorithms
description: The abstract toolkit needed for programmers to manage the complexity of problems and the problem-solving process.
core: true
sections:
'0':
- intro-data-structures
- intro-graphs
'1':
- algorithms-i
- binary-search-tree
- heap-and-trie
- tree-traversals
- algorithms-ii
'2':
- graph-algorithms
- mst-algorithms
next:
- comp-sci:networking
Want to contribute to this wiki? Go right ahead! If it has to do with how the Enki software ecosystem works, or editorial guidelines for how to write, let us handle that. Anything else, edit away!
Curriculum Format:
- Topic Documentation
- Course Documentation
- Workout Documentation
- Insight Documentation
- Glossary Documentation
Contributor Resources:
Curriculum overview:
Topic pages: