Dr Matthew Huntbach
Algorithms and Data Structures in an Object-Oriented Framework (Undergraduate)
Algorithms are "ways of doing something", data structures are ways of combining collections of data to form a coherent whole. Many algorithms are about processing collections of data; an obvious example being to re-arrange a collection to put it in some sorted order. This module will introduce the basic concepts of algorithms and data structures expressed using the Java programming language.Java is an object-oriented language, and the object-oriented style is recognised as a good way of both breaking down a program into coherent parts, and generalising these parts so they may be re-used in a variety of contexts. This module introduces algorithms and data structures in an object-oriented framework. A key theme is the idea of "abstraction": being able to separate out the way a program component works in interaction with other components from what goes on underneath to make it work.The module is intended for those who have already covered the basics of programming, and wish to move on to use and develop their programming skills for designing and constructing components of programs of a larger scale.
Object-Oriented Programming (Undergraduate)
Major topics include the concepts of class, object, method, subclass, inheritance and their use in programming. The relevance of the object oriented style with respect to concrete software problems will be stressed both in lectures and labs. There will be two hours of lectures per week, and each student will have a weekly timetabled lab session. In addition, you will be expected to spend further time outside scheduled lab periods in the lab (or at home machines if they are available), and to read textbooks and review notes.