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

April, 2007

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    2007 U.S. Innovative Teachers Forum


    I received the following announcement in email the other day. The Innovative Teachers forum is an attempt to recognize and help support sharing among teaching teams who are preparing students with 21st century skills.

    The 2007 U.S. Innovative Teachers Forum will recognize outstanding examples of learning teams practicing the elements of 21st century learning in their own professional experiences and then incorporating these skills into the student learning environment.

    Twenty-five teams will be selected for recognition, based on applications that reflect excellence in teaming and elements of 21st century learning in professional and student experiences. Each team chosen, (up to four educators including the school principal or vice principal), will receive an expenses paid trip* to the Microsoft corporate campus in Redmond, Washington, on September 27th & 28th, 2007.

    The forum will provide learning teams with the opportunity to share expertise, engage collaboratively with their peers, and grow professionally through a series of learning projects. In addition, forum attendees will have the opportunity to develop ongoing professional relationships with their peers from around the country.

    Submit an application for your learning team! The application deadline is July 11, 2007. Learning teams selected to attend the forum will be notified by August 15, 2007.

    Visit the forum Web page for more information. For any questions related to the forum, please contact If there are others within your organization that would benefit from this opportunity please forward this invitation to them.

    *Certain conditions and restrictions apply. Please see application website for details.

    I've heard nothing but good things about this program. Besides this US event there is a world-wide event in November, in Finland, that a subset of the US group will be invited to attend.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Programming Proverbs 14: Avoid implementation-dependent features


    Implementation-dependent features are features or the the hardware or operating system or other part of the platform that is not available on other platforms. For example a specific piece of floating-point hardware or a language feature that is not part of the standard language specification or an operating system API that is not available on other operating systems.

    The goal behind this proverb is to create programs that are portable as possible. There are a number of things that have made this both more and less of a problem then it used to be. It is less of a problem because of Virtual Machines that sit between the program and the hardware and base operating system. Java is one such and .NET is another. These virtual machines are able to take full advantage of underlying hardware and software without the applications programmer having to know about it.

    At the same time taking full advantage of hardware or operating systems sometimes does require implementation-dependent features. The should be avoided as much as possible but no more than possible. Sometimes one absolutely positivity has to have the most performance possible. At that point one sometimes has to give in an use implementation-dependent features.

    In those cases those features should be isolated and compartmentalized as much as possible. By keeping those details separate and independent one can more easily migrate to other platforms with minimized risk.

    This is the fourteenth in a series of posts based on the book Programming Proverbs by Henry Ledgard. The index for the series is an earlier post and discussion of the list as a whole is taking place in the comments there. Comments on this "proverb" are of course very welcome here.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Do We Really Need Computer Applications Classes?


    Right now I think we pretty obviously do. In the long run I think we'd be better off without them though. David Warlick asks a similar question in his blog and a companion poll. The way he asks it is “Are computer applications something that should be taught in a class, or something that should be learned by the students, independent of a class curriculum?“ (A summary of the comment discussion of his post may be found here and is worth reading.)

    Kids today do figure out a lot of "computer stuff" on their own. They certainly could figure out a lot of the things we generally teach in computer applications courses. The problem is that they don't. I gave placement exams for a computer applications course for years and very few, perhaps 10%, of those who thought they "knew it all" actually knew enough to test out of the course.

    I'll never forget overhearing one know it all tell a classmate "I wish I had known this stuff last year!" There is a lot that students generally do not learn on their own. In word processing few figure out automatically page numbering, headers and footers or footnoting. Doing it manually makes for quite a mess so you'd think they'd have incentive enough to learn it but for some reason few do. Perhaps it doesn't occur to them that it is possible.

    In spreadsheets few students learn any but the most basic and simple of formulas. Graphing? Again generally only the most basic features. Almost no one learns databases. The one application kids do tend to learn a lot about is presentation software like PowerPoint. Even that is not all good though as they learn the features but not how to use them wisely. I've seen some feature rich presentations that fell apart on content and readability.

    But to me having a special course in learning these applications is a waste of time. I believe that it is much better to teach these tools in some sort of context. Teach word processing features as they are needed in English so you can focus on concepts with the mechanics being secondary. For example use a word processor to teach outlining. Use the word processor to teach footnotes, end notes and bibliographies. Let the software handle the mechanics saving enough time for more repetition in different contexts.

    Teach graphing in math courses and let the students use a spreadsheet to draw the graphs. Is it really useful for students to spend a half hour with a ruler and crayon to draw a bar graph and them spend another half hour taking the same numbers and putting them in a pie chart? Why not use the whole hour to show different kinds of data in different types of graphs? That way you can focus on the important concepts of picking the right sort of chart for the data. And you can spend time talking about why different graphs work and others do not and how the data matters.

    Christy Tucker argues that a mix of integrated and separate is the way to teach computer applications and she has some good points. Her main point is that students should be given a solid base in a dedicated course but then what they learn must be integrated into the general curriculum. I don't disagree. I do think that the base should be taught as early as possible. Think reading.

    In first grade reading is a specific subject. By second grade reading is a part of just about every subject. Long before high school reading is long gone as an independent course but students still learn new words and use reading in every course they take. That's the model we need to follow for computer applications.


Page 6 of 7 (21 items) «34567