Deepak Kumar who is involved with the Institute for Personal Robots in Education program has a blog post reporting on some of the discussion at last week's Microsoft Faculty Research Summit. The first thing that jumped out at me was that 73% of the attendees said that they were making "some" or "significant" changes to their introduction computer science courses to appeal to and to attract more students. Only 5% said they were not thinking about making any changes at all. I think that 73% of the CS population thinking they need to change things is very significant.
And remember that the faculty at this summit are from outstanding, usually very highly competitive admissions universities. These are not the schools one associates with trouble attracting or retaining students. What must it be like at tier two and three schools?
The summit included a "brown bag" session called CS1: Where's It Going, and What Should We Be Thinking About? and I sure do wish I could have been there. The brown bag sessions at Faculty Summit are generally less formal and always highly interactive. Couple that with some of the smartest people in computer science in the room and what you get is a real learning experience for people like me. Panelists at this particular session included Deepak Kumar (taking about using robots of course) and "Charles Isbell (Gatech, Threads model of curriculum design) and Amy Gooch (U. Victoria, Game Programming as a context for CS1)."
Those are three of the big topics in changing introductory computer science these days (media computation - GaTech and project based learning around other disciplines - Duke being a couple of other ones).
Professor Kumar blogs about some of the points he made in the discussion. The two that jumped out at me were a) they are using robots to teach computer science - they are not teaching robotics and b)they teach abstraction and not OOP.
I think that a lot of people when they hear about using robots or games/gaming think that a course somehow becomes about something other than computer science. In fact we already see confusion between teaching programming and computer science so confusion between robotics and computer science is only to be expected. I am sure there are programs that teach robotics as some blend of electrical/mechanical engineering with some computer science (maybe artificial intelligence) mixed in but that is not what IPRE is doing with their courses. We must be careful not to confuse the tool with the end product.
The other point about teaching abstraction but not object oriented programming was a real thinker for me. So much of the debate I hear today is "objects early v. objects late." I don't hear much talk about that "late" meaning after CS1 rather than late in CS1. As I think about it though OOP is really a subset of thinking in terms of abstractions. We almost lose the abstraction thinking when we focus too much on objects. Confusion behind tools (objects) and results (thinking with abstraction) again? Perhaps.
The encouraging thing to me is that out of this dangerous (in my opinion) drop in enrolment in computer science we are getting a lot of really smart people developing a lot of different ways to teach computer science. I've long been convinced that we need not a new way but several new ways to teach computer science concepts. It is starting to look like that is going to happen.
Now if we can get more of that to happen in high schools!
Alfred Thompson's blog has an entry I copied as a whole: More on Changing the Way We Teach Computer Science