Monday, December 31, 2007

Projects for a Programming Course

At their best teacher blogs are full of information and idea sharing that benefits other teachers. For teachers of computer science or computer programming one of the most useful things teachers do is to share projects. A good project engages students while at the same time enforcing important concepts that have been covered in class. A prime example of this is a recent post by Mr. Higgins (aka Higgy).

In this post he lists out and describes the projects he is using with his Advanced Placement Computer Science A course (APCS A). The list includes some fairly basic and perhaps familiar projects like ASCII and number base conversion up to some more complex and new (at least to me) projects like a Galton Board. For some he has links to more complete descriptions that I think many teachers will find extreamly helpful.

All in all this is one of the most useful CS teacher blog posts I've run into in a while.

Friday, December 14, 2007

Robotics and .NET Fundamentals Series

Sometimes it really pays to have smart friends and let them figure things out for you even if you don't really plan it that way. Early this week a received a brand new robot in the mail. I've been waiting for it for a while. The problem of course is that it came at a bad time. My schedule this week was full. I had some travel and a bunch of meetings that took me out of the office just about every day and filled the time in the office with other things. So the robot stayed in the box. A very sad thing.

Fortunately for me one of my friends and co-workers also received an identical robot this week. Now I don't know if he had more time or if his wife had a shorter list of things to do after work then mine did or if he just goes without sleeping. But long story short Dan had time to setup and experiment with his robot.

But it gets better and this is what is going to make my life easier. Dan Waters has created a series of videos of his initial setup and experience that I think are very well done. I've been watching them to prepare before  I setup and experiment with my own robot. The index for the series (they're all in nice short manageable chunks of time) may be found here. Hopefully I'll have some things to report about my own stuff shortly.

BTW If you haven't already you may want to check out and install Microsoft Robotics Studio and Visual C# Express (both free downloads) for use with Dan's projects.

Popfly Goes to School

Popfly is a very easy to use and yet powerful mashup tool for non-professional developers. It's really a lot of fun to use and lets amateurs create some really interesting combinations of data and displays.

Professor Mark Frydenberg of Bentley College teaches technology to business students. One of the things he does very effectively is to use technology to teach technology. This year he has added Popfly projects to the mix. Recently Bob Familiar who is an architect evangelist for Microsoft interviewed Professor Frydenberg about how this all fits into the curriculum.

Bob introduces the interview here but the interview itself is here on Channel 9.

Wednesday, December 05, 2007

Max Builds a PC

My friend Mac is building a PC from parts. Over at Channel 8 (First post in the series here) he's looking for recommendations and suggestions about parts. Looks like a good conversation is taking place already but there is always room for more.

