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

May, 2009

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Interesting Links Twittered and Otherwise May 11th 2009


    I’ve decided I really like to do weekly wrap ups of interesting links. Initially it started as a way of sharing with people who don’t follow me on Twitter as well as to give some additional “link love” to some sites I really appreciate. Now it also helps me stay organized and since there is no 140 character limitation on blogging I can add some information to help people know if they really want to follow the link. Hopefully some of you are finding these links useful and perhaps (in my ideal world) interesting as well.

    I recently found the Temple of VB web site. The site’s description is:

    Visual Basic is an amazing programming language, combining power and usability into one fantastic package. As a regular blogger on the VB team blog page, I frequently post VB applications and code snippets there. This resource page will collect those applications so that you can download them easily to your machine. I tend to focus on game programming as a good way to introduce VB coding concepts to people, and so you'll card games, maze games, and so forth here, all of which leverage various aspects of VB coding.

    I’m still working my way through it but so far it looks very cool and very helpful. There is a lot there!

    The Discovery Education site is running a Young Scientist Challenge contest for students. What is it about?

    Do you have what it takes to be America's Top Young Scientist? Discovery Education and 3M are looking for a few great students to inspire us with their enthusiasm for science, so show us what you've got! Create a short (1-2 min.) video about one of this year's scientific topics and YOU could win a trip to New York City to compete in the Discovery Education 3M Young Scientist Challenge finals.

    Looking for a way to help explain how floating-point numbers are represented in binary? Check out this post called  Converting Floating-Point Numbers to Binary Strings in C on the Exploring Binary blog.

    Bill Buxton, Microsoft Research Principal Scientist, has a very interesting article on engineering and design where he “calls for engineers and user-experience designers to learn to appreciate one another.”

    Students can win a Casio Exlim EX-Z80 digital camera in May by joining the conversation on Microphone – Microsoft’s community site for students on Facebook.

    Are you involved with a non-government organization (NGO)? I just found out about for support of non-governmental organizations. Check it out.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Learn Programming with XNA: Curriculum Available Now


    I get asked about curriculum available for XNA on a pretty regular basis. I’ve been linking to a lot of stuff that is available in parts and pieces and even more complete things like Brian Scarbeau’s great XNA educational resource page. And Kelvin Sung’s Game-Themed Introductory Programming Project.  Microsoft just added another piece at the puzzle with a curriculum titled Learn Programming with XNA.


    "Getting Started Making Games with C# and XNA Game Studio" is a programming course for senior high school or undergraduate students with no prior programming experience. It is intended to engage students with the craft of programming by the creation of gameplay using the XNA game framework.

    Whilst the students will learn how to create games, the course should really be regarded as one which teaches programming. All of the issues that are explored are also applicable in the wider scheme of software development.

    Presentations are provided as part of the learning materials. The presentations are grouped into a number of topic based parts with a practical session to underpin the taught content. Each presentation is interspersed with demonstrations and annotated with speaker notes, as well as content review sessions.

    The material is intended to foster a dialogue between the presenter and the audience; in some places the presenter is given some discussion points to further this. There are also some "interactive development" sections where presenter and audience use what they have been taught so far to solve a particular problem. These attempts (and their occasional failure) lead to more detailed exposition of the material and hopefully remind those present that having things not work is actually part of the software development experience.

    The whole package includes demos, labs/projects, PowerPoint presentations and teacher notes. Lots of stuff in there. If you are thinking about a game development course take a look.

    And there are more curriculum resources available on a variety of CS  topics at the Pre-Collegiate Faculty Connection site including a dynamite standards-based Web Design curriculum. Take a look around.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Reading to Learn How To Write


    Matt Gertz over at the Visual Basic Team Blog had a great post titled How Do We Learn to Be Good Programmers? that really got me thinking. I’m a big fan of learning about programming by reading well written programs. I’ve written about the art of the code review before and I am a firm believer that code reviews help everyone involved become a better programmer. Unfortunately a lot of the code that we give students to read is just plain bad code.

    The problem is that we try to show students concepts and in order to make the demonstration manageable we over simplify, leave things out, and often even revert to “do as I say not as I do.” There is not a good way around this in most cases though. You have to be practical after all. But at the same time you have to make sure that students understand that practical for sample/demo/example purposes is not the same as practical for real live put it in front of a customer purposes. A tough sell.

    The Advanced Placement Computer Science curriculum recognizes this principal and a case study – a long piece of professionally written exemplary code – is an important part of the course. It’s a good start but it is still a fairly small piece of code. In fact  I would argue that any piece of code that one person could write in a year is too small. Alas there really isn’t time in most high school courses to do that sort of thing.

    Earlier today I visited New Hampshire Technical Institute (one of the fine members of the New Hampshire community college system) and watched demos of the second year projects from students in their Animation and Graphic Game Programming (AGGP) program. I somehow messed up and missed the morning session where the first year students showed off their XNA based projects. But the afternoon was very interesting. In this course the students built some very impressive games using the Source Engine from Valve.

    To build these projects which are complicated modes of existing games the students had to work with 100s of thousands of lines of code. They had to understand them, modify them and expand them. Along the way they read a lot of professional code. They also learned a lot about large projects and the unintended consequences that seemingly small changes can have. I wish more people had that sort of experience in college.

    But even in high school (and younger) students can read professionally written code in manageable chunks. I think of sites like  the Visual Basic Code Samples site that has lots of examples for people to read and to learn from. Of course there are C# code samples as well. And many more that are easy enough to find with a brief search. I would encourage students to look for professional samples and read them. Learn from them. Emulate their best practices. It will make you a better software developer.

Page 5 of 6 (17 items) «23456