Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

December, 2007

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Fixing the AP CS Curriculum


    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.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Merry Christmas


    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!

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Higher Algebra with Visual Basic


    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.

Page 2 of 8 (23 items) 12345»