This is a second year module for students of Computer Science, CS & Language, CS & Business,  and Management Science & Information Systems Studies.

The aim in this course is to study the main data structures and algorithms used in practical software development. Students learn to evaluate data structures and algorithms and choose the best ones to solve problems. The emphasis of the course is on the efficiency of these solutions in terms of time and memory requirements.

Implementing correct and efficient solutions in Java is an important aspect of the course. Students learn to leverage rigorous testing techniques, such as unit testing and code coverage, to evaluate the correctness of their implementations.

During the Michaelmas Term, the course has 3 hours of lectures and 1 hour of lab each week.


Meeting weekly from 28 September to 19 December 2015


  • Mondays 15:00-16:00: Joly Theatre, Hamilton Building
  • Wednesdays 10:00-11:00: LB08, Lloyd Institute
  • Thursdays 10:00 - 11:00: Goldsmith Hall (Fridays 9:00-10:00: LB01, Lloyd Institute)


  • Tuesdays 9:00-10:00: ICT Lab 1
  • Tuesdays 9:00-10:00: ICT Lab 2
  • Thursdays 9:00-10:00: ICT Lab 1
  • Thursdays 9:00-10:00: ICT Lab 2

All registered students will be assigned to one lab session. Those not yet registered please contact the Lecturer or the TA. Please contact the TA if you want to switch sessions.