What is an effective course? An effective course has:
- About 20-30 tutorials + quizzes + projects per course
- 10-15 ish tutorials. 6-8 quizzes. 2-3 mini-projects. 1 multi-part project.
- Steps
- Plan out the course outline. What are the projects going to be?
- Make sure the projects and exercises are representative of what people do in real-life.
- Write the tutorials and quizzes that are required for sure. (usually, this is the first half of the course).
- Then, implement the mini-projects and final project. This helps in making sure you are teaching all the concepts required for the students to do the projects by themselves.
- Then, write the rest of the tutorials, quizzes and project write-ups.
Tutorials
Content:
- 10-15 minutes per tutorial.
- Introduction paragraph with learning objectives.
- While writing each section, keep in mind the learning objectives.
- Don’t use unnecessary jargons. Don’t dumb things down. Explain things as they are.
- Add diagrams and animations when helpful.
- You don’t need to create these, but make sure you pick them from places where they allow copying from (such as Wikipedia). Often, official tutorials have Creative Commons copyright (CC).
- Summary paragraph with bullets.
Language and formatting: How to write an effective tutorial?
- Format all technical sidenotes a specific way. Currently we use a quotation block for this.
Quizzes
- 8-10 questions per quiz
- Types of questions:
- Conceptual: What is the purpose of X? What does X do?
- Syntax: Code “Fill in the blacks”. Function names.
- What is the output of this code?
- Coding exercise:
- Write a function to do XYZ. Then, tell us the output of.
- "I was not able to write this code. Show me the answer.“
- Cover all main sections of the tutorial.
- Focus on the essence of the concept. Not “trickery”.
Mini-projects
- Usually the solution is about 100-300 lines of code.
- Steps:
- Implement the project yourself. Implementation should be clean and well-organized.
- Get your implementation reviewed.
- Does the code work?
- Is the user interaction / output clean? This could be UI, or the text being output to the console.
- Is the code clean? Good function names? Good variable names?
- Is the code well-organized? No code blocks with 40+ lines of code. No code repetition.
- Does the code include comments?
- Do the write-up based on latest version of code.
- Write-up:
- Start by explanation what it is the student is going to make. Show a possible interaction with the project.
- Give the steps to create the project. Give hints / tips for the parts that are tricky / involved.
- Include link to solution at the bottom. If solution is just code, put it on a separate article. If it is a directory, or has non code elements, then it goes to Dropbox.
Multi-part projects
- Usually the solution is about 200-300 lines of code per part.
- Each part of the project is similar to “mini-project” above. But implement the full project first, and get the full implementation reviewed.
- Once the write-up is complete, reviewer must record a screencast of implementing the entire project on their own using the project write-up. Make notes for where you got stuck / where the write-up is unclear. And then change the write-up accordingly.
How to review content
- What are the learning objectives?
- Does the article cover all the topics necessary as per learning objective?
- Is the article easy to follow?
- Explain via concrete examples. Not abstract terms and definitions.
- Is there too much jargon?
- Are all variables defined? What is m? What is i?
- Does the article assume that the reader needs to read some other article to understand the things mentioned in learning objective?
- Does the article include examples where necessary?
- Does the article include examples for each stage / step?
- Content format
- At-least 5 headings for ~1000 word article. No heading with > 250 words.
- Bold and italics where needed
- At-least one picture per 1000 word article