## Archive for July 24, 2012

### Pixel Spreadsheet in a Media Computation class: Exposing data abstraction with Excel

I mentioned awhile ago that some undergraduates built for me a new tool for converting from images to spreadsheets, and back again.  It allows us to do image manipulations via spreadsheet tools like Excel.  More importantly, it exposes the data abstractions in picture files (turning JPEGs into columns of x,y and RGB), and makes the lower level data malleable.

I’m using this tool in the Media Computation course that I’m teaching this summer.  Normally, CS1315 (the course I’m teaching) includes labs on Word, Excel, and Powerpoint, but there’s no sense of “lab” in these compressed courses.  And I bet that most of my students know a lot about Office applications already.  So I asked them at the start of class: What did they want to learn about Office applications?  Several students said that they’d like to learn to use formulas in interesting ways in Excel.

I’ve come up with a homework assignment where students do Media Computation using unusual Excel formulas (e.g., using IF, AND, and COUNTIF).  I lectured on Excel on Thursday in support of this assignment, and it was rough.  Things that I had worked out in Windows Excel failed or worked differently when doing a live coding session in MacOS Excel (e.g., the FREQUENCY function worked differently, or not at all — hard to tell).  Fortunately, we figured it out, but I got a new appreciation of how non-portable the edge of Excel functions can be.

My students are working on this assignment this week, and I’ll let you know how it goes.  Based on the questions I’m getting already, it’s challenging for the students.  Excel functions are hidden, invisible when you look at a spreadsheet until you click on the right cell.  Much of how you do things in Excel, the process, is invisible from watching the screen, e.g., shift-clicking to select a range. So, they’re having a hard time discerning exactly how I did what I did in class.

Maybe they’re learning a greater appreciation for doing all this in Python, rather than Excel.