The syllabus for the second year of computer science in 1985-6 was:
The aim of this course is to study the applications, requirements, design, operation and programming of large software systems. It consists of four sections as follows: (a) Files. Characteristics of tape, disc and mass storage. Sequential, random and indexed files. Merging, direct access, hash functions. Criteria for file organisations, external sorting. (b) Programming in 'C'. (c) Operating systems and system management. Batch systems, single user systems, multiprogramming and interactive systems. Virtual addressing schemes. Concept of a kernel and related sub-sysytems. Concurrent processes and resource management. Implications for real time systems. (d) Programming languiages and compilers. Language features. Definition of languages. General overview of compilers and interpreters. Symbol tables, terminal analysis, top down recursive descent.
The aim of the course is to give the student an understanding of: (a) the design process for circuits involving both combinatorial and sequential logic, and inluding the problem of race conditiond. (b) the elementary components of a digital system and how they might be combined. (c) the organisation of a computer and its peripheral devices. (d) the principles and techniques of digital communications as required in computer networking applications. The lectures will be supplemented by laboratory sessions.
The aim of the course is to give the student an understanding of: (a) the basic discrete mathematics and probability theory which is necessary to model problems arising in both theoretical and practical computer science, and to develop mathematical reasoning ability. (b) the nature of functional programming languages and application of logic programming. (c) funcdamental concepts of programming, especially program correctness and proof.