I haven’t completed the grading and comments yet, but my year is essentially done. And I’ve been thinking about what worked and what didn’t. Mostly things worked. There are things I would tweak. Here’s my basic syllabus. I start by covering the basics. For each concept I teach, I do a lab. So, we learn loops, they write a program with loops. I don’t actually say, “Write a program with loops.” I say, “Draw a square.” To do it efficiently, they need to use a loop. I kind of lumped some concepts together, which I think didn’t work so well. I talked about functions and inputs and outputs, but I didn’t do a whole lot with it. I should have either a) explained it more or b) done a lab just for functions.
After we get past the main concepts, which is basically functions, variables, loops, and boolean logic, we do projects. The rest of the class is project based, and we keep using the same concepts in different contexts. We do a mid-sized project involving Scribbler robots for CS Ed Week, which conveniently falls just before the end of the semester. I do give an exam after that. I then do a graphics project, sound project, and a game project. I also did a text-based game project just before our exam, so that we could learn some more about strings. That was also a platform to learn some data structures like lists and dictionaries. And then, they do a final project of their choosing.
The game project was a huge success, and we spent more time on that than I originally intended. But I would definitely keep it, perhaps even making *that* the final project. What I would change about the second semester is just a few things. I would keep the string/game project, but come up with a lab to demonstrate some things before launching into the project. That was something they spent more time on than intended, but I think it was time well spent. We actually do two graphics projects, one involving photos, and one involving graphics that they create. They sort of get mushed a bit, so I need to separate those a bit more. For example the first graphics project, they can choose to work with photos or drawn graphics (computer created). Most chose photos because we hadn’t done much with drawn graphics. So I think I need to separate the two.
The sound project ends up being a little short. What I actually want to do is bring is the music teacher and have her talk a little about music theory. And then maybe a math or physics teacher (I did this myself this year) to talk about the math/science behind music. The programming of the sound stuff isn’t that challenging, so I’m thinking that I could have them do a little more critical thinking about how what they’re doing really works.
As I said before, the game project was a big success, and many chose to do games as their final projects. Most did not include much in the way of sound, and not all had graphics. So I think I will require those next time. I also think I will add in another test to solidify the main concepts again, especially the work with data structures and strings, things they all used in their projects but had to be reminded of how to use rather frequently.
I may also try some Khan Academy style videos to reinforce concepts as we go over them. I had all my students do their work in class, with no work at home. I like this, especially for the kids who don’t have laptops, but I think they relied on me a little too much–and I was happy to help, but I’d like to see a little more autonomy. I think that contributed to fuzziness on some of the harder concepts. And more group work. I did one group project. I think I could manage more and/or find a way for students to work together more.
Five of my seven students are moving on to the next level, so that’s a great thing. I’m also gaining two students who took CS on their own. So I’m at seven. I think, though, that I’m only going to have 2 in CS 1 next year. No idea if that’ll run. I need to do better recruiting or something. I do have plans for some new courses aimed at juniors and seniors, with and without CS experience, so maybe once I have a full suite of courses to offer, I’ll see more students. I’m looking forward to next year, having a better sense of what I’m doing in my teaching. I’m pleased that things worked out as well as they did.