Below is just a basic list of what software tools are popular now for creating various types of applications. I only post it because it changes from year to year and not everyone keeps up with this kind of stuff. I was also interested to see how well the Java platform could serve as an all-purpose open source stack for developing all kinds of educational software. It’s not always the best or most popular solution for some types of applications, but it does have the widest presence overall. Of course Sun, which controls Java, is being bought out by Oracle, which may have an impact on some of the below options (like perhaps project wonderland or javafx). I have nothing against .NET either (and esp. its open source clone, Mono). In fact for a good while I was the 2nd most active contributor to the Boo programming language and compiler that ran on the .NET/Mono CLR platform. But the fact that it still can’t do browser applets is a big strike against it for my purposes of creating educational software. Silverlight (and open source clone Moonlight) are making progress but still not there. Flash/Flex and Java are still the two best options there (with HTML5/Canvas being another up and comer). Google’s Java-like platform (such as Android) is becoming more dominant as well. They just released O3D, a new 3D multi-user browser plugin, replacing their earlier discontinued Lively tool. However it only runs on Windows and Mac and is still in early development. If they released a browser plugin for running Android applications they’d almost have the total stack as well, but I have a feeling Sun/Oracle wouldn’t be happy about that.
I didn’t have time to hyperlink everything – you can google to see the various tools in more detail.
- Learning Management Systems
- Moodle (PHP)
- Sakai (Java)
- Web-based application frameworks
- Rails (ruby)
- Grails (groovy)
- Turbogears, etc. (Python)
- Cake, Symfony, etc. (PHP)
- JSP, Struts, Velocity, Tomcat, etc. (java)
- ASP.Net (.NET/Mono)
- Cloud computing services
- Google Appengine (Python, Java)
- Amazon EC2
- Sun cloud
- Content management systems
- Drupal (PHP)
- Joomla (PHP)
- Plone (Python)
- DotNetNuke (C#, .NET/Mono)
- Browser applets
- JavaFX, Java
- Silverlight (.NET) Moonlight (Mono)
- 3D multi-user virtual worlds
- Second Life / OpenSim (.NET/Mono)
- Project Wonderland (Java)
- Croquet (squeak/smalltalk)
- 3D games
- Java – JMonkeyEngine, JOGL, LWJGL, etc.
- .NET – XNA
- 2D games/simulations
- Netlogo, Starlogo, Repast (Java)
- Pulpcore (Java)
- Processing (Java)
- PyGame (Python)
- Cell phone applications
- Android (uses java-like language and runtime by google)
- iPhone (apple)
- JavaFX mobile
- Java ME
- Desktop applications
- .Net/Mono System.Windows.Forms
- Java Swing
- C/C++ – GTK, QT
- Python – PyGTK, wxPython, etc.
I’ll have a paper coming out this summer in MERLOT’s Journal of Online Learning and Teaching (JOLT) on using Drupal as a blended learning support tool for a class. This was my foundations of educational technology course in which students created their own wiki book called the Ed Tech Knowledge Base with notes about the field of educational technology. Later this summer I’ll be conducting a workshop at the MERLOT conference on using Drupal to build educational or academic websites, and also releasing the pre-configured Drupal site with the modules and views underlying our department website, called “Department 2.0″.
This summer I’m also teaching a course on Internet Development – beginning web development. All the materials and video screencasts are being posted online as well. I’m trying a new style of teaching web design. CSS is taught much earlier (in the 3rd week), tables much later. I’m using a more powerful text editor (JEdit) and Firefox addon (web developer) instead of the traditional notepad lessons. JEdit helps scaffold the process of authoring HTML and CSS files. Lastly, during the last month of class starting in late June we are going to learn about content management systems (in particular, Drupal). I’ve been building websites for 15 years starting with a site in 1995 for my student Amnesty International group that included a Perl CGI script to support letter writing, and in 1996 the Amnesty International USA site. But over the past 10 years pretty much every site I’ve built has used a content management system, starting with PHPNuke and later PostNuke, TikiWiki, and now Drupal. So I think it’s fitting to introduce students to content management systems even in a beginning class so that they are prepared to create real websites for some organization, business, or school.
I’ve put the materials for every course I’ve taught online, starting with a simple wiki outline for a survey class on computer applications such as iMovie, Dreamweaver, and Photoshop to my Advanced Learning Design course in Moodle (login as guest).
Related to all this, I’m helping a student finish up a dissertation exploring the motivations for why faculty at MIT put their courses online in opencourseware. Actually though, faculty have been putting their courses online on their own websites or using wikis like wetpaint or pbworks or wikispaces for many years. Below are some reasons for my own decision to put my course materials online:
- It sticks around for students and others to review later. In Blackboard and other traditional learning management systems your stuff disappears shortly after your class is over. I don’t really take to the philosophy that students should have to memorize everything for a test. They’ll forget it soon afterward anyway (see this five minutes university bit by Father Guido Sarducci).
- Re-use is easier. I can review a previous year’s class materials and revise them without having to start from scratch.
- Posting publicly online and using blogs I believe makes assignments more meaningful to the students and to myself. You aren’t just writing a paper for the instructor, but for everyone else to see as well.
- I can improve the materials on the fly, or post stuff before the whole class is finished. In traditional opencourseware, you don’t put your stuff out in the public until all the materials for the whole course are completely designed.
- It’s difficult to get people to observe your course for peer review and feedback. Even more difficult when you are teaching online. Members of my tenure committee and others can review my teaching materials much more easily when they are publicly accessible online.
- No one else is doing it in your area. There is no other open course out there on learning design or educational technology, and not even on internet development (except for some wikiversity notes). Of course there are thousands of HTML and CSS and Drupal tutorials and videos online, but this way I can organize them all or create new resources for one integrated course.
Btw, we are using a tweaked version of the creativecommons_lite Drupal module so that all wiki pages and blog posts on our site default to use a creative commons open license. But interestingly I’m already seeing students on their own pick other licenses for their blog posts. One student made a post public domain, another made it all right reserved, etc. Other faculty in my department are getting onboard as well, using Drupal as a blended learning support tool for their courses, and/or posting news and wiki pages to our site. We even used the wiki to work on a forthcoming article for Educational Technology magazine about our department, which is unique in that it combines both learning sciences folks and folks with a background in instructional design / instructional technology.