Mr Rokas Volkovas
Email: email@example.comRoom Number: Peter Landin, CS 335
Introduction to Object-Oriented Programming (Postgraduate)
Basic concepts and techniques of object-oriented programming in general and the use of Java in particular. Issues in class and interface design (minimising class and member accessibility, immutability, composition versus inheritance, interfaces versus abstract classes, preventing subclassing, static versus nonstatic classes). The module will also examine a number of Design Patterns. Requirements for creating understandable, maintainable, and robust classes that can be easily reused by others in a team. Exceptions, type variables, iterators and other advanced aspects of the core Java language will be covered. Java's Collections Framework will be considered in detail as an example of a coherent set of Java classes designed to work together, and for its use of generic typing. There will also be some coverage of software engineering principles: analysis and specification of user requirements, object-oriented design, testing and debugging, refactoring.
Software Engineering Project (Undergraduate)
Students in pre-assigned groups of approximately six will be presented with a significant software problem to solve. To meet the problem requirements and build a satisfactory system within the time constraints the students will have to apply the principles learnt in the Software Engineering module and will have to work effectively as a team. Each team must choose a project manager and assign appropriate roles to each member.