Algorithms and Data Structures
G52ADS Coursework for Autumn 2008
General Introduction
- This is an unofficial page. For all formal details, see Andrew J. Parkes and his Technicolor website.
- From 1st year Programming, you should know: Core Java 5+, including Collections, Generics, and some interfaces, most notably Collection, List, Comparator, and Comparable.
- You may have to learn jUnit 4.5, if you have never used it before. (There could have been a lecture or two on JUnit by Dave Elliman in G51PRG.) It is well worth learning, as it is the industry-wide standard testing tool. Birmingham School of CS has a decent tutorial on-line.
- It's heartily recommended that you learn to use Java Logging and a version control system such as Subversion or Mercurial. (There could have been a lecture or two on CVS in G51SWT.) This is not strictly necessary, though.
- It's heartily recommended that you learn to use and one of great IDEs there are for Java. The big & free IDEs are NetBeans and Eclipse, then there is JBuilder, and last but not least, there is a very nice "learn Java" IDE by the name of Blue J.
- The recommended Java textbook is the 4th edition of Eckel's Thinking in Java (available in the library or at Amazon). The first seven chapters are available for free here. The complete, if slightly out-dated, 4th revision of the 3rd edition is available for free here.
- When stuck, don't panic. Try to think for a bit. Then try Google, the documentation, and the textbook, and when all fails, go and see Jakub in B78. Beware, though: If he can google up the answer within five seconds, he may be reluctant to answer better questions you could have in the future.
Informal Coursework
There will be three pieces of informal coursework. You do not have to do any of it. You can also work in pairs or groups, as you see fit.
- Implementation of
SimpleStack. See the details here. - Implementation of parenthesis matching using
SimpleStack. See the details here. - Implementation of
SmartList. See the details here.
Formal Coursework
There will be a single piece of formal coursework. It is worth 25 % of the grade,
you you may well want to submit it (on time).
You can not work in pairs or groups; it should be all your own code implementing
your own ideas. See the details here.
See more of Jakub's
homepage, if you please.