| Course Instructor | Dr. C.-K. Shene | |
| Office | Rekhi 305 | |
| Class Meeting | Monday, Wednesday and Friday 14:05 - 14:55 | |
| Classroom | Fisher 326 | |
| Office Hour | Monday and Wednesday 15:05 - 15:55 | |
| Phone | (906) 487-3392 | |
| shene@mtu.edu |
This course will discuss concepts and techniques in concurrent computing. Major topics include: processes and threads, mutual exclusion, semaphores, monitors and condition synchronization, deadlock, safety and liveness, message passing, and concurrent architectures. Course prerequisite are CS 1141 and CS2311 and CS2321.
There is no suitable textbook for this course. All slides used in class and supporting materials are available in the common directory: /classes/cs3331.ck/common. Slides are also available here, if you prefer web acess; however, software tools and programs are only available in the common directory. Check this directory frequently for new slides and other available stuffs.
Make your program
Multithreaded Programming with
ThreadMentor
Solaris multithreaded programming
Unix Multiprocess Programming
Signals
Non-Local GOTO:
setjmp()
and
longjmp()
| |
Monday | Tuesday | Wednesday | Thursday | Friday |
| 13:05 - 13:55 | |
Dept. Meeting | |
|
|
| 14:05-14:55 |
CS3331 Fisher 326 |
|
CS3331 Fisher 326 |
|
CS3331 Fisher 326 |
| 15:05-15:55 |
Office Hour Rekhi 305 |
|
Office Hour Rekhi 305 |
|
Department Seminar |
| 16:05-17:20 |
CS5611 Rekhi 101 |
|
CS5611 Rekhi 101 |
|
|
| No. of Weeks | Course Topics | |
| 1 | Basics | |
| 1 | Hardware and OS Stuffs | |
| 3 | Process and Threads | |
| 1 | Critical Sections and Mutual Exclusion | |
| 5 | Synchronization | Mutex Locks |
| Semaphores | ||
| Monitors | ||
| Message Passing | ||
| Race Conditions and Livelock/Deadlock | ||
| 2 | Programming Language and System Supports | |
| 1 | Other Topics | |
| Week 4 | February 3 | Friday | 11pm | Program 1 due |
| Week 6 | February 17 | Friday | in class | Exam 1 (50 min) |
| Week 7 | February 24 | Friday | 11pm | Program 2 due |
| Week 9 | March 16 | Friday | 11pm | Program 3 due |
| Week 10 | March 23 | Friday | in class | Exam 2 (50 min) |
| Week 11 | March 30 | Friday | 11pm | Program 4 due |
| Week 13 | April 13 | Friday | 11pm | Program 5 due |
| Week 14 | April 20 | Friday | 11pm | Program 6 due |
| Final Week | April 23 | Monday | 3-5pm | Final (2 hours)
Fisher 326 |
| Program 1 | Program 2 | Program 3 | Program 4 | Program 5 | Program 6 |
| 50 | 100 | 50 | 100 | 100 | 70 |
| Exam 1 | Exam 2 | Final |
| 100 | 100 | 200 |
Note that quizzes are not listed above. Quizzes will take place when I see they are needed. Quizzes are always short exams testing if you have acquired the most basic knowledge of each topic. As a result, they usually take place about one week after a major topic is completely discussed. However, it does not mean every topic will have a quiz.
The theory part has two midterm exams and some quizzes. The sum of the scores you will obtain has a 50% weight. The programming part has five to six assignments, depending on our progress. The sum of the scores you will obtain constitutes the other 50%. Grading will be based approximately on the scale shown in the table below.
| Grade | A | AB | B | BC | C | CD | D | F |
| Scale | 90-100% | 85-89% | 80-84% | 75-79% | 70-74% | 65-69% | 60-64% | 0-59% |
In addition, you will not receive a passing grade in the course unless you receive a passing grade on the exams alone (i.e., 60% or 300 points). Likewise, you will not receive a passing grade in the course unless you receive a passing grade on the programming assignments alone (i.e., 60% or 258 points).
No late programming assignments will be graded, except that you have a valid excuse.
No assignment-specific assistance should be given nor received on any programming assignment. Any outside help concerning the use of the computer facilities is acceptable. You may discuss the meaning or intent of an assignment, but not ways to program it. All work turned in must be completely your own. You must not share code or even outlines! Any and all use of programs from other texts or references must be explicitly stated as part of program documentation. In general, any acts of plagiarism will result in a failing grade for the course along with the submission of a report to the Dean of Students. See the hand-out on Computer Science Policy on Cheating and Academic Integrity Policy for more details.
``MTU complies with all federal and state laws and regulations regarding discrimination, including the Americans with Disability Act of 1990 (ADA). If you have a disability and need a reasonable accommodation for equal access to education or services at MTU, please call Dr. Gloria Melton, Dean of Students, (2212). For other concerns about discrimination, you may contact your advisor, department head, or the Affirmative Action Office (3310).''
The following two web sites may provide you with more information:
Programming Information
Programming Assignment I
Programming Assignment II
Programming Assignment III
Programming Assignment IV
Programming Assignment V
Programming Assignment VI
Exam Information
Exam 1 Solutions (PDF file)
Exam 2 Solutions (PDF file)
Reading Lists
| Week 1 | Week 2 | Week 3 | Week 4 | Week 5 | Week 6 | Week 7 |
| Week 8 | Week 9 | Week 10 | Week 11 | Week 12 | Week 13 | Week 14 |