C0D3 DOJO Design doc #1192
Labels
Design Doc
Design Docs
documentation
Improvements or additions to documentation
enhancement
New feature or request
Intro
Current UI design link: click me
Goals
One of the main benefits of learning is for users to engage creatively with the exercise sets. Their learning would be improved if they could solve creative uses of the concepts they are learning, and also come up with their own creative exercises.
This feature is designed to engage users by giving them more practice exercises and helping them engage other students with their own creative exercises.
Problem
Currently, the only engagement that users have in their learning journey is submitting challenge exercises for each lesson module. 8-12 challenges per module. Besides this, it is all reading and self paced, self guided exercises. Most students do not do all of the exercises, and new exercises are difficult to add, so content is a bit old. New exercises are added at a rate of a few exercises a year!
Solution
There are two types of student groups in our solution. First is the learning group, second is the mentor group.
Learners Group
When a student starts a module, they could jump right into exercises and get quick feedback by submitting answers or writing code, and getting quick feedback (your answer or implementation is right / wrong). Each exercise should also support a discussion where students could ask questions. This approach has several benefits:
Sample UI - Note: A exercise could also ask users to submit a function to do X. The check for correctness would then be a test suite instead of a hard-coded string.
When user clicks on View Discussion, the would be taken to a discussion page below. The discussion page mock should have included the original question for students to main context
Notes:
Mentors Group
Mentors are users who has completed a module. They could then submit exercise to challenge the future generations of students (which would show up in the prior example UI). Submitting exercises could be fun (and therefore more engaging for the students) and educational in the following ways:
A tab will only show up when users have completed the lesson
Notes
Admin Group
/admin/exercises
would display a list of all flagged problems with 3 action buttonsMetrics for measurement
To measure for improvement over time:
Implementation
Database Schema
Considerations
Functions
section of JS0.Proposed Schema
id
,createdAt
, andupdatedAt
will always be present, so omitted from the schema definitions.module - stores a list of submodules for each lesson
function
exercises - stores exercise exercises
ExerciseInteraction - stores the interactions students have with each exercise
ExerciseQuestion - stores questions that the user asked
ExerciseAnswer - Stores answers that users submitted
ExerciseDiscussionLikes - stores user likes
GraphQL Queries
Student Page
On page load, initial request should query for
User Interactions
Mentor Page
On page load, initial request should query for
Admin Page
On page load, initial request should query for all lessons
User Interactions
Launch Dependencies
Rather than launching everything at once, we should incrementally release features so work could be done in parallel.
Databases tables we would end up creating: module, exercises, exerciseInteraction, exerciseQuestions, exerciseAnswer,exerciseDiscussionLikes
Phase 1 - Modules
It takes alot of time to curate exercise content, so phase1 would be optimized for the ability to create module content
https://www.c0d3.com/admin/lessons/js0
Phase 2 - Exercises
Mentor Group
lessons
challenges
review
Edit Lessonscreate
button option to create an exerciseStudent Group
ExerciseInteraction
Phase 3 - Discussion & Stats
ExerciseDiscussionQuestion, ExerciseDiscussionAnswer, ExerciseDiscussionAnswerLikes
Stats to the mentor group page
The text was updated successfully, but these errors were encountered: