Additional profile information on Alfred Thompson at Google+
Starting back this past winter I started hearing about a National Science Foundation (NSF) project to create or perhaps promote might be a better way of putting it a new three course computer science curriculum for high schools. This is part of the Broadening Participation in Computing (BPC) program at NSF. I heard some of it at TCEA and more still at SIGCSE. It sounds pretty interesting. Clearly, in my opinion and in that of many others, we need to expand computer science education. We especially need more diversity in the field. Only some 20,000 high school students take the APCS A exam these days. That compares pretty poorly with over 80,000 in statistics which is a fairly new and still small (in AP terms) exam. Would a good course before the APCS course help matters?
What I have been specifically thinking about lately is this so-called first course. Some people refer to it as a pre-AP course but others see this as a course for far more students than just those who are headed for the Advanced Placement Computer Science course. I tend to agree. While it might be nice to have a lot more kids take the AP course – ok yeah it would be nice – I keep coming to the idea that what we need to do most in high school is:
a) get students interested in computer science and
b) give them some basics so that when they get to college/university they are ready to start if they have the interest
I’ve seen a number of my own students over the years take just one computer science course in high school and then do just fine as CS majors in college. Not taking APCS did not stop them because they had interest and some basics. So the question is – what should that first computer science course be like?
Should it have some programming in it? I’d have to say yes. But it doesn’t have to be boring or especially difficult programming. Start with Alice, Scratch, squeak/eToys or something along those lines. Then move to something a little more “real” like Small Basic, Visual Basic or perhaps Python or a functional language like F# or Scheme. Personally I’d avoid curly bracket and semi-colon languages but for some people C#, Java or even C++ will work out just fine. The important thing I think is to give teachers some choices. Let people teach with what they are comfortable with. If they like the tools teachers are much more likely to spread enthusiasm to their students. That to me is a key piece.
I think you also have to be concepts focused more than tool focused. I think that the activities at Computer Science Unplugged are great for that. its not just that they are fun and interesting it is that they move some of the focus from the physical computer and to the concepts themselves. That’s a big plus.
I’d like to see some computer history covered as well. I know. Everyone tells me history is boring. But maybe that just means we are teaching it wrong. We’ve got some real characters in the history of computers and we should play that up. There were some out of the box inspiring people like Grace Hopper for example. Let’s get some creative people to tell those stories in the best way possible. And stories are the way to do it – no dry recitation of facts and dates. That would be boring. But talk about the things that made change and innovation necessary. World War II and everything from code breaking to simple cannon trajectory calculations. Why was computing necessary for just in time inventory? And there are lots more we could come up with after a little brainstorming.
What else do we need? What concepts are key? Remember that in a single semester or even year course we can’t cover it all. Loops and decision structures? Absolutely! Right? What about object oriented design/programming? Is the first course too soon? Or should we use objects even if we don’t teach how to create them? Is recursion in or out? Can we use games as projects? Why or why not? What are good projects that build interest while teaching concepts?
Do you have or know of a scope and sequence document (or more complete package) for a first computer science course? Please send me a link at alfredth (at) microsoft.com or add it to the comments? Strong opinions about what this course should look like? Let me know in the comments, by email or write about it in your own blog and let me know about it. This is something I think needs a broad background of ideas and support.
Last night I was in the supermarket and the bag boy noticed my old Windows Longhorn shirt and asked me if I worked for Microsoft. When I replied that I did he told me he was trying out Windows 7 Beta. Quite a world we live in where high school kids are beta testing new operating systems. I wonder how many school tech support teams are doing the same?
I found out about some new online These Clinics are geared towards three different audiences, and focus on introducing new features and functionality to those interested in simply learning more about the OS or those that are already considering deploying in the near future.
What’s New in Windows 7 for Consumers (1 Hour)
What’s New in Windows 7 for IT Professionals (2 Hours)
What’s New in Windows 7 for Information Workers (2 Hours)
If you want still more Windows 7 training and skills development information, the Windows 7 Learning Portal is now live as well! This site is currently showcasing content, including 7 Silverlight Learning Snacks, free sample chapters from upcoming MS Press Books, Learning Plans, links to clinics/HOLs and more.
This page can be found here - http://www.microsoft.com/learning/windows-7/default.mspx
I’m on the advisory board for a number of high school vo-tech programs in New Hampshire and Massachusetts. It is something I am really proud and happy to be a part of. They ask me because they are looking for a business prospective for their programs but I get a lot of value from this involvement as well. one of the things I am constantly hearing about are “school to work” programs. These are programs designed to help student more more easily into jobs/careers after school. This is obviously easier for students in many vocational and technical programs than others.
Its fairly hard (though not impossible) in computer science and information technology fields without some college. But I’m always looking for ways that students can start preparing themselves sooner if that is the route they want to take. Enter the Microsoft Students to Business (S2B) program.
The Students to Business (S2B) program is a Microsoft® Community Initiative designed to connect Microsoft partners and customers with qualified students for entry-level and internship positions. The objective of the S2B program is to inspire local businesses to communicate the competency requirements for new talent, to evaluate the skills of students ready for an entry-level job or internship and collaborate with Microsoft and local education institutions to provide the curriculum and training needed to ensure students are prepared to meet the innovation needs of company’s around the globe. Students engaged in S2B benefit from unique mentoring, training and certification opportunities. Various offerings are available to students at each stage of S2B – when profiling, in application and after their job connection. The S2B program was first piloted in Italy and has since been rolled out 28 countries, aiming to connect 100,000 students with new career skills, leading to 15,000 students with jobs and internships as part of the Microsoft community.
The Students to Business program is designed to match students with internships and full-time jobs from Microsoft partners. There are literally hundreds of Microsoft partner companies in the US and many many more in other countries. S2B is now up and running in 28 countries around the world.
And yes the target is basically university/college students but there are resources there that many more students can take advantage of. For example there is the Learn It resource page with information about various learning experiences that are available. There is the Experience IT page with chances to get or demonstrate some experience. And the Get IT page with information about getting software for academic use – students or schools.
If you are a business looking for talented students or a university looking to help find jobs for your students who will build your schools reputation there is information there for you as well.