Before I detail how I video record in-class programming activities I want to provide some context. I’ve been teaching introductory programming courses for close to 10 years and most recently I instructed a first-year first-semester course called CSCI 1060U: Programming Workshop I. My general philosophy on teaching programming is based on two simple rules:
- Learning programming should occur through doing not through seeing. In my experience active programming activities are a much more effective way to teaching then passively showing already written code on a PowerPoint slide.
- Never teach an example that you can’t program yourself in the classroom. This rule helps me avoid the use of overly complex examples that maybe difficult to follow (which is an easy way to demotivate students who are new to programming).
In introductory programming courses I like to supplement and reinforce new programming concepts with:
- Group programming. In Group programming activities I code with input from students who are also programming in parallel with me. They can see my program on an overhead projector but they also have their own version of code on their laptops. The ability to have a version of code “to play with” seems to give students more confidence to speak up in class since they can try an idea before suggesting it in front of the larger group.
- Break-out pair programming.. In break-out pair programming, students work in groups of 2-3 on a specific programming challenge. While the groups work, I move through the classroom observing their progress and offering advice when needed. A benefit of this type of programming activity is that it really allows me to see how many students are understanding and learning what I’m teaching.
When I first used group programming activities in the classroom, I received a lot of positive student feedback. I also received one consistent piece of negative feedback:
“Students liked programming along with me but didn’t have time to both program and take notes on what I was saying.”
A result of this challenge is that some students would not program along in order to take notes while others who programmed along but would often have questions after (because they only had the source code and not notes on the context of the program discussed in class). My solution – recording the group programming activities in my lectures. This way students can program live and rewatch the activity later to take notes.
Why not record the entire lectures?
I decided to only record the programming activities because I didn’t want the videos to become a replacement for the lectures but instead I wanted them to be a supplement. I also was initially nervous about having everything I said in the classroom recorded and preserved online (what if I made a mistake and said something wrong? 😮). Before discussing the technical side of how I record programming activities I want to pass along the most important advice I have on this topic:
Don’t worry about being perfect!
I record my programming activities live (mistakes and all) and students seem to prefer having a recording of the version of the activity that they attended. Their is also value in students seeing how programming mistakes are identified and fixed.
A number of years ago I tried recording the programming activities separate from the lectures (and free of mistakes). This took 3-4x as long and I’m not sure if there was actually any benefit to student learning.
Now onto the actually recording process…
I stick to the basics during recording. I only capture video of the laptop screen and I don’t capture video of myself, the classroom, etc.
In order to video record programming activities you will need the following software and hardware:
- Video recording software: I recommend Camtasia because it is easy to use and supports the three activities you need to be able to do – capture video, edit video and publish video online. Several of the nice features that Camtasia provides is the ability to select and record only a portion of the screen as well as the ability to pause/resume recordings. There are other options available that are cheaper as well as open source – Camtasia happens to be the one I have chosen.
- Microphone: I recommend purchasing a portable high quality microphone as it will make a noticeable difference in the audio quality of your videos. Personally, I use a Jabra SPEAK 510. I selected this particular microphone because it is multi-directional and can be used wirelessly (making it easier to pick up my voice and also pick up student questions and input during programming activities).
Now onto the video editing and publishing process…
As I mentioned above, Camtasia can be used to edit your video including removing/adding segments, animating, etc. Typically, I don’t do a lot of editing with the exception of the following:
- Adding an initial title screen: I create a slide in Microsoft PowerPoint and then export it as an image (jpg). I then import it into my Camtasia project and add it to the beginning of the video for 3-4 seconds. I typically use a fade transition between the title slide and the actually video (although this is not necessary).
- Adding a logo: I like to add a logo or text to the bottom corner of my videos that identifies either myself or my institution as being the producer of the content. The process for adding a logo is very similar to adding a title screen. The only difference is that the image is overlaid on top of the video instead of placed before the video. I recommend using a logo image with a transparent background (see example below).
After editing your video, you can use the options available in the Camtasia Share menu to publish your video online. I use the option to publish to YouTube – my video hosting site of choice. If you plan to use YouTube you will need to create an account first. I also suggest creating a separate channel for each course which will make it easier for students to access your videos.