I have some 60+ students working on end of semester projects these days. I have one section of Honors Programming and two sections of Explorations in Computer Science. And let me tell you I am learning a lot! I’m pretty sure the students are as well. One issue for me is that I am teaching both of these classes for the first time. Well as least as they are currently structured. So getting timing right has been a challenge.
My honors programming kids are really impressing me with what they are doing. We have obviously been programming for the whole semester and they’ve all completed a lot of projects. Most of my time is spend helping them with some just in time learning. I think I first heard that phrase from Doug Bergman or perhaps Lou Zulli – both amazing teachers who are focused on project based learning. In any case the students know what they want to do to solve their problems but sometimes need some help learning how to accomplish that. They need stuff that was not covered in the basic scope and sequence. Sometimes I know how to do what they need and sometimes not. Either way I’m having fun.
I am seeing some variation between the students who have and have not had prior programming experience. That’s to be expected but I’m learning from this how to teach to a mixed group better going forward. I get to try these ideas in a week or so.
My Explorations in Computer Science class has only been doing programming for about a third of the quarter. We haven’t had time to cover a lot so of course the projects are simpler and mostly focused on things we covered in class. Here is where I am seeing a reverse bell curve. On one side the kids who are struggling to figure out how to create their projects. They know the syntax but haven’t made the full leap to solving problems from scratch.
At the other end are the students who really “got it” and are going to town on their code. Not a whole lot in the middle. We see this a lot in CS education and it is a constant issue. It’s not an issue of smart or not smart but an issue of whose brain works in what ways. Part of my job as a CS educator is to help all of the students develop their brains to think the way a programmer needs to think.
What I often see is that some students make a steady progression along the “new way of thinking.” Those seem to be a minority. Most people find a time where it suddenly (relatively speaking) clicks and they just “get it.” Learning and problem solving take off at this point. Some lucky people reach that mark early in their learning but some people take longer. Sometimes a lot longer. Speeding that “click” up is my constant goal.
I wish I had more time with this semester’s students but unfortunately these are all single semester courses. With the Exploring students I would spend more time on problem solving. Not necessarily more code syntax or language features but how to put it all together. I’m thinking about how to do more of that earlier next semester.
For the honors programming students I would like more time to talk about designing with objects. We did an introduction to objects and even created some simple ones. But I didn’t spend enough time talking design. Not that there was a lot more time for it. What I am seeing in their projects is that most of them would be easier, faster, better, even prettier if they were using more in the way of object oriented design. Many of them will, I hope, take AP CS next year and they’ll get more in that course. They’ll be ready I think.
New semester starts in about 10 days with a new set of students. Going to be fun.