To introduce data structures and advanced programming language features within the context of a high-level programming language (Java). To demonstrate principles, provide indicative examples, develop problem-solving abilities and provide students with experience and confidence in the use of advanced features to implement algorithms in a contemporary software setting.
- Overview of object-oriented languages and Java [2 lectures]
- Abstract Data Types [8 lectures]
- Classes and class hierarchies in Java [13 lectures]
- Robustness and error-handling [3 lectures]
- Concurrency [4 lectures]
- Input/Output and Network Programming in Java [6 lectures]
Ralph Morelli. Object-Oriented Problem Solving: Java, Java, Java. 2nd edition, Prentice Hall, 2003.
By the end of this module, students should be familiar with data structures and advanced programming concepts within Java; should be able to carry out the construction of software artefacts utilising these concepts; and should be capable of carrying out the development of complex elements, such as user interfaces, multiprocessing, and fault-tolerant components.
The module will be taught as 36 lectures [3 lectures a week for 12 weeks].