Monday, March 28. 2005
College is great. One minute you're a postgrad/researcher, making breakthroughs in your area, having 22 coffee breaks a day, avoiding your supervisor, and silently murdering anyone who dares ask "How is research going?", then all of a sudden you get asked to lecture a module. "Sure it looks pretty easy" you think, then 3 weeks into semester you realise that you have become exactly what you despised as an undergraduate.
An unprepared, unapproachable, unprofessional joke of a lecturer. This article is for you...
Traynors Twelve Step Guide
1) Do you explain to your students why they are taking this course?
Students work better when motivated. A lecturer once said to me "If you don't know why you're learning something, then stop". Unfortunately I took that advice too literally, it was good advice however.
2) Do you maintain a course website where all the support materials for your course can be found?
This might seem obvious, and is a standard requirement in some universities but it really does help. Your role as a lecturer is to make sure that the students are equipped to pass your exam. You don't want them wasting time time in the library looking for exam papers or waiting patiently outside your office for hours because they don't realise that you work from home on Fridays. The course website is more than just a list of notes for download, it should be their one stop shop for all module resources. Your course website should contain the following...
Having a good course website makes things easy for the students, they appreciate a lecturer who puts time and dedication into their work.
3) Do you define the bounds of your course so students know what, precisely, the course covers?
It is extremely necessary to inform students what exactly this course covers. Courses in Computer Science often have very general names (e.g. Networks, Operating Systems, Programming Paradigms etc) but actually only deal with a very small section of the area they are named after. Operating Systems courses do not cover all of the operating systems out there, most of them struggle to cover one. You need to be specific and precise when defining your course.
Whilst you may recommend Tanenbaums excellent book on Operating Systems you are probably only covering 5 chapters of it in your course. This should be clear to students. Also, it should be clear what are core components and what are fringe topics, failure to do this can lead to your students wasting hours on the wrong material.
4) Do you write your own lecture notes?
The idea of lecture notes is to enable you to deliver content to the students. You should write them, as it is you who uses them. In my experience lecturers who use other peoples slides seem constantly surprised by the next slide, never seem to know where the material is going, and tend to deliver sloppy courses.
Writing your own slides makes you a better lecturer. Walking into the classroom you know what you are going to talk about, in what order, and to what level of detail. You might think you can achieve this by quickly skimming through an inherited set of slides before lectures, but it is not the same. You are still working with someone else's tools.
5) Do you update your lecture notes every year, and frequently change aspects of your course?
Updating the course keeps up your interest and motivation. Enthusiasm is essential to deliver a course well. It also ensures the material never gets old for you, and stays up to date. If your course has several "plug and play" topics to call upon ( e.g. in Cryptography there are many ciphers,methods,standards you can cover) be sure to mix it up a bit. As well as making you a better equipped lecturer, you are also encouraging students to attend your lectures, they won't simply download last years lecture notes, as this year will be different.
Also, change the assignments from year to year, and do not repeat assignments within any three year cycle. This again keeps things slightly more interesting for you and also alleviates longitudinal plagiarism.
6) Are you teaching the most advanced technologies in the area?
Do not underestimate how important this one is. I have seen courses delivered where the material is up to eight years out of date. If you are teaching AWT in Java you are troubling your students, when they go to interviews they may be asked what Java they know. AWT is the wrong answer here as, just as it was the wrong choice in the lecture theater.
It is essential that you are teaching the most commonplace modern technologies used in the area. If you don't some sharp student will realise and quickly word will spread throughout the classroom that the course is out of date. Students are de-motivated, the attendance drops, you know the rest.
I am not an advocate of bleeding edge technologies, usually using these result in a lot of your own blood being spilled. However, you should not teach technology that has been outdated. It is of little benefit to any anyone, and is usually a sign of a lazy lecturer.
7) Do you use real world examples to support the topics you cover in lectures?
You'd be surprised how happy first year students are to see that the same if-statements and for-loops they are learning in class are being used in the creation of Quake III or the Linux Operating System. The open source world is very useful for this (amongst other things). Students enjoy seeing the material and techniques they are learning being applied "in the real world". It's particularly beneficial when you have been asked to teach advanced data structures and are trying to convince the students that Red-Black Trees are worth the effort. (Mind you , I am still struggling with that one )
8 ) Are you using the best course-ware/resources that are available for teaching your course?
If there are successful tools designed for delivering material in your area, you should assess them and use the best one (provided it is a help and not a hindrance). Students learn in different ways, many students might be content with blackboard examples, but research has shown that visualization helps some students understand better than traditional methods. Tools such as Jeliot (programming), JFLap(Automata), BlueJ(Java-Objects Early) are written to make your job and your students lives easier. If you are struggling to explain a concept hit google and find a visualization applet, there are plenty available. If you're stuck try looking at other lecturers course websites. Again, any tools you use should named and linked on your course website.
9) Do you take at least two sets of feedback from your students, and react to what they say?
If you are not getting anonymous feedback from your students twice during the year, you effectively sticking your fingers in your ears and saying "La La La, I am a great lecturer, La La La". It is unfortunate but true that the only real judge of your ability as a lecturer is what the students think of your ability.
You will of course get the usual "The lecturer sucks" comments, but you will also get informative comments, "Your font size is too small" , "You skipped over this topic, but no one understood it", "We haven't covered File IO yet, but you assume we have", "Lecturer speaks too quietly", "The practicals are too hard". These are all chances to improve your lecturing. That is what you are paid for. Again, showing that you care about what the students think of your lectures will show them that you actually care about your job.
The reason I say at least 2 sets of feedback, is that i believe you should take one early enough in the course to make sure you aren't doing something seriously wrong, and you should definitely take one at the end with questions asking for suggested improvements (also to see if you resolved any early issues).
It is ok to write your own feedback forms, just make sure they are anonymous and include a section for general comments. Every set of feedback forms makes you a better lecturer, provided you listen to what the students say.
10) Do you offer your students weekly tutorials with anonymous question submission?
This is taxing but necessary. It is my understanding that the lucky folk in the United States get teaching assistants to cover these for them. Unfortunately for the rest of us that means giving up an hour a week for tutorials. It is necessary.
Most courses in CS are accumulative and dependant, meaning you must some topics must be covered in a certain order (e.g. cover booleans before while loops), and some topics only make sense when you have other topics to group them with (e.g. arrays and for-loops usually go together nicely, but make little sense separate). If students are struggling with boolean conditions you must resolve this before moving on to loops. Weekly tutorials are an effective way to achieve this. They tackle problems as they arise, instead of hitting lecture 23/24 and realizing that the class are struggling with lecture 4.
Anonymous submission is only way to ensure students ask the questions that they want answered. Otherwise they are silenced by the stupid question phenomena, and as a result will not ask anything. The easiest way to do this is either a comment form on your course website, or set up an anonymous email address for the class. If you have developed software for doing this, please publicize it, I will advertise and use it
11) Do you verify all your assumptions about the prior knowledge of the class
As I said earlier, most modules in Computer Science depend on the students understanding of material covered in previous modules. The best (and in my opinion only) way to properly verify this is to ask both the lecturers and the students if they covered topic File I/O (for example). If the answer is anything other than a Yes from both parties, then you can only assume it wasn't covered properly. Lecturers will often lie or take offense about being questioned on their course, if this is an issue check the exam papers and lecture notes instead. Ditto for students, although I find they are usually more honest.
Teaching a course without first ensuring that the students have the assumed knowledge is a good way to ensure that students drop into a state of learned helplessness.
12) Do you assess your class correctly, offering questions at different level of Blooms taxonomy, and using 'truth in sentencing'?
If you are unfamiliar with Blooms Taxonomy here is a whistle stop tour and some links.
Blooms Taxonomy is a useful structure for categorising your test questions. It identifies the six levels of knowledge that students can achieve ranging from simple Knowledge (Things you can learn off, without any understanding) to Evaluation (The ability to compare and contrast solutions to a problem). Here is a quick and useful guide to Blooms Taxonomy , also there is a useful paper by Ray Lister on how to Apply Blooms Taxonomy to Computer Science.
Truth in Sentencing is the notion that when you set out to examine something you carry out your examination strictly. For example if you choose to test if students can test if a string is a palindrome, then the objective is to write code to successfully detect palindromes. Students who do not achieve this can not score above your pass mark. A lot of you are thinking "But this means most of my class will fail", this is only true if you are not breaking your questions down appropriately as described above. The paper mentioned above gives good guidelines on how to achieve this. Ray Lister has done some excellent work on how you can combine the truth in sentencing notion with Blooms Taxonomy. This work is described best in the paper Objectives and Objective Assessment
This guide is based on my recent experiences as an undergraduate (1999-2003) combined with my experience and research in the field of Computer Science Education, and finally my own teaching experience. It is my experience that lecturers who teach with the student in mind do a far better job, and tend to get the best out of students. Of course every department has its "class from hell" where paying students to attend classes still wouldn't motivate them to to attend, but these are the exception rather than the rule.
As a lecturer I can see no reason why you shouldn't strive to score at least 8-9 on this. (I realise some points aren't relevant to some courses). It is worth pointing out that the best courses I have sat have scored 10 or higher, whereas the worst courses I have sat have scored as anywhere from 0-4.
Please use the comments section for any feedback/useful links you have, or feel free to contact me. Here is my homepage
Be careful who you learn from
A quine is a program that prints its own source code (without any access to it). Typically quines are obscure code that few people can understand, and when run, they print the same obscure code that few people can understand. I've seen a similar trait i
Tracked: Jun 26, 14:45
Display comments as (Linear | Threaded)
This is a test comment to make sure that I can receive comments on this article.
Overall an excellent article, there are one or two things I dissagree with you on but the overall thrust is bang on IMO.
The main thing I have issue with is the un-realistic requirement of a tutorial every week. REality dictates that this is not possible in many places, especially in Irelandright now with the budget squeez that is on the third level institutions.
There are ways round it, I use my lab sessions as both Lab sessions and tutorials and make myself available for questions for 5-10 minutes after each lecture. This is not as ideal as an hourly tutorial but is much much more realistic!
I would also add to your above comments that practical sesisons are vital in CS courses, students need to apply what they are thought. It is also my exoerience that large projects rather than numberous short assignments give a better opportunity for students to learn to apply the topics in your course because they have to worry about the big picture, not just what was done in lectures in the previous week. Most courses comaint content that is highly inter-related so seeing these relations is often as important as understanding each individual section.
Lastly there are still a few gramatical boo boos you'll need to remove before publication.
In summary, well done, an excellent article!
You are of course correct Bart about the weekly tutorials, I don't think you or I should be made give them , but we are not "proper" lecturers , as we get paid per hour. Most courses are taught by lecturers who are on a salary, and are not balancing lecturing with a PhD write up. I do believe those lecturers should be offering weekly tutorials.
It should be stated that a lecturer does not deserve to be called one until he is mature enough to take responsibility on his mistakes, especially when his mistakes had cost people with valuable time a-lot of money!! Unfortunately the CS department does not do enough to ensure its lecturers are of a reasonable standard...
It is a very cowered act to remove an entry just because you are not ready to deal with its content. I thought the term “academic freedom” means something around here but I guess I was wrong…
I deleted the entry for 2 reasons.
1) I did not like the tone of the entry, it was direct, and entirely unrelated to the article. I will say this now so it is clear, this article is not a platform for attacking lecturers/postgraduates/anyone. The previous post did nothing but that.
2) I wish that people attach their name to their entries. It is very "cowardly" not to do so.
Now, just in case people missed this on minds....
I am Des Traynor (http://www.minds.may.ie/~dez/). I am not Aidan Delaney (http://www.minds.may.ie/~balor).
This article was not intended to state when a lecturer "deserves" to be called a lecturer.
Finally to keep this on track it is my understanding that it was point 11 that really caused the problems in that course.
Thank your for your second post, and your comment.
Hi Des, I just found your site via Tom Kyte's weblog, and I've been enjoying the few posts that I've read so far. I love how you spell Joel Spolsky's name wrong (Joel Spolsy) - is that intentional to be funny?. I've been busy opening all your archive pages and posts to read on the train home tonight and I'm very much looking forward to it, even though navigating your archives to get the full content of each post is quite difficult.
Sorry for the late reply Joel.
I only got this comment now (I'll email you a copy of this reply)
The typo wasn't deliberate unfortunately, I'll go ahead and correct if by some crazy coincidence Joel comes along and demands K back.
The navigation system isn't great, you're spot on there. I'll see if I can provide you with something better.
My name is Des, I'm the UX Lead and COO of Intercom, a fantastic CRM & messaging tool for web sites and web software.