I have long been an advocate that teaching should be as much about sharing enthusiasm and it is about imparting information. Teachers who are bored or down on the material will often dampen the interest in the subject that their students feel. They can turn powerful ideas and wonderful stories into tedious and even painful experiences for students. On the other hand enthusiasm is also contagious and it the way to make students want to learn. Boring is bad – fun and exciting is good. I’m not saying that educators should be entertainers, at least not as something they fake. rather they should be telling interesting stories that teach and educate and keep people awake. Not entertainment for the sake of entertainment but fun and joy from an intrinsic excitement of the material. The bad news is that this is very hard to do while teaching to the test and teachers are under great pressure to do just that.
Recently on one mailing list I am on Cay Horstmann, author of Big Java, Java Concepts, and the AP CS Grid World case study contributed this thought:
“Standardized exams are dull. You think AP CS is dull? Look at AP Calculus to see how all life has been sucked out of a discipline. And they are dull by necessity. They must be easy to administer and easy to grade. That’s why the AP CS exam has inane multiple-choice questions and a pencil-and-paper programming part that rewards fast scribbling of an approximation of the proper incantations.”
Now Cay and I don’t always agree but I am 100% onboard with this statement. Now I am not a big fan of the current APCS course. I never liked the choice of Java (this long pre-dates my employment by Microsoft BTW), for example. And I think that to some extent the current curriculum is too much of an everything but the kitchen sink that makes it hard to provide enough depth in some important areas. But worst of all there is not enough room for the average teacher to get creative. Now some teachers do get creative and many of them share what they do with others. Far too often though those creative ideas are hard to replicate in all circumstances. You can do more in less time with above average students for example. Classrooms where CS has been a dumping ground (you would not believe how often I hear about that) or that have large numbers of English Language Learners, or any number of other issues create situations where teachers feel, rightly or wrongly, that they have to cram cram cram for the exam to have any hope of getting their students to pass the AP exam. In the end what parents, administrators, and others really seem to judge success by is students passing the exam. As opposed to boring things like students actually learning things or perhaps discovering the Beauty, Awe and Joy of computer science. I’m going to go scream now. OK I’m back.
I am cautiously optimistic about the new AP CS Principles course. It’s language independent and it seems to have some flexibility to it – more so than the existing APCS course anyway.
Ben Chun asks a couple of questions in a blog post (Something is Rotten)
“What if we weren’t bound to the AP curriculum? What should high school computer science look like? In other words, what are the skills, knowledge, and experiences that will support success in both university-level computer science and in computational thinking across disciplines? Or do we need to separate majors from non-majors at the high school level?”
There are a couple of questions there and they are all worth discussion. I hope some of you will join in the conversation on his blog. I’m going to address some of it here. I’ll leave the last question for another time.
I think that is we were not bound by the APCS curriculum we would see more diversity in programming languages used. (See The Language is NOT the Important Thing for previous discussion on picking languages) So I think that many teachers would pick other languages than Java including Python, Visual Basic, C#, F#, Small Basic and, well the list is long. I think we would also see more diversity in case studies.
By case studies I don’t mean just in the narrow sense that the Grid World project is used in the AP CS course but in a broader sense of a context for teaching and learning. For example we would see robotics based courses, and more game development focuses courses (see a bunch of game development curriculum using XNA). BTW lots of conversations with teachers and professors at all female schools suggests that girls are interested in robots and game but they are interested in different robots and games than male students are. Letting students have the freedom to choose how they make their robots/games and other projects look and feel is a good, I would argue necessary, thing. I think that others would find still other contexts for learning as well. Mobile (smart phone) programming is gaining in popularity (I have a sample Windows Phone game project I have been using BTW)
The Microsoft Imagine Cup competition has as its inspiration the United Nations Millennium Development Goals. At the university level basing project based courses about the Imagine Cup and the United Nations Millennium Development Goals has been around for a while. More recently I have seen some high schools do the same thing. The combination of solving the world’s greatest problems and entering an international competition can serve as strong motivators. Some are more motivated by soling real problems and some by contests and some by both. Even if you are not excited by contests, and many are not, then just the idea of solving problems for real customers and making the world or your local area better appeal to many. I think they also support the goals of schools to support society. I know of teachers who have created project based courses that create projects for local non-profits. If not limited by the AP CS curriculum would more advanced courses use this sort of civil good as a context for learning? I’d like to think so.
Now the APCS Programming course/test is not going away anytime soon. And that is probably ok. I do see opportunity though. The longer harder APCS AB course is gone and the new AP CS Concepts course is not more advanced than the remaining course. It is either lower lever or a peer level (depending on your point of view) which means that at many schools there is room (sort of) for a new advanced course. That’s an opportunity for different learning contexts. There is no good reason they should be boring. Let’s have some fun with it.