Outline for CSCI558L
Summer 2001 (unchanged from Spring 2001, FYI)

Please read carefully:
 

Class Description
  • This is a lab course. Hence, it involves lots of programming and careful reading and analyzing of source code. The workload includes the following:
  • 10+ laboratory assignments done individually.
  • Presentations done by two-student teams (one presentation per team).
  • Final projects done by two-student groups.
  • The laboratory assignments are designed to teach you how to install, configure and administer modern computer systems, how to design performance experiments, and interpret their results, and how to automate complex system administration tasks using simple scripting languages. Please read the Lab Etiquette first.
  • The presentations involve researching background material, studying code, and installing and demonstrating a program on the lab machines. You are expected to spend several weeks to prepare your presentation.
  • The final project may involve linux/freebsd kernel hacking, networking protocol implementations, device drivers, performance evaluation, etc. Though I will have a list of projects to choose from, the students are strongly encouraged to come up with their own project descriptions (based on instructor approval).

  •  
    Text Book
  • There is no textbook required for this course. However, you may find one of the many available books on Linux administration very useful. Some recommended books include: Linux Kernel Internals, Addison Wesley. The design and implementation of the 4.4 bsd Operating System, Addison Wesley.
  • Most of the readings will be from papers and web pages found under "Useful Links" on the sidebar.

  •  
    Implicit Student Agreement
  • ALL work including homeworks, programming assignments and exams must be that of the individual student. It is often productive to study with other students. However, if any portions of homeworks or programming assingments are found to be shared between two (or more) students, zero credit will be given to all students concerned and all students will be disciplined. This policy is in the interest of those students who do their own work, which hopefully applies to all of you in this class. 
  •  This policy also holds for  programming assignments. In this class, we will use sophisticated automated program checkers to detect cheating. Be aware that the program checkers have demonstrated very good results and are widely used within the academic community. Any student caught cheating will be given zero credit and will be disciplined.
  •  It is the students responsibility to submit their assignments to the TA in time. 

  • For students who satisfied the CS402 prerequisite at other universities or through work experience, this course assumes that you understand concurrency, synchronization, and UNIX programming. You should be able to write large programs in C. No special assistance or consideration will be offered if your background is inadequate.
  • This class requires good knowledge of Socket Programming. However, we will NOT teach socket programming as part of the class. You are expected to learn by studying the tutorials provided in "Useful Links".

  •  
    Student Responsibilities
     
    You are expected to read all the papers in detail. Not all details will be covered in class.  I will assume knowledge of material covered in EE450 and a C language programming proficiency from CS402 or its equivalent. If you covered the introductory material at some other school it is YOUR responsibility to fill in any missing background. Feel free to ask me for advice on appropriate introductory readings if you feel your background is insufficient.
    Other background reading. Occasionally, we will encounter material covered in other classes like cs551, cs555 or ee555. You are expected to cover that material on your own.
    I expect you to attend every class meeting. If you do happen to miss a session, you are responsible for finding out what material was covered and if any administrative announcements were made. You must do so BEFORE the next session (e.g., if there is an assignment given during the missed session, you are still responsible for completing it by the next week along with the other students).  You are advised to read the material for a particular lecture before attending the lecture. This will greatly enhance your understanding of the subject matter. 
    Grading Policies

    Lab Assignments (30%) 
  • Assignments must be completed on time. No late submissions will be accepted.
  • Presentations (30%) 
  • Students are expected to form teams of two for their presentations. You must pick your teamate early. You will be asked to pick a presentation topic within the first week of classes.
  • Final Project (40%)
  •  Final projects will also be done in teams of two. Your project partner need not be the same as your presentation partner, although it is often simpler if teams are the same.

  •  
    Exams
  •  There will be no exams in this class. However, I reserve the right to administer surprise quizes

  • Grading :
  • I WILL assign grades of C and BELOW to individuals who do not perform satisfactorily. (i.e., you should not ``assume'' a B- or even C if you perform unsatisfactorily.). However, I HOPE that everyone will perform well. 
  • Your assignments must be your own work. Anyone caught cheating WILL BE EXPELLED FROM THE CLASS.
  • You can view your grade online through this web site.  You will be provided with instructions on how to do so. Check your grade online after each assignment. If you find any inconsistencies, please contact the TA immediately.

  • I will NOT assign incompletes unless it is for a documented medical reason (in accordance with USC policy).