This module is offered in 2022-23.


  • To introduce algorithms from an analytical point of view.
  • To use data structures (data type design) as a vehicle for the elements of algorithm design.
  • To introduce students to object-oriented (OO) modelling, design and programming concepts demonstrated using a high-level OO programming language.
  • To develop an awareness of the importance of data storage and processing in software systems.
  • To use programming projects as a vehicle for consolidating practical skills in OO programming.

Learning Outcomes

On successful completion of this module, the student should:

  • Be aware of the need for abstraction in data type design.
  • Be familiar with a variety of common data structures and the basic theory of algorithms; understand the basics of programming language theory and compilation.
  • Have mastered concepts of OO modelling, design, and programming, and attained practical skills in applying these concepts in a high-level OO programming language.
  • Have a working knowledge of common OO design patterns and relevant Java class libraries and be conversant with effective documentation, layout, debugging and testing.
  • Be able to use OO programming and development tools.
  • Understand the role of data in software systems, the advantages and disadvantages of file and database storage.
  • Be able to model, design and implement programs with graphical user interfaces, network access, and programs which store and manipulate data.


  • Abstract Data Structures: implementation and use of lists, arrays, sets, stacks, queues, trees and maps.
  • Programming Language Fundamentals: basics of programming language theory and processing: syntax and parsing.
  • Variables and data types, choice and iteration, objects, attributes, method and class structures, object references, inheritance, object-oriented modelling, UML, I/O mechanisms including files, textual and graphical interfaces, networking, design patterns, exception handling, development and testing strategies and commenting and documentation techniques.
  • Data representation and models, semi-structured data, persistent data formats and databases, database design and use, processing and analysing data, issues of scale.

Compulsory Elements

This module has no compulsory elements beyond those common to all sub-Honours modules (tutorials, mark of 4 in each assessment component).

Module Delivery

Back to top

Last Published: 08 Aug 2022.