My job at Microsoft was to promote the use of Microsoft tools for computer science education. It was a great job and I was promoting tools that I had and that I currently use for teaching. I am loving teaching using Visual Basic and C# with Visual Studio. My C# students are having a blast learning programming and problem solving while creating games using XNA for example. That job did have an impact on how I looked at curriculum. Specifically I looked at curriculum with an eye towards how and where Microsoft products could fit in. As a teacher I look at curriculum first with an eye towards what concepts I want to teach and then look for tools to use to teach them.
Now honestly I know a lot of teachers who start with the tool. You have no idea how many times I have been asked “I have this [computer, software, new technology] what can I teach with it?” Or “how can I use this new technology in my classroom?” We all know that we should start with what do we want to teach and look for a tool second but the allure of new technology effects us all with an urge to find a problem that it is the solution for. It’s probably just human nature.
These days I am working very hard to get back to basics. I want to design a three and/or four year curriculum for computer science education that really works. The CSTA K12 Computer Science standards are my obvious first step of course. I am taking a close look at them. What ever I come up with I want to work with those standards. There are also some existing courses that I have to look closely at. The APCS A exam for one. The new CS Principles course and the Exploring Computer Science course out of the LAUSD are two others. I’m looking at these primarily for the big ideas, the important concepts, and a possible order for introducing those ideas and concepts.
Often discussions of curriculum move quickly away from scope and sequence to tools. I saw that in the comments for my recent post A Friendly Survey of Programming Languages. Though in all fairness that started out as a discussion about teaching programming languages so the language focus is completely to be expected. And it was a welcome and interesting conversation. It convinced me that much of what I wanted to do with that course could probably done as well or better with multiple courses each using different languages.
For now I am trying to focus on outcomes and how to get to them. Specifically what do I want students to know that will prepare them for either a vocational or a more academic career. For many students the correct path after high school is a two year program or a professional training program of some other sort. Something that leads quickly to certifications and jobs. For others the path is going to be more academic leading to graduate degrees even doctorates. Can we create a program in high school that prepares students as well for one path as they other? I think we can and that we can do it in a way that helps students determine which path is the one for them.
That is the greater discussion I would like to take part in. As I see it this curriculum has to be project based. Projects encourage students to stretch themselves, explore and learn on their own far better than tests and quizzes. Tests and quizzes may be (if done right) good diagnostic tools for teachers to understand what a student does or does not know. At the same time they discourage learning anything that will not be on the test and limits creativity. A proper balance if tests/quizzes and projects benefits everyone. Although we all know projects are more work for teachers to grade. That’s life.
One of the things I want students to know is that computer science can help them change the world around them. So projects have to have meaning. They have to not only allow a student to show what they know but do something useful. Early one games fill that role for many (thought not all) students. Students love games. Can we have them wrote meaningful games? Of course we can and we should. We can encourage students to write games that are both fun and educational. I’ve seen a number of tach3rs who do this with their students. Some use Kinect to create whole body interactive games. Others Xbox controllers. Others smart phones. I’ve seen some great programs come out of high schools for Microsoft’s Imagine Cup as well.
Pat Yongpradit has created a project course using the Imagine Cup to force students to hit deadlines, learn new skills (like presentation skills as well as software skills) and work as teams. He’s had great success with this by pretty much any metric you use to gage success. Lou Zulli has his students work on projects where the customer is the school they are attending. Real projects that are used daily by students and faculty in their school. Students learn valuable skills that they can put to use in careers but also prepare them for academic pursuits. I could go on and on about the teachers I have met the last 10 years or so.
What I am searching for now (view this as a request for samples) are curriculum guides for successful programs. What are the courses and their descriptions? What are the scope and sequences? What are the stated outcomes and the paths to reach them? If you have materials like these would you send them to me? Please?
Leave links in the comments or send documents to me at email@example.com. Help me to put together a great collection and create something that will work for me? Really appreciate it.