Undergraduate Course: Modelling Concurrent Systems (Level 10) (INFR10089)
Course Outline
School  School of Informatics 
College  College of Science and Engineering 
Credit level (Normal year taken)  SCQF Level 10 (Year 3 Undergraduate) 
Availability  Available to all students 
SCQF Credits  10 
ECTS Credits  5 
Summary  Concurrent and distributed systems are famously hard to analyse. This theoretical course presents stateoftheart mathematical models and techniques that make understanding concurrency possible. In the process, we will touch on fundamental philosophical, mathematical and computational questions. What does 'concurrency' actually mean? How do we know our concurrent system behaves correctly? What does 'correctly' actually mean? This course is especially relevant to any student with an interest in a scientific career in programming languages, models, or distributed systems, and also to students looking to design or implement distributed systems in industry. 
Course description 
Beginning with simple examples and protocols, we will develop a theory to describe models of concurrent systems of increasing complexity, based on process algebra. We will learn how to compare these models, and the key concepts that describe what it means for systems to be equivalent, such as bisimulation and trace equivalence. We will learn how to specify prove properties of systems, and the assumptions we must make about the environment in which these systems operate, such as fairness. The course lectures will introduce concepts using standard examples, and students will apply what they have learned to new problems in homework questions delivered weekly. In tutorials, students can discuss solutions to their homework problems and get feedback on their work, developing their solutions into a summative homework portfolio that they submit for grading at two checkpoints throughout the semester.

Entry Requirements (not applicable to Visiting Students)
Prerequisites 

Corequisites  
Prohibited Combinations  Students MUST NOT also be taking
Modelling Concurrent Systems (Level 11) (INFR11248)

Other requirements  Some skill at mathematical reasoning is required for this course. This course is open to 3rd and 4th year informatics students, including those on joint degrees, as well as postgraduate students.
Specifically, we require some skill in basic discrete mathematics such as sets, logic, and induction.
This course is also open to students of Mathematics, and to students of Philosophy who feel they have the mathematical background for this course. 
Information for Visiting Students
Prerequisites  Only available to full year visiting students as the assessment is exam based in the summer diet. 
High Demand Course? 
Yes 
Course Delivery Information

Academic year 2023/24, Available to all students (SV1)

Quota: None 
Course Start 
Semester 1 
Timetable 
Timetable 
Learning and Teaching activities (Further Info) 
Total Hours:
100
(
Lecture Hours 18,
Seminar/Tutorial Hours 7,
Summative Assessment Hours 2,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
71 )

Assessment (Further Info) 
Written Exam
40 %,
Coursework
60 %,
Practical Exam
0 %

Additional Information (Assessment) 
Coursework: 60%
Exam: 40%
Each week, students will be given a series of homework questions, which usually require a mathematical argument or proof, an indepth construction of a model, or a thorough comparison between modelling approaches. Students submit these to their tutor for feedback in the tutorial. At two checkpoints throughout the course (weighted at 30% each), students can select some of these homework solutions (e.g. best 4 out of 5) along with their tutor's feedback to submit for summative assessment. At the end of the term, an exam test will be administered that is more broad, requiring only shorter, less indepth answers. Students must pass the exam in order to pass the course. 
Feedback 
Main source of feedback is during tutorials as noted above. 
Exam Information 
Exam Diet 
Paper Name 
Hours & Minutes 

Main Exam Diet S2 (April/May)  Modelling Concurrent Systems (Level 10) (INFR10089)  2:00  
Learning Outcomes
On completion of this course, the student will be able to:
 construct accurate models of concurrent systems, including protocols and other distributed communicating systems
 analyse (models of) concurrent systems and show various notions of equivalence and refinement between them
 evaluate the comparative benefits and drawbacks of various concurrency
 articulate safety and liveness properties of concurrent systems using temporal logic and other tools
 justify the correctness of concurrent systems under various assumptions about their executing context

Reading List
Wan Fokkink, Introduction to Process Algebra, 2007 (http://www.few.vu.nl/~wanf/BOOKS/procalg.pdf)
Selected Research Papers 
Additional Information
Graduate Attributes and Skills 
· Research and enquiry: problemsolving, analytical thinking
· Personal responsibility and autonomy: independent learning, creativity
· Communication: mathematical communication 
Keywords  Concurrency,Theory,Process Algebra,Distributed Systems,Formal Methods,Specifications 
Contacts
Course organiser  Dr Liam O'Connor
Tel:
Email: l.oconnor@ed.ac.uk 
Course secretary  Mrs Michelle Bain
Tel: (0131 6)51 7607
Email: michelle.bain@ed.ac.uk 

