Syllabus for CS537-2 Spring 2012

Welcome!

Welcome to Operating Systems! This is an exciting part of Computer Science and an active area of research. In this course, we'll cover a variety of topics including operating system structure, process and thread scheduling, synchronization, concurrency, memory management, resource management, file systems, and storage.

Prerequisites: This course assumes previous material covered in CS 354 and 367. Additionally, all programming assignments will be done in the C programming language. If you are unfamiliar with C, you may find some of the assignments more challenging than intended; please come talk with me if you have concerns about your background knowledge.

Course Staff

Instructor: Emily Jacobson
Email: jacobson [at] cs.wisc.edu
Office: 7358 CS
Office Hours: Tuesday, 4pm-5pm, Wednesday & Friday, 10am-11:30am, and by appointment.
You are welcome to drop by my office at other times; if my door is open, I'll likely be happy to chat. You may also email me to set up an alternate meeting time.

Teaching Assistant: Collin Engstrom
Email: engstrom [at] cs.wisc.edu
Office: 5364 CS
Office Hours: Monday 2-3pm, Wednesday 2:30-3:30pm, and by appointment.

Course Meetings

Lecture: T/Th 1:00-2:15 in Engineering 3032
Discussion: W 1:20-2:10 in Psychology 103

This course meets three times a week, for two lectures and one discussion section. Attendance is mandatory, including for the discussion section. The lecture slots will be used for a mixture of lecture and small group activity; discussion sections will be used for weekly quizzes, supplemental material, and to discuss project assignments.

The schedule will list topics to be covered in each class, along with any associated readings. You should read the text prior to lecture.

Course Objectives

This course covers a wide range of material. You can expect to leave this class with the following:

  • Understanding of abstractions provided by an operating system and interactions between them, including:
    • Processes, threads, context switching, scheduling
    • Concurrency and synchronization primitives
    • Memory hierarchy, virtual memory, and addressing
    • Persistent storage, file system organization, and various file system
  • Experience with the C programming language
  • Experience with project organization, including header files, Makefiles, and version control

Materials

All course content will be posted to the course website, http://www.cs.wisc.edu/~cs537-2. You should check the course website frequently for announcements (also described below).

For this course, we'll be using a free textbook developed here at UW:

Operating Systems: Four Easy Pieces
Andrea C. Arpaci-Dusseau and Remzi H. Arpaci-Dusseau
Available at http://pages.cs.wisc.edu/~remzi/OSFEP

For our programming assigments, we'll be using the C programming language. If you don't already own a C reference book, I'd recommend a classic:

C Programming Language
Kernighan and Ritchie, 2nd Edition, ISBN 0-13-110362-8

Announcements

Important announcements will be posted to the course website and sent to the class mailing list compsci537-2-s12@lists.wisc.edu. Please check these frequently; you are responsible for the information in these announcements. Also note that the class list sends to your .wisc account, not your CS account.

Assignments

Throughout the semester, you will complete a series of programming assignments to familiarize you with OS concepts. Details and due date information will be provided when each assigment is distributed. The first two projects (P0 and P1) will be completed individually; the remainder of the projects will be completed in groups of two or three. Students will choose their own groups. I can also help students find project partners. Programming assignments make up 40% of your grade.

Late Days: You each have 3 late days to use over the course of the semester. Late days are 24 hour days. You may use these late days on separate assignments, or combine them for one assignment. After you have used up your late days, no late assignments will be accepted. If you have a serious personal emergency that will prevent you from turning in an assigment on time, please contact me; we may be able to make alternative arrangments (at the instructor's discretion). Late days cannot be used on any assignment due during the last week of classes.

There will also be several problem sets. These problems are optional but serve as good practice problems for quizzes and the final. It is in your best interest to complete them and ask questions; the quizzes and final exam will likely be challenging if you have not worked through the problems. Both the TA and I will be happy to answer questions and look over homework solutions.

Quizzes and Exams

We will have quizzes and a final exam in this course. Both the quizzes and the final exam will be closed-book and will explore all material covered prior.

Quizzes will occur during the discussion section and are indicated on the schedule. Quizzes make up 30% of your grade. We will drop your lowest quiz grade.

The final will be on Sunday, May 13, from 12:25pm - 2:25pm. The final exam will make up 30% of your grade.

Grades

My goal is for everyone in this course to demonstrate mastery of the material we cover. I do not curve grades; I would be pleased if you all do well. Grades will be posted on Learn@UW.

Programming Assignments 40%
Quizzes 30%
Final Exam 30%

Programming assignments will be completed in small groups (2-3), except for P0 and P1. For project P1, all code you turn in should be your original work. For projects P2 and later, you may chat with other groups about the design process, but you may not share code or algorithms. All code you turn in must be the original work of your group. Quizzes and the final exam will be individual; there should be no communication between students during these assessments. Submitting someone else's work as your own is academic misconduct.

If you have any questions about what is and is not a permissable activity, please ask me first. Cheating and plagiarism will be dealt with in accordance with University of Wisconsin policies and procedures (Academic Misconduct Guide for Students). Consequences for cheating include receiving a 0 on the assignment or in the course; an academic misconduct notation will also appear on your transcript.

Extra Credit

To encourage students to ask questions and to provide an opportunity to earn additional points, I will provide an extra credit opportunity for students. Each Monday (by 5pm), I encourage you to email me one or more thoughtful questions relating to the previous week's material. (Please include "537 Extra Credit" in the subject.) Questions can be about a topic you didn't fully understand or about a topic in which you are interested in learning more. I'll try to answer a sampling of these questions during discussion section on Wednesday.

These questions are useful feedback for me to guage understanding of and interest in course material. To encourage these questions, you will receive 1 extra point to be added onto your final grade for each week you submit a question. Over the course of the semester, you can accumulate 14 extra credit points!

If you do not think you have any questions from the previous week's material, I will also post a discussion question that you can answer instead. These questions will be posted here by the previous Friday at 5pm. You must explain your answer (and show your work, when applicable) to receive credit.

Computing Facilities

For this course, we will use the Linux workstations located in the king and mumble labs on the first floor of Computer Sciences. All students registered for this class should have an account; please contact the CSL if you do not.

It is also possible to complete the assignments on your personal computer; you must have the proper compilers and libraries installed. We will grade your projects on a CSL workstation, so you should verify that your code works as expected on a CSL machine prior to turning it in.

Cell Phones and Laptops

Cell phones need to remain turned off during class. You may take notes on a laptop during class, but please respect me (and your fellow classmates) by only using your laptop for note-taking activites. If your laptop use is distracting, I will ask you to stop bringing it to class.

Special Learning Needs

We want to fully include persons with disabilities in this course. If you have special circumstances that you believe may affect your performance in this class, please let me know was soon as possible; you should also contact the McBurney Disability Resource Center (www.mcburney.wisc.edu). We will work together to ensure you are able to fully participate.

Last modified: 2012-02-02 @ 17:25