CSci 370 Course Syllabus

MWF, 11:00 am, Linux Lab (WL 136)

Prof. Stephen P. Carl
    Office:     WL 133
    Hours:     MWRF 2 - 3pm
or by appointment
    E-mail:     scarl @T sewanee D0T edu
    Phone:     598-1305


Computer Systems: A Programmer's Perspective, 3rd Ed. by Randal E. Bryant and David R. O'Hallaron
C Programming A Modern Approach, 2nd Ed. by K. N. King

Course web page

Objectives of the course: the student will understand
  1. the basic components making up a typical computer system
  2. computer representation of integer and floating point numbers and basic numerical algorithms
  3. the impact of a processor's instruction set and design on running programs
  4. how structures in a high-level language map to the processor's native assembly language
  5. the basic design of a microprocessor (datapath, control, and pipelining)
  6. the memory hierarchy, common cache designs, and their impact on system performance

Grading and Workload

Practice Problems
12 points
Homework and Programming assignments

35 points

2 Exams (15 points each)
30 points
Class Participation and 2 Outside Lecture summaries 08 points
Final Exam (Sunday, December 17, 7:00 PM) 15 points

Course Administration:

Students are allowed two unexcused absences per semester. Subsequent absences may be reported to the Office of the Dean of Students, which will then issue a cut warning. A student with too many absences may be dropped from the course. All assignments must be completed, and the student is responsible for making up any work missed due to absence.

Class participation includes in-class labs, classroom discussion, and demonstrating solutions in class. To support the intellectual life of the university, I ask you to attend at least two lectures/presentations outside of the formal classroom experience and submit a 1-2 page outside Lecture summary of the ideas presented.  Attending at least one talk sponsored by our department is highly recommended (Ebey lecture and/or the Homecoming lecture). Lecture summaries for up to two additional outside talks will be considered for extra credit.

This syllabus, course schedule, assignments (including lab exercises and homework), and sample code are all posted as links from the class website.  When available, lecture notes will be posted as well.

Readings and associated practice problems are assigned most every class period.  While doing the reading, you are encouraged to do the assigned practice problems without consulting the solutions in the book first. Be sure to ask questions about what you don't readily understand.

Assignments.  There will be 6-8 scheduled homework assignments, some of which involve programming exercises. You will have 1 to 2 weeks, in general, to work on these assignments.  Late assignments are penalized 10% for each day late, but every student has 3 grace days for the semester, covering schedule crunches, road games, illnesses. Save these as long as possible. Barring special circumstances, assignments will not be accepted 4 days after due date.

Students may discuss ideas for solving an assignment among themselves. However, each assignment must be your own work unless collaboration is specifically allowed in the assignment. Turning in any portion of work written by another is an Honor Code violation and grounds for disciplinary action as allowed by University policy. You should not copy a file, supply a copy of a file, coach another student in writing code line by line, or look at another's code. You may discuss concepts and design issues, explain how to use software and other tools, and discuss how to fix compilation errors.

Exams and the Final Exam.  Exams may be given during class time or may be take-home. Anyone missing an exam given during class must present me a documented excuse explaining their absence if they are to make it up. The Final Exam is scheduled in advance by the registrar; see the syllabus for your final exam time.

Grading.  Grades are assigned according to a method whereby the mean of the top class scores are used to determine the cutoff points for each letter grade;  in this way, final scores are based on the performance of the class as a whole. The instructor reserves the right to move grades up or down in the distribution based on factors such as attendance, improved (or not) scores through the quarter, etc.

Language and Compilers.  The programming language used is C (using the gcc compiler), and Intel's x86-64 assembly language, which needs no compiler (and is, essentially, a human-readable version of what the gcc compiler produces). We may also compare the Intel assembly language with the assembly language for the MIPS chipset (used in the PlayStation 2, for example).

ADA Statement

The University of the South is committed to fostering respect for the diversity of the University community and the individual rights of each member of that community. In this spirit, and in accordance with the provisions of Section 504 of the Rehabilitation Act of 1973 and the Americans with Disabilities Act (ADA), the University seeks to provide disabled students with the reasonable accommodations needed to ensure equal access to the programs and activities of the University. If you have a disability and require accommodations in this course, you have the responsibility of presenting your instructor with a copy of your academic accommodations letter from the University Wellness Center (931-598-1270). Accommodations will not be provided without this documentation, and accommodations cannot be applied retroactively. Additional information about disability accommodations can be found at

If you have questions about physical accessibility, please inform your instructor so that we can ensure an accessible, safe, and effective environment.

Stephen P. Carl