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

February, 2012

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    How Young Can/Should You Start Teaching Programming?


    Or perhaps how young should you try? And to top if off, why do you want to start them so young in the first place? I received the following from a teacher friend of mine the other day and it has had me thinking ever since.

    Can you please tell me why anyone thinks it is a good idea for 6th grades or 7th grades to learn to program? I do not see them trying to teach physics or pre-calculus to them. Lord knows they are not looking at having 6th graders learn geometry. Now why do they think (not sure that word works here as that’s the underlying problem with teaching 6th graders to program) that students that have yet to understand problem solving in a class build to help them understand problems solving could start problem solving 2 or 3 years early? They do not have 6th graders read say Gatsby even though most of the basic vocabulary is there. I just don’t understand why you would want to show middle school students what goes into networking when adults with a better understanding of abstract thought have hard times working and using it? The idea of “Well we want to show them so they can get a feel for what is going on?” should then also work for teaching trigonometry or calculus. Or how about chemistry???

    I am blessed  with a LARGE number of very bright (HS) students and I still have many who just start to understand what all is being asked of them. Tell me how they think a group of students with less on the ball and minds that are less focused can do what they hope to teach and not make bad habits or outright destroy any chance of learning programming? Any teacher after them will have to undo so much bad though and habits it would depress said teacher. And yes I know there are some kids that can do the material very well even at the 6th grade, but that number would be small to start with and those students would be in with the great unwashed masses of their peers, a heart breaking situation to force a bright student into.

    I hear this from others as well. In fact I have run into the same attitude from university faculty talking about computer science at the high school level. The greater question, or more basic question, is “when are students ready to learn programming?”  It’s a fair question. We know that trying to teach concepts before students are ready for them emotionally, intellectually or other wise can be counter productive. We have also seen some good success with students learning programming in middle school (some guy named Bill Gates learned in middle school and did pretty well). Tools like Alice, Kodu and Scratch are widely used in middle schools and even younger. It seems like there are some good results there. But are we not hearing (or paying attention) to down sides? Do we focus on the students who do well with it and assume that all students are keeping up when in fact, perhaps, they are just precocious students leaving the rest in the dust?

    In my  heart I want to introduce middle school students to the joy and excitement of computer  science and computer programming. They are making decisions at this age – consciously or unconsciously – about their academic futures. I want to see CS included in their thinking as an option. I think middle school is old enough for some of this. I have no data to support that idea though. It may exist somewhere or maybe it doesn’t. How about younger children? Remember Logo? That was used with still younger children. Kodu and Scratch have been widely used with elementary school students. Does it work out ok if we don’t try to do to much or go too deeply? Or are we going to force them into bad habits that someone will later have to break?

    What do you think? At what age did you learn to program? How young have you taught programming? How young is too young as students are not yet ready?

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    ACM/IEEE-CS Computer Science Curricula 2013 - Strawman draft


    Over the weekend, the ACM/IEEE-CS Computer Science Curricula 2013 committee (of which I am a member) released the first public from this effort. (The announcement follows my comments). The Strawman draft is not a complete document as some additions, most importantly exemplar curriculums, are yet to be made. It is however ready for public comments on the content that is there. This is a major first step and we hope there will be some positive and constructive discussions about this curricula.  It is useful to remind people what this is not though. It is not the recommendations for Computer Engineering, Information Systems, Information Technology or Software Engineering. There are separate documents for all of those fields which you can find on the ACM Curricula Recommendations page. There you can also find the Computing Curricula 2005: The Overview Report which  provides undergraduate curriculum guidelines for all five defined sub-disciplines of computing.

    The importance of this document to faculty of higher education is, one hopes, obvious but these are not the only people it should be important to. People in industry should be aware of what a computer science degree means and how it is different from the other degrees in computing. Secondary school educators should be able to explain to their students what they are “getting into” but should also see this document as a chance to learn what areas of computer science are core to the field of study. The comment period opens soon and I’ll post about that when it happens. For now though the document is out there and you can start reading it. It’s good stuff.


    We are delighted to announce the availability of the ACM/IEEE-CS Computer Science Curricula 2013 - Strawman draft. The draft is available at the CS2013 website ( or directly at


    Continuing a process that began over 40 years ago with the publication of "Curriculum 68", the major professional societies in computing--ACM and IEEE-Computer Society--have sponsored efforts to establish international curricular guidelines for undergraduate programs in computing on roughly a 10-year cycle. This volume, Computer Science Curricula 2013 (CS2013), represents a comprehensive revision of previous computer science curricular guidelines, redefining the knowledge units in CS and rethinking the essentials necessary for a Computer Science curriculum.


    The CS2013 Steering Committee welcomes comment on the CS2013 Strawman draft from the computing community. The comment period will begin shortly (additional information on how to provide comments will be sent out in a few days) and remain open until July 15, 2012. Comments on the Strawman draft will be addressed in future drafts of CS2013.


    A panel session at SIGCSE-12 will provide a brief overview of CS2013 and provide the opportunity for in-person feedback from the community on the Strawman draft. The panel session is scheduled for Thursday, March 1, 2012 at 10:45am-12noon in Room 301AB.

    Warm regards,

    Mehran Sahami and Steve Roach
    Co-Chairs, CS2013 Steering Committee

    CS2013 Steering Committee

    ACM Delegation

    • Mehran Sahami, Chair (Stanford University)
    • Andrea Danyluk (Williams College)
    • Sally Fincher (University of Kent)
    • Kathleen Fisher (Tufts University)
    • Dan Grossman (University of Washington)
    • Beth Hawthorne (Union County College)
    • Randy Katz (UC Berkeley)
    • Rich LeBlanc (Seattle University)
    • Dave Reed (Creighton University)

    IEEE-CS Delegation

    • Steve Roach, Chair (Univ. of Texas, El Paso)
    • Ernesto Cuadros-Vargas (Univ. Catolica San Pablo, Peru)
    • Ronald Dodge (US Military Academy)
    • Robert France (Colorado State University)
    • Amruth Kumar (Ramapo Coll. of New Jersey)
    • Brian Robinson (ABB Corporation)
    • Remzi Seker (Univ. of Arkansas, Little Rock)
    • Alfred Thompson (Microsoft)

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    DreamSpark and AppHub Sign Up


    We’ve had some changes in the DreamSpark program lately and the web site feels all different to me. So what I decided to do was to step though the process of first signing up for DreamSpark for students with Activations codes such as you get in a high school Dream Spark program of if you get a code from someone at Microsoft. The first step is easy – head over to and find the link (highlighted in yellow below) for how Dream Spark works for students.

    Registration with DreamSpark


    Clicking on that link gets you to this page where you find the sign up link (circled in red).


    You will be asked to enter account information for your new DreamSpark account. Use the email address for a Windows Live ID (You can create one for free if you don’t already have one) Note that there are several options for verification. The Institution/School and ISIC Card options are for university students. If you are at a university and have a EDU email address you can use one of them. For most high school students we’ll be using the Activation code.


    Pick a good password. The system wants letters, numbers and special characters so give it some thought. After this you will get an email to validate your address. Be sure and check the email account you used and validate the address before going further.

    Registration with AppHub

    Now jump over to the AppHub at and sign up. Be sure to use the exact same Windows Live ID that you signed up to Dream Spark with. Why? Because AppHub is going to verify that you are a student who is allowed to register phones and submit apps to the marketplace for free. Free is good. You will get to a page like this one below. Be sure to select the right country and that you are a student. Also accept the terms and conditions.


    Once you accept the system will attempt to verify you with Dream Spark. Assuming you validated your email and used the same Windows Live ID for both DreamSpark and the AppHub you should get the next screen to enter you personal details.


    Be use to answer this all accurately. You may want to get paid for your software on the market place some day. Smile 

    Next you pick an avatar and a gamer tag. The gamer tag is used for the Xbox market place and if you have an existing gamer tag you should use that. If not now you can create a new one.



    The activation registration will be sending your email another activation link. Yeah again. Just trying to make sure people are using real working email accounts.


    Once you verify your email address you will get this screen and know that your account is all set up.


    Now if you have a Windows Phone (and if you don’t go get one!) you can register it as a developer phone for free. This will let you test your apps on the real phone and not just on the emulator. The instructions for this are pretty clear at Just scroll down to Registering Your Phone to Unlock It for Development

Page 1 of 8 (24 items) 12345»