WPI Worcester Polytechnic Institute

Computer Science Department

3013 Detailed Information


Time and Place

Day: M,T,Th,F

Time: 9:00am - 9:50am

Place: Higgins Lab 218


This is an introductory course in the design of operating systems. It covers principles, design decisions, design techniques, policies, and mechanisms. The course focuses on the design of general-purpose multiprogramming systems and covers processes, resource allocation, concurrency, memory management, time management, synchronization, mutual exclusion and possibly file systems and some distributed systems issues. The goals are 1) to acquaint students with the components of a structured operating system, 2) to show students abstractions underlying design choices, tradeoffs, and their consequences, and 3) to give students "hands on" experience with operating systems and related applications.


Knowledge of C. Working knowledge of common data structures such as stacks, queues, and linked lists. An interest in learning about operating systems. Recommended background CS courses are: CS2011 and CS2005.



Good References:

Grading Policy

Final grades will be computed as follows:

Grading policy for each project and homework will be provided at the time of the assignment. In general, each assignment will have a basic objective for the majority of the assignment points. There may be an extended objective for demonstrating additional work and understanding.

Final grades will reflect the extent to which you have demonstrated understanding of the material, and completed the assigned projects. The base level grade will be a "B" which indicates that the basic objectives on assignments and exams have been met. A grade of "A" will indicate significant achievement beyond the basic objectives and a grade of "C" will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances. Similarly, no makeup exams will be given unless there exist exceptional, extenuating circumstances.

Programming Projects

There will be 3-4 programming assignments with the first one or two of these assignments also serving as an introduction to writing programs in the Unix environment. The intent is to familiarize the student with the Unix system, its editor, debuggers, etc. C and Unix will NOT be taught as part of this course. System calls and other aspects of Unix will be introduced as the course progresses and programming projects are assigned.

Written Homeworks

There will be about 5 short homework assignments for which you must provide written answers. They are not a large portion of your grade for this class, but they do help be sure you understand some of the fundamental operating system concepts that you cannot learn through just programming. Homeworks are to be turned in individually. Discussion of problems among students is encouraged, but when it comes to ultimately solving the problem, your answers must be your own.


There will be two in-class exams (including a final exam during the last week). There is a remote possibility of a pop quiz for which no advance notice will be provided. Exams will be closed book and closed notes. The majority of each exam will cover basic ideas and objectives of the class with a few questions testing additional understanding and insight.

Late Policy

Late programs and homeworks will be be penalized 10% of total assignment value per day (with the weekend counting as one day) or partial day, and no assignments will be accepted after seven days beyond the due date. All programs and written homeworks are due at the start of class on the due date. Homeworks and programs turned in after the start of class will be counted late. Projects will be submitted as directed in class. Exceptions to these rules can be made only beforehand.


Cheating ... don't do it. Cheating, either by taking credit for work you did not do or getting unauthorized help on homework or exams, is a serious offense. Punishment is in an automatic NR for the course. Note, discussion among students and even sanctioned group work is encouraged, but blatant copying of homework or code is not allowed. When in doubt, ask!

Computer Systems and Labs

There is no specific CS laboratory assigned for this course. Historically, the Systems Lab (FLA25) has been used for this course and it continues to be used by upper-level CS students. Students may use this lab or any other CCC or CS supported lab for doing programming assignments. The course requirement is that all assignments must be done in C under a Unix-like operating system. However, your programs must compile and run on the CCC machines as that is where they will be graded.

Return to the CS3013 Home Page