|
COMPSCI 110, Fall 2000
Introduction to Operating Systems
|
|
Useful
Links
CPS110
Home
Tentative
Schedule
Assignments
Lecture
Notes
Policies
Course
Mailing List
Course
News
|
|
Policies and Administration
-
Goals of the Course
- To cover the traditional topics: What is an Operating System
and what is it supposed to do for us? How does it accomplish these functions?
How are such systems implemented and structured? Topics include concepts
of protected kernels, processes and threads, concurrency and synchronizations,
file systems, and virtual memory.
- To help you develop new skills: Concurrent programming. Inheriting
large, complex software systems and adding value (as in the "real world").
Developing an intuition for system design tradeoffs. A major component
of the course is a series of projects using the notorious Nachos instructional
operating system.
- To give you occasional glimpses into current Operating Systems
research, motivated by hardware trends, web applications, and mobile
computing.
- Who should take this course? All undergraduate CS majors should take
this course at some point. You should have completed the basic introductory
sequence, and also CPS 104. Familiarity with C, C++, and basic Unix
program development tools (e.g., gmake ) is assumed.
- Workload. This is a demanding course. There are six
required Nachos
programming assignments, with one due approximately every two weeks.
To make things a bit easier, you will work through the Nachos projects
in teams of three or four students. As in previous offerings of CPS
110, you will present your projects in demo sessions with the instructor
or the TAs. These projects will be fun and valuable if you form
teams quickly, start early on the projects, and make your
Nachos work a priority this semester. In addition to the Nachos
assignments, there will be optional problem sets, an in-class midterm
exam, and an in-class final exam. There is a possibility of introducing
a new JAVA version of Nachos to willing groups after the first couple
of assignments using the tried-and-true C++ version.
|
 |
 |
|
 |
-
Textbooks and Other Resources
- Operating
Systems: A Modern Perspective, by Gary Nutt
- All course materials, lecture slides, and announcements will be accessible
via the course web site at http://www.cs.duke.edu/education/courses/cps110/fall00/.
You will visit this web site often, as we will rarely hand out printed
materials in class. Grades are also distributed through the course web:
please see the TA for a password.
- There is also a course newsgroup duke.cs.cps110 . We prefer that
you post questions to the newsgroup rather than e-mailing us. We read
the newsgroup regularly, and so should you: it is embarrassing to ask
a question or waste time struggling with a problem that has already
been discussed in the newsgroup. If you know the answer to a posted
question, please post a response. Let's make this class into a community
for learning.
-
Grading
- As your instructor, I see my role as that of coming up with exciting
and valuable learning activities for you to do and I consider establishing
a grade in the course by evaluating the results of those valuable learning
activities as just a side-effect. Still, I bet you are interested in
how these activities factor into your grade, so here is the breakdown
(approximate -- your mileage may vary):
- Nachos Programming Projects (50%). Hands-on experience that will
develop skills and give you an in-depth appreciation for some of
the details and concrete design issues.
- Optional Written Homeworks. These problem sets will come from
the textbook readings and give you a very valuable preview into
the content of the exams. The purpose of the readings and homework
is to fill in the breadth that the specific projects can not address.
The problem sets are ungraded, but about half of the exam questions
will be drawn from the problem sets.
- Exams - one midterm (20%) and final (25%).
- Course participation and other subjective factors (5%). I would
like this to be an interactive class, so ask questions and offer
ideas freely.
I grade on a curve to compensate for any possible problems with
the projects and exams.
-
Policies
- The Reasonable Person Principle
- This principle (which applies throughout this course) simply states
that a reasonable request made in a reasonable fashion shall be reasonably
handled by reasonable persons. The TAs and instructor are reasonable
people, and we expect that everyone else involved in this class is as
well. Asking to be a special case to turn stuff in late is not
a reasonable request, barring extreme circumstances.
Collaboration vs. Cheating
- Collaboration is a very good thing. Students are encouraged to work
together and some programming projects will require a team effort with
everyone expected to contribute.
- On the other hand, cheating is considered a very serious offense.
Please don't do it! Concern about cheating creates an unpleasant environment
for everyone.
- So how do you draw the line between collaboration and cheating? Here's
a reasonable set of groundrules. Failure to understand and follow these
rules will constitute cheating, and will be dealt with as per university
guidelines.
- The Gilligan's Island Rule: This rule says that you
are free to meet with fellow students(s) and discuss assignments
with them. Writing on a board or shared piece of paper is acceptable
during the meeting; however, you should not take any written (electronic
or otherwise) record away from the meeting. This applies when the
assignment is supposed to be an individual effort. After the meeting,
engage in a half hour of mind-numbing activity (like watching an
episode of Gilligan's Island), before starting to work
on the assignment. This will assure that you are able to reconstruct
what you learned from the meeting, by yourself, using your own brain.
- The Freedom of Information Rule: To assure that all
collaboration is on the level, you must always write the name(s)
of your collaborators on your assignment. Failure to adequately
acknowledge your contributors is at best a lapse of professional
etiquette, and at worst it is plagiarism. Plagiarism is a form of
cheating.
- The No-Sponge Rule: In intra-team collaboration where
the group, as a whole, produces a single "product", each member
of the team must actively contribute. Members of the group have
the responsibility (1) to not tolerate anyone who is putting forth
no effort (being a sponge) and (2) to not let anyone who is making
a good faith effort "fall through a crack" (to help weaker team
members come up to speed so they can contribute). We want
to know about dysfunctional group situations as early as
possible. To encourage everyone to participate fully, we make sure
that every student is given an opportunity to explain and justify
their group's approach to the Nachos projects.
|