Boston University
College of Arts and Sciences
Computer Science Department
111 Cummington Street
Boston, MA 02215
Phone: (617)-353-8919 / Fax: 353-6457
Web: www.cs.bu.edu

 

CS 210 Computer Systems

Fall 2006

Course Coordinates
      Lecture Time: TR 9:30-11:00
      Room: MCS 149
      Webwww.cs.bu.edu/fac/snyder/cs210/Home.html
      Email: cs210@cs.bu.edu

Section Times:

      A2: T 12-1 (in Teaching Lab, EMA 304)
      A3: T 2-3 (in Teaching Lab, EMA 304)
      A4: We will be opening up another lab, TBA      


 

Instructor: Wayne Snyder
      Email: snyder@cs.bu.edu
      Office: MCS 283 and CAS 102
      Office Hours: TBA
      Phone: 358-2739 or 353-8926(but I vastly prefer email)

Teaching Fellow: Parmenter Chhabra
     Email: pchaabra@cs.bu.edu

     Office: TBA
     Phone: TBA
     Office Hours: TBA

Prerequisites

This course assume that students have a solid background in Java or C++ programming from CS 111. CS 112 is also recommended, but not essential for students with strong programming skills.

Course Description

This course is a required introduction to the hardware and systems software of modern digital computers. We study the computer as a series of hierarchical layers, starting with wires and semiconductor devices such as transistors, and ending with the operating system and application programs. Our focus, as computer scientists, is on the fundamental algorithms and data structures, whether instantiated in hardware or software. In the first part of the course, we shall "build" a simple computer system from the gates up to a MIPS CPU, considering at each stage the fundamental data structures (e.g., bits, bytes, integers, instructions) and algorithms necessary to manipulate the data. We shall design this CPU in a CAD environment called MaxPlus which enables us to both draw circuits and run them by generating waveforms (bit streams) and seeing what waveforms result. In the second part of the course (integrated to some extent with the end of the first part) we shall learn to program the MIPS processor and learn how a real MIPS processor works, including such features as memory organization, interrupts, and I/O. In the third part of the course, we will continue outward from the CPU to add memory devices (cache memory, DRAM), buses, and I/O devices such as disks, and then, in the final phase of the course, consider the design and role of the operating system and appropriate system software (such as the TCP/IP protocols). In this last phase, we shall program in the C language in the Unix environment. If time permits, we will consider what factors influence performance, and how performance should properly be measured.

Course Books and Materials

The required textbook is the following:

All other materials, such as handouts, will, whenever possible, be posted on the class web site: www.cs.bu.edu/fac/snyder/cs210/Home.html. I will distribute required handouts in class and put the extra copies in the Cs 210 shelf in the CS Homework Station, as well.

Policies

Lectures

Homework Assignments and Labs

Tests

Grades

These percentages are tentative and may be changed at my discretion at any time.

Miscellaneous

Homework Policies

 

Policy on Academic Misconduct

Whenever you submit a piece of academic work and sign your name to it, you are verifying that this work is the result of your own intellectual efforts; it is Plagiarism to submit work solely under your own name in which:

In this course, I will not allow you to submit any joint work, although in other courses and in other contexts you may be permitted to do this. In general, you must always provide proper attribution of authorship by naming all persons, books, or resources that provided intellectual content towards the final result. In some cases, you will need to describe the extend of the contribution, particularly when literally copying the words or artistic artifacts of another. To fail to provide proper attribution is plagiarism. Plagiarism demeans the seriousness of what we do in class, and does not allow you as a student to obtain a fair grade for the results you worked hard for.

I will discuss the issue of plagiarism with the grader, and use, when appropriate, automated tools to check submitted programs and files for copying. I don't like to be involved in this, but it is necessary in order to provide a fair environment for your work. In cases of suspected plagiarism, I will discuss the matter with the student(s) involved and, when warrented, submit the case to the Academic Conduct Committee (of which I was chairman for three years). Unfortunately, students in my classes violate these policies several times a year on average; it is my hope that by being completely clear and straight-forward about my policy that I can reduce this number. Please take this issue serious and talk to me if you have any concerns or questions.