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 systems.
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.
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 and operating system (UNIX). We will meet regularly for in-lab sessions, 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 his or her 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.
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 couse will have two tests (200+200 = 400 points,) a series of machine problems (totalling 400 points,) several homeworks (totalling = 150 points,) and others (50 points).
The grading scale looks as follows:
We expect that the machine problems and the tests may have some bonus points.
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 submitted on eCampus. Unless stated otherwise, lateness is penalized with 1/5 of the earned points of the item per calendar day. (During Summer 5-week terms the penalty is 1/3 per calendar day.) Lateness penalty starts at the deadline and is pro-rated. This means that you will incur a penalty of approximately 0.0139 percent (0.0231 percent in Summer) for each minute that you are late in turning in your submission.
There will be one midterm and one final examinations. The midterm will be on October 19, in-class, and the final will be during the allocated time during Final's Week (Friday, Dec. 8 for Sections 504--506, and Monday, Dec. 11 for Sections 501--503).
All tests will be closed-book. You will be allowed one hand-written "cheat sheet" of size 8.5in x 5.5in. No other aids will be allowed, except for writing utensils.
The instructor and the teaching assistant 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 anouncements in class, postings on the web site, material on eCampus, Piazza, and occasionally e-mails to students.
We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates and myself. If you have questions, consider posting them on Piazza. This will give everybody a chance to contribute.
Find our class page at: piazza.com/tamu/fall2017/csce313sections501506/home.
The signup link is: piazza.com/tamu/fall2017/csce313sections501506.
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 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.
How do we determine that plagiarism has happend? We will delegate our decisions to code similarity detection tools and automated plagiarism detection tools. Whenever a tool flags your submission, we will treat it as a potential case of plagiarism and we will issue a report to the Aggie Honor System Office. So, to be safe, stay away from other students' code and from homework solutions that are not your own!
The Americans with Disabilities Act (ADA) is a federal antidiscrimination 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 the Department of Student Life, Services for Students with Disabilities in Cain Hall, Rm. B118, or call 845-1637.