Computer Science Department College of Arts and Sciences: Syllabus
Computer Science Department College of Arts and Sciences: Syllabus
Syllabus
Instructor:
Name: Prof. Azer Bestavros
Email: [email protected]
Office: MCS-276 (ext: 3-9726)
Hours: Mon 12:30pm-2:00pm and Thu 5:00pm-6:30pm
or by appointment arranged through email
Teaching
Name:
Email:
Office:
Hours:
Fellow:
Sumit Mehrotra
[email protected]
MCS-288 (ext: 3-2065)
Thu 11:00am-1:00pm
or by appointment arranged through email
Lectures:
Place: SMG 105
Time: Tue 3:30pm-05:00pm / Thu 3:30pm-05:00pm
Sections:
Place: CS Undergraduate Laboratory
Time: Tue 12:00-1:00/2:00-3:00/6:00-7:00/7:00-8:00/8:00-9:00pm
(students attend one of the above sessions each week)
Cyberspace Coordinates:
URL: http://www.cs.bu.edu/~best/crs/cs350/S00
Email: [email protected]
(To add yourself type "csmail -a cs350" from your csa account)
Overview
This course is a required junior-level Computer Science course. It covers the fundamental concepts
underlying the design and implementation of computing systems.
Purpose of Course:
The philosophy underlying the design of this course is that students should be familiarized with
problems that reoccur in software systems, and should be acquainted with the set of classical
algorithms/techniques for solving such problems. In particular, it is important to develop the ability to
recognize standard problems in different wordings and within unusual context, and match them with
appropriate solutions.
Catalog Description:
Rigorous treatment of invariant concepts, algorithms, and performance evaluation methods underlying
computing systems design. Topics include modeling and analysis of concurrent processing,
computational resource scheduling and consumption, and performance evaluation techniques.
Prerequisites:
CS-210: Basic computer organization and software/hardware interface concepts, which are covered in CS-210.
CS-113: Basic algorithms and data structures, which are covered in CS-112 or CS-113.
MA-293: Basic mathematical structures and elementary probability theory which are covered in MA-293.
Topical contents:
The topics covered in this class could be grouped under 3 general themes:
The first half of the semester will be devoted to the coverage of the first two of the above themes,
whereas the second half of the semester will be devoted to the coverage of the third of the above
themes.
It is very important to realize that this is NOT an Operating Systems course. Despite the nature of the
textbook, this course will not get into specifics of operating systems (e.g. API, Unix/Solaris/NT
implementations). Of course, the concepts studied in this course are central to more advanced system
courses (including Operating Systems, Networking, and Databases, as discussed above).
[S] William Stallings, Operating Systems: Internals and Design Principles, 3/e. Published
January 1998 by Prentice Hall ESM. 781 pp. ISBN 0-13-887407-7. (required)
Note: This book is available from the BU Bookstore. Also, you can purchase this book from
Amazon.com (price = $71.00).
[W] Azer Bestavros, Lecture Notes on Fundamentals of Computing Systems. These notes are
work-in-progress. They complement the textbook and, thus, constitute an integral part of the
required readings. (required)
Note: These Lecture Notes will be available from theClass Home Page.
[A] Arnold Allen, Probability, Statistics, and Queueing Theory with Computer Science
Applications, 2/e, Academic Press, hardcover, 740 pages, 1990., ISBN 0-12-051051-0
(optional)
Note: This book is available from the BU Bookstore. Also, you can purchase this book from
Amazon.com (price = $48.00).
Up to 10 minutes at the beginning of every class will be devoted to answering questions related to
topics discussed in previous lectures. This is a particularly good time to ask if you have questions.
Course Discussion Sections:
If you are taking this class then you have signed up for a weekly one-hour discussion session. The
discussion session will be conducted in the Computer Science Undergraduate Laboratory. The
Teaching Fellow for the clas is Sumit Mehrotra.
The teaching fellow will be leading the discussion sessions. Materials covered in the discussion
sessions will be elaborations on materials covered in the lectures. Also, the discussion sessions will be
the venue used to answer any questions (or provide clarifications) regarding the homework
assignments.
If (for some reason) you miss (or cannot make) the discussion section for which you are signed up, then
please make sure to attend a later one during the same day.
Office Hours:
You should come to the Instructor and/or Teaching Fellow's office hours with your questions wellthought out. Office hours are NOT meant to be tutoring sessions; they are meant to answer specific
questions about the material covered in the lecture, discussion section, and textbook(s). Questions like
"could you repeat your explanation of ..." or "I do not understand section ... of the textbook" should be
asked in the lecture and/or discussion sections.
Mailing List Usage:
The class mailing list is for you to use as a channel for asking questions and seeking clarifications,
whether from the instructor, teaching fellow, or classmates. However, like any broadcast medium, you
should be careful not to abuse that list. This means that "one-liners" and "cute" commentaries should be
avoided. Also, note that you will be held responsible for any inappropriate emails sent on this list.
Homework Assignments
Homework assignments constitute an important part of this course. They are designed to help you
understand the materials covered in lectures and in assigned readings. It is only by doing the homework
that you really learn the material. There will be approximately 6-8 homework assignments handed out
throughout the semester. Homework Assignments will be worth 30% of the final grade. Homework
assignments will NOT be weighted equally. Harder/longer homework assignments will constitute a
larger percent of the combined grade for all homeworks.
Some of the the problems in the homework may require minor programming or use of special
educational software to write concurrent software. One of the homework assignments will require
writing a discrete event simulator for a queuing system, which (for some) may prove a bit challenging
given the ``different'' nature of such a program (management of queues, events, state of the queuing
system and of the simulation, etc.)
Homework assignments may be fairly long, each taking an average of 3 to 4 hours to complete,
although the time required will vary quite a bit from student to student and assignment to assignment.
Always allow more time than you think you will need!
Homework assignments will be handed out at the end of class meetings. Extra copies will be left in one
of the handouts box, labeled ``CS-350 / Handouts'', in the hall outside of MCS 137. Also, an on-line
copy will be made available through the Course Web Page.
Homework assignments are to be handed in using the slotted homework box, labeled ``CS-350 / Drop
Box'', in the hall outside of MCS 137 by 5:00 pm on the day they are due. Late homework must be
time-stamped by a CS Office staff and left in Sumit Mehrotra's (the Teaching Fellow's) mailbox
(NEITHER in the Drop Box NOR in my Mailbox). Do not hand in your homework in the class or
during office hours. Do not hand in your homework by slipping them under the office door of the
instructor.
There will be a hefty penalty of 25% for a homework handed in one class late, and of 50% for a
homework handed in two classes (i.e. one week) late. No homework will be accepted if late for more
than one week. There will be NO exceptions to this policy, other than for religious holidays and
certified medical excuses. In such cases, extensions will be granted only if (and until) the homework
solutions are posted (hopefully, about 1 week after the original due date).
Graded assignments will be returned in a timely fashion. They will be available for pick-up during
section hours. It is the student's responsibility to make sure that the grade they received for each
homework is properly recorded by the instructor and/or teaching fellow. This can be done by
periodically requesting on-line grade reports. Please check the course's home page for instructions on
how to request such reports. Discrepancies will be corrected as long as the student can show the graded
homework with the correct grade on it. Thus, make sure to get back your graded assignments.
If you believe that there is a chance that your homework assignment will be lost by the course staff,
then here is how you can protect yourself: (1) Make a copy of your homework assignment before
handing it in, and (2) Have the Computer Science Department office time-stamp your copy of the
homework assignment. Claims for ``lost'' assignments will be considered only if accompanied by a
time-stamped copy of what you handed in. There are no exceptions to this rule.
Grading Policies
Grading:
Grading (except for the final exam) is done by a number of class graders, under the direct supervision
of the Teaching Fellow and the Instructor. If you have an issue with a grade (homework or exam),
please contact the Teaching Fellow. If your issue is not resolved, then (and only then) please contact
the Instructor. In doing so, please note that (to ensure fairness and grading consistency) it is seldom the
case that the Instructor will overrule the Teaching Fellow.
This class is NOT graded on a curve. This means that if everybody in the class is an A-student, then
everybody will get an A. The converse is also true! Therefore, don't be satisfied with an "average"
grade because that average could well be less than what you expect! In previous years, the average
grade for this class was between a C+ and a B-, which is low compared to other classes in CS.
Being a "gate" to all other (more advanced) CS "systems" classes (e.g. CS550, CS552, CS555, CS560,
etc.), you should expect this class to be competitive. Thus, make sure you work hard from the very
beginning!
Grade Breakdown:
The final class grade will be broken down as follows:
30% on Homeworks
10% on Attendance Quizzes
20% on Midterm Exam
40% on Final Exam
Plagiarism. Any attempt by a student to represent the work of another as his or her own. This
includes copying the answer of another student on an examination or copying or substantially
restating the work of another person or persons in any oral or written work without citing the
appropriate source, and collaborating with someone else in an academic endeavor without
acknowledging his or her contribution.
Knowingly allowing another student to represent your work as his or her own.
Submitting the same work in more than one course without the consent of the instructors
involved.
Policy on Collaboration:
There is nothing wrong in principle about discussing the topics covered in the course with your friends
and colleagues. However, there are severe consequences to plagiarism. In particular, when you submit
a homework with your name on it, you are claiming that the work contained therein is your own; it is
Plagiarism to submit work under your own name in which:
You collaborated with another student (current, former, friend, etc.) in solving homework
problems;
You copied the solution from another student; or
You obtained the solution from a book or other sources.
The above is nothing less than plagiarism and will be punished accordingly.
If you are in a situation whereby you have collaborated with a student on a homework problem, or
obtained homework solutions (or parts thereof) from some other source, then you should CLEARLY
and UNAMBIGUOUSLY disclose this in your writeup. Failure to do so constitutes plagiarism.
If you are caught cheating in a test or plagiarising a homework, you will AUTOMATICALLY receive
an F and the matter will be reported to CAS Academic Conduct Committee, who recommends
sanctions to the Dean of the College. Handing in your own assignment a day or two late will affect your
grade FAR LESS than turning in a copy of someone else's work on time!
Schedule
Date Topic
Readings
1/11
1/13
1/20
1/25
1/27
2/01
2/03
2/08
2/10
2/15
2/17
2/24
2/29
3/02
3/14
3/16
3/21
3/23
3/28
3/30
4/04
4/06
4/11
4/13
4/18
4/20
4/25
4/27
5/02
5/11
[S:1,2]
[S:3.1-3.3]
[W]
[S:A], [W]
[S:A], [W]
[S:A], [W]
[W]
[W]
[W]
[W]
[S:9.1]
[S:9.2]
[S:10.2] [W]
[S:11.5]
[S:5.1]
[S:5.2]
[S:5.2]
[S:5.4]
[S:5.4]
[S:5.4]
[S:6.1-6.4]
[S:6.6]
[W]
[W]
[S:13,14.2]
[S:13,14.2]