\documentclass[11pt, twoside]{article}
\usepackage{html}

%begin{latexonly}
\ifx\pdfcompresslevel\undefined
%end{latexonly}
%begin{latexonly}
\else
  \pdfcompresslevel=9
\fi
%end{latexonly}

\newcommand{\crn}{91246}
\newcommand{\gta}{Surya Kodukula}
\newcommand{\gtaoffice}{McBryde 133}
\newcommand{\gtahours}{\tbd}
\newcommand{\gtaemail}{kkiran@csgrad.cs.vt.edu}
\newcommand{\meetings}{11:00--12:15, McBryde 126, Tuesday and Thursday}
\newcommand{\examtime}{1:05--3:05, Monday, December 11, 2000}

\newcommand{\coursenumber}{CS 3204}
\newcommand{\coursetitle}{Operating Systems}
\newcommand{\courseurl}{http://courses.cs.vt.edu/\~{}cs3204/fall2000/struble}
\newcommand{\syllabusurl}{\courseurl/syllabus/syllabus}
\newcommand{\thisdocdate}{August 21, 2000}
\newcommand{\doctitle}{Syllabus\\%
\coursenumber: \coursetitle}
\newcommand{\term}{Fall, 2000}
\newcommand{\myhours}{4:00--5:00 Monday and Thursday, 3:00--5:00 Wednesday, and by appointment}
\newcommand{\phone}{231-5914}
\newcommand{\tbd}{To Be Determined}

%begin{latexonly}
\newcommand{\firstpageheading}[1]{
\vbox to 0pt{\vskip -#1
\hbox to \hsize{\sl \vbox to 8.5pt{}\coursenumber\ --- \coursetitle%
\hfill\thisdocdate\hfill \rm 1}\vss}
\nointerlineskip
\vspace*{-15pt}
}

\pagestyle{myheadings}
\markboth{\hfill\thisdocdate\hfill\coursenumber\ --- \coursetitle}%
{\coursenumber\ --- \coursetitle\hfill\thisdocdate\hfill}
%end{latexonly}

\addtolength{\textwidth}{1.60in}
\addtolength{\textheight}{1.40in}
\addtolength{\evensidemargin}{-1.25in}
\addtolength{\oddsidemargin}{-0.25in}
\addtolength{\topmargin}{-.70in}

% define environment for a topic

\newlength{\topicwidth}
\setlength{\topicwidth}{4.0in}

\newcommand{\topicrule}{\rule[-9pt]{0pt}{10pt}}

\newenvironment{topic}{\begin{minipage}[t]{\topicwidth}
\raggedright}
{\topicrule\end{minipage}}

\begin{document}

\begin{htmlonly} 
\bodytext{BGCOLOR="#FFFFFF"}
\end{htmlonly}

%begin{latexonly}
\firstpageheading{50pt}
%end{latexonly}

\thispagestyle{empty}

\begin{center}
\LARGE\bf\doctitle\\
\medskip
\Large\bf \term\\
\medskip
CRN: \crn\\
\medskip
\htmladdnormallink{\courseurl}{\courseurl}
\end{center}

\begin{htmlonly}
This document is available in four formats at the following Uniform
Resource Locators.
\begin{enumerate}
\item \LaTeX original
\begin{itemize}
\item \htmladdnormallink{\syllabusurl.tex}{\syllabusurl.tex}
\end{itemize}

\item HTML derived from \htmladdnormallink{\LaTeX
    original}{\syllabusurl.tex} 
- this is the version you are currently viewing.
\begin{itemize}
\item \htmladdnormallink{\syllabusurl.html}{\syllabusurl.html}
\end{itemize}

\item PostScript derived from \htmladdnormallink{\LaTeX original}{\syllabusurl.tex}
\begin{itemize}
\item \htmladdnormallink{\syllabusurl.ps}{\syllabusurl.ps}
\end{itemize}

\item PDF derived from \htmladdnormallink{\LaTeX original}{\syllabusurl.tex}
\begin{itemize}
\item \htmladdnormallink{\syllabusurl.pdf}{\syllabusurl.pdf}
\end{itemize}
\end{enumerate}

\end{htmlonly}

% Instructor and TA information
\section*{Instructor:\ \ Craig Struble}
\begin{tabular}{ll}
\textbf{Office:} & McBryde 521\\
\textbf{Office Hours:} & \myhours \\
\textbf{Email:} &
\htmladdnormallink{cstruble@vt.edu}{mailto:cstruble@vt.edu} \\
\textbf{Phone:} & \phone
\end{tabular}

\section*{GTA:\ \ \gta}
\begin{tabular}{ll}
\textbf{Office:} & \gtaoffice \\
\textbf{Office Hours:} & \gtahours \\
\textbf{Email:} &
\htmladdnormallink{\gtaemail}{mailto:\gtaemail}\\
\end{tabular}

\section*{Class Meets:\ \ \meetings}

\section*{Final Exam:\ \ \examtime}

\section*{Prerequisites}
\begin{itemize}
\setlength{\itemsep}{0pt}
\item Passed \textit{ECPE 2504 Introduction to Computer Engineering}
\item CS majors and minors passed \textit{CS 2604 Data Structures} $\geq$ C
\item ECPE majors passed \textit{CS 2604 Data Structures} $\geq$ C-
\end{itemize}
There will be \textbf{NO} exceptions.

\section*{Description}

This course covers both theoretical and practical issues underlying
operating system design and implementation. Lectures focus primarily
on theoretical and conceptual aspects of operating systems. Programming
projects focus on the application of concepts and implementation details.

\section*{Textbook}

\subsection*{Required}
\noindent Nutt, Gary, \textit{Operating Systems: A Modern Perspective}, Addison Wesley Longman, Inc., 2000,
ISBN 0-201-61251-8

\subsection*{References}
Additional references will be made available on the course web site.

\section*{Grading}
Grading for this class will be on a 1000 point scale. The breakdown of 
the points is as follows:
\begin{center}
\begin{tabular}{lr}
  Homework and Quizzes  & 200 points\\
  Programming Assignment 1 & 100 points\\
  Programming Assignment 2 & 150 points\\
  Programming Assignment 3 & 150 points\\
  Programming Assignment 4 & 150 points\\
  Midterm               & 100 points\\
  Final Exam            & 150 points
\end{tabular}
\end{center}

There is no formal curve given for any single project or test. The
final grades will be determined based on your relative performance in
the class. I do guarantee that anyone getting 900 points or higher
receives at least an A-, 800 points at least a B-, 700 points at least
a C-, etc.

\section*{Homework and Quizzes}

Homework assignments will be given out
throughout the course of the semester.
Homeworks may include very short programming assignments,
short answer questions,
and lab exercises.
Assignments are due \textbf{in class} one week from their handout date.
No late assignments will be accepted.

In addition,
pop quizzes 
based on the material in the book
may be given
during any class.
Each quiz given will be worth 10 points.
There will be no make up quizzes for any reason.

\section*{Programming Assignments}

There are four programming assignments. 
The program grades consist of 70\% for functionality
and 30\% for documentation and
coding style. 
Documentation includes appropriate 
\textbf{README} files
for building and executing your assignment
as well as in code documentation.
Design documentation may also be required
for some assignments.

Assignments must be turned
in on the due date and time given.
Assignments \textbf{MAY NOT} be turned
in late for any reason.
Be sure to make frequent
backups, use a source code control system such 
as CVS, and start early on the assignments.
Hard drive crashes, power outages,
and lab closings are not valid excuses
for late assignments.

Further information regarding assignment submissions 
will be available
on the \htmladdnormallink{home page}{\courseurl}.
This information must also be followed to receive full credit on the
program.

\section*{Programming Environment}

All programming assignments must be implemented 
using ANSI C or ANSI C++
under FreeBSD or Linux. 
A reasonably recent version
of each environment (e.g., FreeBSD 4.x 
or a Linux distribution based
version 2.2.x of the kernel)
is expected.
These environments will also be used 
for several homework assignments.

\textbf{NOTE:} The GTA and instructor will be 
using the RedHat 6.2
Linux distribution for all assignments, 
and we will be able to answer environment
specific questions only for that platform.
You are on your own 
if you choose a different platform.

\section*{Tests}

There will be one midterm and one final examination. These tests may
be of any format. The tests cover material presented in class as well
as in the textbook. No make up tests will be given
unless the instructor is notified at least 24 hours in advance that
you will be missing a test and a valid excuse must be given to
warrant a make up test.

\section*{Honor Code}
The VPI \& SU honor code is in effect for this course. You may receive
help only from the instructor, GTAs assigned to this course,
and ACM or UPE tutors. Students may also discuss assignments
with classmates 
in a general way, i.e., discussing the \textit{nature} of the assignment.
However, sharing source code, pseudo-code, or homework solutions is strictly
prohibited.
In addition, the
CS Department's \htmladdnormallinkfoot{``Policy on koofers, old programs,
  cheating, and computer
  use''}{http://ei.cs.vt.edu/\~{}dept/koofers.html} also applies to
this course. Additional University, Departmental, and legal policies
may also apply to this course; see the 
\htmladdnormallink{home page}{\courseurl} for details.

\section*{Note}
If any student needs special accommodations because 
of a documented disability
or cultural practices,
please contact the instructor during the first week of classes.

\newpage

\section*{Course Schedule}

\begin{center}
\begin{tabular}{ll}
Chapter & Topic\\
\hline
1 & Introduction \\
2 & Using the Operating System \\
3 & Operating System Organization \\
4 & Computer Organization \\
6 & Process Management \\
7 & Scheduling \\
8 & Basic Synchronization Principles \\
10 & Deadlock \\
11 & Memory Management \\
12 & Virtual Memory \\
9 & High-Level Synchronization \\
13 & File Management \\
5 & Device Management
\end{tabular}
\end{center}

Note, this schedule is subject to change at the instructor's
discretion.

\end{document}
