Engineering 8893 Concurrent Programming

Instructor Dr. D. K. Peters
Lectures Monday, Wednesday, Friday 1100-1150, EN2049
Tutorial Wednesday 1500-1550, EN4034
Office hour Thursday 1400-1600, or by appointment
T.A. An Zhiwei

Schedule and Examples | Evaluation | Text | Links | References Web submit

Detailed Schedule and Examples

The following is the tentative schedule of lectures, mid-terms and assignments for the term. Lecture topics may change slightly as the term progresses. Click an assignment or demo to view it. Click on a topic to view an html version of the class notes for that topic. Downloadable printable forms (PostScript or Portable Document Format) are also given. These may not always be available in advance of the lectures and are not to be considered a substitute for attending class.

If you need information about the file formats, or instructions for downloading them check here.

#Date Deadline Topic Examples
Documentation
Thumbnails Comment
1F 01.11 Introduction intro_th.ps, intro_th.pdf Course Information Sheet
2M 01.14 Concurrent Architechtures & Applications (Ch. 1) arch_th.ps arch_th.pdf
3W 01.16
4F 01.18 Processes and Synchronization (Ch. 2) processes_th.ps processes_th.pdf
5M 01.21
6W 01.23
7F 01.25 Implementing Threads Shared.java thread_th.ps thread_th.pdf
8M 01.28
9W 01.30 Locks & Barriers (Ch. 3) Bakery.java barriers_th.ps barriers_th.pdf
10F 02.01 Assignment 1,
Solutions: q13and16.pdf, assign1_q7a.java, assign1_q7b.java, assign1_q29.java
11M 02.04
12W 02.06
13F 02.08
14M 02.11 Semaphores (Ch. 4) Baton.java semaphores_th.ps semaphores_th.pdf
15W 02.13
16F 02.15
17M 02.18 Assignment 2,
Sample solutions: assign2_q7.pdf, assign2_q16a.java, assign2_q16b.java, assign2_q17.java
Review 2001 Mid-term
18W 02.20 Mid-Term Test
sample solutions
19F 02.22 Monitors (Ch. 5) Semaphore.java,
Bounded.java,
Sleepytown.java,
Disk1.java,
Disk2.java,
Disk3.java
monitors_th.ps monitors_th.pdf
M 02.25 Mid-term Break
W 02.27
20F 03.01 Monitors (cont'd)
21M 03.04 Message Passing FileReadServer.java, FileReadClient.java message_th.ps, message_th.pdf
22W 03.06 Eratosthenes.java, SeiveTest.java
23F 03.08 Assignment 3
24M 03.11 RPC & Rendezvous (Ch. 8) DBServer.java, DBClient.java, DatabaseImpl.java, RemoteDatabase.java rpc_th.ps, rpc_th.pdf
25W 03.13
26F 03.15 Paradigms for Interaction (Ch. 9) Manager.java, Worker.java, MakeWorkers.java paradigms_th.ps, paradigms_th.pdf
27M 03.18
28W 03.20 Helper.java, User.java, TRtest.java
29F 03.22
30M 03.25 Scientific Computing (Ch. 11)
31W 03.27 scientific_th.ps, scientific_th.pdf
32F 03.29 Good Friday holiday
33M 04.01 Real-Time Systems realtime_th.ps, realtime_th.pdf
34W 04.03
35F 04.05
36M 04.08 Assignment 4
37W 04.10 Review

Textbook

G. R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000. ISBN 0-201-35752-6. It's available at the MUN Bookstore (location G-05) for $58.95, or you can buy it online at Chapters.Indigo.ca, or Amazon.com.

Evaluation

Assignments 1-310%
Assignment 410%
Mid-term 25%
Final Exam 55%

Related Links

Textbook homepage.
In particular, pay attention to the Errata Page.
Beowulf Project
A project that connects many PCs to create a very powerful computer. Also a site at Cal. Tech.
Sun's Java Technology Home Page
This is a source for lots of information and tools for Java programming.

References

Here are some books other than the textbook that you might find useful. I have one copy of each of them which you can borrow for short periods.
M. Ben-Ari, Principles of Concurrent and Distributed Programming , Prentice Hall, 1990.
This is the "classic" text in this area. It is fairly rigorous (i.e., mathematical) and covers the fundamentals of concurrent programming in a fair amount of detail. Also available in the QEII library, Call no. QA 76.5 B393 1990.
Abraham Silberschatz and Peter B. Galvin, Operating System Concepts, Addison Wesley, 1994.
That's the textbook you used in Operating Systems (Engr. 6863). Some of it may be useful.
David A. Patterson and John L. Hennessy, Computer Architecture: A Quantitative Approach, second edition, Morgan Kaufmann, 1996.
That's the textbook you used in Computer Architecture (Engr. 5863).
Hassan Gomaa, Designing Concurrent, Distributed, and Real-Time Applications with UML, Addison-Wesley, 2000. ISBN 0-201-65793-7.
This is one of the "Object Technology Series" that takes a fairly serious look at applying UML to the kinds of problems that we look at in this course.

back to Dennis Peters' homepage

Last modified: Mon 2002.04.08 at 10:20 NDT by Dennis Peters