High School kids build ASP.NET Websites using Linux and Microsoft WebMatrix.....
Ok, so the heading is a little misleading and I'll explain in detail why later in the post.
A few months ago (in March) I volunteered to work with a group of high school students at a local high school here in Detroit, MI. U of D High is a private all boys school and I attended a public school in Michigan so it was an interesting experience for me to see such a different environment. At any rate, the students at U of D High wanted to learn something about Microsoft and the web technology we use to build web applications. Naturally, we (the class) decided to focus on ASP.NET.
The school had two computer labs and one of them had old (Pentium 100Mhz) computers in it. The newer lab runs Windows XP but is taken every evening because they use it to teach “official“ classes through the school. So, we got the old lab. The old labe runs RedHat linux. The lab configuration presented the first challenge for the myself and the class. I wanted to teach them about Microsoft software so while I'm sure I could have cobbled something together with Mono, an important part of the class was that we were using something Microsoft produced.
Once you remove Mono (and other non-Microsoft .NET clones) from the equation, you aren't left with many options on the Linux platform. We decided that Microsoft should donate a copy of Windows 2003 Server to the school's Tech Club, install Web Matrix, and then provide terminal access from Linux to the Windows 2003 Server. We locked down the server and setup the terminal sessions so the students could only launch Web Matrix. Web Matrix, if you're not familiar with it, is a free development environment for building ASP.NET applications. We also installed MSDE for them to use as a database back end. This was a solution that didn't cost the school anything but the time that myself and the network administrator spent setting it all up - we could all live with that.
The technology we build at Microsoft is great but the kids were a blast. I have a pretty extensive Linux background so it was a lot of fun exchanging ideas on Linux and Windows with the couple students who were Linux fans. In fact, we (myself and a couple students) spent two hours after one session talking about what it would take for one of the students to migrate from Windows to Linux. That is, what it would take to replace every application he uses in Windows with a Linux equivalent and what that experience would be like. It was fun educational for all.
The class was made up of about 15 kids from 14 to 17 years old. A couple of the kids had prior programming experience but most were very new to programming.
We spent 2 hours on 8 Tuesday afternoons after school working on the material. The MSDN Academic Alliance has a wonderful curriculum repository. We used material from that repository. There was a lot to learn for many of the students because some of them had zero programming experience so I spent some time with them focused on the basics of writing code. Thankfully, WebMatrix made things fun no matter what because even with their limited ability to write code, they could still do some cool stuff (obviously nothing complicated) with the tool.
The last two weeks of the class we spent time on a contest that we (Microsoft) decided was a fitting end to the course. We gave three prizes (first prize was an XBOX w/ three games!) so they had incentive to spend some quality time on the contest. I worked with the schools IT manager to come up with a contest that could be turned into something useful for the school once it was complete. We decided that the students should all build an online school store (Cub Corner). The details about the contest and more about the winners can be found here.
I think a lot of lessons were learned. I think the kids learned a lot about web development in general, Microsoft (the people, the culture, the company), and some of them learned that web development was something they'd like to continue doing (Mr. Hanschenekt now has 5 new students for his Tech club).
I learned a lot about my teaching skills (or lack there of at times) and about what it can mean for students to interact with professionals. We, as Microsoft employees (as do all people), have a lot we can give back to our local communities. I hope that more Microsoft employees will consider doing something similar to this course in their geography as it is a truly rewarding experience.
I see that other Microsoft employees have been doing something similar. And, as Josh Ledgard said, I wonder how many more things like this are going on around the world? Forget Microsoft, I wonder how many more things like this are going on around the world using any kind of technology? Got a story to share?