Total Credits: 10
Level: Level 2
Target Students: Part I undergraduate students in the School of Computer Science. Also available to students from other Schools with the agreement of the module convenor. Available to JYA/Erasmus students.
Taught Semesters:
| Semester | Assessment |
|---|---|
| Spring | Assessed by end of Spring Semester |
Prerequisites: Or equivalent Java programming (eg G51PRG 2009/10) and knowledge of mathematics.
| Mnem | Title |
|---|---|
| G51MCS | Mathematics for Computer Scientists |
| G51OOP | Object-Oriented Programming |
Corequisites: None.
Summary of Content:
This module is part of the Operating Systems and Architecture theme in the School of Computer Science.
This module introduces the basic principles of concurrent programming and their use in designing computer programs. It covers concurrency primitives for shared memory and distributed implementations of concurrency, the correctness of concurrent algorithms, and concurrent programming in Java. Building on these basic principles, it explains how concurrency primitives and algorithms can be used to solve some common problems in concurrent programming, e.g., the producer-consumer problem, the readers and writers problem, client server problems etc. Topics include: hardware support for concurrency, mutual exclusion and conditional synchronisation, semaphores, monitors, RPC and rendezvous, safety and liveness properties of concurrent algorithms, proving properties using assertional reasoning and model checking, and the use of Java threads, synchronized methods, and monitors.
Module Web Links:Method and Frequency of Class:
| Activity | Number Of Weeks | Number of sessions | Duration of a session |
|---|---|---|---|
| Lecture | 12 weeks | 2 per week | 1 hour |
Method of Assessment:
| Assessment Type | Weight | Requirements |
|---|---|---|
| Exam 1 | 100 | 2 hr written examination |
Convenor:
Dr B Logan
Education Aims: To convey a basic understanding of the concepts, problems, and techniques of concurrent programming. To show how these can be used to write simple concurrent programs in Java.
Learning Outcomes: Knowledge and Understanding: Understanding of the concepts, problems, and techniques of concurrent programming. Intellectual Skills: The ability to understand complex concepts in concurrency and relate them to specific situations. Professional Skills: The ability to write simple concurrent programs in Java. The ability to evaluate and select appropriate algorithms. Transferable Skills: The ability to solve problems.
Offering School: Computer Science
Use the Back facility of your browser to return to the previous page.
Return to The University of Nottingham Welcome Page