This semester I’m teaching an undergraduate CS course that has a weekly two hour lab session. Instead of going the traditional route of making up 4-5 programming assignments and assigning them over the course of the semester, I wanted to try and create a set of weekly labs that encourage the students to tinker and explore the concepts more deeply in an experimental sort of way. That is, I wanted to create a CS lab experience that was sort of like what one experiences in a biology course – start with a hypothesis, do some experimentation/observations and come to valid conclusions.
I initially thought about creating a document for each lab session that spelled out in cookbook style the various “coding” experiments, but the tedium tremors set in just thinking about what a massive effort that would be. What I really wanted is something that met the following criteria:
In the end, I installed ScreenFlow on my MacBook Pro and use it to create screencasts. I provide the students with a lab assignment in the form of a PDF document that describes the lab exercise. However, instead of step by step directions written out long hand, I simply refer to a YouTube link of the appropriate screencast. The students are then asked to respond to questions about the screencast and are given the opportunity to modify/rerun the code and observe the results.
So far this seems to be working out quite well. The students bring their earbuds to the lab sessions and most of the responses so far have been positive. This is a format that they are already very accustomed to, and the 10 minute length limit in YouTube is a convenient goad in helping me keep each segment focused and to the point. We’re starting to see hits on the videos from various parts of the world along with some comments/ratings, so hopefully others can benefit from this as well!
Production time varies, but I’m definitely in the ballpark. Screenflow works very well for creating the screencasts, and the learning curve was fairly flat. Here’s a sample screencast introducing students to network programming in Java:
I’m linking to my complete set screencasts on my Screencast Tutorial page. In addition to the videos links, I’ve also included download links for the source code used in the screencasts.
I’m interested in comparing notes with others who have used this approach in teaching (CS or areas as well). In particular, let me know what tooling you have found useful for creating/editing screencasts and any other lessons learned.