Tuesday, November 25, 2008

Designing a high school computer science curriculum

For years I have run a computer programming club at different schools. From the days of QBasic on IBM 486s to Java and Python on duo core laptops--well, I've been there.

I would teach math during the day and then the fun would start after school, when the programming students would stop by to program and/or just hang out.

This year, however, is different: 75% of my time is spent teaching programming classes. Sure I still have the programming club, but now I don't have to wait until the school day is over before I get to work with students creating cool programs--it's part of the curriculum now.

Our school is working on becoming a Science Technology Engineering and Math magnet school. The funding is finally starting to appear, so now the real planning is starting to take place. We'll be adding a lot of classes for our STEM program, including more computer science classes. Because I'm pretty much the entire CS department, I get to work on designing a high school computer science curriculum for our STEM program.

I plan on getting help with this. I have some contacts at the CU Boulder CS department that I hope to work with. I'll also be in touch with the Alice team from Carnegie Mellon, as we're about to pilot Alice 3.0 at our school. Also, there are recommendations from the CSTA that I'll be using.

At the same time, though, I'm trying hard to see what I can come up with on my own. May as well enjoy this freedom of choice while it lasts. Maybe there are possibilities here that have never been attempted, or thought of. So when I was asked to come up with a list of possible computer science classes to offer, I spent a lot of time brainstorming.

Here are some of my rambling thoughts:

  1. A class in video game creation would be cool (using Pygame or Greenfoot?).
  2. AP Computer Science will remain in our curriculum.
  3. A class in programming that could directly support our math department would be cool. Maybe something on Algorithms and discrete math problems.
  4. A class on Web design would be nice (XHTML, CSS + PHP + JavaScript?).
  5. The Intro class with Alice should remain the first class in our curriculum.
  6. A class that focuses heavily on digital media could complement our Visual and Performing Arts academy.
  7. A class that combines linguistics and programming would be interesting....

I will also need to train more teachers for teaching these classes. Most of the teachers that are possibilities have no experience with Object Oriented Programming, so I think some professional development there may be necessary....

No comments: