This class meets twice a week: Tuesdays and Thursdays. This page describes the typical “rhythm” for learning.
At the top level, the course consists of a sequence of modules. Typically, each module will take one week to cover. In some cases, a module might be split into parts and take multiple weeks to cover.
Most modules start on Friday and end the following Thursday.
Work begins on a module. The module page contains overview materials (online readings and screencasts) on the material. In addition, it contains experiences consisting of 3-5 “practice WODs”. These “WODs” (workout of the day) are short assignments with prescribed times for finishing, along with a solution video that I provide. You are encouraged to try each WOD without watching my solution video, then watch the video and repeat the WOD until you can complete it in the prescribed period of time.
Many students do the practice WODs two or three times before completing them successfully within the prescribed period of time.
You should complete all of the practice WODs by the following Tuesday.
The Tuesday class often involves a “Group WOD”. I will divide the class randomly into groups of students who work together on a new WOD they have not seen before that builds off the practice WODs they did by themselves. As with the practice WODs, there is a time limit on the Group WOD.
This class provides additional practice with the skills presented for the module, and an opportunity to work with others. Most importantly, it enables you to self-assess your prior work on the practice WODs: did you work on them effectively, such that this group WOD is easy, or do you need to spend more time on them?
The ICS 314 TAs provide a supplemental, optional practice WOD on Wednesdays, usually in the afternoon or evening. The structure for these WODs mirror the upcoming Thursday WOD: They are timed, and students work on them individually. Unlike the Thursday WOD, they are not graded. The TA will illustrate the solution and help you debug any issues you had after the WOD time limit is reached.
You are given a new WOD that assesses your ability to utilize the skills presented in the module. There is a time limit for completion of the task. I have a developed an in-class procedure (involving index cards) for getting reasonably accurate data on the time spent by each student doing the WOD.
After the Thursday assessment WOD, you get the rest of the day off, and start the next module on Friday.
In addition to this weekly rhythm, I occasionally assign work that takes longer (or shorter) than a week. This enables me to present a small amount of material that does not fall neatly into the week-long rhythm.
Here are some of the significant differences I have found between this approach and more traditional classroom pedagogy:
You are assessed on your capability to carry out software engineering tasks in an efficient manner. As a result, the course does not focus on memorization of terminology.
I design the material as a sequential set of tasks to be mastered, generally in durations of 5-45 minutes.
I present solutions to the tasks through online videos that demonstrate “Rx” times.
I use GitHub to provide an efficient and effective way for you to record your WOD work.