Wednesday, April 30, 2008

Best Practices: Designing Mobile Applications

These days mobile devices are everywhere. One of the cool things about Windows Mobile devices (Smartphones and Pocket PCs among others) is that they can be programmed fairly easily using Visual Studio. Built in simulators allow for quick debugging without the need for an actual physical device. The big difference between programming for a mobile device and a standard PC though may just be the user interface design.  The screen size is one obviously piece of that but there is also the differences in input – small keyboards, styluses, and no mice.

Recently Hilary Pike presented on the subject of mobile application design and then wrote about it on her blog. She posted her slide deck as well. I learned a lot from the blog post and associated deck.

I know a number of teachers who have their students create mobile applications after the AP CS exam (coming up on May 6th this year I think) for something different. This deck and blog post may be very useful if you are one of those. Or honestly for anyone thinking about creating their own mobile applications.

Oh and before I forget, Hilary also posted a bunch of links to sample Mobile applications here.

Monday, April 21, 2008

XNA Links for Teachers (and other learners)

Note that since I wrote this there have been some changes. See this post for more information -

I’ve been hearing from a lot of high school computer science teachers that they are looking for some fun and educational things to do with their AP CS students once the exam is over. For some of these teachers some XNA looks promising. For those people and more I decided to put this collection of resources together in one place. I’m open to adding more if people leave me comments or send me email. What works for you to get jump started with XNA and game development?
Official XNA Sites
Projects – By and For Educators
Very Silly Games
Very Silly Games is a "Library of Gameplay silliness" from which you can pull down fully working XNA games you can play instantly on your computer or, once you have joined the XNA Creators Club, on your Xbox 360.
XNA Game-Themed Assignments
Kelvin Sung from the University of Washington at Bothell has a project that is building XNA Game-Themed assignments for use in computer science classes.
The project home page is here.
The Release Guide with a lot of information and links is here.
Video Demos
GuitarMatey is a 3D game for the Xbox that allows you to improvise guitar music with the accompaniment of a backing track. Five pirates dance for you as you play the game. While GuitarMatey lacks a real objective or purpose, it is perfect to help you learn about developing 3D games for free using XNA and our partner tools. 
Full details and links to the videos may be found here.
When Cods Collide
Betsy Aoki has created a simple 2D game in XNA that involves collision detection. It looks like a useful series and it is a fun read. So here are the links:
· Making a 2D XNA Game - When Cods Collide - Part 1
· Making a 2D XNA Game - When Cods Collide - Part 2
· Making a 2D XNA Game - When Cods Collide - The Final Chapter
Modify an existing game in 10 minutes
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.
XNA Pong Game
Dan Waters has created a Pong game as a tutorial for beginners. This might be a piece of code a bright student might enjoy improving on themselves.
Other Sets of Links From Teachers
Brian Scarbeau’s XNA Class links -
Patrick Coxall’s collection of videos -
[Note: Cross posted from ]

Wednesday, April 16, 2008

Digital Dorm - In A Bus?

Edwin Guarin is driving a bus fitted out as a high tech, lots of games and devices, digital dorm room to campuses around the NorthEast.  He's writing about the trip on his blog.  He's showing of computers, Zunes, Xbox 360 (apparently Rock Band is popular on the tour so far) and giving away gifts and prizes. Its a fun way to get a look at some cool technology.

The full schedule is here. Stops this week include:

  • Hofstra University
  • NorthEastern University
  • UMASS Boston
  • Bunker Hill Community College

Next week

  • Bentley College
  • Harvard
  • Boston University

Still more following that - check the schedule for schools, dates and times as some of the locations are yet to be determined. If he comes to you campus or to a campus near you stop by and tell Edwin I sent you.

Tuesday, April 08, 2008

Getting A Job - The Blizzard Edition

This week Clint posted his interview with John Cash from Blizzard Entertainment over at Channel 8. The "money line" in the interview is something like "you know that math you think you'll never need? Well you're going to need it." John keeps his college physics and calculus textbooks at his desk and uses them regularly.

John also talks about how when they interview people they look for people who go beyond on their own and actually finish things. Apparently lots of people start developing their own games but few actually finish. They are looking for people who can finish. Imagine that!

Sunday, April 06, 2008

Is There A Future For High School Computer Science?

OK that is a fairly provocative title. But I think it is actually a fair and reasonable question. The decision last week to drop one of the Advanced Placement Computer Science exams (which I discussed here) has brought a whole new level of discussion about computer science education in general and high school computer science education in particular. Now clearly I believe that it is important that these is a future for high school computer science but doing the right thing is not necessarily a part of the educational process.

So what has the discussion been looking like? If you follow your news in the main stream media or just on blogs you probably haven't heard much of the discussion. So far it appears that the discussion has been taking place on mailing lists. Not exclusively of course. The one news story I have seen so far was this one in the Washington Post.

Cay Horstmann has a blog post titled Is Computer Science the New Latin? That post shows the enrollment numbers for the last several years in the AP CS exams. Cay also has some suggestions for what people in industry can do to help promote computer science as a field. I'm going to have some more suggestions about that in the coming days. Industry really does have to help if we don't want to see the shortage of qualified people drop still more.

Dave Warlick has a post that starts off being about the four exams that are being dropped but ends with discussion of the AP CS AB exam and related issues. He makes a couple of good points including "I remain convinced that the problem has much more to do with how we teach computer science than the tests we give at the end." This is a concern that is being expressed by more and more CS education professionals as well.

Tom Finin has some numbers about the overall drop in computer science enrollment in his post. You'll see those numbers a lot if you dig into the problem. Tom points out a common belief (which I share) that "Eliminating the computer science AP test will discourage high schools from offering computer science courses and their students from taking them." If this day of No Child Left Behind all electives are under serious strain. At many schools the only reason computer science survives is the allure and prestige of that AP designation. Now one AP exam remains but as I pointed out the other day changes are in store. Will all schools be able to keep up? I have my doubts.

The discussion in the mailing lists has been different in interesting ways between how high school teachers and college/university faculty are reacting to the news.

The high school people are responding primarily to the loss of the test and what he means to enrollment and to the value of the test. Many people believe that the AB exam, which has been cut, is the one that should remain because it is the more valuable course. Others are discussing the possible changes to the one remaining exam and if or how much like the current AB exam it will become. All good questions/issues. This has very definite short term consequences for high school CS people.

The higher ed people are using this largely as a discussion of larger issues - dealing with declining enrollment, how do we teach computer science, what should the CS1 & CS2 courses look like, and other important pedagogical issues. Frankly I think these are wonderful discussions to have and I'm very glad they are going on. It doesn't help the high school situation much in the short term though. Still I am learning a lot from it.

I've been thinking about what I think the AP CS exam should become BTW but I'll wait for another post to lay that out. In the mean time I see losing one of the two APCS exams as a huge blow to the prestige of CS education. I can see that in the long term a single exam/course may be a good thing as long as it is the right curriculum. I also believe that for it to be successful on any level there has to be a clear and strongly recommended prerequisite course. Sure college students can jump right into CS 1 but a) in practice that doesn't work as well as people like the think and b) high school kids are not college kids. They need a head start. I don't believe that many high school students can really handle a year long college course in a high school year. (If nothing else there are not as many study hours per course in high school.)

In the near term this change is going to effect how administrators view CS's importance relative to other areas. The same is true for students and their parents. Plus of course many students will just take one course when they would otherwise have taken two. I just wish higher education, though their admissions officers, would express some sort of preference for a real computer science course on transcripts for students applying to science, technology, engineering and math programs. That would help more than almost anything else I can think of.