Presentation on theme: "CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site Lecturer: Professor N.S. Scott Room 2025,"— Presentation transcript:
CSC321 §1 Concurrent Programming 1 CSC 321 Concurrent Programming Course web site Lecturer: Professor N.S. Scott Room 2025, SARC Building Phone:
CSC321 §1 Concurrent Programming 2 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 Advisory: Weekly 1-hour advisory sessions to help with these exercises and other queries. Monday & Thursday 10-11, BCB 1st floor lab.
CSC321 §1 Concurrent Programming 3 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. Practical The 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 Programming 4 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 Programming 5 CSC321 Teaching and Learning Practical Each 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 Programming 6 CSC321 Assessment Knowledge and understanding Assessed 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 Programming 7 CSC321 Assessment Intellectual Assessed 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 Programming 8 CSC321 Assessment Practical Assessed 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 Programming 9 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 Programming 10 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 Programming 11 Book List M. Ben-Ari, Principles of Concurrent and Distributed Programming, Prentice-Hall. Jeff Magee & Jeff Kramer, Concurrency: state models and Java Programs, Wiley. Java examples and demonstration programs State models for the examples Labelled 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.