This semester I will organize the tutorials for the Algorithmic Problem Solving course at UCD. It is a first year course. Here is a problem that a student might see on an exam.
A set of tumbles are laid on a table, some of them with the right side up and some upside-down. You are only allowed to reverse two at a time. What conditions should the initial configuration satisfy so that it is possible to get them all with the right side up?
I would like to explore some possibilities for teaching such material. But before I delve into that I must say that I'm not familiar with UCD customs or with how this course was taught in the past. So if I commit some kind of sacrilege be sure it's because of my lack of information, not because I am the revolutionary type. I believe in slow but steady change.
So, what is a tutorial? Here is what I found in the Collaborative International Dictionary of English.
A class or short series of classes in which one or more instructors provide intensive instruction on some subject to a small group. Such short courses of instruction may be held at an institution of learning, or in any other place where a small group may desire a brief but thorough introduction to a topic.
The first problem: "is it better to have one or more tutors in class?"; and a related one: "what is the optimum number of people per class?". Where I studied there was almost invariably only one tutor (or "teaching assistant" as it is called by Americans) that worked with a group of about twenty students. Here, at UCD, I've heard of at least one course where the tutorial sessions have more than one tutor present. This is an important difference since going from one to many tutors makes it impossible to have a homogeneous session. If there is only one tutor he or she can give coherence to the whole session by having a schedule and acting at some points as a lecturer and at other points as a moderator for a discussion in which the whole class participates. This is the style of tutorials I am used to. On the contrary, if there are many tutors present then the session tends to favour individual work by each student (or by small teams of students). The tutors simply act as sources of information that wonder around the room.
As you can probably guess I am a big fan of the one-tutor per session scheme. What do you think about it?
The second problem is: "for how long should the students be allowed to drive the session?". One extreme is to just act as a lecturer: from the beginning to the end the tutor shows the students how problems are `supposed' to be solved and what is the necessary theoretical knowledge. A variation is to ask a student from time to time to come to the board and solve a problem. The other extreme is to throw a problem at the class and let them talk it dead until they solve it.
The middle road that I prefer is to start by presenting some theory, pose a problem, act as a moderator for a class discussion while they are trying to solve it, and then, once the solution is found, formalize it on the board. Would you prefer the balance to be different? Why?
The last point that concerns me is: "how much time should the tutor spend deviating from the focus of the course?". The political correct answer would probably be "as little as possible". But, since I get the opportunity to talk to first year students, I feel compelled to spend a little amount of time touching on high-level issues concerning our profession. I would like to talk to them about ACM, I would like to have them read Dijkstra's humble programmer essay, some essays about what prospective employers are looking for, and in general about what the role of the college is. That's just too much stuff, though, that would clutter the technical material; and that should be the fun part; except it isn't, at least for first year students. Another way of deviating is by doing more than the course tries to teach the students.
So, should a tutor deviate by talking about high-level issues or by really pushing the students towards their limits? Will that scare them away?