Playing the Cards You’re Dealt: A Story of GT and HtDP
A colleague of mine sent me a link to a piece written by Matthias Felleisen with his explanation for why Georgia Tech switched from his text How to Design Programs (HtDP). Matthias is a visionary educator who is the winner of this year’s ACM Karlstrom Award for contributions to education, for which I congratulated him here. I wrote a commentary on an article that they published last year in CACM, and I posted here Matthias’s response. I admire HtDP. The story (as I know it) of why Georgia Tech moved away from HtDP connects to some themes that I want to talk about.
Georgia Tech taught using HtDP from 2000 (or thereabouts) through 2003 (when we started our MATLAB and Media Computation classes) until 2004 or 2005. We used HtDP in the course that everyone on campus was supposed to take. We moved away from HtDP for two reasons mostly: (1) Some majors (like all of the Colleges of Liberal Arts, Architecture, and Management) were failing the course at higher than 50% rates. (2) Engineering faculty, particularly, wanted us to teach something that could be used in their classes, and they weren’t willing to learn Scheme. We had a cheating scandal that led to a Campus Task Force, which recommended that we abandon the one-size-fits-all strategy that we had used previously. (We already knew that were were going to have to abandon that strategy, and been planning on it. The Task Force forced the issue.) We developed the new courses after this decision was made. I had been playing with the idea of media in CS1 for awhile, including a Scheme-based version. This happened after our Founding Dean, Peter Freeman, left Georgia Tech, while Ellen Zegura was Interim Dean, and before Dean Rich DeMillo arrived. The decision to build the new courses was Jim Foley’s, with encouragement from Kurt Eiselt, for which I’m grateful. (I told this story in the May 2009 CACM.) We explored using Scheme and Squeak in our MediaComp class, but ended up going with Python (discussed in a 2005 SIGCSE paper).
In the original plans for the Media Computation course, I did think that we would reduce the cheating rate. I was wrong. Students cheat in computing courses, and Media Computation is no exception. We did design the Media Computation course explicitly to be relevant, and Lauren Rich led an effort to interview women in the MediaComp course and in the HtDP course, to test whether we achieved that goal. (I think that’s where the “making up lists of friends” comment came from.)
We did continue to use HtDP for the CS majors until Kurt Eiselt left for a better job at UBC (not fired). The decision to switch to Python made by lecturers who had taken an HtDP workshop, but probably were influenced by the new Dean who did not like Scheme in our intro course. Except for Kurt, I think that all the lecturers who took HtDP training are still here. When David Smith wrote the MATLAB text for our Engineering CS1, he explicitly aimed to make it “HtDP in MATLAB.” Today, we teach our CS majors using Python and the robotics approach developed by IPRE. People at Georgia Tech value HtDP, even if we don’t teach it.
For me, here is the critical part of the story. When we switched from HtDP to Media Computation (for Liberal Arts, Architecture, and Management majors), the pass rate rose dramatically. (I can’t claim that they learned the same — that’s what Allison Tew is trying to measure.) When we switched from HtDP to MATLAB (for Engineering majors), the pass rate rose. And when we switched from HtDP to Python (for CS majors), the pass rate rose again.
Why did that happen?
Lots of things might have influenced our outcomes, and I’m sure that many variables did. I know that Kurt now feels that we didn’t implement HtDP correctly, and I am sure that he’s right. What I’m interested in exploring here are the factors influencing the students’ decision to give up on a class or stick with it, which influences those pass rates.
At the end of their Senior year, our Computational Media majors write a long term paper about what they learned over their four years here and what they will carry with them into their career. Of the 25-30 papers I graded this year, maybe 5-7 were wonderful and insightful. Two common themes among the best of them: (1) They “got” Ian Bogost’s “Introduction to Computational Media” class for introducing them to different ways of thinking about programming. (2) They appreciated the course where they had to do team software development for the first time, using a language that they didn’t know previously (Smalltalk).
Then there are the rest. The students who say that appreciate the course where they first used Maya or Adobe After Effects “because I’ll use that a lot in my career.” My least favorite was the student who said that she most appreciated the “Digital Video Special Effects” course (a really tremendous course, BTW) because the instructor used a Macintosh, and the student only used Windows Her great insight on the course was that the student was better off knowing how to use a Mac. We are giving Computational Media degrees to students who find the point of a class is to learn to use a Macintosh. These students talked about Smalltalk differently: as something that wasn’t used by anyone and was frustrating.
The one that has me thinking the most talked about CS1315, the Introduction to Media Computation class. She said that she felt it was useful, led to skills that could be used in future classes. She felt it gave her insight into how other applications she used worked. But she also felt that learning “Jython” was a waste of time, because she’s never used it in another class.
On the one hand: Yay! She totally gets the course and why we do it! It’s that last part that I have been thinking about. Jython is Python. Learning Python is useless knowledge for a Computational Media major? This is the only essay that mentioned Python or Jython.
When I told this story to my colleague, Amy Bruckman, she said that we should really have these students write these essays five years later. She’s right, of course. The Seniors really have little idea what’s going to be useful to them later on in their career.
The problem is that students are making decisions now based on what they believe is going to be important to them. Thus, students abandon classes that they perceive as being irrelevant to them. When we switched from Scheme to something else, students stuck with the classes and didn’t give up.
Is this a Georgia Tech phenomenon? Georgia Tech has had a vocational flavor since its creation, often being referred to as “The North Avenue Trade School.” Maybe our students are particularly attuned to relevance in their future life. Maybe students at MIT or Harvard are more willing to trust their faculty and pursue classes that will be useful to them, even if the students don’t see the value or relevance.
I think the pursuit of relevance is common today. The rhetoric of College has changed. Did you read about President Obama’s Commencement Speech at Hampton College this last weekend?
For much of the 20th century, a high school diploma was a ticket to a solid middle class life. That is no longer the case. Jobs today often require at least a bachelor’s degree, and that degree is even more important in tough times like these. In fact, the unemployment rate for folks who’ve never gone to college is over twice as high as it is for folks with a college degree or more.
Students seek a bachelor’s degree for a job and a middle class life. That’s why the President is telling them to go to college. If students perceive that the courses don’t lead to that goal, they will seek other classes. Yes, it’s short-sighted. Yes, they don’t know what they need to know. But those are the students we have, these are the cards we are dealt, and that’s what American leaders are sending us. We have to make the case for relevancy, because students have choices. They do need their bachelor’s degree, and we are preparing them for successful careers. But our job is harder now, because we have to make the case.