CS21A: Introduction to Computing I. Experimented with BlueJ and an objects-first approach. Students liked the interactive environment and had fun with the graphical and game-based exercises. Reading exercises helped build confidence and the students inferred the use of control structures from them. The programming exercises also helped them appreciate methods. However, I need to give them more opportunities for practice and I should challenge them more.

CS21B: Introduction to Computing II. Students continued working on their projects from last semester, with a twist: they did _other_ people’s projects. Some groups had a hard time working with
old code, but it looked like a pretty good learning experience for everyone. Making reviewers for the final exam was also a fun activity. They also picked up data structures easily, and their advanced studies in threads and files last semester paid off. Downside: Networking still difficult to test.

CS161: Operating Systems. I was initially worried about teaching a traditionally book-centered course, but managed to survive a semester of Powerpoint slides and departmental tests. Weird analogies helped out. Made the CS finals more computation-based, but students lacked practice. If I ever teach
CS161 again, I’d like to emphasize that aspect over the memorization currently required.

Plans for next semester:

Heterogenity. Students come with different backgrounds and proceed at different paces. I want to take advantage of that by providing many exercises and examples for students to learn from so that they can go at their own pace.

Progress. I want to be able to monitor student progress in a spreadsheet or a website. I’d like to keep track of their self-evaluation as well as my own evaluation.

Exercises. Students responded well to the fun and creative exercises I came up with for CS21A and CS21B. I think I’ve collected enough games and puzzles to demonstrate most of the major points in CS21. Over the summer, I plan to write up these exercises in a lab manual. The exercises will vary in difficulty so that beginners can still find fun and exciting projects to work on.

Drills. I would like to spend 5-10 minutes on speed drills to accustom students to solving written problems quickly. This will help them prepare for the midterms and the final examinations. Practicing for these drills will also keep them busy just in case they have nothing else scheduled.