Showing posts with label animation. Show all posts
Showing posts with label animation. Show all posts

Friday, January 6, 2012

Processing: Data Visualization and More

Today's meeting of the Processing workshop was as stimulating as yesterday's (see the post from yesterday). As before, the day was a blend of interactive instruction about Processing and hand's on time to code with the system. However, we went deeper - one of today's topics was data visualization using Processing. Check out these examples of linguistic poetry visualization by Ira Greenberg.

Here is an absolutely fascinating data visualization of Eurozone debt. Although I don't know if this is written in Processing or not,  I have learned enough these past two days to tell you it would be fairly straightforward to do so.

Data visualization brings together the computer science and the generative art solidly. It isn't just about making pretty pictures. In order to create meaning and relevance in your visualization you need to manipulate, perhaps transform, your data. Depending upon the application, this could mean pulling in calculus, trigonometry, geometry, physics, and chemistry. It could mean creating well thought out OOP code, efficient threading and algorithmic selections, array manipulation, random number generation. Another one of the workshop leaders, Deepak Kumar, showed us a class assignment where students must use an array of Objects to create a row of streetlamps (any design they want) that randomly turn on and off.

We experimented with creating code that behaves like those art boards where you paint with water: as you draw lines/shapes with your mouse they fade behind you at whatever rate you dictate.

Web interfaces, network communication, digital audio generation. One of our workshop participants expressed an interest yesterday in working with sound in Processing - today we were listening to her computer broadcasting music from across the conference room.

If you are interested in using Processing in your classroom, the workshop leaders (Deepak Kumar, Dianna Xu, Ira Greenberg) would be happy to talk with you.

This little guy is expressing his excitement: 

     

(click on him and then be patient for a moment or two)



Thursday, January 5, 2012

Computer Science via Generative Art and Vice Versa

Reporting this evening from Dallas (Texas) where I am attending a workshop about the Processing system, a unique way to learn programming concepts using generative art. Within 10 minutes of starting to use Processing, I was sucked completely into coding, and was producing animated abstractions. This was my first program  (a lot more interesting than any Hello World):

About 12 of us were sitting around the conference table and we were all heads down, heads up (to look at the overhead display where one of the presenters was explaining various features), heads down, heads up, type type type. College and University faculty, high school teachers, computer scientists, digital designers. Type, type type.

Before I knew it we were not only coding in Java (a language I generally dislike with a passion) but trying to figure out how to make loops, swoops, and geometric patterns bounce around the screen. And bounce they did - or grow, shrink, grow-shrink-grow-shrink. Change colors, size, shapes, speed up, slow down, fade in, out, turn corners, move around smooth rollercoaster-like curves...the only boundary was our imagination. When was the last time your first day of class was that productive and absorbing?

And this is no toy system.  Processing has some unique attributes. Not only does the system use a real language (Java), it is accessible (such an easy interface), it is powerful and it is fun. It is also open source, contains excellent online help, and there is an exhibition space for uploading your creations along with their code. As open source, you can download other people's creations and code as well.

Designed originally by people affiliated with the MIT Media Lab as a language for artists to explore coding as a medium, it is now becoming well known in the computer science education community. One of our workshop leaders, Ira Greenberg, is a painter by training; he downloaded an early version of Processing around 2001 and not long after wrote a book (the first ever I believe) "Processing - Creative Coding and Computational Art". Fast forward: Now Ira has a dual appointment in Computer Science and Engineering and in the Meadows School of the Arts at Southern Methodist University.

What you can't see from these pictures I created (before lunch) is that they are dynamic. Both pictures, especially the one on the right, were moving under the direction of my code. Now yes, I have a background in programming and teaching Java, but I have no particular expertise in graphics. And I really do despise Java. Such a pain ...Usually. Not today.

More to the point, the two creations of mine included here are far less sophisticated than what others in our group were creating; one participant, a public high school teacher, created a brilliant beautiful demo on recursion this afternoon. Someone else created what looked like an ever expanding universe of pulsating multi-shaped colored particles.

There were a lot of fried brains by the end of the day because people barely looked up - most were glued to their laptops straight through lunch. By the end of the day it clear that we were well on our way into sophisticated concepts  in science, math and computing. It just seemed to ... happen. I can't wait for tomorrow.

Friday, December 3, 2010

Socially Meaningful Student Projects

Yesterday I watched some of the student final projects for the APCS Principles pilot class. The students had been given the option of submitting their projects into a contest in which their classmates would vote on the best one. Participation in the contest was completely optional but quite a few students took the plunge. Ten projects were selected for viewing in class and being voted on. They were pretty darned cool if I say so.

This final class assignment (which all students had to do) asked them to create a digital project to communicate their views on some issue facing society; they were given a wide ranging list of topics to choose from and if they thought they had a better topic they could propose it. One topic, acknowledging the large number of psychology students in the class, was to design an interactive psychology experiment.