Oh by the way did I mention that he's going to give the resulting computer away to one lucky contributor to the discussion? Yep, here's his plan:

  • In this series, I will present my point of view about a certain computer component (like a graphics card or motherboard)
  • YOU comment and tell me your point of view and why
  • Once we have all the components discussed and chosen, I'll build it and post video to show exactly how I did it
  • Here's the fun part... when I'm done, one of you clever community commentators will WIN the new PC!
  • It seems like a lot of students are "in to" building their own computers. Perhaps it is the new car hacking for the 21st century. If you or someone (perhaps a student) are really all about the custom computer send them over to Channel 8. Perhaps they'll win their dream computer.

    Tuesday, December 04, 2007

    How Do I - Videos

    I found out about a bunch of new videos that show how to do different things with different Microsoft development products. They all run between 10 and 15 minutes and focus on specific tasks. They are adding new videos every week so you may even want to subscribe to the RSS feed.

    What topics/tools do they cover? Glad you asked. Here's the list:

  • ASP.NET
  • ASP.NET Ajax
  • Devices
  • Native Coding
  • Visual Studio Extensibility
  • Visual Studio Tools for Applications
  • Silverlight
  • Visual Basic
  • Visual Studio Team System
  • Windows Forms
  • Windows Presentation Foundation

    The site is called "How do 1? and you can find it here. I've already got my eye on a number of them to watch this week. I see them as a good way to digest things in a short period of time that fits into my schedule. I'd love to hear what others think.

  • Saturday, December 01, 2007

    Top November Posts

    November was an interesting month in some ways. It seems that when I really for for an opinion piece it attracts more attention in both readers and comments. At the same time some informational posts quietly attract a lot of readers.

    Is Computer Science Dying was the most read and most commented on post largely because it got some good attention from Dzone. Comments from Dzone readers are honest and respectful. Some goods comments were left on this post. Thanks!

    Carrot, Stick, Attract, Retain, Boys, Girls which was about attracting more minorities and women - especially women also attracted a fair amount of comments and readers. Not everyone sees the shortage of women as either a problem or something we can or should make extra efforts to do things about.

    My Ideal First Programming Language rounds out the top posts in terms of comments last month. I think that anytime you get programmers or other computer scientists to talk about programming languages you'll get at least as many opinions and there are people in the conversation.

    Speaking about first languages. Links to My Game Builder (blogged about here in October but still getting a lot of attention) Scratch and Alice were among the most followed links in November. It sure looks like people are looking for innovative ways to teach young people about programming.

    The last top November post I'll mention is my comments about the Kindle from Amazon. Robert Scoble added it to his link blog which sent me a few readers. An awful lot of people were doing search engine searches for the Kindle though and that accounted for most of the traffic. That's still a device I think will be interesting to follow BTW. If the Amazon people are reading the Internet discussions and taking them to heart the V2 version might just really be amazing. One commenter pointed out that the Kindle could greatly reduce the weight of elementary school backpacks. There have been some studies that indicate that some children are suffering back problems from too heavy back packs. Could the Kindle be a solution to a health problem? Stranger things have happened.

    Thanks again for all of you who stopped by to read, the leave comments or to send me feedback via the connection link. You can also reach me by email at Alfred.Thompson (at) Microsoft.com. 

    I am in Texas (near Dallas) this week taking a course. I hope to keep up with blogging and email but course work will take priority during the day.

    Monday, November 26, 2007

    Math Add-in for Microsoft Word

    Here is a little goody for all of you out there (especially you math teachers) who are always struggling to add mathematical things (formulas, graphs, etc) into Word documents.

    The Microsoft Math Add-in adds computational and graphing capabilities to the Equation Tools Ribbon of Word 2007.
    With the Microsoft Math Add-in for Word 2007, you can:

    • Plot a function, equation, or inequality in 2-D or 3-D
    • Solve an equation or inequality
    • Calculate a numerical result
    • Simplify an algebraic expression

    I tried this out and it is very easy to use with lots of helpful explanations and "how to" instructions. You have to have Word 2007 of course but the add-in itself is a free download. More information and the download are here.

    WiiMote (Wii game controller) and Microsoft Robotics Studio

    I've written before about the Wii controller with links to software that allows a programmer to use a WiiMote with a Windows computer over at Coding 4 Fun. (Note that the code has been updated since that original post.)

    The latest cool thing I have seen that involves the WiiMote is Zeddy Iskandar showing off his sample code that uses Microsoft Robotics Studio and a WiiMote to control a robot remotely. The demo uses a Lego NXT based robot but I'm sure the code sample could be used to run other kinds of robots as well.

    Over at Channel 8 (this post) there is a video demo and step by step instructions including code examples that Zeddy used. Check it out!

    Thursday, November 22, 2007

    Visual Studio Express 2008 is out

    Visual Studio 2008 was released to manufacturing this week and there is a lot of news about it around the Internet. Almost lost in the excitement (well geek excitement anyway) is that the newest versions of Visual Studio Express have also been released. You can get them here.

    One of the blogs you'll want to look at though is Dan Fernandez who lists the 15 things he likes best about the newest Visual Studio Express products. And he includes my favorite thing - they're free. If you are into game programming in C++, as a lot of people are, Dan introduces the new Game Development Kit for C++ that works with Visual C++ Express. And much more.

    The Beginning Developer Learning Center has been refreshed as well. There are a lot of brand new and updated learning resources there. Take a look.

    Channel 8 at European TechEd

    The Dutch Microsoft Student Partners (MSPs) have been at the European Teched event interviewing attendees and presenters. These interviews are appearing on Channel 8 and they are pretty good.

    Yesterday an interview with Rob Miles who is a lecturer in Computer Science at the University of Hull showed up. Rob has a blog which is one of the first ones I read when ever it is updated. He's also working on an XNA textbook which looks very good. I should warn you though that Rob is well known for bad jokes and he tells a couple during the interview.

    A couple of days ago an interview with Caroline Philips who is the Microsoft Academic Lead for Western Europe. Caroline talks about her own time as a student and what it is like to be a woman in what is sometimes thought of as a man's world. Caroline is a great person who does an amazing job with Microsoft's European academic and student programs.

    So visit Channel 8 and check out the most recent additions.

    Tuesday, November 20, 2007

    Let's Find a Reason It Can't Work

    The Internet is hard on ideas. It's hard on people who express ideas. OK maybe I mean people who participate in conversations (and rants and flame  wars and stuff like that) on the Internet are hard on ideas. And it is not enough that they don't like something - everyone must dislike it. If the idea doesn't work for them it should be destroyed completely least it find a foot hold with people it does work for. Internet forbid that other people's needs/wants/desires should be met.

    OK now you're wondering what I am talking about. Let's take an example from current events. Have you been following the discussion about Amazon's Kindle - electronic book reader? (Take a look at some of the comments over on Scoble's blog here and here or this review that makes the Kindle look like the second coming of 1984) The venom that is coming out is amazing.

    Now I can see problems with the device (I'd like to be able to give away a copy of a book when I am done with it for example) but I also see opportunities (I talk about some educational possibilities in my other blog) as well. Its a version one product after all so there are bound to be issues that need work and things that will change and even unexpected consequences that will have to be dealt with. But are flame wars the best way to respond? Apparently on the Internet they are.

    My wife doesn't like the idea of the Kindle BTW. She loves here books in paper. And that is fine - no one is going to stop printing books anytime soon and they probably never will. But shouldn't people have alternatives? Shouldn't there be more than one way to read a book? Well not on the Internet apparently.

    On the Internet if someone disagrees with out they are not just wrong, misunderstanding or someone with different needs. On the Internet someone who disagrees with you is either an idiot or evil. The last time I attracted the critical eye of a big name blogger his fans called for my firing because anyone with my opinions was obviously too stupid to hold a job. Yeah that convinced me I was wrong.

    What is it about the Internet that makes flame wars, insults and over the top arguments so attractive? Is it the pseudo anonymity? Is it the lack of physical connection? Or is it just that so many people are able to jump in on your side that starts an avalanche of negativity? Probably a combination of things I guess.

    But it doesn't have to be that way. People could jump into a discussion and add positive comments, make suggestions for improvement perhaps even find common ground that relationships and improvements can be built upon. That seems to take more work though. Sometimes you have to look a little harder to find the good things in products, companies, ideas, and people who initially turn you off. You have to think about things. You have to make an effort. Jumping up and down on an idea and calling people evil idiots is just so easy.

    If an idea survives all this then it goes on to great success I suppose but I worry that a lot of ideas with potential never get the chance to be fine tuned and improved but are killed in the early stages of life. Sigh.

    Monday, November 19, 2007

    Tomorrow's Book Today

    Amazon has a new electronic book called Kindle. It looks pretty good and has good battery life and can store a lot of books. The wireless Internet (limited to buying and downloading reading material) with no extra costs is a huge benefit I think. I like that they backup your data for you as well.

    The one question I have that I don't see is if you can give a book to someone else when you are done reading it. I could live with it not being on my reader afterwards as that only seems fair.

    It is expensive though and I wonder if the $400 price will be a show stopper. Time will tell I guess. But you know there was a time when I didn't think I would pay several hundred dollars for headphones and then I discovered the Bose Quiet Comfort II and a sale was made. This could do the same.

    I love the idea of carrying several days reading in one neat little electronic package. And of course being able to download a new book in a minute is pretty cool as well. It's sort of like a DVR for books. Get it when you think of it and read it when you want.

    Sunday, November 18, 2007

    Carrot, Stick, Attract, Retain, Boys, Girls

    Is the shortage of women in computer science caused by a failure to attract women or are women being chased away? That seems to be at the heart of some recent discussions I've been following on the subject.

    Recently one educator talked about using games as a carrot to attract women into the field. While some debated the effectiveness of this method another educator objected to the use of the term "carrot" and the idea that women needed to be attracted to the field. That educator teaches at an all female school which gives a different perspective of course. No one disputes that the number of women in the field is at a low that is not healthy but the cause is clearly up for discussion.

    On the "we're chasing them away" side I submit a list of "10 Programmers you'll encounter in the field" that I came across recently. While I don't think the list is intended to be all inclusive I find it telling that there are no types on the list that I can picture many people, let alone women, aspiring to be. Those are common stereotypes that are perpetuated by the media and I fear by some people in the field and they describe a very uncomfortable atmosphere. The popular media is not particularly helpful here either.

    To overcome some of that uncomfortable atmosphere, especially in education, there are resources available for teachers. Recently in the CSTA blog, Leigh Add Sudol posted a link to a practice guide from the National Center for Education Research. This guide lists five recommended strategies for encouraging girls in Math and Science. Leigh Ann has a great summary of the guide which I recommend reading if you make time for anything at all.

    Several years ago I attended a training event at Carnegie Mellon (where Leigh Ann is teaching these days) that included a lot of great information about how not to to scare girls away from CS classes once there were in them. I learned quite a lot and found that these techniques helped me with a lot of the boys in my class as well.

    One of the things we forget is that in the range of attitudes, confidence levels, and learning styles there is real overlap between boys and girls. Things that make some girls uncomfortable can make boys uncomfortable as well. Likewise some girls will like the same things that some other boys like. We have to make sure we don't lose site of the fact that stereotypes are not a sound basis for categorizing all students.

    Friday, November 16, 2007

    Your way, Your play, XNA: Modify a 2D Game in 10 minutes

    Short attention span? No problem. Hilary Pike has created a short quick moving demo/screen cast on modifying an existing 2-dimensional XNA based video game. In just 10 minutes she walks the viewer through some key gaming concepts and then adds Collision Detection and Score Keeping to the game.

    Also at her blog post you will find links to other XNA resources and of course the sample code for the game used in the demo. This demo will give a good overview of what one can do with existing game code for XNA projects. And of course collision detection and score keeping are important things for just about any good computer game. Share it with your friends.

    Thursday, November 15, 2007

    Tuesday, November 13, 2007

    Computer Technology, Agriculture and Africa

    My friend and co-worker Philip DesAutels is in Africa this week. Philip has a wide range of experience including some time in the Peace Corps bringing technology to farmers and other agriculture programs. So he was invited to participate in the Zambia Workshop Workshop II: Delivery Systems. The conference runs November 11-16, 2007 and is in Livingstone, Zambia. (Some people get all the good trips!!)

    The purpose of this conference "is to identify possible transformative approaches, both technological and non-technological, to the creation and distribution of agricultural information." I have heard Philip and others talk about the ways that technology, including computer and communications technology, can help people in rural areas become more fully engaged - to their advantage - in the global economy.

    Philip is blogging about his trip and the conference and I look forward to reading more about the trip, the conference and the ways that technology is making a difference in Africa and around the world. web stats analysis

    Creating An Install Project and More

    This is sort of a two for one post. The first thing that happened is that Clint Rutkas created a little program to delay the start up of all the applications he had running when his computer booted up. While the program is useful for itself I think it is also useful as a way to see how things are done. Things like reading files, setting up configurations and of course starting processes. You can read about the program and get the source code here.

    Well the next thing you know Clint's manager (Martin Schray) said "how about an installer to make it easier to install?" The obvious reply was "great ideal Martin, let me know when it's done." We're a casual group here. The other thing about our little group is that we seldom miss an opportunity for take advantage of the "the teachable moment." In this case that means that Martin recorded a screencast that demonstrates step by step how to make an installer project. You can see the screencast here. So if you have wondered how to create an install program using Visual Studio 2005 now you have a place to go.

    I of course have just jumped in to tell others about it. I love work. I can watch it for hours. :-)

    Tuesday, October 16, 2007

    Thursday, October 11, 2007

    Good Times at a Halo 3 Party

    Dan Waters has a video blog about a recent Halo 3 Party he helped pt together. It highlights one of the cooler parts of his (and to some extent my) job.

    Oh for the simple early days of programming

    The other day at a conference (ReMIX07 - what a great event) a couple of us had a brief chat about the old days. I think it was started by one of the speakers talking about managed code and garbage collection as if they were both new and part of object oriented programming. Of course both have been around for decades and pre-date object oriented programming by many years. BASIC-PLUS ran on a virtual machine and had garbage collection back in the 1970s when I first started using it.

    This all started me thinking about the old days. I guess that is a sign that I am old. I hear people talking about being in the field for 20 years as if it were a long time and think "wow it's been a long time since I was only 20 years in the field." I read yesterday that 66% of Microsoft employees are under 40 years old; 18% under 30. Since I started programming in 1973 I suspect that something like half the employees at Microsoft are younger than my first computer program. Somehow I find that scary. But I digress - perhaps another sign of age.

    At ReMIX I was hearing about a lot of exciting new technologies for software development. Silverlight for managing media.  The Expression Suite of tools for design for user interfaces in all sorts of applications. WPF (Windows Presentation Foundation) for enhancing the user experience of client applications. Popfly for mashups. The list goes on and on. Don't even get me started on new dynamic languages like Ruby and Python. On one hand it is a very exciting time to be in the computer industry and in software development in particular.

    On the other hand part of me longs for a simpler time. The introduction of the CRT as a viable tool started this mess off BTW. Before that most input was done in strictly formatted punch cards. It was all about getting the data in a form the program could digest easily. Oh sure we still had to validate data but getting it is was easier. And output was also simple. Your choices were basically to print a report on a line printer, punch things to still more cards or write things to a tape of disk in a format that was arranged a whole lot like that on a punch card. Input and output was simple.

    Giving everyone their own terminal with a screen complicated everything. I don't miss having to specify the X and Y coordinate for every object (and I use the term object loosely for what we did in the early CRT days) on the screen. Windows Forms (which I first discovered in Visual Basic) were a huge advance and remain quite simple to use. Still once a program had to care about the user the door was opened for the need for real designers.

    I guess my hope at this point is that people will use tools like Expression and WPF to allow designers to design and set up the user interface. That should let programmers deal with the easy stuff. The stuff that for me is more fun - working with the data.

    In the mean time I sometimes feel a little overwhelmed by all the new stuff. It's great and it will make things better for the users of course. But I can't help but think that in some ways all this growth in tools, in options, in the whole field means that computing is becoming more and more a young person's job. I'm running as fast as I can to keep up. At some point one has to specialize I think. A little simplicity in the way of a narrower focus may be the best path to continued sanity.

    [Cross posted from my blog at http://act2.spaces.live.com more computer science stuff is usually at my high school computer science blog but this seemed a better fit elsewhere.]

    Sunday, August 12, 2007

    Clint Rutkas Joins Microsoft

    I'm happy to welcome Clint Rutkas to the Academic Relations Team at Microsoft. Clint has an interesting blog at http://www.betterthaneveryone.com/. At his site you will find some interesting tail of a computerized disco dance floor among other projects. He's also created a computerized bartender. Both are programmed using C# as I understand it.

    Clint has been contributing to Coding4Fun for a while (big surprise there huh?) and that work will continue as well. This week Clint is at GameFest. I look forward to reading that trip report.

    I can see that Clint is going to be an interesting and valuable member of the team. Welcome Clint!

    Thursday, July 19, 2007

    Mr T's Rants

    Who is this Mr T (or is it Mister T) and why does he fascinate me so much? OK I'm playing with you. I just want to see how long this takes to show up on Technorati.

    Tuesday, June 05, 2007

    Microsoft Web Experience events in LA & Denver

    Let it not be said that I am not a team player. Apparently Kirk Allen was accused of running a stealth event that not enough people knew about. So for the ones in LA and Denver he is trying to bribe motivate bloggers to create a buzz around the event. So here is my modest attempt to help. Well maybe the drawing for an Xbox 360 had something to do with my generosity.

    Microsoft is hosting free Microsoft Web Experience events at the Los Angeles Microsoft office on June 8th and the Denver Microsoft office on June 15th. They will be presenting information on building the next generation user experience on the web. They are providing breakfast and lunch, hosting a reception with beer and wine, and attendees are automatically registered in a drawing for an XBox 360 and a Zune that will be given away at each event. For more information, visit http://kaevans.sts.winisp.net/Shared%20Documents/webexperience.aspx.

    Technorati tags:

    Monday, April 02, 2007

    Email Addresses

    I was reminiscing about email today. I thought I would give a history lesson in case some of you were having trouble getting to sleep.

     As some of you know I came late to the Internet and email. I didn't get my first email address sometimes in 1982 which was long after a number of my friends got theirs. The first address that I used beyond just digital (in 1983) was

    {decvax,ucbvax,ihnp4} !decwrl!ark!thompson

    You'll notice a couple of things. One is that the username was last not first. Also there is no @ sign. Thirdly there are a couple node names in the list. Things were complicated back in those days. One had to know the path between your computer and the computer you were sending to which is why the user name came last. Only the final system would try to find the user once the email got to the right place.

     There were some key Internet systems that most other systems were programmed to know how to reach. Those systems were programmed to know how to reach many other systems. So often when one gave out their email address you would start with a couple of computers that someone's computer was likely to know. Those are the systems in the curly braces.  You would give someone a couple of key systems in hopes that their computer knew how to get to one of them.

    decvax was one of the key Internet router systems and the gateway into and out of Digital Equipment which had one of the largest computer networks in the world.  ucbvax was at the University of California at Berkeley and was another key system. ibmnp4 was the IBM router. All three of those systems knew how to get to decwrl (Digital Equipment Corporation Western Research Lab) and decwrl was in charge of knowing how to get to all of the computers on DEC's network. ark was the name of the computer I lived on and decwrl knew how to get to it. The ark knew how to get to other systems inside the company network but relied on decwrl and decvax to find a way to computers outside the network.

     Once upon a time you had to be a real geek to use email. Today we have DNS and things are a lot more simple. Perhaps its too simple.

    Monday, March 12, 2007

    More bloggers in my group

    Jim Pinkelman is my manager. He hasn't said much yet but when he does I think it will be worth it.

    Dan Waters is new the company, new to the group and on his way to moving to Florida from Texas. He's already blogged about one big academic event he's been to - a conference on a cruise ship.

    . . . . .

    J Scott Thompson is not in my group and he is no relation but I do like his "Dispatches from the World of K-12 Education"