Friday, March 30, 2007

GUI programming in the fall

Yesterday I gave a Tech Lunch talk entitled Introduction to .NET to a pretty full room of grad students. My slides are available here if you’re interested. I had to do a little brushing up before the presentation… I haven’t used Visual Studio in a few years, but I really liked the improvements made in VS .NET 2005.

Preparing for this talk got me to thinking about what I’ll be teaching this fall in my GUI Programming at Harding Univ. When I taught this class in the past, I would first have my students start off writing some fairly simple programs using the Win32 API. After struggling with the API for several weeks, we’d then move on to C# and VB.NET at which point most students thought they’d died and gone to heaven.

But a lot has changed over the past 4 years: a new OS (Vista), new tools (VS .NET 2005 and XAML), and new APIs (.NET Framework 3.0 and WPF). I’m a bit behind the learning curve having not even seen Vista yet. Fortunately, I found a really good article about Vista by Peter Bright which helped me put the changes into perspective.

Rather than teach the Win32 API again, this time I think I’ll just show my students what it used to be like (150 lines of C code for a Hello World application) and then move directly into .NET programming. Although they may not truly appreciate all that the .NET Framework is doing for them, I don’t think spending time learning a deprecated API is going to be of much value. The text we’ll be using is Programming Microsoft Windows Forms by Charles Petzold.

Perhaps I’ll also mix in some GUI development using Java, just so they can see what it's like on other platforms (and appreciate why more developers don’t use Java for GUI development wink). Additionally I want to focus more on the theory behind GUIs. I found an excellent book that I’m going to use called GUI Bloopers: Don'ts and Do's for Software Developers and Web Designers by Jeff Johnson.

Of course I’m open to other suggestions anyone may have.