Additional profile information on Alfred Thompson at Google+
So as you read this it is a day or two after Christmas. You may still be full from Christmas dinner and you just want to take it easy. Or it may be that you don't celebrate Christmas and you are struggling to find interesting content to read on the Internet. Well just for you I wrote this post a week in advance so you'd have something to think about.
The CSTA has been asked for feedback about changes to the Advanced Placement Computer Science curriculum and they blogged about it recently. Honestly I'm rather amazed that there are not more comments there. To me this is one of the major issues of high school computer science today. Most of this I left as a comment but I'm not sure it was posted properly. But since I decided to expand on my thoughts here that's ok.
My first thought would be to start with a list of the major/important concepts that people believe should/must be in a first course. These must then be prioritized. Then you can have a discussion about how long it takes to each each and where teachers will run out of time. We'll probably wind up leaving out someone's pet concept but there is limited time available. I've long thought that there was may too much in the curriculum.
Now here is something a lot of people don't know. I think that most people assume that to get a top score on the AP CS exam a student probably gets 90 percent of the questions right. In fact though a student who scores between 60-70 percent correct will usually get a top AP CS score. To me that screams there is too much in the curriculum.
I also think we need to think about basic concepts in a different way. We need to focus on the ones that are most constant. I know that the only real constant in CS is change but to a real extent some things will always be with us - Boolean expressions and decision structures, loops, math operations and their order, and things like that. These are required for a solid base for future training.
We need to should lower the priority on the tricky, fun to have latest fad stuff. How much of object oriented programing really can't wait until a later course?
One thing I struggle with is where does recursion fit in? I think we need a good discussion about that. I love it but is it really core? Arguments can be made either way. We haven't always had it in out mainstream languages.
We also need to revisit the case study. While I love the idea of students reading and knowing a large piece of code is the first course really the place for it? I don't think so. I would rather they spend time reading a lot of shorter (but still well-written) pieces of code.
I think we need to revisit the idea of a mandated language for the exam. Yes I know all the arguments for it. I've been listening to them for years. But at the same time it just seems like it fosters an attitude where we look at the language for things to test rather than looking for things to test and then look for what languages to use. Concepts first is what we should be doing but it easy to look at the tool (the language) and ask "how can we use this?"
Now the really controversial suggestion. The AP team should involve industry in the discussion. Not to mandate things and not the create a test designed to make students into professional programmers. And certainly not to specify a language or a development environment. That would be wrong. But industry can talk about what the basic skills and concepts they see a need for. What are the basic white board questions they ask on interviews? What are the building blocks they need to start a new hires professional development? Sure let teachers and university faculty make the final decisions but at least give industry a seat at the table.
Merry Christmas & Happy New Year
Maligayang Pasko at Manigong Bagong Taon
Boas Festas e Feliz Ano Novo
Pozdrevlyayu s prazdnikom Rozhdestva i s Novim Godom
Joyeux Noël et Bonne Année!
Froehliche Weihnachten und ein glückliches Neues Jahr!
Kellemes Karacsonyiunnepeket & Boldog Új Évet
Selamat Hari Natal
Linksmu Kaledu ir laimingu Nauju metu
Kung His Hsin Nien bing Chu Shen Tan
Chuc Mung Giang Sinh - Chuc Mung Tan Nien
Vesele Vianoce a stastny Novy rok
Selamat Hari Natal dan Tahun Baru
Feliz Navidad y Próspero Año Nuevo
God Jul og Godt Nyttår
If I missed anyone's language or got it wrong I apologize. I hope you all have a great day on December 25th whether or not you celebrate the birth of Christ in your own tradition or religion. And my strong wishes that you will all have a happy, healthy and prosperous New Year!
Here's something for the math teachers. And the people who are teaching computer science but who would really rather be teaching math. Or perhaps the people who just want to learn how to do some really mathematical things in a computer program.
Brian Beckman is a physicist and computer scientist who works on programming language development. In a new video on Channel 9 he mixes an education in advanced algebra (vectors and matrices) with some advanced programming concepts (generics and operator overloading).
It's all done with Visual Basic .NET which Brian is a huge proponent of using. I think you'll find the interview and demo shows that there is an awful lot of power and flexibility in Visual Basic. But perhaps better still the demo ties math and programming together very well.
Brian has written more details and shows sample code here at the VB Team blog. Its a good companion piece to the interview. This is not beginner stuff BTW. Not in math or in programming. But it is interesting.