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

July, 2011

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Introducing the IT History Society


    Last week I received two messages about the IT History Society – one through the SIGCSE mailing list and one a personal message from the Society’s Chair. It looks interesting and useful so I decided to share it.

    In 2007, the IT History Society ( was formed (information technology). The Society is dedicated to informing IT companies about the value in preserving their history, helping archivists to be more effective in their work in preserving IT history, and most importantly being a reference point for the many international places of computing history information.

    The Society wants to assist educators, students of information technology, and researchers in learning more about the history and background of the information technology industry, an industry that has had a significant effect on mankind in the past seven decades.

    It has nearly 700 international institutional and individual members (no charge to be a member). Institutional members include IBM, HP, Intel, the Smithsonian Institution, Computer History Museum, Charles Babbage Institute, MIT, Caltech, Hans Nixdorf Museum, British Library, Stanford Silicon Valley Museum, Deutsches Museum, IEEE History Center, UK National Archive, Hagley Museum, and more. Individual members include historians, computer scientists, and people who have worked in the industry from various countries.

    Currently the Society has many online databases; but two in particular may be of great value for teaching information technology and research:

    • * IT Historical Resource Sites Database ( – nearly 500 and growing every day, sites that have historical information about the information industry. This entire database is completely indexed and searchable, which can be a beneficial aid in targeted search and research.
    • * IT Honor Roll ( – a database of over 800 names and growing, discussing individuals who have made a noteworthy contribution to the information technology industry

    Other information technology resources from the IT History Society are:

    The Society is also in the process of creating three more databases about:

    • * All information technology companies both past and present
    • * All information technology software created, both past and present
    • * All information technology hardware created, both past and present

    The Society feels that these valuable resources can be of great benefit to information technology professors, teachers, assistants, researchers, and students. All databases are works in progress and each database has links for the IT community to add and grow the entries of each database.

    The Society is a non-profit educational and research organization. It does not charge for membership or the use of its information. The IT community supports our operations through donations to our 501 (c) (3) non-profit foundation. Please visit this link for further information. (

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    What does it mean?


    Last week I had the chance to hear Douglas Rushkoff talk at the annual CSTA CS&IT Symposium. All of the conference attendees were also given a copy of his book  Program or Be Programmed: Ten Commands for a Digital Age – I got mine autographed too! This week while on vacation I had a chance to read it. While it does not paint quite the dystopian view of the Internet that Sherry Turkle’s Alone Together: Why we Expect More From Technology and Less From Each Other it was concerning.  Turkle’s book I found so discouraging and so scary that I honestly could not finish it. Rushkoff at least suggests a way out, a way we can make things better – learn to program. But it is is a mistake to look at Rushkoff’s book just as an argument for teaching more students to program. That seems to be the only message most reviewers get out of it. But there is more to the book than that.

    There are “ten commands for a digital age” encapsulated in the book. “Program or Be Programmed” is the last of these ten commands. Each chapter is well written and has a huge number of items to contemplate. They do all sort of lead up to the last command but that is not all there is to it.  Each of these chapters could be the source of a long, interesting and potentially useful discussion on its own. As I finished each chapter the same question came to mind – “What does it mean?” I’ve spent a lot of time on many of them. And they bring up still more questions.

    For example, when I look at what it means to be a “friend” on the Internet today. Is it real? Is it just an advantage to marketing people more so than to us as individuals? One thought that came to mind was “how many friends would you or I have on Facebook if each one cost us a dollar a year to keep in the list?” Would all those cute girls accept hundreds of friend requests from boys they have never met? Would I have 350 friends including many I have never met? Would I pay a buck a year so my manager could see what I am up to? How would even a small cost change the way we look at Internet connections? Right now advertisers pay for Facebook. We who use Facebook (or Google or Bing or any one of many “free” services) are the product – what is being sold – not the customer who is paying for things. How would these sites be different if we were the paying customers?

    Thinking about the programming piece again. When we look at history we see that changes are caused by people who create new things. John Deere and his brother changed the way of modern farming with their innovations in farm equipment. This lead to a reduction in the number of people who needed to work a farm which lead to more availability of people for industry. Industry was enabled by innovations in power from water to steam to electricity and the fractional horse power engine. Trains, cars, truck and airplanes changed the way transportation works. The printing press, which Rushkoff talks about a lot in his book, enabled more books to be created and read. The press was controlled for a long time though. Today everyone can publish via the Internet and that feels empowering. And it is empowering. But the way we publish is still largely controlled.

    There are a few major blog engines and services. There are a few major social networks. The people who control those tools control to a large extent how we communicate. In short the gate, the determining factor of how we communicate is in the hands of the people who write the software. Every time Facebook changes something in the way it works people complain. With an audience as large as they have that is inevitable and unavoidable. But people remain because they lack the ability to do it (create their own Facebook) themselves. Sure perhaps something else may come along, Google+ is the new shinny object in social media, and maybe it will be better or just different enough. Trends come and go with amazing speed on the Internet. But these changes will come from programmers. Programming is power.

    One of the things I hear from fans of Open Source software is “if you don’t like something you can fix it yourself!!” To which I reply, “Can you? Do you have the programming knowledge to make the change yourself?” Most people reply “ah, well no but I could pay some one to do it.” And that is the point. Having access to source code is valueless unless one has the knowledge and skill to manipulate it. At the same time if you do have that knowledge and skill you have the power to create it from scratch as well. If you think there is a better way and can program you have the power to do it better. If you don’t have the ability to program you are dependent on others.

    I understand Rushkoff’s argument that by not creating programming our minds are susceptible to being changed/manipulated by people who do create programming (be it computers, TV or any other programming) and it makes some sense. But for me programming is about having the freedom to do it my way. A similar idea perhaps but a slightly different angle. Most applications train us to work the way they are set up (Rushkoff talks about that but I saw that first hand as a programmer in the 1970s). Programmers, because they create the program and the user interface as the ones who determine how work is done. If we have a way we think it should be done it is up to use to control the programming not the other way around. Whether we write the code ourselves, manage the development of code, or even have a say in what code is purchased a knowledge of programming is important and probably necessary.

    So ask yourself this – are computers going to be an important part of your life in the future? Do you want to control your own destiny? If you answered both of those questions “yes” it’s probably pretty important to learn to program.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Why are all programming languages in English?


    Last week I was at the CSTA Computer Science & Information Technology conference in New York City. One of the great thing about events like this is the hallway conversations that just happen. When you get a lot of interesting people together the conversations are interesting by default. I had one such conversation with Dave Reed, computer science faculty at Creighton University and past Chief Reader of the Advanced Placement Computer Science exam. We started by talking about programming by people whose language is not English. The keywords they use are, for almost all languages, in English. Comments, variables, user written classes and methods though are in their own language. How confusing might that be? Dave has used a program written in German in some of his classes and asked students to explain what is going on from context. That’s an interesting exercise for sure. On the other hand why not translate the keywords?

    Many years ago I heard Grace Hopper talk about an early compiler. As I recall they wrote this sample compiler and finished it before it was due. They thought about the fact that keywords are really just symbolic so why not make them in other languages. They wound up adding support for several languages into the compiler. Unfortunately the committee who reviewed the final project thought that was far to complicated to actually work and concluded the demo was faked. Ah, the early days on computers when people really didn’t understand what they could do. To this day compilers seem to only understand keywords in one language and that language is almost always English.

    It is not just Americans or even other English as a first language speakers who are doing this. Niklaus Wirth who designed PASCAL among other languages was Swiss. No doubt he could have used any one of several other natural languages but he used English. Off hand I don’t know of programming languages that use non English keywords. If there are some, and there must right, they don’t appear to be common. Anyone know any?

    I’m not sure why this is. Most modern computer design was done in English language countries but that should not be a limitation. The other thing I really don’t understand is why IDEs don’t support non-English keywords. I mean how hard could it be to add a parser that uses different (or additional) keywords? It’s been a long time since my graduate course in compiler design but as I recall parsing was only a small part of the whole process. Converting things to meta data should be a simple matter. Expensive perhaps but not critically so. Anyone know of IDEs that do this sort of thing? And why are people whose first languages not designing their own languages using non-English keywords? I can understand something about wanting widespread acceptance and that most experienced programmers know English keywords if not a real working knowledge of English. On the other hand having kids learn in their native language strikes me as potentially a good thing.

    Just something to wonder about today.

Page 3 of 8 (23 items) 12345»