A study of algorithms, data structures and programming techniques. The topics covered include trees, graphs and heaps, advanced sorting techniques, elements of storage management and complexity. The presentation will emphasise the role of data abstraction and correctness proofs. This unit is about modern computer architecture. The goal is to understand the design of the machine rather than just know how to use it.
Practical work uses assembly-language programming and the C programming language.
This unit focuses on analysis and design methods applied in the design process, from system requirements to construction. Problem formulation and solving are emphasised. The models will be tested by assessment and by implementing them as computer-based systems. Other topics in the unit provide context for the design process and the mathematics that provide a sound basis for the methods. An introduction to numerical techniques and their applications.