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

November, 2009

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Hacking and Ethics


    I get a lot of interesting email. Today I received an email from a student in Japan asking me the question “Do you think that hackers will decrease if we improve Information-ethics-education?” My first thought was yes. My second thought was no. My third thought was maybe. Helpful answers? Perhaps not but it is a complex question.

    By hacking I assume, based on context, that me means the breaking into systems sort of hacking rather than the old-fashioned “trying all sorts of things to see what one can learn sort of hacking” that was the more common meaning in “the old days.” And of course many of the people breaking into systems even today claim no malicious intent. They seem oblivious to the feelings of violation that people quite naturally feel from having strangers poking through their computers. If we started some ethics training in young people learning computer science maybe we could help there.

    I do think that ethics training is quite necessary and that it will help reduce some forms of hacking by the sorts of people who get formal education in computing and IT. It doesn’t reach or do much with the self-taught learners or the people who are learning informally from people who are already hacking. So the effects of ethics training on hacking or as I would prefer to say “cracking” are perhaps limited. That doesn’t mean it should not be done. I note that it is included as a part of the APCS curriculum.

    Also it is most often the people who get formal training who wind up in commercial software development (Though not always of course) and there we may need ethics training even more. Take the case of the two programmers recently arrested as being complacent in the Bernie Madoff Ponzi scheme. Perhaps some more ethics training would have helped there. Maybe not of course as a lot of money can move many people. But one can have hope.

    The motivations for cracking are many. Sometimes it is money. Sometimes it really is learning. And sometimes it is people looking for a chance to prove themselves. I think we can help the latter two by a combination of ethics training and increasing the legitimate options for learning and proving ones self.

    Frankly that is one of the cool things about the DreamSpark program. If a student can get a legitimate copy of Windows Server 2008, set it up, secure it from Internet endeavors and demonstrate to peers or potential employers that they know what they are doing that is a good thing. That they can do it without cracking some company security is bonus! We can also provide show off opportunities in schools, in contests (see the Imagine Cup for example) and service projects that may help as well. But at the root we have to instill some ethical sense in students from the very early days. School is a good place to start.

    BTW as a starting point for discussion there is a link to the ACM Code of Ethics and Professional Conduct.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson



    Imagine you had a pickup truck that you used for work. One day the person in charge of company vehicles says to you “we’re going to replace your pickup truck with a Prius. We’ll be saving money on gas. Isn’t that great?” You of course reply with something like “But I need the room in the back of a pickup truck to carry things.” And they reply “well you’ll find a way to work it out.” Can you see that happening? Does it sound like a good idea? Of course not. One lays out the needs and starts from what meets the needs and then works in other factors. A Prius is a great car for what it is designed for but it was never intended as a pickup truck replacement.

    How about this version? A true story. Several years ago a teacher I know came back from summer vacation to find that all of her Windows PCs had been replaced by Apple Macintoshes. With no warning to her. Now of course none of the applications she had been teaching worked and the textbooks she could not replace were all wrong. But hey, the tech support people said “you have new computers! Isn’t that great?” Crazy? Well it happened.

    I hear these stories regularly. Someone decides that they are going to change the hardware and/or software platform for some reason that sounds good to them. But they don’t take the applications that are being used into account. They’ll leave fixing that to the user. Shouldn’t planning for computer use, in industry, at home and at schools, start with the user facing applications software? Select that and then go looking for an operating system and a hardware platform to run it on. Am I wrong?

    Most recently I have heard this in the context of people looking for “replacements” for Visual Basic because their school is migrating to some OS other than Windows. Even if I were not heavily biased towards Windows and Visual Basic (you know I am) this would drive me crazy. As it is none of the Visual Basic alternatives I have looked at look anything like a sideways more. A big step backwards is how they look to my (admittedly biased) eyes. But teachers being presented with this situation never seem to push back. Why not? Tech support is there to support  the teacher aren’t they?

    I was a high school technology coordinator for several years and I always viewed my job as being an enabler – someone who helped teachers teach. When ever evaluating operating systems, be it a change or an upgrade, the first thing we did was to get a list of all the applications in use. Then we tried to verify which ones worked and which ones didn’t work with the potential platform. I saw it as the technology department's role to make sure that either everything worked or their were viable replacements that the users approved of before making or even suggesting a change. Everything gets tested. Only when it all works is a change implemented.

    Of course to me the role of technology support goes beyond just careful evaluation of platform changes. When a teacher wants to use some new software it is tech supports job to research how to make it work not the classroom teacher’s. It drives me crazy when tech support who will not even let a teacher download solutions tells the teacher that they (the teacher) have to present technical solutions for them (tech support) to implement when software doesn’t work right.

    Who works for who in educational technology?


    Note: see also Your technology coordinator works for you, not the other way around by Scott McLeod.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Creating Games with XNA® Game Studio and C#


    New High School Computer Science Course

    Creating Games with XNA® Game Studio and C#


    Fall 2009

    Recruit students to your schools’ computer science classes by adding a new game development course!

    Students will develop computer science knowledge and skills by learning how to program in C# using the Microsoft® XNA Game framework and Visual Studio® platform to create games.

    XNAGame Studio 3.0 enables hobbyists, academics, and independent developers to create video games for Microsoft Windows®, the Microsoft Zune® digital media player, and Xbox 360.®

    Visual Studio is a professional development environment that has been taught in HS CS classes for years.

    Although students learn how to create games, this curriculum unit is “serious” computer science. It covers most of the fundamental concepts that high school students need to know in order to succeed in introductory college-level computer science courses. The topics that are explored in this course are applicable to the wider scheme of computer science and interactive media studies.

    Successful Teaching Scenario: Grade level: High School

    Length of study: one semester or more (This course can easily be extended into a year-long course by adding more advanced topics or longer, team-based projects.)

    Pre-requisites: Students need prior programming experience to succeed in this course.

    • Some experience working in a software development environment such as Visual Studio and languages such as Visual Basic, C# or Java.
    • Basic computer science or programming knowledge and experience including the use of variables, control structures, and object-oriented programming.

    Teacher preparation should include knowledge of object oriented languages and expertise in teaching computer science at the high school level. This course will be valuable as a second semester or year-long course in a computer science program or to replace the Advanced Placement Computer Science AB course.

    The free course materials include an e-textbook, timeline, suggested activities, presentations, project ideas and teaching notes. Educators participating in the pilot will receive a free, hard-copy XNA textbook.

    Educators will be thrilled with the depth and breadth of the teaching resources provided.”

    ~ Dr. S. E. Gunn, Ph. D., Professor of Learning & Technology

    The teacher who has been looking for a hook to keep students in computer science needn't look any further! Absolutely awesome materials … easy to follow, easy to teach, and easy to extend.”

    ~ Dave Jacobus, Retired Computer Science Teacher/Software Developer

    If you would like to sign up to pilot this course or would like additional information, please contact:

    Pat Phillips at: v-paphil (at)

Page 1 of 5 (14 items) 12345