School of Computer Science

Module 06-19343 (2012)

Software System Components B

Level 2/I

Alan Sexton Robert Hendley Shan He Semester 2 20 credits
Co-ordinator: Alan Sexton
Reviewer: Rami Bahsoon

The Module Description is a strict subset of this Syllabus Page.


The aims of this module are to:

  • improve students' programming skills generally, and develop students' programming design and development skills to cope with large programs
  • provide programming experience with more advanced but commonly used Java class libraries and other packages as appropriate
  • teach specific skills in HCI, graphics, i/o and parsing

Learning Outcomes

On successful completion of this module, the student should be able to:

  • describe and explain appropriate techniques for determining user requirements from an HCI perspective
  • design and evaluate a computer-based system which meets such user requirements
  • explain and use the basic Java i/o class hierarchy
  • explain and apply the structural principles of XML
  • use grammars to describe formal notations such as programming languages
  • explain what parsers do, particularly top-down parsers
  • explain and apply the underlying concepts of 2D and some 3D object construction, manipulation and viewing
  • apply 2D and 3D graphics techniques using appropriate Java libraries
  • explain and apply basic techniques for the representation and processing of images and colour

Teaching methods

3 hrs/week lectures/tutorials, 2-3 hrs/week labs.


  • Sessional: 2 hour examination (80%), continuous assessment (20%).
  • Supplementary: By examination only.

Detailed Syllabus

  1. Introduction to HCI
    • Case studies of good and bad design
    • Human capabilities & limitations: perception & cognition
  2. HCI Design
    • HCI Design Methodologies
    • Personas and Scenarios
    • Prototyping Methods & Tools
    • Design Principles & Heuristics
  3. Usability Testing & Evaluation
    • Usability Testing methodologies
    • Techniques for evaluation
  4. Java I/O
    • Basic operations on streams in Java
    • Regular expressions and matching streams
    • Serializing objects to and from streams
  5. Introduction to parsing
    • Grammars contrasted with regular expressions
    • Predictive parsing
    • Writing parsing methods in Java
    • Parse trees
    • Java classes for representing parse trees
    • Overview of parser generators
  6. XML
    • XML syntax compared to the Dyck language
    • Well-formed and valid XML compared to grammars
    • XML and parsing
  7. 2D graphics
    • Java2D graphics
    • 2D Rendering
    • 2D Modelling
    • Colour
    • Raster data
    • Operations on images
  8. 3D graphics
    • Introduction to 3D graphics
    • World Space and Image Space
    • 3D rendering
    • Java OpenGL

Programmes containing this module