csc 321 concurrent programming
DESCRIPTION
CSC 321 Concurrent Programming. Course web site http://www.cs.qub.ac.uk/csc321. Lecturer: Professor N.S. Scott Room 2025, SARC Building Phone: 028 9027 4647 E-mail: [email protected]. Lectures and Practical Classes. Lectures: Monday 10am , Wednesday 11am , Friday 11am . - PowerPoint PPT PresentationTRANSCRIPT
CSC321 §1 Concurrent Programming1
CSC 321 Concurrent Programming
Course web site
http://www.cs.qub.ac.uk/csc321Lecturer:
Professor N.S. Scott
Room 2025, SARC Building
Phone: 028 9027 4647
E-mail: [email protected]
CSC321 §1 Concurrent Programming2
Lectures and Practical Classes
Lectures:
Monday 10am, Wednesday 11am, Friday 11am.
Lecture Theatre 212, Peter Froggatt Centre, Main Site
Approximately 30 lectures and problem classes, starting Monday 26th September 2005
Practical classes:
It is essential that each student, in his/her own time, works through the collection of practical exercises located on the course web site at http://www.cs.qub.ac.uk/csc321.
Advisory:
Weekly 1-hour advisory sessions to help with these exercises and other queries. Monday 12-13 & Thursday 10-11, BCB 1st floor lab.
CSC321 §1 Concurrent Programming3
CSC321 Learning Outcomes
Knowledge and understanding An understanding of the problems that are specific to concurrent programs (mutual exclusion, deadlock, starvation and condition synchronisation) and the means by which such problems can be avoided or overcome (bare machine algorithms, semaphores, monitors). A knowledge of Java threads and FSP syntax.
Intellectual The ability to reason rigorously, both informally and formally using FSP, about the properties of concurrent programs.
PracticalThe ability to construct, using FSP, and analyse, using LTSA, a formal model of a concurrent system and to implement the model in Java.
CSC321 §1 Concurrent Programming4
CSC321 Teaching and Learning
Knowledge and understanding Knowledge and understanding is acquired by attending lectures and reading recommended textbooks. Individual learning is supported by a web site containing lecture notes, assessed work, practical exercises and links to supplementary material.
Intellectual Intellectual skills are developed by:
worked examples in lectures; problem classes to discuss solutions to set problems; assessed assignments and practical work; feedback written on returned assessed work.
CSC321 §1 Concurrent Programming5
CSC321 Teaching and Learning
PracticalEach concept covered in the course is illustrated by a collection of matching practical exercises. These are available via the course web site (http://www.cs.qub.ac.uk/csc321).
The exercises are supplemented by weekly advisory sessions where staff are available to offer guidance and advice.
CSC321 §1 Concurrent Programming6
CSC321 Assessment
Knowledge and understandingAssessed directly through the bookwork parts of questions in an unseen examination, also assessed indirectly through the written assignments and practicals where knowledge is required to understand the question being asked.
CSC321 §1 Concurrent Programming7
CSC321 Assessment
IntellectualAssessed through
written assignments ; and questions in an unseen examination.
The assignments examine the student's ability: to prove/disprove the safety and liveness properties of simple concurrent programs; to construct semaphore and monitor solutions to mutual exclusion and synchronization problems; to construct and analyse, using FSP and LTSA, concurrent models of realistic systems.
CSC321 §1 Concurrent Programming8
CSC321 Assessment
PracticalAssessed through
programming exercises ; and questions in an unseen examination.
The programming assignments examine the student's ability: to construct semaphore and monitor solutions to a realistic problem requiring mutual exclusion and condition synchronization; to model, using FSP and LTSA, a realistic concurent problem, and to implement a solution in Java.
CSC321 §1 Concurrent Programming9
CSC321 Assessment
Written assignments and programming assignments contribute a total of 20% to the final grade.
A three-hour written examination contributing 80% to the final grade.
CSC321 §1 Concurrent Programming10
Course Outline
Concurrent Programming Abstraction & Java Threads
The Mutual Exclusion Problem
Semaphores
Monitors
Modelling Process using FSP
Modelling Concurrency using FSP
Implementing FSP Models in Java
Deadlock
Safety and Liveness Properties
CSC321 §1 Concurrent Programming11
Book List
M. Ben-Ari, Principles of Concurrent and Distributed Programming, Prentice-Hall.
Jeff Magee & Jeff Kramer, Concurrency: state models and Java Programs, Wiley.http://www-dse.doc.ic.ac.uk/concurrency
Java examples and demonstration programsState models for the examplesLabelled Transition System Analyser (LTSA) for modelling
concurrency, model animation and model property checking.
Gregory R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley.