For almost 20 years, I have taught software engineering at both the undergraduate and graduate levels at the University of Hawaii. My approach has evolved considerably over the years. Currently, I favor an approach in which I create screencasts of all my lecture material in advance and post them to YouTube. Students are responsible for watching the lectures as homework, allowing all in-class time to be spent on group and individual project activities.
Here is an example lecture from a recent semester:
My approach has interesting parallels to the recent emergence of “massively online open courseware” such as Coursera. Like Coursera courses, I eschew in-class lecturing. Unlike Coursera, I rely heavily on local classroom interaction to help students assimilate material and to form a learning community that they can utilize both for my course and for future semesters as they progress through our degree program.
For a more complete understanding of my current software engineering pedagogy, please take a look at the ICS 314, Fall 2013 course website. In this course I am experimenting with a new software engineering pedagogy called “Athletic Software Engineering”. For an overview of the approach please see this posting.