CPS 444/544: Systems Programming I/Fall 2005


Objectives: The goal of CPS 444/544 (3 semester hours) is to establish an understanding of the design and development of systems software, such as command interpreters, compilers, debuggers, and compilation and configuration management tools, through the study of pattern matching and filters, system libraries, interprocess communication, and automatic program generation. Students can expect a survey of various software tools supporting systems programming, including make, RCS, sed and awk, and lex and yacc and an illustration of their role in compiler construction. Examples will be presented using C, the Korn shell, and ML in the UNIX programming environment.

Meeting Times: T Th 4:30-5:45p, SC150
Instructor: Dr. Saverio Perugini, 229-4079, AN145, sperugin@udayton.edu
Office Hours: M W 3:30-4:30p, T Th 5:45-6:45p,
  or walk in any time; and by appointment.
Graduate Assistant: Vijay Kaylan Thota, 229-2199, MH21, thota@notes.udayton.edu
GA Office Hours: M F 12:00-2:00p, and by appointment
Course Webpage: http://academic.udayton.edu/SaverioPerugini/courses/cps444/

If you need accommodations due to a documented disability or have emergency medical information to share with the instructor, please meet with the instructor ASAP.

Pre-requisites: CPS 350 (Data Structures and Algorithms) and CPS 346 (Operating Systems) with a minimum grade of C for students enrolled in CPS 544. No exceptions. In addition, students are expected to have strong problem-solving and programming skills and a positive attitude toward learning new things.

Required Textbooks: Modern Compiler Implementation in ML by A.W. Appel. Cambridge University Press, 1998. ISBN: 0-521-58274-1. Elements of ML Programming by J.D. Ullman. Prentice Hall, ML97 Edition, 1998. ISBN: 0-13-790387-1.

Evaluation: There will be approximately 10 homeworks which will involve systems programming from specifications. Students will be expected to program in C, the Korn shell, and ML in the UNIX environment. We will drop your lowest homework score. There will be a substantial project to be submit in approximately four progressive phases, each covering a different aspect of compiler construction. The project will entail building the front-end to a compiler for a block-structured programming language in ML using ML-Lex and ML-Yacc and will require a fair amount of thought and design. There will be a midterm exam and a comprehensive final exam (4:30-6:20p, 12/13, SC150). Breakdown: homeworks (50%), project (25%), quizzes (5%), midterm exam (10%), final (10%). Final letter grades of A, A-, B+, B, B-, C+, C, C-, and D will start at 93, 90, 87, 83, 80, 77, 73, 70, and 60, respectively.

Addendum for CPS 544 students: Each exam will contain extra problems for students enrolled in CPS 544. In addition, CPS 544 students are required to submit an additional project phase or write a research paper of publishable quality (more on this later). A final average of 73 or better is required of a graduate student to pass the course.

Workload: CPS 444/544 is not easy! It is a challenging and programming-intensive course and moves at a very fast pace. Unless you start early, you will be unable to complete the assignments. You will be required to think critically and independently for graded work and not just replicate what you have seen in class. Spending a minimum of 9 hours of work outside of class each week studying, programming, and experimenting with the concepts is required. I strongly advise you to see me to discuss any problems you may have before you are evaluated. Having said all of this, CPS 444/544 will be interesting, exciting, and lots of fun.

Course Policies:

  1. Late assignments will not be accepted. No exceptions. No excuses.

  2. Attendance is mandatory at all examinations. Any missed exam will count as a zero toward the final grade.

  3. Make-up quizzes will not be given. However, your lowest quiz score will be dropped.

  4. Re-grades will not be considered after one week from the date that the assignment/exam was made available for pickup.

  5. E-mail will be sent only to your UD Lotus Notes account.

  6. Students are expected to conduct themselves in a professional manner.

  7. Switch all cell phones, pagers, and similar devices to a silent mode during class.

  8. The use of laptop computers or similar devices is not permitted in class unless you have a documented disability which requires such a device for taking notes.

  9. Make no assumptions about any policy. Always clarify with the instructor first.

Ethics: To achieve the course goals, students must work on their assignments individually. Questions or discussions related to graded work must be directed only to the instructor and GA. All submitted work must be your own in full. The policy on academic dishonesty set forth in the student handbook (pp. 36-38) will be strictly enforced in this course. Evidence indicating a violation of the university policy or my policies on ethics will be dealt with severely as per the student handbook and will result in the penalty of a double-weighted zero for the assignment/exam which will not be dropped.

No student should ever feel that they must resort to academic dishonesty. Please come talk to us if you are struggling with the course or an assignment. There is plenty of help available to you from ethical sources (instructor, GA) and we are happy to help. It is much easier to explain a poor grade to parents, potential employers, or graduate admission committees than a violation of the university policy on academic dishonesty. No grade is worth your integrity. Honesty in your academic work will develop into professional integrity. The faculty and students of the University of Dayton will not tolerate any form of academic dishonesty.

Extra credit:

Participate in a Research Study: Students may be given the opportunity to participate in a research experiment or submit an assignment requiring comparable time, such as a 5-page research paper, for extra credit equivalent to one homework assignment.

Serve as a Scribe: Each lecture will offer the opportunity to volunteer as a scribe for credit equivalent to a quiz. The scribe for a particular class period is responsible for taking detailed and neat notes in a notebook supplied by the instructor. The instructor will make the electronic version of each lecture summary available from the course webpage. The scribe's grade will be based on the quality of the notes taken in the notebook (accuracy, detail, and neatness).

About this document ...

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -nonavigation -mkdir -rootdir html -lcase_tags -split 0 firstday.tex