Archive for July 23, 2009

Media Computation update

Barb and I turned over the final edits to production on our data structures textbook last night.  (YAY!)  It’s promised in December.

The second edition of the Python book has just now hit the streets. This version is in full color, so it works more like the Java book and less like a grayscale book hinting at multimedia.

I finally got around to fixing up Please do visit and let me know if you can find what you’re looking for there.

I’m off to Kansas City for a Media Computation workshop July 29-31, then an APCS Advisory Board meeting August 1-2, and then five days of teacher workshops (on Media Computation and IPRE) here in Atlanta.  It’s going to be an intense 10 days, so I probably won’t be here much in that time.

July 23, 2009 at 1:27 pm Leave a comment

Trust me! I’m a Computer Science Teacher!

U. Washington has a terrific Computer Science & Engineering Colloquium series available on iTunes.  I just finished a talk by Alan Borning on his UrbanSim project, which is (as he describes it) “Professional SimCity” which supports people making urban planning decisions.  He talks about the challenge of trust in that setting.  These are high-stakes decisions with complicated issues, trading off pollution with equitable land use with water needs with land values, and so on.  The project has moved from Java to Python, so that the models can be more easily inspectable and changed — he said modelers just didn’t like Java and hated declaring types in their models.  He said that their tools used to have a button to re-run the unit tests on the software, so that users could be assured that the basic software underlying the models was working as expected.  Nobody ever used it, so they removed the button.  People trusted the software, even though changes/mistakes there could have had much bigger impact on the end result than the models themselves.

Mike Hewner’s comment on my last blog post and Alan Borning’s talk have had me thinking about when students trust us, and when they don’t.  It’s not obvious to me when students trust us and when they don’t. I’ve two stories to share about trusting (or not) the computer science teacher.

Story 1: We trust you. Bill Leahy teaches CS2261 Media Device Architectures here at Georgia Tech.  This is our class on computer organization for students in our Computational Media degree program, which students find much more motivating than our traditional computer organization class.  Instead of working on a simulator of a pretend processor, CS2261 has students program a Nintendo Gameboy.  Same low-level focus, and even more complicated (since it’s a real computer), but more motivating, so it’s a real win.  Students tell us that they like programming for the Gameboy. Yet, they never do.

Bill shows them on the first day of class how he can write code for the Gameboy, compile it, download it to flash memory, and then boot it on the Gameboy.  Lo-and-behold, his game runs on the Gameboy.  To the best of Bill’s knowledge, no student has ever repeated that process!  None of them ask him how to get the flash card set-up, and nobody ever shows him their program running on their own Gameboy.  Amazing as it seems, it seems to be enough for the students to know that their code could run on the Gameboy.  During the course, they only use an emulator.  So, in a real sense, it’s exactly the same as the other course!  The authenticity of the course (that it really is about programming a Gameboy) is entirely based on trust and that one example on the first day.

Story 2: We don’t trust you. Soon after we started teaching Media Computation here, we started having requests for a second Media Computation course.  No, students didn’t want to take the next CS class — they explicitly wanted to do more in “Media Computation.”  So we built one, which focuses on how the wildebeests were animated stampeding in Disney’s The Lion King.  That was Disney’s first experience with computer-modeled characters in a crowd (herd) simulation. Explaining that scene requires us to cover all the basic data structures as well as continuous and discrete simulations.  The course has been well received with a 90% success rate — pretty good for a data structures course mostly serving non-CS majors.

Faculty in Industrial and Systems Engineering (ISyE) asked us if their students could take this course.  They wanted their ISyE students to learn some Java, and a focus on simulations is right in-line with how ISyE professionals use computing.  However, nobody told their students that.

At Georgia Tech, ISyE typically has the smallest Freshman class and the largest Senior class of the Engineering programs.  Students don’t know what it is coming in, and then they discover ISyE while here.  When they first discover it, they don’t necessarily know what it’s all about.  In particular, they don’t understand the relationship between ISyE and Computing is.

I have gobs of surveys with student comments like, “Boy, will I be glad when this class is over with, because then I’ll never use a computer again!” and “Why do I have to take this stuff?  Industrial engineers don’t ever program and hardly ever even use computers!”  Now, we do tell them otherwise.  They simply don’t believe us. Gregory Abowd, when he taught this course, got an ISyE faculty member to come in and tell the students, “Honest! I do use simulations! My research group does program!  You will, too!”  Do we have to do that every semester?  Maybe — the students certainly don’t trust us on this point.

July 23, 2009 at 1:21 pm 16 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,184 other subscribers


Recent Posts

Blog Stats

  • 2,054,519 hits
July 2009

CS Teaching Tips