Course Syllabus

advertisement
Philadelphia University
Faculty of Information technology
Department of Computer Science
2014-2015
Course Syllabus
Course Title: Concurrent and Distributed Programming Code: 0750413
Course Level: 4
Prerequisite: 761220
Lecture Time:
Credit hours: 3
Academic Staff Specifics
Name
Rank
Maram
Bani Assistance
Younes Professor
Office
Office Hours
E-mail Address
STT 9:10 – 10:00
IT 331
Maram_mhmd@yahoo.com
MW 9:45 – 11:00
Course module description:
The course will focus on the major problems specific to Concurrent and Distributed programming
(synchronization, communication, mutual exclusion), and on the means by which such problems can be
avoided or overcome (hardware support, semaphores, monitors…). Language features for Concurrent and
Distributed Programming, and a set of selected Concurrent and Distributed algorithms are also presented.
Students will be given an experience in concurrent and distributed programming.
Course module objectives:
The aim of this course is to introduce and detail the main concepts and practices in concurrent and
distributed programming.
Course/ module components


Books (title , author (s), publisher, year of publication) 
Principles of Concurrent and Distributed Programming, M. Ben-Ari, Addisson Wesley,
Second edition, 2006. 


Support material (s): 
Textbook slides 
Teaching methods:
Lectures, tutorials, problem solving, practical works
Page 1 of 3
Learning outcomes:
 Knowledge and understanding 
1. Understand and discuss the main concepts of concurrency and distribution
2. Understand and discuss the problems specific to concurrency and distribution and the
means by which these problems are overcome.
3. Understand and discuss some known distributed algorithms.
 Cognitive skills (thinking and analysis). 
1. Analyze and Design simple concurrent programs using threads, semaphores and monitors
2. Analyze and Design simple distributed programs using channels, RPC,..

 Communication skills (personal and academic). 

Practical and subject specific skills (Transferable Skills). 
1. 1.Program concurrent programs with Java Threads
2. Program simple distributed programs suing Linda, RPC..
Assessment instruments
 Quizzes.
 Home works: Practical projects
 Final examination: 50 marks
Allocation of Marks
Assessment Instruments
Mark
First examination
20
Second examination
20
Final examination: 50 marks
40
Quizzes, Home works
20
Total
100
Documentation and academic honesty
  Documentation style (with illustrative examples) 
 Protection by copyright 
 Avoiding plagiarism. 
Page 2 of 3
Course/module academic calendar
Week
(1)
(2)
(3)
(4)
(5)
(6)
First examination
(7)
(8)
(9)
(10)
(11)
Second examination
(12)
(13)
(14)
(15)
Specimen
examination
(Optional)
(16)
Final Examination
Basic and support material to be covered
Homework/reports
and their due dates
Introduction: What is concurrent programming?
The Concurrent Programming Abstraction (1)
The Concurrent Programming Abstraction (2) – Tutorial
The Critical Section Problem
The Advanced Algorithms for the Critical Section
Problem
Semaphores (1)
Semaphores (2) – Tutorial
Critical regions
Monitors (1)
Monitors (2) – Tutorial
Channels (1)
Channels (2) – Tutorial
Spaces
First homework due
Distributed Algorithms (1)
Distributed Algorithms (2) – Tutorial
Global properties
Consensus (1)
Second homework due
Consensus (2) – Tutorial
Expected Workload:
On average students need to spend 2 hours of study and preparation for each 50-minute
lecture/tutorial.
Attendance policy:
Absence from lectures and/or tutorials shall not exceed 15%. Students who exceed the 15% limit
without a medical or emergency excuse acceptable to and approved by the Dean of the relevant
college/faculty shall not be allowed to take the final examination and shall receive a mark of zero
for the course. If the excuse is approved by the Dean, the student shall be considered to have
withdrawn from the course.
Module references
Books
Elements of Distributed Algorithms: Modeling and Analysis with Petri Nets by Wolfgang Reisig, 2010
Concurrent Programming: Algorithms, Principles, and Foundations, Michel Raynal, 2012
Websites
http://users.ece.utexas.edu/~garg/jbk.html
http://www.gobookee.org/principles-of-concurrent-and-distributed-programming/
http://www3.ntu.edu.sg/home/ehchua/programming/java/J5e_multithreading.html
http://en.wikipedia.org/wiki/Java_concurrency
Page 3 of 3
Download