University of Minnesota
Introduction to Operating Systems

Course Work and Syllabus

Class format:

The class will be conducted in a lecture - recitation format. Lectures will serve to introduce, clarify, and extend the reading materials, but will not necessarily cover all the material in the assigned reading. There will be some time during lecture sessions for questions and discussion. Recitations (Discussion sessions) will be for more specific discussions on reading and lecture materials, hands-on lab exercises, and for discussion of assignments and exams. Regularly attending both lectures and recitations is imperative for most effective learning and to keep up with the course material. In addition, there will be weekly readings from the textbook and external sources specified on the website. You must keep up with these readings to succeed in the class.

Expected workload:

This is a project-oriented class, and you can expect to spend 12-15 hours/week outside of class in readings and assignments.


This course builds on the study of computer system architecture covered in CSci 2021, and assumes a basic knowledge of Unix environment and a good background in C programming.

Textbooks and resources:

All reading assignments will be from Kay A. Robbins and Steven Robbins, UNIX Systems Programming, Prentice-Hall, 2003, or from on-line sources. In addition, supplementary reading material would also be taken from the optional textbook: Operating System Concepts Essentials, 2nd Edition by Silberschatz, Galvin and Gagne.
Note: You could also use Operating System Concepts, 9th Edition by the same authors.

Lecture notes will be made available on the class website before each class meeting as far as possible. You can print the notes if you want a hardcopy.

Office hours and course help:

See the Class information page for details on the Office hours. Besides the instructor, the TAs will also hold office hours, and they should be able to answer most of your questions. You can visit any TA and not just your recitation TA. Professor Chandra will be more than happy to talk with you during his office hours (check the times corresponding to your lecture section), or to exchange emails at any time, but he would prefer that you first address your questions to one of the TAs, or on the discussion forum. The best way to reach Professor Chandra outside of class or office hours is by email. However, in most cases, you are strongly urged to send email to csci4061f19-help - this email id is set to deliver email to the Professor as well as the TAs, and is likely to produce a much quicker response than sending email to any of them alone.

Course website:

The course website will contain up-to-date material such as the schedule, class information, lecture notes, recitation material, references, and weekly reading material.

Class Canvas site:

A Canvas site has been set up for each Lecture section. The site will be used for the discussion forum, assignment releases and submissions, as well as other resources and course announcements.

Discussion forum:

On the class Canvas site (one for each Lecture section) is a discussion forum that may be used for discussion of the labs and topics that arise from the class. The forum can be a very valuable tool, especially to ask questions and provide clarifications about the programming assignments.  But it will only work if you use it appropriately. That means that postings must be relevant to the class, must not ask for or give information that could be considered cheating, and must be respectful. We would encourage you to post questions to the forum only after making an attempt to find a solution yourself first. Moreover, we encourage other students to respond to the questions as far as possible. Professor Chandra and your TAs will monitor the forum regularly and answer questions when there is a real need.

Programming Assignments:

Aside from the required reading, there will be 4 programming assignments (each worth a total of 10 points out of a course total of 100 points). We strongly encourage you to form pairs to do the programming assignments, though you may do them individually if you are unable to find a partner. You can try finding partners in your recitation sections or through the discussion forum. Each pair would need to submit only one copy of each assignment. Both partners will receive the same grade on the assignment. The instructor reserves the right to modify this policy if there are instances of significant free-loading or other abuse in teamwork.

Each assignment must be submitted on-line using the class Canvas site for your lecture section. The online submission would be due by 11:59 pm on the assignment due date. For the online submission, in the directory that you submit, include your code, header files (if any), your build/run script(s) and makefiles, and any necessary test data that was not supplied as part of the assignment. The instructions for building, running, and testing (if needed) your code must be in an additional text file called README. Please make sure to look at the assignment specifications for more detailed submission requirements.

Late submission policy: All assignments submitted online after 11:59pm on the due date that are less than 24 hours late will be penalized 10% of the grade. Assignments submitted more than 24 hours late will not be accepted unless prior arrangements are made for a valid reason (See below for what will be acceptable as a valid reason). Note that each online submission is timestamped with the time of submission. Multiple submissions result in only the last timestamp being retained. Therefore, to avoid losing points, you must make sure you are not updating your assignment after the due date.


There will be 2 mid-term in-class exams and a comprehensive final exam. Each mid-term exam will cover the material for the previous 5-6 weeks, and you will have about 1 hour and 15 minutes (class period length) to write your solutions. These exams will be held during the regular class periods, and each will be worth 15 points out of the total of 100 possible points for the course. The final will be held at the published time, and will be worth 20 points.
Note: Each Lecture Section will have a different exam, so you must ensure you attend the exam in the lecture period you are registered for.

If you must miss an exam, notify the instructor or your TA, preferably by e-mail, before the exam. Acceptable excuses are usually limited to serious health or personal problems, religious needs, or substantial participation in University sanctioned student events. Documentation (such as a doctor's note, event registration/participation letter, etc.) would be required to be excused.

Lab Exercises:

Most recitations will include a lab exercise to be completed and submitted during the discussion period (with a possible take-home component such as an online quiz). Each lab exercise must be submitted individually (not with your project partner). Lab exercises are open resource/open collaboration. This means you may consult the textbook or other sources, and you may discuss lab topics with other members of the class. However, you must complete and submit your own work done individually which reflects your own understanding and effort. The work must be your own and not copied from other students or online sources.

Each lab exercise will be worth 1% of the total course grade. You are required to submit up to 10 exercises (for a maximum of 10% of the grade). No late submissions for Lab Exercises will be accepted. Missing the deadline results in 0 credit.


The final grade will be determined based on the following components:

    Programming assignments 40%
    Mid-term exams 30%
    Final exam 20%
    Lab exercises 10%

Grading is to criterion, not on a curve, so that there is no competition among members of the class. The scale will be as follows:

    [93 --100] A
    [90 -- 93) A-
    [87 -- 90) B+
    [83 -- 87) B
    [80 -- 83) B-
    [75 -- 80) C+
    [70 -- 75) C
    [65 -- 70) C-
    [60 -- 65) D+
    [50 -- 60) D
    [00 -- 50) F

If you have any concerns with your grades on an assignment or mid-term exam, you must get these concerns addressed within a week from receiving the grade. Subsequent requests for regrading will not be entertained. The graded final exams will be handed back on a specific day/time and you must get any concerns on the final exam grading addressed then.

Lecture sections:

Prof. Chandra is teaching both lecture sections (Section 1 and 10) for CSCI 4061. Some aspects of the course (such as the schedule, lecture notes, weekly readings, and programming assignments) will be the same across both sections. Other aspects (Canvas sites, discussion forum, and exams) will be different for each section.

Here are some things to keep in mind. You must attend the lecture and the discussion section that you are registered for. The lecture halls and discussion rooms have limited capacity and we cannot accomodate extra students on a regular basis. It is particularly important to attend the exams for your lecture section, as they will be different across the lectures. For programming assignments, you must find a partner who belongs to your lecture section, though working across discussion sections (corresponding to the same lecture section) is acceptable. You can visit any TA office hours and/or contact any of the TAs (unless you need help from a specific TA). Prof. Chandra has two sets of office hours, one for each lecture section. You are highly encouraged to attend the office hour corresponding to your lecture section as far as possible, especially if you have questions specific to the lecture and/or exams, etc. For email, you are highly encourage to send email to csci4061f19-help, specifying your Lecture section if it's a section-specific question.

Incompletes and withdrawals:

You are permitted to withdraw from this class, without special approval, until the end of Week 8 (Check the University Calendar for exact dates). After that time, approval to withdraw may be granted by the college office only in extraordinary circumstances.

Incompletes will only be given on request, and then only under special circumstances and if you have substantially completed the class. For example, if you were seriously ill during the final exam period, you could request an incomplete. Incompletes must be made up before the middle of the following semester, and as a practical matter, the longer you wait to clear an incomplete, the less likely it is that you would succeed.

Academic conduct and dishonesty:

This class will be conducted according to the Departmental Academic Conduct Policies. This document lays out the general expectations from students and explains the kind of behavior that would be considered scholastic dishonesty. All students must read this document.

Programming assignments are to be done within your groups (you and your project team-member). You may ask for clarifications from others on or off the discussion forum, and with Professor Chandra or with the TAs. You must not seek, provide or accept other assistance on the assignments. In particular, you are not to share code, solutions, or assignment writeups with other students outside your group, or post them online or in any public forum. All the code must be original and should not be copied or derived from the Web or any other sources, such as from students who have taken this course in the past, your programmer friends, third-party contractors, or others.

Providing or receiving information or help about exams from students in your class or from students who have taken another version of the same exam (for example, from another lecture, or if you must take a makeup exam), or use of any unauthorized material during the exams, is cheating.

Lab exercises are open resource/open collaboration. This means you may consult the textbook or other sources, and you may discuss lab topics with other members of the class, but you must do the work yourself and submit your own work done individually. The work must be your own and not copied from other students or online sources.

All instances of academic dishonesty will be dealt with in accordance with University policies. Please read the Syllabus insertion on Student Academic Integrity and Scholastic Dishonesty, which lays out different possible forms of misconduct as well as possible consequences. Note that in all instances of cheating, the student(s) providing as well as receiving unauthorized help will be considered to be equally culpable.

If you are ever doubtful about what may or may not be considered academic dishonesty, please do not hesitate to ask the instructor. The consequences of academic dishonesty can be extremely serious, and you must avoid getting into such situations.

Disability and Mental Health Statement:

The University of Minnesota is committed to providing equitable access to learning opportunities for all students. Disability Services (DS) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations.

If you have, or think you may have, a disability (e.g., mental health, attentional, learning, chronic health, sensory, or physical), please contact DS at 612-626-1333 to arrange a confidential discussion regarding equitable access and reasonable accommodations.

If you are registered with DS and have a current letter requesting reasonable accommodations, we encourage you to contact your instructor early in the semester to review how the accommodations will be applied in the course.

As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating, and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce your ability to participate in daily activities. University of Minnesota services are available to assist you with addressing these and other concerns you may be experiencing. You can learn more about the broad range of confidential mental health services available on campus via