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

April, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Barriers and Strategies for K-12 Computer Science Teachers


    An interesting new report from Anita Borg Institute, CSTA and the University of Arizona called “Addressing Core Equity Issues in K-12 Computer Science Education: Identifying Barriers and Sharing Strategies shows that K-12 Computer Science education in the United States is in a state of crisis.” The state of crisis is no surprise to anyone who is teaching K-12 computer science or who talks to K-12 computer science teachers regularly. Enrollment is dropping in K-12 CS even if it is showing some improvement in higher education. One has to wonder if the upward trend in higher education will continue if the K-12 trend continues down.

    The problems are complex though and are resistant to simple strategies or single efforts. Appropriately the report suggests a number of actions. One of them directly impacts me.

    Engage industry representatives with K-12 teachers to provide an accurate and up-to-date picture of the computational thinking skills that a diverse body of students needs to engage successfully in the workforce.

    It effects me because I am an industry representative. :-) In my current role I do spend a lot of time engaging with K-12 teachers. Recently I was at an advisory board meeting for the programming and web development program at a career technical high school where the main  topic was what skills industry is looking for. I attend meetings like this at four different local career technical schools around Massachusetts and New Hampshire. These programs are vitally interested in talking to industry so that they can prepare students for future education and careers. Typically college prep programs are less interested. Not always of course but in general many college prep programs have their sights on what universities are looking for rather than industry.

    To some degree that is ok. Most students, even from vocational/technical programs, are not going to get jobs right out of high school. But a few will. Most college students will also be looking for jobs in industry after graduation though. A lot of university programs are focused on creating graduate students rather than industry professionals and that can be a problem. Not that we don’t need more graduate students in CS, we do, but that is not the default option for most college graduates. Somewhere along the way they need to learn skills that will get them a job. If for no other reason than that they can be a success and donate lots of money to the schools where they learned those skills. :-)

    But actually I think the point should be that these computational thinking skills and other computer science concepts are needed across many fields and even in university and graduate programs. We have to understand that if industry and academia get too far apart both sides lose out.

    The announcement of the report is at NEW REPORT FROM ANITA BORG INSTITUTE, CSTA AND UNIVERSITY OF ARIZONA ADDRESSES EQUITY ISSUES IN K-12 COMPUTER SCIENCE EDUCATIONS and the summary there is worth the read because it will get you interested in reading the whole report.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    2010 US Imagine Cup Community Showcase


    Please join Microsoft for the

    2010 US Imagine Cup Community Showcase

    The US Imagine Cup team would like to extend an invitation to you to attend the Software Design and Game Design Finals at Washington DC’s interactive and inspiring Newseum. Now in its eighth year, the Imagine Cup is the single largest annual investment that Microsoft makes to inspire students by combining their imaginations with Microsoft technology to make the world a better place.

    Microsoft Imagine Cup Community Showcase

    April 26, 2010 from 9:00 AM – 2:00 PM, Newseum, Washington, DC

    Register HERE: and use registration code GOV0426.

    Event Details


    Key Attendees

    • Craig Mundie, Chief Research and Strategy Officer,  Microsoft
    • Anthony Salcito, Vice President of Worldwide Education, Microsoft

    Event Agenda

    • 9:00 AM - 11:00 AM Finalist Presentations (optional)
    • 11:30 AM - 12:00 PM – Tour Community Showcase of finalist projects
    • 12:00 PM – Keynote and award ceremony
    • 12:30 PM - 2:00 PM Meet Winners and Community Showcase Part 2

    What’s In It for Students?

    • Make an impact on your community! Microsoft has partnered with United Way and Ashoka/Youth Venture to facilitate project ideas with faculty and students to impact their local communities.
    • Trip to Washington D.C. and a great experience to interact and share ideas with peers from around the country and potentially around the world.
    • Real world experience to add to their resume.

    Cash Prizes:

    • $10K Student Loan Sweepstakes for registrations.
    • Grand Prize: $8,000
    • First Prize: $4,000
    • Second Prize: $3,000

    Register Today:


    Microsoft Imagine Cup Community Showcase


    April 26, 2010 ~ 9:00 AM – 2:00 PM, Newseum, Washington, DC

    Register HERE: and use registration code GOV0426.

    Be inspired! Have fun! Network with your peers! See great student projects! This event will leave you in awe; we hope you can make it!

    Please feel free to contact us with any questions or comments at We look forward to seeing you there!


  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    The Last Bug


    I spent much of yesterday working on a computer program. A friend of mine wrote it in Visual Basic .NET and I was converting it to C# so that it could be used as a sample solution. To save time (famous last words) I had run most of it through a conversion program. The conversion program had done a very good job but things were still not working. That was my fault of course. There were things missing which is pretty typical when one takes shortcuts. I should know better I guess. So what I was doing was trying to find what was missing so I could get a clean compile. I was pretty sure that was all I needed to do. So at one point early in the process I thought “one last bug and I’m all set.” Wrong!

    There were a couple of logical problems that were completely hidden by the “last bug” in the way of compiling. I ran into some problems of idiom. Visual Basic .NET and C# have a lot of things in common and they are both true OOP languages. It turns out that there are some differences. One of them I had dealt with manually. I’m so smart. More famous last words. My “fix” was off a little. I had changed an assignment that took advantage of how C# handles some conversions implicitly to an If statement. In my hurry I had only accounted for the "if true” case and ignored the “else if false” case. Whoops.

    Most of my problems turned out to be problems of idiom. My friend is old school BASIC which means that a lot of his code assumes arrays start their index at 1. C# is all about indexes that start at 0. So I had a couple of off by one errors. Most of them because I hurriedly “corrected things” without first taking the time to understand what was going on. But it’s all done now and it runs great.

    It seems like some lessons have to be re-learned from time to time. One is make haste slowly. As the saying goes “hours of debugging can save minutes of planning.” I’d have been a lot better off spending more time understanding the original program and planning the conversion. The shortcuts I took were not all bad but they came along with some shortcuts that cost me time in the long run. The other is beware the idiom. Learning a new programming language or as in this case translating/converting a program from one language to another means more than just one to one syntax changes. There are styles and best practices that are influences by variations in how the language does different things.

    We used to say that “a good FORTRAN programmer can write a good FORTRAN program in any language.” But in this day and age doing so is far from a good idea. We need to learn the differences in philosophy and the differences in how things that look alike may not perform alike. I think that having students learn more than one language is a great idea. In the long run the benefit is not learning different syntax but learning different ways of thinking about concepts. This is something that will help students learn the third language more easily. And they will have to learn a third language (and more) at some point if they are going to work any length of time in computer science. It may also help them become more aware of what they are doing and how others may interpret (or misinterpret) it. That’s got to be a good thing.

Page 7 of 8 (24 items) «45678