Shortening the Time To Fun
Recently my friend and co-worker Dan Waters was giving a presentation about XNA Game Studio as a development platform for the new Windows Phone 7s. One of the benefits of XNA is that it reduces the “time to fun.” In other words, the tool means that it takes less time and effort to get to the point where you can actually enjoy what you are working on. This means that some of the setup work is done for you automatically (by the IDE) but it also means that a lot of functionality exists in the platform so that you can use it rather than spend a lot of time creating something from scratch. It also means that if you are making a game you can get to a playable game a lot faster. Time to get to the fun stuff is reduced. I believe that this has some real relevance to education – and not just computer science education.
There is a real difference between format and content in most endeavors in education. Take writing a research paper for example. The main piece – the most important part of the effort – is the actual content of the paper. The information is what we’re after. But in order to get that information in a usable format we have to pay attention to how it looks. how is the header (and maybe footer)? Are their page numbers? Are the references and citations complete and properly formatted? The fun if you will is the information but the time it takes one to add the fun can be slowed down by getting the formatting correct. Modern word procession tools, like Microsoft Office, help us reduce the time to fun by handling a lot of the formatting issues for us. We have automatic page numbering, functions to accept and format citations, and let us not forget spell checking!
Our issue in computer science education is that all too often the time to fun is very long. Even “Hello world” has gotten to the point where there is a confusing amount of overhead (and code that has to be typed in) before getting to the interesting parts. The simple “Print ’Hello World’” of QBASIC is gone in languages like Java, C#, C++ and many more. Some of the dynamic languages are better of course but even there as one gets into more complicated concepts with a lot of overhead. The more serious the “fun” you are looking for the larger the time and effort to get there.
This is a problem with game programs these days. Back in the day, when I was young, almost any computer game was novel enough to be fun. Today students have higher standards. The want color and graphics and maybe even sound. This is why the old console applications while great for showing concepts and minimizing distractions don’t grab students attention. There is too much set up for not enough fun. Yes, I know, education is not about entertainment. I’m not sure that means it has to be dull, boring and perhaps even painful.
Today we have tools that lower the time to fun for programming students. Tools like Scratch, Alice and Kodu all take most of the syntax out of programming and cut the time to fun. Small Basic with its easy to use Turtle graphics and build in libraries make it easy to do fun things with minimal code. Even Visual Basic and C#, when used properly from Visual Studio, have very short time to fun numbers. I think we owe it to ourselves to use these tools. Working to “get to the fun” is a motivator and increases learning. Fun in education is a good thing.
(See also “Computer Science is NOT boring”)