Course: This is basically a syllabus and contains the units that will be covered in the course. Metadata in the header for the course includes: title, abstract, tags , prerequisites (by course or by topic), skills, requirements, and version/compatibility tags.
Unit: These are the various topics covered in the course. We can think of the units as individual folders that contain all the material; any lesson, tutorial or challenge will belong to at least one unit.
Lesson: Lessons will be where the educators present all the information and building blocks they are giving to the students - in slides, videos, notes, diagrams… etc. A topic can have multiple lessons, maybe to give students stopping points to apply the information they are receiving.
Tutorial: This is where students can be walked-through an application of what they are learning. If it’s a new programming concept for instance, it can be a series of questions that get the student to walk through an example of the material. (The idea here is really similar to what we think of online tutorials - these are step by step instructions and examples).
Challenge: This is the fun part. Here is where educators can post material that get the student to apply and expand on the concepts covered. Here is where you would find homework problems, problem sets, projects, open ended questions… etc. The challenges will be labelled as either “recommended” or “extended.”
The idea is that with this hierarchy, it will be relatively easy to upload material and search through it. All elements (courses, units, lessons, tutorials, and challenges) will be indexed and will reference the material they belong with. In addition, units and the elements they contain can also be cross-referenced if material is applicable to more than one course and/or unit.
We hope that this will produce a series of very detailed and extensive courses that educators can pull from for their own classrooms!
We welcome any and all feedback!