CS3331 Concurrent Computing
Course Information Page
Fall 2017

Course Instructor    Dr. C.-K. Shene
Office Rekhi 305
Class Meeting Monday and Wednesday 16:35 - 17:50
Classroom Fisher 325
Office Hour Monday and Wednesday 15:30 - 16:30
Phone (906) 487-3392
e-mail shene@mtu.edu


Click here to see the most recent announcements (November 11, 2017)
Click here to see the most recent ThreadMentor FAQ (October 23, 2006)
Click here for the most recent grade posting (November 11, 2017)

Some Important Advises

Catalog Description

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 Credits, etc.

Credits: 3.0, Lec-Rec-Lab: (0-3-0), Semesters Offered: Fall, Spring

Course Prerequisites

CS 1142 or (CS1141 and CS1040) and CS2311 and CS2321

Course Objectives and Learning Outcomes

  1. Know the basics of concurrent computing
  2. Understand the importance of race conditions and the impact on synchronization and hence mutual exclusion
  3. Learn to argue and prove the correctness of simple mutual exclusion based algorithms
  4. Be able to use modern synchronization primitives in your programs
  5. Learn to find race conditions and avoid deadlocks

Topics Covered

  1. Basic systems concepts important to concurrent computing
  2. Multi-process and multithreaded programming basics
  3. Race conditions, critical sections, and synchronization
  4. Pure software and hardware solutions and proof techniques for mutual exclusion
  5. Synchronization primitives (i.e., semaphores, mutex locks, monitors of Hoare and Mesa types, basic message passing)
  6. Deadlocks and livelocks
  7. Survey of some languages (e.g., Java and Ada) and libraries (e.g., Pthreads)

Textbook

There is no suitable textbook for this course. All slides used in class and supporting materials are available:

Check the /classes/cs3331.ck/common directory or this page frequently for new slides and other available stuffs.

Other Useful Materials

Make your program
Multithreaded Programming with ThreadMentor
Solaris multithreaded programming
Unix Multiprocess Programming
Signals
Non-Local GOTO: setjmp() and longjmp()

Meeting Time and Office Hours


Monday Tuesday Wednesday Thursday Friday
13:05 - 13:55
Dept. Meeting


14:05-14:55




15:05-15:30



Department
Seminar
15:30-16:00 Office Hour
Rekhi 305


Office Hour
Rekhi 305

16:00-16:30


16:35-17:50 CS3331
Fisher 325

CS3331
Fisher 325


After class and e-mail discussions are welcome

Course Syllabus

No. of Weeks Course Topics
1 Basics
1 Hardware and OS Stuffs
3 Processes 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

Important Dates

The following is a list of important dates. The exam dates are fixed and will not change; however, programming assignment due dates may be modified based on the course pace. Changes will be announced in class and on the info page.

Week 4 September 29 Friday 11pm Program 1 due
Week 6 October 11 Wednesday in class Exam 1 (50 min)
Week 7 October 20 Friday 11pm Program 2 due
Week 9 November 3 Friday 11pm Program 3 due
Week 10 November 8 Wednesday in class Exam 2 (50 min)
Week 11 November 17 Friday 11pm Program 4 due
Week 13 December 8 Friday 11pm Program 5 due
Week 14 December 15 Friday 11pm Program 6 due
Final Week December 18 Monday 5:30-7:30pm Final (2 hours)
Fisher 325
Date/Time changes will be announced in class.
Usually, I will follow the schedule shown above.

Weights Assigned to Programs

We will have maximum six programming assignments.

Program 1 Program 2 Program 3 Program 4 Program 5 Program 6
50 100 50 100 100 70

Weights Assigned to Exams

Exam 1 Exam 2 Final
100 100 200

Note that quizzes are not listed above. Pop quizzes will take place when I see they are needed. Pop 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.

Grading

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%). 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%).

Late Policy

No late programming assignments will be graded, except that you have a valid excuse.

Collaboration and Cheating

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 Resource Center for more details.

Exams and Final

You are responsible for avoiding exam time conflicts!!

ADA

``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. Bonnie B. Gorman, 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:

Other Useful Information

Downloadable Stuffs

Files are in HTML or PDF format.

Programming Information
Programming Assignment I
Programming Assignment II
Programming Assignment III
Programming Assignment IV

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


You are visitor since January 16, 2011
Last update: August 30, 2017


Please send comments and suggestions to shene@mtu.edu