A couple of years ago two of my students were discussing my influence on motivating students into computer science. One was giving me much too much credit. The other was being more realistic but did say that I encouraged him and that I could have turned him off from computer science. Given this students great success, which I credit to his own intelligence and hard work – it’s all him, I am sure glad that I didn’t mess things up. Bad teachers turning students away from a topic is not an issue limited to computer science of course. But given the shortage of CS people this is a real concern.
As we expand computer science into more and more schools and more and more grades in schools the potential to excite more students about the field runs hand in hand with the risk of losing potentially great students. Are we careful about not losing the students who are not already interested? Or worse, driving away the students who are interested?
I’m a big proponent of teaching with enthusiasm and passion for the subject. I really want my students to see the fun, excitement, potential, and even wonder of computing. The goal it to “turn them on” to computing. Thinking “just don’t turn them off” seems like a defeatist attitude. They are two sides to the same coin though. Often what excites some students will be a turn off for others. Not everyone gets all geeky for esoteric operators and abstract concepts. Some people want to do interesting and artistic things with images. Some students like pretty graphical user interfaces what others like the clean simplicity of a command line interface. Do we try to use a range of different projects and exercises to appeal to the widest range of student?
All of this leads me to believe we need a wide range of computing experiences. We need to mix it up a bit if we only have one course, one chance to win students over. That is often the case in high schools for example. In lower grades we can’t always expect one teacher who teaches every subject to know 10 different ways to teach the same CS concept so the challenge is extra real there. What was want, I think, is to see different ways of doing things at different ages and grades. The more side of the elephant that is computing that students are exposed to the more likely that they’ll find an aspect they like.
What we have to worry about is deadly boring “you have to learn this for the test” classes. We don’t need “filter” or “gatekeeper” courses that weed students out at young ages. We need courses that expand the possibilities and open doors for more students. It’s not always going to be easy but it is important that we try.
Focusing on inspiration rather than a required competency is a luxury of being a specialty teacher, similar statements cannot as easily be made for math or English, but I whole heatedly agree. K-12 Computer education should try to inspire. There is plenty of filtering in the first few years of an undergraduate degree.
ReplyDeleteI think one of the most valuable early lessons Computer education can provide is showing that big/interesting/beautiful feats of engineering (Minecraft, Pandora, flocking algorithms) are made of the same kinds of code that the students have already been learning. I think instilling that with persistence and time students can create their own wonders is an important goal.
One way that I believed you helped avoid filtering and engage with a diverse class was by allowing students to bring their own ideas. Not every student has them to bring, and I'm sure some students must be talked down for their grand schemes given the time constraints of the class, but being allowed to work on your own ideas rather than a stock project is very invigorating for the learner. My little project was a toy 3d wireframe modeler; while I'm sure I would be deeply embarrassed by it now, at the time I was enthralled working with you and my father on the matrices for rotation and projection onto a 2d drawing plane. I doubt I would have had that level of engagement with a project that had been doled out to me.
Letting students have a say in projects is important. Even more so is encouraging them to take on projects of their own interests.
ReplyDelete"Don't turn them off" is certainly critical but don't set them up to fail in their next class is also important.
ReplyDeleteYou've seen my thoughts on CS50 but also on many after school and summer kids programs (including some VERY well known, popular and funded ones, some targetted at specific under represented groups and some for everyone).
I agree Mike. It is critically important that courses, maybe especially fun ones, build a solid base for future learning. My favorite thing is when my students come back and tell me they were well prepared for the course they take after mine.
ReplyDeleteYep - I love hearing that from the grads.
ReplyDeleteI remember one of my Googlers saying that at Cornell everyone "hated him" because he didn't have to do any work until late in his Junior year.
Then there was one of my MIT guys who keeps saying he learned more CS at Stuy (or at least more important CS) than at MIT.