Catalogue of Modules, University of Nottingham

G52CON Concepts of Concurrency
(Last Updated:03 May 2017)

Year  10/11

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:

Spring Assessed by end of Spring Semester 

Prerequisites: Or equivalent Java programming (eg G51PRG 2009/10) and knowledge of mathematics.

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:
  • Reading List
  • Method and Frequency of Class:

    ActivityNumber Of WeeksNumber of sessionsDuration of a session
    Lecture 12 weeks2 per week1 hour

    Activities may take place every teaching week of the Semester or only in specified weeks. It is usually specified above if an activity only takes place in some weeks of a Semester

    Method of Assessment: 

    Assessment TypeWeightRequirements
    Exam 1 100 2 hr written examination 

    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.

    Module Catalogue Search for another module

    [UoN Welcome Page] Return to The University of Nottingham Welcome Page