Wednesday, June 4, 2008

No Applause, Please

My school recently had its graduation. This year's graduating seniors (the computer science majors, anyway) are particularly memorable for me. For one thing, I had more success than usual in luring them into playing board games, especially Race for the Galaxy, Attika, RoboRally, and Ricochet Robots.

However, this group also stood out for a classroom behavior that I'm not used to—applause.

It started in Algorithms. In this course, when a homework is due, I usually have several students present their solutions. If the student solutions have not illustrated a point that I wanted to make, I will then present my solution, which is usually more elegant, and sometimes significantly more efficient as well. My goal in doing this is not to show them up, or to say “hey, dummy, this is what you should have written”, but rather to help them catch a glimpse of the beauty I see in an elegant algorithm, to inspire them with what is possible. (I do worry sometimes that fragile personalities might find the experience demoralizing, rather than inspiring.)

Last year, after presenting such a solution, I was very surprised when one particular student started clapping. He continued to do this in future weeks, and eventually pressured other students into joining him.

At first, I was taken aback, but over time, I got more and more frustrated. It felt like the applause was saying “this is so far beyond me that I could never hope to match it”, whereas I was hoping for a reaction more like “this may be beyond me right now, but, by golly, if I work at it, I'll be able to do that someday”. Eventually, I snapped, “C'mon, I'm not trying to impress you with my brilliance. I want you to impress me with your brilliance!”


rgrig said...

It sounds like you are trying to impress them. But that can be good. Young people need role models.

Anonymous said...

My suggestion would have been to start looking for opportunities explicitly say "And now I'd love to come up and show you a more elegant algorithm... but I can't! You've done it the best way I know of." Perhaps the students' solutions deserve the applause some of the time. It might not work, but that's what I might have tried.

Chris Okasaki said...

mcherm: Good suggestion. I do that occasionally, but staying alert for even more such opportunities would be a good idea.

thu said...

I'm finishing my computer science studies.
I wish some teachers had done the same thing than you. Spending several courses on the theory and the specs of the homework then just have a note as a feedback is frustrating. Especially if the 'homework' is 4 months long.

Continue that way.

Of course, if you can also show how they might have achieved the solution themself is a plus.

Jim Freer said...

I have no academic background but I have a lot of practice. How do I achieve elegance. I do it by refactoring and refactoring... Because I've done it for a long time my refactoring is reduced when compared to a beginner. So it seems to me students aren't introduced to building their mental tools to write elegant software when they carry out an exercise and then compare it to a better approach. They need the practice of refactoring.

Of course how do they know when they have achieved elegance. They will be trying to figure this out throughout their careers. It is tough to know when to stop even when deadlines dictate that you must. Consciously seeking elegance can kill a project. Your students will learn this sometime in their careers. It frequently happens the they try to write version 2 of something.

Ezra e. k. Cooper said...

Like Radu (rgrig), I think it sounds like you're making an impressive demonstration, rather than teaching elegance or creativity as such.

Showing off a singular, splendid solution to typical students blindsides them. "Any sufficiently advanced technology is indistinguishable from magic," etc. To nurture their brilliance, perhaps you should focus on the process of arriving at such a solution, rather than the elegance of the solution itself.