Last year's resit exam is available here. This year's resit exam will follow a similar structure.
The first question is compulsory and asks you to explain how some Java code works. If you understand how the examples in the lectures work (e.g. the english phrase generator, regular expression code, and the mathematical parser) then you should have no problem explaining this code. This question is worth 50% of the exam.
You should then answer two of the remaining four questions, which cover various different aspects of the course: e.g. writing simple routines, inheritance and polymorphism, GUIs, collections, the difference between recurstion and iteration etc. Each of the remaining questions is worth 25% (giving a total of 100%). These questions are a mixture of straight recall and also writing small pieces of code.
Since this exam is closed-book, I'll be lenient on simple mistakes providing they do not alter the meaning of the programme, so if you call the interface actionListener, (for handling GUI button clicks) actionHandler by mistake I'll ignore it. However, if you were to say a class extends the interface actionListener rather than implements the interface then I would mark it wrong since you've now expressed something that is incorrect Java.
A tip for revision, if I were revising for this as well as trying to remember all the facts, I would also go and write simple programs that do certain things. So if you are revising the collections stuff, write a program that reads data from the keyboard and adds it to an ArrayList, sorts the list and print them out -- that sort of thing. It'll break up your revision sessions and really fix the details in your mind. Try and write the programs without the notes and books to hand, using them as reference if you get stuck.
I've uploaded last year's final exam for your revision here. This year's exam will be in a similar style but obviously a different question...
The second large coursework for this semester is now available. As discussed around explaining how a Java program works. The program in question is an implementation of the Burrows-Wheeler Transform and the source code can be found here. The question is available here.
The coursework is due in on Friday 14th May at 23:59:59.
The first large coursework for this semester is now available. As demonstrated in Monday's lecture, this is based around Lindenmayer System fractals. You can find the question here, a collection of L-System fractal input files here, and a document describing L-Systems in more detail.
The coursework is due in on Thursday 1st April at 23:59:59. Yes, that time is correct, I can't see any reason to limit the hand in to 17:00, when it is electronic submission and you'll almost certainly have internet acess to submit it remotely. However, this is not an excuse to leave the coursework to the last minute!
In the interests of saving resources, I shall also be producing printer-friendly versions of the slides after the lecture containing black text on a white background. Can I ask that you please refrain from printing the black version of the notes on the school printers as they have been known to jam the printer!
25/01/2010 Week 01 — Introduction and Inheritance (printable version): Support Files
01/02/2010 Week 02 — Polymorphism, Interfaces and Abstract Classes (printable version): Support Files
08/02/2010 Week 03 — GUIs and Events (printable version): Support Files
15/02/2010 Week 04 — Regular Expressions (printable version): Support Files
22/02/2010 Week 05 — GUI Apps, Data Structures and Linked Lists (printable version): Support Files
01/03/2010 Week 06 — More Lists and Collections (printable version): Support Files
08/03/2010 Week 07 — Testing and Debugging (printable version): Support Files
15/03/2010 Week 08 — Errors and Exceptions (printable version)
22/03/2010 Week 09 — How to cheat at essays (printable version): Support Files
29/03/2010 Week 10 — Algorithms and Output (printable version): Support Files
That's all Folks!