The University of Montana here in Missoula had its big Education Technology Conference this week. Big for us is 150 teachers. I went to some sectionals; some good, some bad and some should have had the presenter taken out and shot. But whatever. Anyway, I was sitting next to a friend of mine who is a CS prof at the local technical college which is part of the U of M system. He says to me “We need to get more kids coding. How are we going to do it?” In my usual brilliant manner I replied “Unnhh.” So after a bit of time to consider the question I want to clarify the problem for myself. Now this following logic is based on the Montana experience I have.
1. At present most school administrations/curriculum directors do not consider CS a necessary field of study so it is not offered.
2. Since it is not offered there is no demand for CS teachers.
3. Since there is no demand for CS teachers the university system sees no reason to offer course work in CS for teachers. (This is almost a direct quote from the Dean of Education at UofM.)
4. As a result there is an extreme shortage of CS teachers that can actually teach CS.
5. Since there are not many CS teachers there are not many proponents for CS education at the ground level.
6. Sort of as a result of 1 thru 5 CS text books are not written by people who teach kids so most are as exciting as watching paint dry and as a result most CS courses are dead boring to a non-programmers.
7. Due to a shortage of CS geek kids we need mainstream kids in CS classes.
8. Since CS is an elective and electives need to be interesting to get kids to take them, we do not get many kids coding.
9. Since we do not get many kids coding class sizes are small and the administration simply cannot justify the expense.
Now I am sure with a little work and some more numbers I can get the logic to go back to number 1. It seems to break down to four major issues: no kids, no teachers, no education programs for teachers and no interest by schools. I see no interest by schools as the keystone. If that were to change all the other issues would change with it. To start with I think we need a clear, simple reason why schools should offer CS as either a required course or as a strongly supported elective. Saying CS improves cognitive reasoning or logical thought processes or some other vague gobbly gook is not going to do the trick. We need something to convince kids and councilors to replace two semesters of Physics, AP Calculus, AP English or whatever with at least two semesters of CS. Something concrete like jobs, money, colleges want it (got a problem there), future careers and so on. We need to temp freshman and sophomores into CS so they can build to those upper CS classes. We need to break into the middle school curriculum somehow.
So I have started my own little agenda for the year. These are things that I think I am capable of doing and still have a teaching job and a family life.
1. Tempt kids into my CS class by making the classes interesting. Teaching programming by writing games for the Android and iOS devices is a beginning. Win Phones are out simply because they do not exist around here. I have started on this already.
2. Research into reasons schools should offer CS. Something in the curriculum has to be replaced or majorly modified to get this to happen so this had better be good. The reasoning has to be something a non-computer education enthused administrator would see as a convincing argument.
3. At the next Education Technology Conference I will offer a couple of sectionals: “Why CS is Needed in Your School’s Curriculum”, and “Tools for Teaching Programming grades 5 – 12”. I have a feeling the first one is going to be a hard sell. As for tools for K – 4, that is not my cup of tea. I have enough problems talking to 5th graders.
4. Figure a way to get CS into the 5 – 8 curriculums.
5. Consider some after school programs for 5 – 8: Lego robotics, Scratch, Alice, Kodu. Due to other after school obligations this maybe a bit tricky but still I think it may be the only way to get into the elementary school.
6. Work on changing my teaching philosophy and technique. I presently teach kids how to program. I want to teach kids how to learn programming. The first method is lecture based with lots of show and tell. The second is discovery based with lots of trial and error. I am going to do this shift for my math teaching also.
7. Learn Kodu better. Get kids addicted to something fun when they are young and they will be an addict for life. I think Kodu is a way to get those little ones started.
I like goals I can actually accomplish. I think I can do these.