Course Information (Fall 2013)
 
Instructor Details: Dr. Tracy Camp
Office: Brown 310C
Phone: 303/384-2184
Email: tcamp --AT-- mines --DOT-- edu
Office Hours: 3:15-4:00pm Tues/Thurs
       Other hours available by appointment.
Teaching Assistant: Han B. Tran
Email: hatran --AT-- mymail --DOT-- mines --DOT-- edu
Office Hours in BB136: 10am-noon Mondays (likely)
              10am-noon Wednesdays (guaranteed)
Course Details: Prerequisites: CSCI 262 and CSCI 341
       The prereqs for this course will be enforced.
Time: 2-3:15pm Tues/Thurs
Location: Brown W210
Course URLs: CSCI 442 Home: http://eecs.mines.edu/Courses/csci442/
Discussion Board : http://piazza.com/
Textbook Web Site: http://WilliamStallings.com/OperatingSystems/
Required Textbook: Operating Systems: Internals and Design Principles, 7th Edition (2011), by William Stallings, Prentice Hall (ISBN: 978-0-13-230998-1).
Course Description: This course introduces the essential concepts in the design and implementation of operating systems: what they can do, what they contain, and how they are implemented. Despite rapid OS growth and development, the fundamental concepts learned in this course will endure. We will cover the following high-level OS topics, roughly in this order:
  • Computer/OS Overview
  • Processes
  • Processor Scheduling
  • Memory Management
  • Virtual Memory
  • Threads
  • Process/Threads Synchronization
Required Work

This will be an intense yet rewarding course. There will be FIVE programming projects based on the implementation side of the course and EIGHT homework assignments based on the analytic side. One (or two) of the programming projects might require working in groups of size three or four. All other work is to be completed individually.

Submit programming projects by 11:59pm on the due date. Submit paper copies of homework assignments at the start of class on the due date. Always turn in something rather than nothing. Nothing earns you zero points; something earns you partial points.

In addition to the programming projects and homework assignments, we will have a midterm exam and a final exam. Both exams will be closed book and closed notes. The final exam will cover the entire semester's work, with a bit more emphasis on the 2nd half. Participation in the course throughout the semester is also required work.

 
Student Evaluation

There are a total of 2000 points possible for this course. Grades will be assigned on the following basis.

Programming Projects Homework Assignments Midterm Exam Final Exam Course Participation
800 points
40%*
150 points
7.5%
300 points
15%
600 points
30%
150 points
7.5%+
        * some projects will be worth more than others
        + participation online counts

NOTE: You must pass (60% or higher) the programming
projects and final exam to pass this course. If you do not meet these requirements, you will receive an F for the course.

Late work: Each student is allocated five slip days for the programming assignments, which gives students some flexibility in managing their workload. Weekends count two days. (Each group member uses a slip day for each day the assignment is submitted after its due date, if the assignment is completed as a group.) No slip dates are allocated for the homework assignments.

Late assignments (programming or homework) lose 10% per day, except for extenuating circumstances. To do well in this course, you need to keep up with the class discussions and homework assignments.

Attendance: To emphasize the importance of attendance, 7.5% of your grade will be based on attendance and participation in class and online. I expect students to attend all classes. Your attendance is important for several reasons:

  • Coverage of material that is not in the textbook.
  • Participation in active learning, where we all learn from each other.
  • Participation in class discussions, where I learn from you.

NOTE: All students should become familiar with CSM's policy regarding the make-up of work missed due to excused absences (see Bulletin).

Tentative Course Schedule

         2 weeks: Introduction and Background (Chapters 1 and 2)
         2 weeks: Describing and Controlling Processes (Chapter 3)
         2 weeks: Scheduling Processes (Chapter 9)
         1 week: Exam I
         3 weeks: Memory (Chapters 7 and 8)
         1 weeks: Describing, Controlling, and Scheduling Threads (Chapter 4)
         2 weeks: Concurrency and Synchronization (Chapter 5)
Maintenance/Legal Clause
  • This syllabus is subject to change; if a change occurs, you will be notified.
  • This syllabus is not a legal document; common sense rules always apply, e.g., no late assignments will be accepted after the solutions are given in class.
Department Academic Integrity Pledge

Read the pledge below; it is based on the Student Honor Code passed by the ASCSM.

I pledge to uphold the high standards of academic ethics and integrity expressed by the Colorado School of Mines Student Honor Code by which I am bound. In particular, "I will not misrepresent the work of others as my own, nor will I give or receive unauthorized assistance in the performance of academic coursework". I understand that my instructor will report any infraction of academic integrity to the Department Head and that any such matter will be investigated and prosecuted fully.

Department Policy for Programming Projects

The following policy exists for all CS courses in the EECS department. This policy is a minimum standard; your instructor may decide to augment this policy.
  1. If the project is an individual effort project, you are not allowed to give code you have developed to another student or use code provided by another student. If the project is a group project, you are only allowed to share code with your group members.
  2. You are encouraged to discuss programming projects with other students in the class, as long as the following rules are followed:
    1. You view another student's code only for the purpose of offering/receiving debugging assistance. Students can only give advice on what problems to look for; they cannot debug your code for you. All changes to your code must be made by you.
    2. Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical or otherwise] of the discussion.
  3. Any material from any outside source such as books, projects, and in particular, from the Web, should be properly referenced and should only be used if specifically allowed for the assignment.
  4. If you are aware of students violating this policy, you are encouraged to inform the professor of the course. Violating this policy will be treated as an academic misconduct for all students involved. See the Student Handbook for details on academic dishonesty.


                   All projects for CSCI 442 are to be individual
                       efforts unless explicitly stated otherwise.