I’ve been reading a lot from CS educators lately. Regular readers know I am running a series of interviews with teachers from all over. As I write this I have five of them posted with an other half dozen or so in the queue to post over the next couple of weeks. Patterns are starting to emerge. One of them is that many successful programs start with a very good first course. Not the AP CS course. And not an applications based course. rather they start with a first course that is more of less a gentle introduction to computer science.
These courses include programming as you would expect (or hope) but they do it in a way that encourages students to want to do more. Make Zamansky (who I hope to have an interview with soon) talks a bit about his schools first course on his blog at Gender Stats. While the main thrust of that is his school’s success with attracting and retaining young women in the program he talks about the first course that is important to those efforts.
A well designed required intro course where young ladies can see that this stuff is cool and women are just as good at it as men.
The word required is Mike’s emphasis but I’d highlight it myself. Would that we could get more schools to require a first computer science course. It is long since past time when students should get the basics of word process and spreadsheets long before they get to high school. Having an applications course in high school is a systemic failure. But we do need students to have some early exposure to computer science. If not in middle school than no later than early secondary school.
When I bring this up I often get the response that another required course will just turn students away. My answer is plain – if your required courses, in any subject, do more to turn students away from the discipline than towards it you are doing it wrong.
In the case of computer science there are lots of fun and interesting things to teach and ways to teach them. You can use block languages like Scratch, Kodu and Alice (see lots more at block programming languages) for example. You can use turtle graphics in tools like different versions of LOGO or TouchDevelop or Small Basic and many more. You can use languages like Visual Basic that are more friendly than the semi colon and curly brace languages.
But most of all you can teach things that students care about.Let them get creative. A project they can and want to show their friends is worth five they have no interest in. You can talk about applications that change the world. Or even just their world. But by golly computer science is fun and interesting and a first course should show that. Get them interested. We are not yet at a point where courses that weed out the kids who are not already hooked on software are necessary or desirable.