The aim of this module is to help you become a computational thinker. Formulating a problem for efficient solution by computers is an extremely important skill. In this module, you will hone this skill: exploring a range of computing concepts; applying these to a variety of problems; and, in the process, becoming familiar with the popular Python programming language. This is the module for you if you are specialising in computing or if – whatever your field – you need to understand both the power and the limitations of computing. Though the focus is on the underlying ideas, you will also need to work with some mathematical concepts and notation.
Gain an understanding of the basic principles behind the answers to a wide range of questions including:
- How could algorithmic knowledge of sorting help a hospital during the devastation following a natural disaster such as the Haiti earthquake?
- How can companies like Amazon and Facebook sort petabyte data sets within seconds, for further analysis?
- How can a bank locate a single customer record within a few milliseconds, from within a database of many millions of records?
- How can a forensic laboratory locate a distinct sequence of base pairs speedily within a DNA molecule containing over three billion such pairs?
- How can the millions of operations involved in the production process for an advanced aircraft be scheduled to give maximum efficiency and minimum cost and time span?
- How can a computer be programmed to beat human chess players of grandmaster standard?
- In a telecommunications network, how can the data packets being transferred from sender to destination be routed through a series of hundreds of switches to minimise delay and network congestion, as the patterns of network activity change constantly?
- Can a compiler tell you whether your program will ever finish running?
|About this course:|
|UK Credits = 30 (15 ECTS)|
|Course work includes:|
|2 Tutor-marked assignments (TMAs)|
|Final Grade||In Progress|