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

October, 2009

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Opinions on Supportive Curriculum Resources


    I’m looking for some feedback. I’ve been working on the idea of creating and sharing some computer science related curriculum units. Some might be fairly comprehensive and some, well, let’s call them supplemental resources. The idea is to provide some helpful units that a teacher could incorporate into an existing or planned course without having to do all the prep themselves. It would be as product/company neutral as I can make it too. 

    I’m looking for feedback on the idea with emphasis on are these the right units? Are these the right things to include as supporting resources? Would people use this sort of thing? And anything else you may want to add.

    What might be in each packet?

    1. A PowerPoint deck (may have several parts to presentation)
    2. A List of additional information web links
    3. An Exercise and/or homework assignment
    4. Sample questions and solutions for incorporation in a test or quiz
    5. What else?

    Under topics I’m thinking of a couple of groups of ideas to cover.

    • The Big Picture
      • History of Computing
    • Internet
      • Elements/Terminology
      • Search Engines
      • Sites
      • Security
    • Information Layer / Discrete Mathematics
      • Binary Numbers
      • Data Representation
    • HW Layer
      • Gates and Circuits
      • Components
    • Operating Systems Layer
      • OSs
      • File Systems & Directories
    • The Applications Layer
      • Information Systems
        • Spreadsheets
        • DBs
        • Security
      • Artificial Intelligence
    • The Communications.
      • Networking
      • Protocols
      • Network Addresses

    I’d like to find ways to replace just reading a chapter in a book for example. Try to make it interesting and relevant. For several of them I am thinking of what I might call a case study to serve as a discussion starter. Target audience? Early high school or late middle school. Perhaps in an introduction to computing course, a basic programming course, or a survey of technology course.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Games Are Serious Business


    One of the things I hear a lot is that teaching game programming is just i gimmick – something to get kids interested but not a serious course leading to serious things. It occurred to me the other day that people don’t have the same reaction to video production courses. After all we know that the movie/TV industry is huge. And there is that whole “news media” and change the world though the arts thing going. But what I think people don’t understand is a) it requires serious computer science to create video games, b) the video game industry is not just huge but larger than the movie industry and c) the same skills involved in video game creation are transferable to other fields.

    Colleges and universities seem to get this. See this interesting article More colleges in the US than ever offering gaming degrees. One good teaser quote (highlight mine):

    "Today, video games are not only the fastest-growing entertainment medium, they are also increasingly used in education and business for professional training and e-learning," Rich Taylor, senior vice president for communications and industry affairs at the ESA, said in a statement. "These new college programs underscore the importance of the video games industry, which is well-poised to create additional employment and professional opportunities in the coming years."

    Writing computer/video games is hard work. It also involves a lot of things that I think open the door for cross curriculum involvement. Graphic arts for images. Music for background sounds. And of course story telling. Every good game has a story. Why can’t students create educational games as well? You know they’ll have to learn it well to teach it to others. They may have fun doing it and they will definitely be after their friends to play it.

    There are resources out there too. See this previous post for direct links to curriculum on the Academic Resource Center.

    Search using the XNA and Game Programming tags on my blog to find more.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    What Sort Of Thing is Programming? Really?


    Every so often a thinking question comes to mind. Once upon a time I would either spend some time thinking about these questions and perhaps write a blog to help with the thinking. These days I tend to first toss the question out on Twitter and see what comes back. I find this actually to be a useful process. It helps me think and often gives me interesting and/or useful feedback for my thinking. Earlier today I tossed out this gem “Is computer programming a science, an engineering, a craft or an art? What do you think?” I received several replies:

    The diversity of opinions is not at all surprising. I’ve heard variations of this discussion regularly among academics, professional software developers and casual programmers for years. A lot of scientists completely reject the idea that is is science. In fact some reject the idea that computer science is rightly called science let alone the computer science tool that is programming. Many engineers, especially those from more traditional engineering disciplines reject the idea that programming is engineering. Why? Because “real” engineering doesn't create things with as many bugs as software has. Well it’s a theory. And listen to people who have earned the right to call themselves “Professional Engineers” and add P.E. after their name on their business cards. Even the ones who work as software developers are not always so sure about this idea of “software engineering.”

    Many professional programmers on my acquaintance, especially but not exclusively those who came into the field with little to know academic background in computer science, prefer to limit the discussion to Art and Craft. So before I go any further here are a few definitions cribbed from Wikipedia which is always a good place to go looking for arguments. I mean discussions.

    Art is the process or product of deliberately arranging elements in a way that appeals to the senses or emotions. It encompasses a diverse range of human activities, creations, and modes of expression, including music, literature, film, sculpture, and paintings. (

    A craft is a skill, especially involving practical arts. It may refer to a trade or particular art. (

    Engineering is the discipline, art and profession of acquiring and applying technical, scientific and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or inventions. (

    […] Science refers to a system of acquiring knowledge based on scientific method, and to the organized body of knowledge gained through such research.[2][3] This article focuses on the more restricted use of the word. Science as discussed in this article is sometimes called experimental science to differentiate it from applied science, which is the application of scientific research to specific human needs—although the two are commonly interconnected. (

    A lot of words show up in multiple definitions. I think of myself as an engineer. I see that as a personality type of sorts and that it is one that describes me. Am I a “software engineer"?” That has been my title in several jobs but really? Engineering? I have to admit that I don’t think we are there yet. Maybe one day. If we make it then computer science will be critical to us getting there. But while programming is a tool of computer science it lacks something for me to call it though. Although we do program by creating a hypothesis (this code will work) and then test that hypothesis which has sort of  the scientific method about it. For lose definitions of the scientific method perhaps.

    So that leaves art and craft. While to some of us good code is a thing of beauty and is of course very expressive I’m not sure about this one either. I guess I am not quite willing to accept the notion that talent over comes skill and training. So that leads me to craft.

    Craft is where I usually wind up in my thinking. programming is a skill. It is practical. It can incorporate some science, some engineering and even some art. And like the crafts of old it is often best taught by a master to an apprentice. So for me that is the right combination.

    The most important part of this question though is not the answer. I doubt there is one true answer. The important part is the discussion. Have you had this discussion with your students? With other computer professionals? With anyone? I think this is the important question for software practitioners to discuss if only to understand themselves.

Page 1 of 6 (17 items) 12345»