Arthur C. Clarke once wrote the following
"Any sufficiently advanced technology is indistinguishable from magic."
It's referred to in places as Clarkes Law. Performing magic is a great way to impress people, and leave them with a "Wow, how the f-ck did he do that?" feeling. Thats a great way to have your crowd feeling when they're leaving a magic show. You want them walking out the door begging you for an explanation, each offering their own incorrect guess as to where the rabbit was.
If you're trying to teach something, the rabbit should be damn obvious from beginning to end
This picture taken by Beesparkle @ Flickr
Know what you are trying to do
Your job as an educator isn't to bedazzle, impress, befriend, shock, or humiliate the students. Your job is to educate them, anything else is extra-curricular. Why is it that I have seen lecturers attempt to do all of the above?
Lie #1"I could write that in X number of lines of (Haskell | Scheme | Lisp | CaML | Icon ) "
I've seen lecturers boast about how they can code the entire solution to a 2 month assignment in a 5 line Haskell snippet(usually in 30 seconds, while drunk). This doesn't particularily encourage students who are staring down the barrel of a 550 line Java solution that still doesn't work for a couple of edge cases. The words aren't encouraging, they are depressing.
Why are they depressing?
There are psychological concepts minimum comfort level and learned helplessness. The first of these means that if you don't feel like you are doing the right thing, your ability to do it suffers. Comfort level is strongly linked to performance in programming, I presented a paper at ICER 05 by Susan Bergin about this very topic. Learned Helplessness is a phenomena observed firstly in dogs, that boils down to: "your perceived inability to control your situation results in you being unable to control your situation". You see this a lot with young students in labs, where they will literally decide they can't solve the lab, and refuse offers of help/etc. You have literally defeated them with your babbling about your fancy 5 line prolog snippet.
Lie #2"I expect you all to be capable of doing X, cause eh, I can!"
Similar to the above, this gem isn't aimed at belittling the students code, its actually aimed making the lecturer feel like he/she is "The Balls", and mere students should kneel before their greatness. These types of lecturers will claim they have written operating systems, compilers, software that has sold for millions, you name it they wrote it. These days, these people tend to write their (bad) code on whiteboards probably think C# is pronounced C-hash. If you're ever faced with one of these guys, just google their name, if it doesn't hit on several regular devleoper forums, companies they used to work for, or at least open source projects, then chances are they are bullshit merchants. They specialise in shit talk about what could be. There is a place and maybe a job for people like them,
right here.
Lie #3"Students these days, I'll tell ya"
This one isn't a lie, its more a statement they haven't really thought about. This is the age-old diatribe about how the quality of students has continuously dropped over the last 10 years or so. For some reason the lecturers assume they are in no way responsible for the quality of the students. Except maybe the good ones, they taught them everything they know
Magic?
The one thing that all these type of weak lecturers share is that they view the lecturer theatre as a place to impress, to bedazzle, to confuse, and to shock the students. They don't like explaining things because that is giving away their tricks. They don't want their students to understand recursion as well as they do. They always want to be seen as some sort of genius. They are more interested in wowing the students with snippet after snippet of awful coding such as...
while(i!=length/2)
{return false if (s[i]!=s[length-i]);++i;}
return true;
Rather than, heaven forbid, explaining what exactly is happening in a palindrome checker. I guess what I am saying in short is...
When teaching, the most important thing you must do is explain things to the best of your ability. Magic Tricks, Ego Trips, and Friendships must play second fiddle to education
This post was loosely inspired by the RubyOnRails Screencasts, which are a very impressive group of movies. They show you exactly what you can do with RubyonRails in 10 minutes, and leave you with a "What the f-ck just happened, a blog just appeared?" feeling. The book isn't much better. Man, I hate magic tricks.
Links
- 12 Steps to better lecturing Over a year old now! It does age well however.
- Learned Helplessness at wikipedia
- Rails Screencasts Really impressive stuff, just don't expect to learn anything
- Picture of a Rabbit A photo by beesparkle