CS360 -- Systems Programming

Jian Huang --- Fall, 2009


Professor: Jian Huang

Teaching Assistants:

Class: TR 2:10PM - 3:25PM, Claxton 206

Lab Session:


Textbook

The text book of CS360 is Advanced Programming for the Unix Environment, by Richard Stevens. This book is one of the most definitive and classic reference book for any serious developers that deal with the system level. This book provides comprehensive descriptions of various subject. However, sometimes an information overload is created, especially portability and Unix standards are involved. This issue will gradually go away once you have mastered a necessary level of familiarity with the subject. This book is published by Addison Wesley. Currenntly, there is a second edition of the book. You can get either edition. As far as this course is concerned, both editions would work.

I would recommend an additional reference book. Since early days, C has been the standard programming language for operating systems. Although most of you have been taught to program in C already, few among you can tell me what features in C have made that role possible. The C Programming Language, 2nd Ed., by Kernighan and Ritchie, Prentice Hall, is the most authoritative source of information on this subject. In fact, this book is one of the books that I personally go back and read from time to time. As the designer of the language, the authors provided a great illustration of how the language is designed and how it is intended to be used. This book is not required for the class, however, having a copy on your desk could be very beneficial as you dewell on the subject.

Since we focus on the principles and methodologies of operating system, Unix to be specific, it would be very helpful to understand the design ideas as well as the process of how Unix evolved over the years. The Art of Unix Programming by Eric Raymond is a book that tells the tale. I like this book because it unwraps what operating system developement has been through and reveals all the driving forces behind technology evolution that are both technical and non-technical. Each week during the semester, I would leave reading assignments with the class from this book. Fortunately, an electronic source is avaiable and you don't have to buy this book. Please go to http://www.faqs.org/docs/artu/.


Labs

Besides the first week, whose lab will probably take the entire session, lab attendance is mandatory in the beginning, during which time the TA's will go over general things that you need to know. After that, you may leave or stay as you see fit. This is a very good time, however, to get an early start on the lab, and use the TA's to answer questions.

You may go to either lab as long as there is space. If there is not space, precedence goes to those who have signed up for the specific lab. As you cannot use the labs when other classes are having their labs, you may want to use both lab times as dedicated work times, again in which the TA's is available to help you.

The homeworks are where you are going to learn the most in this class. They are going to require far more than 3 hours per week. Thus, you will have to use evenings or weekends to get machine time. Work this out. Some classes will let you use extra machines if they are available and you are quiet. I believe there are no labs scheduled during evening and weekend hours. You may also want to explore remote login from UTCC machines, or from your own terminal and modem if you own one. Ask the TA's about how to log in remotely.


Lab Submission

All submissions are to be electronic. Please refer to TA's age for detailed instructions. All lab assignments are due by midnight of an announced date (usually on a Wednesday). Please keep the confirmation email for your submission in case problems arise later.


Grading Policy

  • Midterm: 20%
  • Final: 25%
  • Labs: 55%
  • Class Participation: 5% extra credit

    Note:


    Late Submission Penalty and a One-Time Waiver

    If you happen to have missed the dealine of an assignment, you should always still submit it. We assess a 20% penalty for each day that you have missed the deadline. Every student is entitled to a waiver of late submission penalty for one lab assignment throughout the semester. For example, Frodo has too many other obligations when Lab6 is due. Not being able to finish Lab6 before the announced deadline, Frodo chooses to submit his Lab6 two weeks late and use his only penalty waiver to still receive full credit for Lab6. Frodo also understands that for all subsequent lab assignments, he does not have this benefit any more. Please always save this waiver for a truly needy scenario.


    Academic Misconduct

    All lab assignments and exams must be completed on your own. Discussions are encouraged, but each student is expected to undertake all intellectual exercises without any compromise. The following are a few examplary scenarios that we hope will not take place this semester: