Please note: Due to alternative arrangements for teaching and
assessment in place from 18 March 2020 to mitigate against the restrictions in
place due to COVID-19, information shown for 2019/20 may not always be accurate.
Please note: you are viewing unit and programme information
for a past academic year. Please see the current academic year for up to date information.
Unit name |
Concurrent Computing |
Unit code |
COMS20001 |
Credit points |
20 |
Level of study |
I/5
|
Teaching block(s) |
Teaching Block 4 (weeks 1-24)
|
Unit director |
Dr. Hannuna |
Open unit status |
Not open |
Pre-requisites |
- COMS10002 Programming and Algorithms I
- COMS10001 Programming and Algorithms II
- COMS12200 Introduction to Computer Architecture
|
Co-requisites |
none
|
School/department |
Department of Computer Science |
Faculty |
Faculty of Engineering |
Description including Unit Aims
This unit gives an introduction to formalisations and implementation techniques that are relevant to building and utilizing computers that run more than one entity at once. We will show state-of-the art techniques for using multiple processors for one task, as well as how single processors can be used to handle multiple tasks. Particular topics covered will include an introduction to concurrency and how it can be reasoned about, how concurrency can be deployed on hardware, concurrent programming, how concurrency is handled by operating systems and how concurrent systems can be interconnected by networks.
This unit aims to:
- Introduce concurrent computing as a concept
- Provide an introduction to formal reasoning about concurrency
- Allow an exploration of concurrent computing in the context of a modern programming language in combination with a contemporary hardware implementation
- Show how concurrency principles apply regardless of the number of processing elements
- Introduce efficient concurrent computing systems and their construction
The following core topics will be introduced:
- Concurrent Systems
- Concurrent Programming using Go
- CSP. The CSP formal methodology for reasoning about concurrent systems
- Computer Networks and their relationship to Concurrent Systems
- OS. Operating Systems in context to concurrent systems and their operation across different processing paradigms
Intended Learning Outcomes
Successful completion of this unit will enable you to:
- Reason about concurrency using formal techniques
- Become familiar with a variety of concurrent computing approaches
- Be capable of programming a concurrent computer to perform simple tasks
- Understand how networks can be used to interconnect concurrent computers
- Be familiar with a variety of network types and their operation
- Understand the role of an operating system in a concurrent system and the different forms that it can take
Teaching Information
2 lectures per week supported by a combination of laboratory and problem classes (2 hours per week).
Assessment Information
50% Coursework - consisting of summative and formative assignments assessing both theoretical and applied elements of Concurrent Computing - and 50% Exam.
Reading and References
- Concurrent and Real-Time Systems: A CSP Approach. Schneider
- https://gobyexample.com/
- Concurrent systems: an integrated approach to operating systems, database, and distributed systems. Jean Bacon