Office: 7357 Computer Sciences
Office Hours: Tuesday at 3:30pm, and Thursday at 1:30 pm, and by appointment
Office: 1302 Computer Sciences
Office Hours: Monday at 2:30pm - 4:00pm and Tuesday at 3:30pm - 5:00pm
Office Phone: 262-6600
Office: 1338 Computer Sciences
Office Hours: Monday at 9:00am - 10:30am and Friday at 11:00am - 12:30pm
Office Phone: 262-6592
5/9: Exam notes
Here is an overview of exam topics for those who missed the review.
You will be allowed a single page (both sides) as a cheat sheet.
Here are some
for those who are interested.
This course assumes familiarity with basic computer organization (e.g., processors, memory, and I/O devices as covered in cs354) and data structures (e.g., stacks and hash tables). You will need to be able to program in both Java and C (or C++) to perform the assignments in the course.
The mailing list is
The log of email is available at
You may also find a number of on-line references useful. For Java references, Marvin Solomon has written an excellent tutorial,
Java for C++ Programmers.
He also recommends the following book on Java:
The Java Programming Language
by Ken Arnold and James Gosling, Addison-Wesley, 1996. You may also want to check out the materials for the self-paced
called "Java for C++ programmers".
There are also lots of helpful materials about Java available on-line. The following references are available at the Java home site.
You will be able to use either C or C++ or the system programming assignments in the class. You may choose whichever you prefer. For those of you who want to learn C++, you might want to check out the notes and exercises for the self-paced course "C++ for Java Programmers". The best C book in the world is Kernighan and Ritchie's beautifully sparse
"The C Programming Language."
New Unix users and novice Unix users new to the CSL Unix facilities are encouraged to attend an orientation session as early in the semester as possible. You may also purchase a copy of
(An Introductory Manual to the Unix Operating System and the Computer Sciences Department's Instructional Computing Environment) at the DoIT Tech Store (first floor of the Computer Sciences and Statistics Building).
The projects are a fundamental part of this course. Although the first assignment will be relatively easy, the remaining projects each require a significant amount of time, so
do not procrastinate!
It is likely things will take longer than you expect. Do not wait until the day before the assignment is due to start. These assignments should be
started well over a week
before they are due. All information necessary to complete the assignments will be available from the class web page.
If you plan to perform software or hardware development after graduation, you will need to know how to work well within a group. Therefore, for all projects after the first assignment, we suggest that you form
groups of two students.
Team members will all receive the same grade on the programming assignments.
Most of the programming assignments will use Java; however, half of the first assignment and one other assignment will require C or C++. We assume that you have enough programming background that learning the basics of a new language will not be difficult.
For some of the projects, you will be graded on how well your implementation works. For these assignments, we will test your program on a suite of input sets while you are present. Your grade will be based on how many of the tests your application passes and how well you are able to answer our questions; we will only briefly examine your code to ensure that you followed the specifications of the assignment. For the other projects, you will be graded on your design, functionality, and documentation. For these assignments, you will need to develop input sets that convince us that your application has the desired behavior. Your grade will be based on how well you describe your implementation and document its functionality. Each assignment will be worth the same number of points, although some will be easier than others.
For all Java assignments, you
adhere to the following conventions:
4 Virtual Memory
5 File Systems
C and Java
Application Case Study and Future of OS
Ch. 1-4 (skim)
Ch. 17.2, 17.3
Project #1: Available
Project #1: Due
Project #2: Available
Project #2: Due
Project #3: Available
Project #3: Due
Project #4: available
Project #4: Due
Project #5: available
Project #5: Due