Department of Computer Science

CS3411 - Systems Programming
Fall 2014

I'm grading the finals right now!
I hope to be done early this afternoon.


    Dr. David Poplawski
    Email: pop [AT] mtu [DOT] edu
    Phone: 487-2331
    Office: Rekhi 208
    Office Hours: MTWR 11AM-Noon, other times by appointment

Course Content Discussion:

This term we will be using Piazza for course content discussion. The system is highly catered to getting you help fast and efficiently from classmates and/or myself. Rather than emailing questions to me, I request that you post your questions on Piazza.

Please use email for questions that apply to your personally and are clearly of no interest or the business of other students (e.g., grading problems, absence issues, special accomodations). If you send me an email about course content that probably is of interest to all students, I won't answer it. If you aren't sure, then email is ok and I'll let you know if you should re-ask it on Piazza.

Find the CS3411 Piazza class page at:

One groundrule. You can't put actual code for any of the homework assignments in a posting, either in a question or an answer. Doing so is a violation of the Academic Integrity Policy as you are making it possible for another student to get a potential solution without actual doing their own work.


    There is no textbook for this class. However the following books will be on reserve in the library:

    • C: A Reference Manual, Fifth Edition, by Samuel P. Harbison, III and Guy L. Steele, Jr.
    • Advanced Programming in the UNIX Environment, by W. Richard Stevens
    • UNIX Network Programming, Volume 1- Networking APIs: Sockets and XTI, Second Edition, by W. Richard Stevens


      Class Participation 10%
      5 Programming Assignments 60%
      Midterm Exam 15%
      Final Exam 15%

    You must get at least 60 out of 100 points on EVERY programming assignment to pass this course. Your program may be resubmitted at most two times in order to achieve the 60% required to pass the course. Exact due dates for resubmissions will be determined as needed but will usually be within 2-3 days of when the graded program is returned to you in class. Each resubmission will incur a 10% penalty (subtracted AFTER the score on the assignement has been determined). For example, if you get below 60% on the first submission and you resubmit it and get a score of 67 (good enough to pass), the grade for it will be recorded as 67-10 = 57%.

    Class participation is a subjective grade based on my perception on whether you've participated. I will be randomly calling on students during lecture about course content and you're being there and being willing to answer, even if not correctly, counts. It also includes participation on Piazza, either by asking or answering questions.

      Letter grades:
      90-100 A
      85-90 AB
      80-85 B
      75-80 BC
      70-75 C
      65-70 CD
      60-65 D
      <60 F


  • Programing assignments must be submitted by the due date and time indicated on the assignment to receive full credit. Programming assignments can be resubmitted at most two times in order to achieve the 60 points required to pass the course or to improve your score. Each resubmission will incur a 10 point penalty.

  • You must take the final exam at the officially scheduled time. You will not pass the course if you do not take the final exam.

  • If you come to me with a problem meeting a deadline BEFORE it is due I am pretty reasonable about deciding if an excuse is a good one. If you come to me afterwards I'll be very skeptical and will almost certainly require clear, written proof of whatever caused the problem.

  • Michigan Tech complies with all federal and state laws and regulations regarding discrimination, including the Americans with Disabilities Act of 1990. For more information about reasonable accommodation for or equal access to education or services at Michigan Tech, please call the Dean of Students Office, at (906) 487- 2212 or go to


Week Topic Readings
1 Introduction
C Language Review
2 Linking/Loading Links
3 Low Level Input/Output Links
4 Processes Links
5 Signals Links
6 Pipes Links
7 Network I/O Links
8 Process Groups Links
9 Teminal Input/Output Links
10,11 Shell Programming Links
12 Mapping Files to Memory Links
13 Time and Timers Links
14 Catch-Up  

Programming Assignments:

Exam Info and Solutions:

Please send corrections to pop [AT] mtu [DOT] edu.