Time and Place: TR 11:10am - 12:25 pm, Room: HRBB 126
Instructor: Dr. Guofei Gu – 502C H.R. Bright Building (Office hours: Thursday 3-5pm or by appointment Email: guofei AT cse.tamu.edu)
Time and Place: R 9:10-10:50 am; Room: RDMC 111C
Haopei Wang (Office hours: Tuesday 3-5pm or by appointment Room: 502A HRBB Email: wanghp08 AT tamu.edu )
The objective of this course is to provide you with a general understanding of what system software is involved for an application program to run, both on a single node and over a network, and how this system software is to be used. In support of this, the course will prepare you to do system-level and network programming. This course will teach you how to "use" (as opposed to "design") system components, such as memory, file systems, process control, interprocess communication, and networking. By the end of this course you will have an understanding of the problems and pitfalls typically encountered in the design and implementation of multithreaded and networked applications and system.
More specifically, by the end of this course you will be proficient at making full use of the services provided by the underlying operating system by programming directly at the operating system interface level, POSIX over UNIX in our case.
At the end of this course you will understand the following aspects of a computer system, in no particular order:
These optional books complement the textbook. Perusing them may help you better understand some issues discussed in class. A good selection will be made available at the Reference Desk in the Library.
During lectures we will be covering OS concepts and case studies. The material covered in the lectures will provide the background and foundation for you to appreciate the lab assignments and to succeed in them. Reading of assigned portions in the textbook and other related material is your responsibility. You are also expected to follow instructions and be aware of announcements made during lectures. (See Communication Policy below.)
A very important part of this course is the Lab, where you will put into practice some of the material learned in the lectures, and where you will acquire a working knowledge of one widely used application interface (POSIX) to an operating system (UNIX/Linux). We will meet weekly for a an in-lab session, where we will be presenting and discussing new material, or go over problems you may be encountering. After an introductory session to familiarize you with the particular environment that we will be using, there will be a series of machine problems with various difficulties, which will exercise different parts of the operating system: file system, process and thread management, memory management, networked execution, and so on.
In order to maximize the learning experience, we will not have groups of students work on the machine problems. Instead, each student will have to turn in their own solution. While we encourage you to collaborate during the Inquiry phase of the machine problem, the design and implementation of the machine problem solution has to be your own. You are not allowed to copy from other solutions of the machine problem, nor are you allowed to make solutions available to other students.
Machine problems are supposed to be handed in on eCampus. Details will be available in the Lab Manual.
The Piazza webpage for this class is at https://piazza.com/class#
Note: Some of the lab assignments are quite demanding, and will require some dedication and some time. Expect that you won't be able to finish them during the allocated lab time!
This course will have two
tests (200+250 = 450 points),
a series of machine problems (totaling 400 points,)
several homeworks (totaling = 100 points), others (e.g., class participation, 50 points), and an optional honors project.
The grading scale looks as follows:
We expect that the machine problems and the tests may have some bonus points.
Optional honors project: You
form a team (1-2) and conduct a project, in which you
design/implement/evaluate some useful, interesting, new (or improved)
system/networking software/tool. Talk to me for details if interested.
If you take this option, you can use it to replace the final exam or
any 2 machine problems (That is, this honors project is worth 200-250
points!) There could be extra bonus points for excellent projects!
Late-Submission Policy: All the submission deadlines have included extra time for the consideration of accidental events such as (not limited to) unavailable resource (machines are down,) sickness of students, stock market collapse, distress due to the Aggies loosing a game, etc. This means that additional extensions are generally not granted. The rule of the game: START EARLY!
Both homework and projects will be handed out through email/eCampus and they need to be submitted on eCampus. Unless stated otherwise, lateness is penalized with 20% of the earned points of the item per calendar day.
Carefully check all the contents/files before submission (make sure they are correct, complete, and up-to-date).
There will be one midterm and one final examinations. The midterm will be in-class, and the final will be during the allocated time during Final's Week.
All tests will be closed-book. You will be allowed one hand-written "cheat sheet" of letter or A4 size (single side only). No other aids will be allowed, except for writing utensils.
Instructor, Teaching Assistants, and Peer Teachers for this course will do their best to communicate relevant administrative information (deadlines, information about posted material, details about projects, locations of tutorials, and so on) in an effective and timely manner. We will be using announcements in class, postings on the web site, material on eCampus/piazza, and occasionally e-mails to students.
Having said that, keep in mind that this is not a distance education course! You are expected to be current with the material covered in class and with any announcements made in class. In fact, announcements in class will override whatever information has been made available through the other channels.
Note on e-mail accounts: Over the years we have been having problems with off-site e-mail accounts used by students. We will therefore be sending CS-313 related e-mail to the accounts listed on TamuDirect only. (These are typically of the form firstname.lastname@example.org, email@example.com, or firstname.lastname@example.org.) Make sure that you have access to these mails, and forward them appropriately if needed.
Note on e-mail etiquette: E-mail is a very convenient and potentially effective way to communicate with instructor and TA, but only if used in a professional manner. Keep in mind that -- in particular when a deadline is looming -- we are receiving many e-mails, and all senders expect immediate turn-arounds. Therefore, keep your e-mail short and to the point; indicate that you have done some thinking *before* typing the e-mail; provide necessary support documentation (e.g. code sections) when needed (don't attach huge amounts of code!); follow standard basic rules for courteous and professional communication; proofread your e-mail before sending it out. We will not answer e-mail that does not follow these rules. Repeated offenders will be added to the spam filter.
The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact Disability Services, in Cain Hall, Room B118, or call 845-1637. For additional information visit http://disability.tamu.edu.
The course website and lecture notes have incorporated course materials developed by Dr. Riccardo Bettati (TAMU), Dr. Avi Silberschatz (Yale), Dr. Frank Lin (SJSU), Dr. Wenke Lee (GaTech), Dr. Lawrence Angrave (UIUC). The copyright of these materials belongs to them.