CSC 8400 Computer Systems Fall 2009

SYLLABUS


Meetings
Section 1: Wednesdays 6:15pm-9:00pm, Mendel Science Center G88 (tba)
Instructor Dr. Thomas Way
160A Mendel Science Center

Email:   thomas.way@villanova.edu
IM:       DrTomWay
Phone:  (610) 519-5033
Office hours M 3-4, W 4-6, by appt.
Teaching Assistant Sateesh Kolluru <venkatasateesh.kolluru@villanova.edu>
General help is available from Programming Assistants.
Office hours: see Programming Assistants' schedule on CS Dept. web site
Textbook Required: Computer Systems A Programmer's Perspective, Randal E. Bryant and David R. O'Hallaron, Prentice-Hall, First Edition, 2003. ISBN 0-13-034074

Optional: The C Programming Language (second edition), by Brian W. Kernighan and Dennis M. Ritchey, published by Prentice-Hall. Note that there are also many excellent and free C programming references online.
Web site
http://www.csc.villanova.edu/~tway and follow the link for CSC 8400
Course description
Fundamental concepts in computer architecture, operating systems and C programming. Evolution of computer architectures; computer performance; instruction set types and addressing modes; advanced pipelining; memory organization; caches, main memory and virtual memory; storage technologies; input/output systems; hardware aspects of interconnection networks; parallel computer architectures.
Course goals
  • Understand the need for parallel computer architectures.
  • Understand the different internal formats to represent numerical data and their effect on precision and accuracy.
  • Appreciate how fundamental C constructs are implemented at the machine level.
  • Understand process and thread concurrency through the development, testing and debugging of concurrent C programs in Unix.
  • Understand the main types of memory technology and their effect on computer performance.
  • Understand how an operating system allocates resources in terms of CPU, main memory and I/O devices.
  • Understand the concerns of real-time systems.
  • Appreciate the need for security and ethical considerations in computer use.
Lesson plan
The course closely follows the textbook outline, although some chapters will be omitted. Some additional material (videos, research papers, etc.) will be included from time to time to supplement what we cover from the text. Some C programming and Unix will be introduced as part of hands-on workshop projects. Advanced computer architecture topics will be studied throughout the semester.

Some students have a strong background in this subject from their undergraduate studies or career experience, while others do not. Every effort will be made to present a balance of advanced material while assuring a thorough understanding of the fundamental concepts of computer architecture.

The advanced nature of this material lends itself to a six-pronged approach to learning about computer systems. Lectures provide a foundational understanding of the subject matter and an appreciation of the interdependent nature of the subject. Homework assignments involve in-depth analysis, application of concepts and problem solving. Workshop projects involve experimental research and C programming on a Unix system to explore the material. Two tests focus on developing a broad knowledge and understanding of factual material. A final project presentation will provide a deeper understanding of a specific topic and serve as a final examination of what the student has learned. One or more videos will be used to provide a broad historical perspective to our topic, learning from the past to guide the future.

Expect to work hard this semester.

Tentative schedule
A Tour of Computer Systems (Chapter 1, 1 week)
Representing and Manipulating Information (Chapter 2, 2 weeks)
Machine-Level Representation of Programs (Chapter 3, 2 weeks)
Processor Architecture (Chapter 4, 3 weeks)
Optimizing Program Performance (Chapter 5, 2 weeks)
The Memory Hierarchy (Chapter 6, 1 week)
Exceptional Control Flow (Chapter 8, 1 week)
Virtual Memory (Chapter 10, 1 week)
Final Project Presentations (1 week & final exam meeting)
Lab time
Historical context videos
Grading policy
30%  Programming projects & Labs
15%  Homework assignments & Quizzes
30%  2 Tests
20%  Final project
  5%  Participation (attendance, class discussion, intellectual contribution to class)
Final grades
A
A-
95
93
B+
B
B-
89
85
80
C+
C
75
60

Makeup
Policy

No missed tests without prior excuse. Each case will be handled separately based on its own merits. Makeup tests might be more difficult than regularly scheduled tests. Each student is responsible for what is covered and assigned in any classes which they miss.
Late Assignment Policy
No assignments will be accepted late without the direct consent of the instructor prior to the due date of the assignment. Typical penalty is 10% off for each day an assignment is late. Absolutely no assignments will be accepted beyond the date of the final exam.
Academic Integrity Although collaboration among students is welcome when discussing concepts, ideas and approaches, all graded assignments must represent the student's individual work, as set forth in the University's policy on Academic Integrity. This means that a student who attempts to submit the work of another student, or material copied and pasted from the Internet or other sources, as his or her own will at the minimum receive 0% credit for the assignment, and at the maximum a failing grade for the course, at the discretion of the instructor.

Last updated: 08/23/2009