- 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
Web: www.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:
- Computer Organization and Design, by William Stallings, 7th Edition;
- The C Programming Language, by Kernighan and Ritchie
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
- You are responsible for all the material covered in lecture and in the
readings. I will clarify what material is most important before tests, however,
it is important that you do all the readings and review your class notes periodically.
- Class attendence is very important. I will take attendence at random intervals
to check on your attendance and to learn your names. I reserve the right to
lower your final grade if you miss more than 10% of the classes.
- Class participation is also very important. I encourage questions, and will
usually start class with a review of the last class, and a request for questions
on that material. Please don’t be afraid to ask a question during the lecture,
as often this means that many people may have a similar question, and it is
worth stopping me to get clarification. If we are running out of time, I may
defer your question for after class or email.
Homework Assignments
and Labs
- Labs takes place at the times listed above, and are mandatory. Lab writeups
are posted on the web site, and you can make up an lab by arrangement with
the TF. Typically, the lab involves some activity that becomes the final problem
in that week's homework assignment; hence there is no separate lab assignment
to be handed in.
- Labs will typically take place in the teaching classroom next door to the
CS lab, but may occasionally take place in the assigned room listed above.
Go to the teaching classroom unless I specify otherwise.
- There are no labs the first week of classes; however, you should go to the
lab and obtain a CS cluster account if you do not already have one.
- Homeworks and labs are extremely important, as you can not learn these concepts
(and especially you can not learn programming) by simply reading a description
of them---you MUST get your hands dirty and learn by manipulating the concepts.
- There will regular homework assignments, normally one every week (except
for the first week); the last may involve a largish programming assignment
executed by a team of 2-3 students. Please see the Topics
link on the web page for the ongoing schedule of assignments.
- Further particulars of assignment submission, the late penalty, and my policy
regarding academic honesty will be found on the first assignment and posted
on the class web site.
Tests
- The final exam is scheduled for Saturday, 12/16, 9:00a.m. - 11:00a.m.
Pplease make your travel plans accordingly. If there are religious reasons
for taking the exam early, please see me in the last week of classes and we
will make suitable arrangements.. You will have two quizzes and a midterm,
which will be announced at least a week in advance.
Grades
- 10% Two quizzes
- 20% Midterm Exam
- 25% Final Exam (cummulative)
- 35% Homeworks
- 10% Final Project (if project is not done, your final will be worth
30% and your homeworks 40%)
These percentages are tentative and may be changed at my discretion at any time.
Miscellaneous
- The last day to drop classes with a W is October 6th; the last day to drop
with a W is October 27th. b>
- There will be no incompletes in this class except for reasons of dire illness
near the end of a semester in which all previous work has been completed satisfactorily.
- You can not redo any assignment, or do extra work after the semester is
over to improve your grade, as this arrangement would then by fairness have
to be extended to the rest of the class (an impossible situation).
Homework Policies
- Submission Instructions: Please hand in a hard copy of your solutions
to all problems, with a suitable cover page with your name, the date, the
course, and the number of the assignment. Do each problem on a separate sheet
clearly labelled at the top (e.g., "Problem 3"), and staple all
pages together in the upper-left-hand corner (do NOT submit solutions separately
or update your solutions after handing in your assignment). For any problem
statement that asks multiple questions, answer each in a separate paragraph,
labelled (a), (b), etc. Submit "pencil and paper" problems into
the CS 210 mail slot (not the shelf) in the CS homework station; submit code
or files produced by software using Gsubmit as specified on the course home
page. A small penalty will be taken for any homework that does not follow
these guidelines.
- Late Policy: Both parts of the homework (pencil and paper, and electronic
submission) are due at 5 pm on Tuesday; late homeworks will be penalized
at the rate of 25% for each weekday late (each day ending at 5pm, weekends
not included).
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:
- You collaborated with another student in solving the homework problems;
- You copied the solution from a book, web site, or the work of another student;
or
- You got significant help in solving the problem, but do not acknowledge
this in your solution.
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.