Syllabus

[top]

Description & Goals

This course examines the logical design and programming aspects of operating systems and network communication. Topics covered include processes, threads, synchronization, deadlocks, memory management, virtual memory, file systems, and client-server network programming.

Goals

The overall goal of CSS 503, "Systems Programming" includes:

Prerequisite: 2.7 or better in CSS 502

[top] [top]

Administrivia

Location & Time

Professor: Morris Bernstein

[top]

Textbooks

Operating System Concepts with Java, 8th edition, Avi Silberschatz, Peter Galvin, and Greg Gagne

[top]

Assignments and Grading

Programming Assignment 1 10%
Programming Assignment 2 10%
Programming Assignment 3 10%
Final Project 20%
Midterm 25%
Final 25%
Total 100%

Final grades may be adjusted at the instructor's discretion.

Assignments

Programming assignments should be turned in using catalyst. Submit a zip file (or gzipped tarball) containing:

Assignments are to be handed in by 11:30 pm on the due date. Acceptance of late assignments will be determined on a case-by-case basis.

If a grade is egregiously out of whack with your expectation feel free to ask for another look; with the time limitation on grading, overlooking something is easy to do. Just be aware that reevaluation may cause the grade could go up or down.

[top]

Policies

Live lectures are inherently interactive. Questions during class are encouraged. Please raise your hand to get the instructor's attention. At the instructor's discretion, answers may be tabled until the end of class if they are too far off topic.

Limit computer use during class to note-taking so as to not distract or disturb your classmates or your instructor. Since a large part of the presentation involves diagrams, it may be more convenient to turn off the computer and take notes the old fashioned way. Quill pens are optional.

Flash photography is not permitted. Non-flash photography to capture the white board will be permitted as long as it is not disruptive or distracting. Don't even think about video.

Silence your cell phones.

If you arrive late or have to leave in the middle of class, do so quietly without causing disruption.

The assignments and project are to be done independently unless otherwise indicated. Their purpose is to help you understand technical material. By all means, do discuss the problem statement with each other and help debug, but do your own design and coding. See the student honor code.

If collusion or other forms of plagiarism is suspected, I will discuss it with the indivdual(s) first, but paperwork has be filed. Please don't force me to have to deal with that kind of crap; they really don't pay me enough.

Simple email questions may get a response. Complex questions are best saved for office hours.

Special-needs students:

To request academic accommodations due to a disability, please contact Disabled Student Services (DSS) at 425.352.5307, 425.352.5303 TDD, 425.352.5455 FAX, or at dss@uwb.edu. You will need to provide documentation of your disability as part of the review process prior to receiving any accommodations (by the third week of the quarter).
[top]

Tentative Schedule

Subject to change as the quarter progresses.

Week Date Lecture # Topic Assignment
1 Mar 31 1 Introduction
Apr 2 2 OS Structures
2 Apr 7 3 Processes Lab #1 (Apr 9 in class @ UW1-320)
Apr 9 4 Lab #1
3 Apr 14 5 Processes (cont.)
Apr 16 6 Threads
4 Apr 21 7 Threads (cont.) Assignment #1 due (Apr 22)
Lab #2 (Apr 23)
Apr 23 8 Process Synchronization
5 Apr 28 9 Deadlocks
Apr 30 10 File System Interface
6 May 5 11 File System Implementation Assignment #2 due (May 9)
Lab #3 (Sunday May 11)
May 7 12 Midterm
7 May 12 13 File System Implementation (cont.)
May 14 14 Distributed Systems
8 May 19 15 Distributed Systems (cont.) Assignment #3 due (May 23)
Lab #4 (May 21)
May 21 16 Communication in Client-Server Systems
9 May 26 17 Memorial Day (no class)
May 28 18 Main Memory
10 Jun 2 19 Virtual Memory Final Project due (June 6)
Jun 4 20 Virtual Memory (cont.)
11 Jun 9 Final Exam