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.