The contest proceeded in round robin pairings, with students using their by now well finger-smudged clickers to vote. They were able to see the results of each round live. To those who know Alice well it was clear that significant programming sophistication, such as complex looping and list structures, went into some of the projects . A few students figured out how to use concepts that the class did not introduce, such as variables and button input boxes.

One of my favorite projects involved a group of penguins who emerged from an igloo to play and pick up trash. They spun, circled, danced, flapped their little flippers (do penguins technically have wings?), sometimes in a chorus line and sometimes going off to express their individual selves. One happily slid around on its tummy over the ice. Along the way they picked up and tossed trash towards the trash can. Too cute. And there were clearly lists, parameters and other well designed code structures underneath the fun.

Another project was more serious, without being too heavy, which came through as instructor Beth Simon had the honor of "playing it". The tree she was trying to save from destruction did not make it. There were all these objects (zombies, flying anvils) attacking the healthy tree while little bunny rabbits hopped around it. The player had to shoot the nasty objects to save the tree. Unfortunately, the tree withered (i.e. the player missed too many fast moving objects) and the forces of environmental destruction won out ... this time.

One project replicated a famous real psychology experiment in which a group of seminary students on the way to a lecture about ethics and helping people mostly ignored a passerby in distress (it was a "plant" fortunately). The student brought the scenario up to date, using the setting of a student late for class who witnesses a disaster and has to decide if it is worth risking being late for class and possibly hurting their grade by calling for an ambulance. Beth acted as the psychology subject, and asked the class what to do. They ended up running the scenario with both decisions (help and not help).

There were so many more fascinating projects. One used creative graphics to teach quadratic equations, another challenged the user to decide if they should respond to provocation aggressively or attempt reconciliation, another had a kangaroo trying to hop over a tree as it answered questions about tuberculosis, a snowman trying to eat only healthy food, a plea to help out at this holiday time by donating toys to children in poverty, and a fun question and answer animation about sharks facts (ever seen a shark spin around on itself?) and finally a darkly amusing story about a basement hacker who goes phishing and lures in an unsuspecting victim to perform identify theft. This story won the overall class vote, although the stage by stage competition was at times quite close.

Very very few students were texting, or using Facebook in class. This was fun and informational for everyone and a great way to approach the end of the term.

Wednesday, December 1, 2010

Alice -> Excel in the APCS Principles Pilot

Midterm follow up, but I'm afraid there isn't anything earth shatteringly new to add. As Beth Simon had promised, the (34) questions on the midterm looked very much like the in-class quiz questions. If you have been following the podcasts, then you know exactly what those questions look like. There were exam questions on virtually all the major topics covered in the course.

Having started to tally the types of topic questions, I began to decide that this effort probably wasn't going to help out those of you who are still interested in details about the excellent midterm results. I believe that the varied analyses of the project that will take place after the course concludes may produce more engaging information than if I list out a topic frequency count.

It is more interesting to briefly discuss what happened in the class sessions in which Beth discussed Excel. As mentioned in a previous post, she went to great lengths to make a smooth transition between Alice and Excel, showing the relationships between two seemingly disparate programs. Alice is an animation oriented programming system and Excel is a spreadsheet program, albeit a now quite sophisticated piece of software. However, in working through complex concepts such as relative vs. absolute addressing (often a tricky distinction for learners), Beth demonstrated through example how an Alice exercise (such as a singing group called The Beetles - no that is not a typo, they were insects) had underlying code similar to formulas they could create in Excel. She discussed similarities and differences in concepts such as loops and conditionals. All very creatively.

This type of teaching supports what the learning literature describes as Transfer - the ability of a learner to successfully apply understanding from one learning experience to another and to rapidly learn new related information. Observing the class it appeared that transfer was likely occurring because students asked intelligent and thoughtful questions about the Excel exercises and remained engaged throughout the lectures.

This is also a good time to note that the course has been supporting two other types of well researched learning that I have not specifically referred to previously:  problem based learning and collaborative learning. If you are not familiar with the research in these areas, an excellent read is How People Learn put out by the National Academies Press. It has become a classic and very accessible reference on learning in educational settings. Well worth the read.

Thursday, November 18, 2010

Stunned by Programming Beauty in Biology

I am agog. Stunned. Speechless (a rare thing). Caught in an endless loop "wowwwwwww" moment.

I was going to write today about something else but that something else got abruptly shoved off into oblivion after a friend sent me a link to a New York Times article with the most lovely video of computer generated cellular biology in it. It is perhaps programming at the most lovely I have seen (ok, I'm drooling).

So, away with the planned topic and here is a link to the article on molecular animation and be sure to watch the video about half way down.