There are many of us who are passionate about computing, computer science, and teaching both. In practice it's often teaching that is the easy part and learning that is the hard part. For example, it can be easy for a lecturer to stand in front of a class for an hour and cover various topics of computer science, but keeping students engaged can be a real challenge. Many variables impact the maintenance of engagement throughout a taught session, but one approach I've had success with is to make use of video games.
Using video games in teaching is not a novel concept, but to share my experience, I've recently start using Unity3D to run extra-curricular sessions. I stream these sessions live on YouTube which also records them for later viewing, and I find this means no one misses out on the content. For the moment I've focussed on implementing features as fast as possible without worrying about design patterns and best practice, just to show students how easy it can be to use their programming skills to bring something to life.
In the first part we programmed a game which sent a bunny into outer-space to dodge asteroids - all within an hour of introducing Unity3D to the audience. The feedback has been great, and part 2 of what has now become a series is scheduled to run within a week of the first. The code for the project has also been uploaded to GitHub to allow students who missed the first session to code along to the second, and the aim is for students to implement their own features and use their imaginations to do something interesting.
For me, the important thing is that the students are engaging with the sessions despite them not being credit bearing.