As I mentioned previously I have signed up for an APCS Principles MOOC from the University of Alabama. The instructor throws out discussion questions every now and then for the class to discuss. One of the discussion questions had to do with recruiting kids into CS classes. It made for some very interesting reading.
As I read these recruitment suggestions I noticed a trend. Many teachers seem to be looking for “high achievers”, “AP potential”, “hard workers”, “good prospects”, and so on. I have to say I am absolutely opposed to this type of approach. We live in a CS world. Everybody lives in this world therefore everybody should get a CS education, not just the upper level students. If the school only offers AP level CS then it is doing 90% of the students a disservice. CS has to come down to the lowest level. The argument is that not every kid is capable of doing CS, where CS is often thought of as programming. Maybe every kid cannot do Java (heck, I can barely do Java) but I think they can all learn to program a little robot or get something working in a language like Scratch.
CS teachers need to be recruiting all kids into the classes. If the school only has upper level CS classes then it is time to reconsider the curriculum and consider the fact it is the 21st century. I am of the opinion if it is a choice between APCSA for a very few or a low level CS survey class for the many then the APCSA is toast. “Principles” is directed to the broader spectrum of students so we as teachers need to get the word out that it is not just for the high achieving students. CS has an elitist reputation, we need to change that.
CS needs to be a K-12 curriculum. Maybe not as a stand-alone CS class but at least as an integrated thread in all classes. Somewhere in there every kid should get an opportunity to program a robot, write a simple program, and build an algorithm that actually results in something visual happening (as opposed to memorizing someone else’s algorithm as in a math class). The people who point out that they use a word processor or spreadsheet in their class and claim it is CS might as well give a kid a 10 key calculator, teach them to add on it, and claim that is math. Apps are part of the picture, but only a part. Teaching apps teaches kids to be users, which is very necessary to survive. Teaching CS teaches kids to be builders, which is necessary to do more than just survive. Every kid should have the chance to be a builder.
(You should see me discuss this live. I wave my hands a lot and get very excited.)