The Spectrum of Computational Development Tools

Okay, say the problem is not enough good educational software. Many of the best educational software programs are also commercial and expensive. If you want to use Timeliner with a single class full of students, for example, it would cost $900. So we look into free and/or open source options. There, it is usually software professionals and other non-educators creating the software. You see a lot of typing tutors and drill and practice software. Usually there is not so much documentation or supporting curricular resources.

Wouldn’t it be nice if A) it were easier for educators and other non-programmers to help create interactive resources, and B) we provided training for computer scientists and others on designing effective educational software? The L2TD project is attempting to address the latter issue, with courses on developing educational software and games.

And of course the former has long been a dream of computer science educators. Make programming easy enough for anybody. Most computer science education research though looks at how to improve the teaching of programming for programming’s sake. How to better teach polymorphism and recursion and so forth.

I don’t have solutions, but here is an initial diagram describing the space, or spectrum, of computational tools. The exact details of the diagram could be haggled over for years (the openoffice draw document it originated from is on the wiki). But in general the tools designed by CS researchers have tended to be less practical or useful for developing real-world software (including educational software). I am interested primarily in the top left area, computational tools that are fast enough and powerful enough to develop real applications (such as simulations, games, web applications), and yet are designed with beginners and end-users in mind. This space is mostly barren, although some tools have in the past made great strides, such as applescript, hypercard, and supercard with their english-like syntax, visual basic and all the other basic-like clones out there. But there are still plenty of holes in the gap between graphical environments designed for children (Logo, MIT’s Scratch, Lego Mindstorms), and environments designed for professionals (Java, C#). There is no way to make a transition between for example a graphical Logo-like environment and a general purpose development environment, or between a scripting environment (Ruby, Javascript) and a statically-typed environment (C#, Java). The industry is working on the latter, with better integration and support for javascript and other scripting languages in their professional IDEs. One language I’ve contributed to, boo, even combines the static typing you see in professional languages and duck typing you see in scripting languages. But as to the former issue, I have yet to see a really good, intuitive visual programming language that can be used in a general purpose way to develop real-world applications.
(click for larger version)

Posted in development
One comment on “The Spectrum of Computational Development Tools
  1. Tom Hoffman says:

    um… Python?

Comments are closed.


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 4,341 other followers

%d bloggers like this: