CSCI 3753:  Operating Systems

Spring 2015

Department of Computer Science, University of Colorado at Boulder


Course Summary

This course introduces students to important Operating Systems concepts. The course will cover key aspects of how an operating systems functions on a modern computer.  The following major topics will be covered:
In addition, the class will gain familiarity with important software tools such as debuggers, compilers, editors, kernel modules, and virtual machines.

General Information

See the Moodle class Web page at

Schedule & Location: Tues, Thurs 11:00-12:15 pm, ECCR 1B40
Course number: CSCI 3753.  See also the registrar's Web site.
Prerequisites: CSCI 2400.
Instructor: Professor Rick Han,
Office: ECCR 1B05F
Office Hours: Tuesdays 1:30-2:30 pm and Wednesdays 2-3 pm  in my office (call my office phone to be let in).  Additional appointments as needed.
Phone: 303-492-0914

Other useful (optional) references:

TAs: Mohammad Hashemi and Rahat Rafiq
TA Office/Hours:  Weekly recitation sections, and more as needed.  See moodle for announcements.
TA Email:,

class Web site:
See the Moodle class Web page at http://moodle.cs.colorado.eduAssignments, lecture slides, and announcements can be found there.  The moodle has a variety of useful features, including a forum for posting questions.  Each student should establish an account on the moodle and then subscribe to our class on the moodle using the special enrollment key given out in class.

CSEL Accounts:
The Computer Science department maintains the Computer Science Educational Labs (CSEL) in the first floor of the ECCS Wing of the Engineering Center.  The CSEL consists of a cluster of primarily Linux machines.  It is a convenient facility for doing your programming assignments.  You may sign up for an account in the CSEL by going to the general CSEL Web site and following the instructions there to sign up for an account.  This will also give you Buff One card key access to the CSEL.

Class VM:
For some assignments, you may need a VM.  When needed, instructions for downloading and installing the VM will be posted on the moodle and gone over in the appropriate recitations.


25% Final Exam
15% Midterm
50% Programming Assignments
10% Problem Sets

Grading for Programming Assignments:

Grading for programming assignments (PAs) will be based on interview-style grading, where about 40% of the grade will be based on the code submitted (does it compile, does it execute the required functions) and about 60% of the grade will be based on answering questions from the TA in the interview (questions may be based on explaining the code and/or explaining software concepts that the PAs cover), unless otherwise noted.

Teams: Students may work in teams of up to two, but each student will still be responsible for scheduling their own grading meeting with the TA for each PA. 

Code: Programming assignments must be submitted by uploading them to the moodle class Web page by their due date, unless otherwise noted.  All PAs must be written in C and compiled for execution in the specified environment for that PA, unless otherwise noted.  The late policy for submitting PAs is as follows: maximum 30 points out of 40 on the code grading portion of the assignment if submitted within 24 hours of the due date.  If you submit your assignment over 24 hours after the due date, we reserve the right to assign you a zero for the code portion of the assignment.  We highly encourage you to submit even partially completed programs for partial credit.  Extensions will not be granted except at the instructor's discretion in documented cases of excused absences (extreme hardship, emergencies, etc.).

Interview: Each student must arrange an individual grading interview with a TA for each PA, even if they are part of a team.  Interview time slots will be posted on the moodle.  You may bring your own laptop to these grading sessions to demonstrate your program to the TA and answer questions.  Even if your PA code is submitted in time, you must attend your grading meeting to be given a grade for the interview portion of the PA. Any missed meetings (without notifying your TA ahead of time with a suitable reason) may result in a zero grade for the interview portion of the assignment.  The TA is under no obligation to reschedule your appointment if you miss your meeting, so write down your meeting times, and don't forget them!

All programming assignments should be your original work, unless otherwise noted.  You may help others only to the extent of answering typical questions that arise during compiling, debugging, and executing your programming assignments.  The code that you write should be your own (or your team's own).  Remember that plagiarism only hurts you and is not an excuse that Google accepts during your Google inteview when you can't explain fundamental OS concepts!

Grading for Problem Sets:

All problem sets must be submitted by the deadline.  No late submissions are allowed except in documented excused cases.

Plagiarism policy.

Additional Policies:

Disability Policy

Religious Observances Policy

Discrimination and Sexual Harassment Policy

Classroom Behavior Policy