Next week I’ll be at ICSM presenting a neat paper I worked on with Christian Bird, Thomas Zimmermann, and Nachiappan Nagappan: Relating Requirements to Implementation via Topic Analysis, in Proceedings of the 2012 International Conference on Software Maintenance (ICSM 2012), IEEE, 25 September 2012.
But that means I’ll be away! I’m currently teaching CMPUT301: Intro to Software Engineering. So what shall I do? I have guest speakers coming in but neither has significant experience with programming for Android, so I felt I had to prep the students before the assignment was due. The assignment was an Android app.
I decided to record a few lectures to cover the missing material that I could not get to yet.
- libreoffice and evince for pdf
- (xournal](https://github.com/dmgerman/xournal) for quick drawings
- eclipse for demoing code
- Android SDK for running the demo code
- github for hosting the code
- Youtube for hosting the videos
- My laptop (X220) and it’s mic.
To record audio and video I used a desktop recorder, this means whatever is on my screen the audience will see. This means close your email and clean up your desktop!
What I found was that record my desktop was very finicky. There were only a few settings I could use to ensure proper synchronization of frames. I had to use 22050hz audio, I had to not take a screenshot per frame, I had to set it to encode on the fly. If I didn’t use these settings I tended to produce videos that had wildly out of sync audio and video.
Once that was solved, I hunkered down, opened my class notes and started talking. Ubuntu has an accessibility option to highlight your cursor if you press control, I enabled that and found it useful to draw attention to the cursor.
Sound quality is a big issue, if you want to do this seriously you want a good headset in a quiet room and preferrably something to filter the noise. One might consider manually noise filtering the signal later and compressing it (eq + amplification). I filmed these videos outside so you can hear cars and trucks and airplanes.
Finding a space was surprisingly difficult on the go, you need a spot where you can use your projection voices, because you’re presenting and you need to project. Furthermore the audience can’t see you, so if you do need to make gestures I recommend a webcam program like cheese which allows you to just see yourself, the desktop recorder can take care of recording your webcam program.
In the end I produced some videos about Android and Sequence Diagrams:
Whether or not this is the future, I’m not sure, but because of the knowledge that lectures can be replaced by video I’ve been trying to make CMPUT301 more interactive by adding quizzes, in-class group work, discussions and other exercises. My wife suggests that learning isn’t just passive and sometimes we have get up and do something.