Tag Archives: mit

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.


Filed under Projects

Siftables: Perfect for the Sandbox

A colleague of mine, Kathy, and I have been discussing ways to create a language sandbox game.  This idea would be to create blocks with words on them that somehow interact in a way that demonstrates grammaticality.

Siftables work like colored blocks, but they can interact.

Siftables work like colored blocks, but they can interact.

Kathy’s oldschool.  She’s been experimenting with blocks of wood painted different colors which students can manipulate.  Great for kinesthetic learners!  We discussed cutting them into puzzlepiece shapes so that each block only “fits” other words according to grammatical rules.  At first, it seems like it would be possible to make nouns with square tabs that fit into square slots on verbs, and so on.  However, as complexity increases, this becomes exponentially more difficult.  Structures as complex as nouns modified by multiple adjectives would be prohibitively difficult.

What if a computer application could be developed that would replace the wood blocks with word tiles that could be manipulated with a mouse (or an interactive whiteboard!)?  Could the tiles snap together and repel each other like magnets according to grammar rules?  Could words be tagged for part-of-speech automatically within the application?  Could different categories of words (verbs, adjectives, adverbs, specifiers, etc.) be added and deleted with the check of a box?  Could students add their own tiles seemlessly into the pile?  Clearly, some intelligence would be required of the application to implement all of these features.

Siftables might just be perfect for an language sandbox.

Siftables react to each other. Imagine a word on each one.

As I was kicking all of this around, my friend Mike at Ohio University pointed me to siftables, which seem to be the synthesis of both ideas.  Rather than try to describe these brilliant little devices, watch the TED Talks video.

Not only could these little devices fit the bill perfectly, the way they interact could inform interactions in the language sandbox I’ve been envisioning.  Until we’ve all got pockets full of siftables to pass out in class, my $50 wiimote-based interactive whiteboard will have to do.  In the meantime, I’m hoping that having students drag word tiles across the screen will work almost as well for kinesthetic learners.


Filed under Inspiration