MSc Software Systems Technology
Overview of the MSc conversion course at Sheffield University, 1998–1999
Introductory unit
- Pascal
- Jackson Structured Programming (JSP)
- The software lifecycle
Software engineering
- Structured Systems Analysis and Design Methodology (SSADM)
- Pascal
- Formal methods (VDM)
- Comparison of methods
Computer systems
- Introduction to computer architecture
- Assembly language programming (8086)
- Concurrent processing (occam)
- Computer communications
Intelligent knowledge-based systems (IKBS)
- Artificial intelligence and AI programming (LISP)
- Rule-based expert systems
- Logic programming and structured objects (Prolog)
- Object-based systems and IKBS design
Database technology
- The relational model (relational algebra and calculus)
- Database design and small scale systems (dBase3+)
- The network model and large scale systems
- Future developments
Hardware systems and architecture
- Logic systems design
- Computer structures
- Real-time programming
- Operating systems architecture
Discrete mathematics
- Discrete mathematics for software engineering
Industrial placement
A five-month placement with a company which produces Computer-based training (CBT) systems. The project was to write a suite of functions that could be used to produce CBT material (that is, an authoring language). Initial research showed that currently available commercial products were poor in the area of response matching, and consequently I focussed on this. The use of an intelligent spelling checker, rather than the 'dumb' type found in word-processors, was the most appropriate method of tackling the problem.
The author language functions were specified both informally in English, and formally using Abstract Data Types (ADTs). The functions were implemented using the 'C' programming language.