Tag Archives: programming

Processing Data Visualizations

closeup of CPU chip

I’ve seen a lot of interesting data visualizations lately but have struggled to figure out how to visualize my own data.  It seems like there is a vast chasm between creating pie charts in Excel and Hans Rosling’s TED Talks.  The I stumbled upon Processing.

Processing was used to create the genetics simulation I described in an earlier post.  After looking into it some more, I learned that Processing was developed out of a project at MIT’s Media Lab.  It is an object-oriented programming language conceived as a way to sketch out images, animations and interactions with the user.

Examples of of Processing projects include everything from a New York Times data visualization of how articles move through the internet and visually representing data in an annual report to more esoteric and artistic works.

To get started, download the application at http://processing.org and go through some of the tutorials on the site.  There are lots of examples included with the download so you can also open them up and start tweaking and hacking them, if that’s your preferred method of learning.  Once your code is complete, or after you’ve made a minor tweak, click on the play button to open a new window and see it looks.  Once you’ve completed your project, you can export it as an applet, which can be uploaded to a web server, or as an executable file for a Mac, Windows, or Linux computer.

I’ve been through the first half-dozen tutorials and am to the point of making lines and circles dance around.  I can even make the colors and sizes vary based on mouse position.  I have also opened up some of the more advanced examples and started picking away at them to see what I can understand and what I still need to learn more about.  Once I can import data from an external source, it will be really exciting to see the different ways to represent it.

I haven’t had a foreign language learning experience in a while.  I am learning (and re-learning) many valuable lessons as I try to express myself in this new language.  Not surprisingly, I’m finding that I need a balance between instruction (going through the tutorials) and practice / play (experimenting with the code I’m writing or hacking together).  I’m also a bit frustrated by my progress because I can see what can be done by fluent speakers (see examples, above) but am stuck making short, choppy utterances (see my circles and lines, which really aren’t worth sharing.)  I plan to both work my way through the basics (L+1) as well as dabble with some more advanced projects (L+10) to see if I can pull them off.  If not, I’ll know what to learn next.

Fortunately, I have one or two friends who are also learning Processing at the same time.  They are more advanced than me (in programming languages, but I hold the advantage in human languages), but it has been helpful and fun to bounce examples and ideas off of one another.  We plan to begin a wiki to document our progress and questions as they arise — a little like a students notebook where vocabulary and idioms are jotted down so they can be reviewed later.

Watch for more updates as projects get pulled together as well as notes on other ways to visualized data in the near future.

Leave a comment

Filed under Projects

Video Game Class

example scratch gameexample scratch gameexample scratch gameexample scratch gameexample scratch gameexample scratch gameexample scratch gameexample scratch gameexample scratch game

Scratch games, andimations and simulations.

When I first heard about MIT’s Scratch programming language, I thought it was interesting because it seemed like a simple but powerful way for kids to create games.  Scratch is an object-oriented, event-driven, visual programming environment.  All of these terms are explained in detail in an article in the current issue of Make Magazine, but the gist is Scratch uses draggable blocks to create programs, rather than lines of code, which simplifies the process of creating a game (or presentation, animation, etc.).  In fact, it was reading the Make article that got me thinking about another video game class.

A year ago, I taught a course in Second Life with mixed results.  This virtual environment is rich with detail and almost infinitely customizable, but the learning curve was steep and students found it difficult to collaborate within Second Life.  Scratch, by contrast, is very simple — there are collections of games created by kids posted online.  Once games are posted, they can be downloaded, edited, and mashed up as part of the learning process.

So, would Scratch make a good foundation for an elective class in an intensive ESL program?  In a four-week class, the first week could be exploring scratch projects and learning some of the basics, the second week could be devoted to a small animation project, and the final two weeks could be devoted to a final game project.  I would be inclined to get students working in pairs so there would be more interaction (it would be an ESL class, after all).  I don’t have any experience with this programming language or project management in game development, but if the students were enthusiastic enough, and I learned some of the basics before the class, I think we could all learn as we go along and wind up with some interesting projects that students would be proud to share online.

Will I offer this class?  Not sure.  I’m going to try to track down some students who would like to give it a test-drive to see if it could work.  If things go smoothly, maybe it’s something I would try in the summer.  Stay tuned.

2 Comments

Filed under Projects