MSc Software Systems Technology
Overview of the MSc conversion course at Sheffield University, 1998–1999
Introductory unit
- Pascal
- Jackson Structured Programming (JSP)
- The software life cycle
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 that develops Computer-based training (CBT) systems. The project was to write a suite of functions that could be used to develop CBT material (that is, an authoring language). Initial research showed that available commercial products were poor in the area of response matching. Therefore, I focussed on this. The use of an intelligent spelling checker, instead of the 'dumb' type found in word-processors, was the most suitable 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.