CS2001: Foundations of Computation
This module is offered in 2023-24.
The aims of this module are:
- To introduce algorithms from an analytical point of view.
- To use data structures (data type design) as a vehicle for the elements of algorithm design.
On successful completion of this module, the student should:
- Be aware of the need for abstraction in data type design.
- Be familiar with a variety of common data structures and the basic theory of algorithms.
- Have a working knowledge of relevant Java class libraries.
- Understand the basics of programming language theory and compilation.
Abstract Data Structures: - The implementation and use of lists, arrays, sets, stacks, queues, trees and maps. Programming Language Fundamentals: - Basics of programming language theory and processing: syntax and parsing.
This module has no compulsory elements beyond those common to all sub-Honours modules (tutorials, mark of 4 in each assessment component).