Skip to main content

Module

CSC3324 : Understanding Concurrency

  • Offered for Year: 2020/21
  • Module Leader(s): Dr Victor Khomenko
  • Teaching Assistant: Mr Chris Napier
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semesters
Semester 1 Credit Value: 10
ECTS Credits: 5.0

Aims

Sequential systems belong to the last millennium. Concurrent systems, on the other hand, are fast becoming ubiquitous technology of modern times, from multi-core processors to heterogeneous distributed computer network to Web servers and services, to genetic regulatory networks, to biochemical models of living cells. All these seemingly different application areas are in fact underpinned by a unifying principle of computational processes interacting and communicating in order to achieve a common computational goal.

The principal aim of this module is to develop an understanding of this unifying principle and the ways in which concurrency can be modelled and harnessed to deliver correct, reliable and efficient designs. Fundamental concepts of concurrency as well as modelling techniques will be introduced using Petri nets (a graphical model extending finite state machines with concurrency). The key ideas will be further explored and reinforced through several examples of applications as well as practical work implemented using state-of-the-art modelling tools developed at Newcastle. The material should equip students with confidence based on a solid understanding of the complexity and inherent intricacies of concurrent designs, in order to successfully tackle the most advanced and challenging computing technologies which will emerge during a student’s career.

Outline Of Syllabus

- Introduction: The ubiquity of concurrent systems, their role in modern technology, considerations for deploying concurrency, and the challenge of developing correct concurrent systems.
- Languages and Traces as a formal representation of behaviour of reactive systems.
- Finite State Machines as a formal representation of behaviour, with the use of interleaving to represent concurrency.
- Petri nets as a "true concurrency" formalism for representing concurrent behaviours.
- Compositionality as the only practical way of constructing large systems.
- Formal verification of concurrent systems.
- Concurrency in electronic circuits.
- Concurrent computation: Amdahl’s law vs. Gustafson’s law, taxonomies, types of concurrency, synchronisation primitives.
- Pipelines and their analysis and optimisation.
- Tool Support: visualization, simulation, and formal verification.
- Case studies illustrating model-based design.

Teaching Methods

Please note that module leaders are reviewing the module teaching and assessment methods for Semester 2 modules, in light of the Covid-19 restrictions. There may also be a few further changes to Semester 1 modules. Final information will be available by the end of August 2020 in for Semester 1 modules and the end of October 2020 for Semester 2 modules.

Teaching Activities
Category Activity Number Length Student Hours Comment
Structured Guided LearningLecture materials181:0018:00Lectures (pre recorded)
Guided Independent StudyAssessment preparation and completion181:0018:00Lecture follow-up
Guided Independent StudyAssessment preparation and completion81:008:00Coursework (completing fortnightly tests)
Guided Independent StudyAssessment preparation and completion281:0028:00Background reading
Guided Independent StudyProject work120:0020:00Coursework (modelling assignment)
Scheduled Learning And Teaching ActivitiesScheduled on-line contact time81:008:00Q&A for completing weekly practicals
Total100:00
Teaching Rationale And Relationship

Lectures present theory and techniques. Practical classes provide examples and practice exercises to develop key skills. Further practice takes place during the private study hours.

Assessment Methods

Please note that module leaders are reviewing the module teaching and assessment methods for Semester 2 modules, in light of the Covid-19 restrictions. There may also be a few further changes to Semester 1 modules. Final information will be available by the end of August 2020 in for Semester 1 modules and the end of October 2020 for Semester 2 modules.

The format of resits will be determined by the Board of Examiners

Other Assessment
Description Semester When Set Percentage Comment
Prob solv exercises1M40Fortnightly tests
Practical/lab report1M60implement a model of a concurrent system
Assessment Rationale And Relationship

There is one system design and analysis assignment assessing the understanding of basic concepts of the modelling and analysis of concurrent systems through a simple case study using the Workcraft toolkit developed at Newcastle. The coursework will involve design of a model, its implementation as a Petri net, formulation of analytical requirements, and automatic checking of these requirements.

The purpose of the fortnightly tests is periodic assessment of the material covered at lectures and practicals.

Reading Lists

Timetable