How to Teach a Programming Class
So, I’ve been having some crazy ideas on how to teach a programming class. First, I’d used a spaced repetition selection for homework and potentially quiz questions.
Each homework would be cumulative, with the majority of the questions coming from the current chapter and the previous chapter, but with problems selected from even earlier chapters either weighed so that they increase in difficulty over time or based on what students had trouble with. To aid in this, certain classes of problems would be randomly generated from a homework question bank, which would be a database that ran on my desktop.
Tests would work similarly, potentially with questions randomly selected from the bank for each test, so that each student got an individualized problem. Problems would be identified using a hashcode and solutions to the problems would also be automatically generated.
Tests would include a live coding part done in a lab. Homework assignments would be turned in to subversion.