School of Computer Science

Module 06-27821 (2017)

Software Workshop 1

Level 1/C

Ian Kenny Semester 1 20 credits
Martin Escardo Semester 2 20 credits
Co-ordinator: Ian Kenny
Reviewer: David Parker

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


A first module in imperative, object-oriented programming, with a strong emphasis on practical program development skills.


The aims of this module are to:

  • present the fundamental concepts of imperative and object-oriented programming
  • develop the skills needed to design, develop and document programs
  • gain working knowledge of the Java programming language

Learning Outcomes

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

  1. explain and apply the fundamental constructs of imperative and object-oriented programming
  2. describe and apply the main features of the Java programming language
  3. analyse Java programs, for example by determining the behaviour of a program from its source code or by completing and/or correcting partially-written programs
  4. write Java programs, where appropriate making effective use of an integrated development environment (IDE) and other programming aids
  5. test and debug programs, interpreting compiler and run-time error messages
  6. design, develop and document complete Java programs to solve given software problems, including some open-ended tasks



Teaching methods

Lectures: 2-3 hrs/week, Tutorials/Examples classes: 1-2 hrs/week, Timetabled labs

Contact Hours:

104 plus timetabled lab work


Sessional: 100% Continuous Assessment. The module also has an internal hurdle in the form of class tests. These tests will not contribute to the final overall mark for the module but students must pass the class test component in order to pass the module.

Supplementary (where allowed): by repeat only

Detailed Syllabus

  1. Simple Programs
  2. Working with Data
  3. Classes
  4. Static Methods and Constants
  5. Graphics
  6. Graphical User Interfaces
  7. Model-View-Control
  8. Layout Managers
  9. Abstract Data Types (ADTs)
  10. Expression trees, their evaluation, and their conversion to string representation
  11. Binary search trees of integers
  12. Generics
  13. Composite Pattern
  14. Maps in the collections framework
  15. Exceptions
  16. Graphs

Programmes containing this module