CrossFit has the concept of a “Workout of the Day” (WOD), which is a short duration, high intensity set of exercises. In this class, I adapt this concept to software engineering education. My hope is that by focusing on the speed with which you implement high quality solutions to short development problems, you will:
- Gain fluency with your tools and technologies.
- Gain the ability to focus and enter the “flow state” during software development.
- Become more productive and useful in “bursty” development environments like startup weekends.
For each WOD, I provide the following timing information:
- Rx: “As prescribed”. Finishing the WOD in or under this number of minutes and seconds indicates mastery of the material tested by the WOD.
- Av: “Advanced”. Finishing the WOD between the Rx and Av times indicates superior performance.
- Sd: “Standard”. Finishing the WOD between Sd and Av indicates acceptable performance.
- DNF: “Did not finish”. If you take longer than this amount of time, then you have taken an unacceptably long amount of time.
Here is an example: WOD: FizzBuzz. Rx: <3:30 min / Av: 3:30-4:00 min/ Sd: 4:00-5:00 min/ DNF: 5:00+ min
So, in this example, completing the “FizzBuzz” WOD in 3 minutes and 30 seconds or less is “as prescribed”, 3:30 – 4:00 is “Advanced”, 4:00 to 5:00 is “standard”, and taking longer than 5 minutes is unacceptably slow.
Note that simply stopping work at a certain time does not mean you achieved the associated standard: your solution must have acceptable quality as well.
Throughout the semester, I provide practice WODs as homework assignments, which you can time on your own. Before starting a WOD, I recommend you review and study the associated material so that you do not spend valuable seconds during the WOD doing “research”.
For examples of practice WODs, see the Java Code WODs page.
After providing you with time to practice some WODs, I will hold an in-class WOD, in which I will time your performance and your solution will be submitted for grading. For grading purposes, the criteria is that you solve the problem with acceptable quality under the DNF cut-off time. Your grade will not depend upon whether you performed at Rx, Av, or Sd levels.
The general procedure for an in-class WOD is as follows:
- You have your own “WOD-velope”, which is an envelope containing an index card where we will keep track of your WOD scores.
- On the day of a WOD, you pick up your WOD-velope from me and fill out the date, the name of the WOD, and your HEBS (homework, exercise, breakfast, sleep) score.
- Once everyone is ready, I start a timer and give out the WOD assignment.
- When you finish the WOD, raise your hand. I will come and tell you your elapsed time. You record that on the index card and I collect your WOD-velope.
- When the WOD is finished (i.e. at the DNF cut-off time), everyone emails me your WOD program as a zip file.
- After class, I check each WOD assignment and give a grade. I also write down Rx, Av, Sd, or DNF on the index card. You can only receive Rx, Av, or Sd if you complete the WOD correctly and within the time frame for that performance level.
Here is a slide show illustrating various aspects of an in-class WOD: