I've been running my 'Computer Science and Games: Just for Girls!' course for Carleton's annual Enrichment Mini-Course Program for five years now. And so at this year's instructor's luncheon, I was asked to share some advice for running a successful course. Below are some of my key points.
#1: Don't be Afraid to Challenge the Students
These students, who are mostly in grade eight and occasionally high school, are much brighter than we tend to expect. I have been teaching them computer science topics since the very beginning and am always impressed with how well they understand the concepts (proven by the puzzles or discussions we have after a lesson). Computer graphics and artificial intelligence aren't exactly easy.
#2: It May Be Better to Stick to High-level Concepts
I don't try to introduce really specific algorithms and I never do any math. Depending on the audience, I think you could certainly do some math, but so far my course has worked really well by sticking to high-level concepts. It's only a week, so I figure it's better to deeply understand a few things than to barely understand many.
#3: Lecture As Little As Possible
My entire teaching philosophy is based on this. It's even more important for this age group. I am always looking for interesting ways to avoid talking to the students. There are always things I need to tell them, but if I incorporate doing that with discussions, videos, activities, and so on, then it doesn't even seem like I'm lecturing. Someone at the luncheon said a good rule of thumb was to lecture only for an hour. I agree, but add that it shouldn't be all in one chunk.
#4: Look Online for Proven Activities
Thanks to the Internet, we can find proven lessons for almost every discipline out there. I love using CS Unplugged activities for my course because I know they work. See if you can find something similar for your course.
#5: Try New Things
This year, I'm running an experiment in my mini-course with the help of some colleagues. We're going to test how much of a difference story makes in teaching computer science topics. Why not try out some new teaching techniques in your own course? If you approach it with confidence, the students will likely be forgiving if it doesn't go as planned. And who knows, maybe you'll get a research paper out of it in the end. ;)