I did a revision lecture today for the First Year. The exam is next week. Afterwards I got an email that I found both amusing and a bit irritating. The sender wanted to know what would be coming up in the exam this year “so that I won’t have to waste my time revising the other stuff”.
I think that person could use a slightly better perspective on why we are all here. I’m not teaching this stuff so you can get through the exams. I’m actually doing it because I want to pass on things which I think you should know if you want to do Computer Science. Another thing I find amusing/irritating (but also rather pleasing) is when we have students come back to Hull after they have graduated and say things like “You know, that stuff you taught is actually quite useful.”
I use exams as a rather blunt instrument to make sure that folks learn the stuff that is really important about the subject. There is no secret about some of the topics that will be on the paper, since those things are there every year, and all you have to do is learn them. And by learning them I mean not being able to repeat the words, but actually achieve something using what you know. In fact, the way I see it, learning by applying the knowledge is actually much easier than just trying to bash in sequences of words that you can then trot out if you recognise the context of the question.
You could learn that “An interface is a set of methods that a class must implement in order that it is possible to create an instance of that class”. Or you could learn that you use an interface when you want to treat invoices, receipts, customers and any other objects in your solution as things that can be printed. The printing process only want to manipulate objects in terms of their ability to be printed, so you use an interface to describe the methods that give this ability and then make each object implement it.