csc 321 concurrent programming

11
CSC321 §1 Concurrent Programming 1 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]

Upload: sybil-mcintyre

Post on 01-Jan-2016

26 views

Category:

Documents


3 download

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 Presentation

TRANSCRIPT

Page 1: CSC 321 Concurrent Programming

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]

Page 2: CSC 321 Concurrent Programming

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.

Page 3: CSC 321 Concurrent Programming

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.

Page 4: CSC 321 Concurrent Programming

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.

Page 5: CSC 321 Concurrent Programming

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.

Page 6: CSC 321 Concurrent Programming

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.

Page 7: CSC 321 Concurrent Programming

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.

Page 8: CSC 321 Concurrent Programming

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.

Page 9: CSC 321 Concurrent Programming

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.

Page 10: CSC 321 Concurrent Programming

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

Page 11: CSC 321 Concurrent Programming

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.