I’ve been involved in a number of curriculum projects over the years. The big one has been the ACM/IEEE CS 2013 task force that is making recommendations on undergraduate computer science curriculum. (The CS2013 Strawman draft is now available here. ) I am so glad there are so many really smart and knowledgeable people on that committee! I’ve also been involved with some smaller efforts. Most recently I was invited to meet with a committee working on the Vocational Technical Education Frameworks for Programming and Web Development programs of study in Massachusetts career/technical schools. Once again some great educators working on that project and I try to stay out of the way as much as I try to help out. But as I was sitting in on this latest meeting it really struck me that developing details curriculum plans for a multi-year program is hard work. More that that I think it is just about impossible for one person to do well.
Oh one person can do it. But well? Well enough for broad adoption? Probably not.But even committees can be tough. In some ways this should have been brought home by some of the news stories out of Texas’ discussions of history curriculum but that struck me as politicians meddling (as politicians are want to do) and not educators working on something they actually know something about. But as I realize that some subjects are too large to include everything (by some definition of everything) in the time (usually not enough) that is allowed there are bound to be disagreements on priorities.
I’m sure this is true in all disciplines but boy do we have problems in computer science. First off our field is much too large. Arguably it needs to be split up into smaller pieces. I can’t see agreement on what those pieces should be and what should go where coming easily though. Given that state everyone has their biases about what is more important than what else. With the CS 2013 effort we are trying to fit everything into four years of college. With this VTE Framework we’re dealing with two years. Ouch! Fortunately Programming and Web Development programs in career/technical schools are not trying to do what four year universities are.
There is a lot of give and take in meetings like these. Lots of discussion of priorities (what is absolutely required) and how much time can/should/must be spent on different topics. These are efforts that really demand committees (which is not true about every task that is assigned to a committee) or at least working teams greater than one (or two or three). Individuals are more likely to forget things that are important even to themselves. The back and forth of discussion various topics can give a clarity that is missing in an individual effort. Yes there are often some tough discussions. A committee can spend a lot of time on a seemingly small topic. Ultimately that work pays off in clarity and in decisions that are well worked out. A lot of hard work and time and even stress. No matter what you decide someone is going to disagree with the results. It’s human nature.
Even with the work these committees are something educators should stand up and volunteer for these efforts. Why? I’ve learned a ton on these committees!
I’m sure that not every educator is thrilled when new frameworks/guidelines.recommendations come out. It often means change and change means more work and can be uncomfortable. It sometimes means that way someone has been doing things for a long time is challenged. But in the long run I think these efforts are necessary. This is especially true in a field like computer science that is constantly changing and at a rapid rate.
The next step for many educators is going to be “how do I cover the topics in the framework/guidelines/recommendations?” For computer science educators that can be tough because they are so often alone in their schools. On the plus side it means a chance to be creative!
OK, yeah, creativity is work too. But if teaching were easy everyone would do it.
Especially CS curriculum. I teach high school Math and CS (primarily but not exclusively programming). If I want to work on my Math curriculum there are many years (couple thousand) and many examples to look at. There are a large number of publishers with very large budgets writing curriculum and texts for math. The topics for the four years of high school math are pretty well defined. Also the topics do not change a whole lot. High school math is pretty static topic wise. There are quite a few people with high powered degrees in math curriculum that really know their stuff. Not so with CS. CS has been in high schools maybe 30 years. In many schools it is not even offered. Publishers are not interested in high school CS, there is not enough demand. And what are the true topics of CS? Applications? Programming? Networking? Hardware? Thirty year old sorting routines? Which language? Not much agreement in the CS community from what I can see. CS is definitely not static and never will be. Every year there will be something new that will have to be considered for inclusion into the curriculum. And CS is definitely not going to be given four years to do it. As for Ed degrees in CS, that is like finding hens teeth! CS curriculum hard? More like an absolute bi#@^!