CS146a: Fundamentals of Computer Systems
Instructor: Liuba Shrira
Mission and Syllabus //
Assignments and grades //
Textbook and readings //
Class meetings //
Office hours //
Hot News //
Current Assignment //
Reading Responses //
Mission and Syllabus
Prereq.: CS31a and knowledge of C.
Even if you have no intention to build systems for living after graduation, you
may still need to plan a web site, roll out a financial aplication, or advise management on IT strategy.
So you need to understand systems.
CS146a will teach you the design principles underlying computer software and hardware systems:
techniques for controlling complexity; networks and distributed systems;
atomicity and coordination of parallel activities; recovery and reliability;
privacy of information; impact of computer systems on society.
The emphasis will be on long-lasting ideas rather than low-level mechanics.
The lectures will define the concepts. The case studies
of working systems and outside reading in the current literature will provide comparisons
and contrasts. The hands-on assignments will poke at real systems from outside, the lab will provide experience
with building systems from inside.
Upon completion of this course, the student will be able to understand a computer system and evaluate
its key aspects with respect to performance, reliability and security.
In addition, the students will gain proficiency in reading and analysing profesional literature, and gain experience in
applying in practice some of the design principles learned in class.
Here is a detailed CS146a mission and syllabus.
Assignments and Grades
Grades in cs146a will be based on written reports, lab projects, quizzes
and your participation in class. There will not be a final examination.
Before each class, you will be asked to submit a short report pertaining
to the reading assignments. We will discuss student answer in class.
The lab will consist of several project. The programming will be done
in C so fluency in C (or C++) is a must. We may also use a new programming language Rust.
The lab will be run in Unix environment.
You will have to defend your projects.
Since an important part of cs146a is discussion of current literature,
your class participation will influence your grade significantly -- so significantly
that we hesitate to try to assign weights to the individual components such
as summaries and projects. Everything is important; We will assign your final
grade based on the personal assessment of what you got out of the course,
integrating all the methods of evaluation we can think of.
Collaboration is neither permitted on the reports nor on the projects
except collaboration with team members on a team project. You are responsible
for protecting your homework directories so that others cannot view them
or copy them. Failure to do so constitutes a violation of academic integrity.
To protect a unix directory called "homework", "chmod og-rwx homework".
Textbook and readings
There are three things you need to have in order to accomplish the reading
assignments in cs146a
- We will use a new operating systems book
Principles of Computer System Design,
by Jerome H. Saltzer and M. Frans Kaashoek,
Morgan Kaufmann, 2009 (ISBN 978-0-12-374957-4)
and a set of notes that will be distributed. Background material
appears in Modern Operating Systems, by Andrew Tannenbaum, 2nd Edition,
Prentice Hall Publishers (ISBN: 0130313580) and in
- Readings for cs146a, a set of papers
that will be distributed during the semester.
||(liuba at cs.brandeis.edu)
||(TBD at cs.brandeis.edu)
Liuba Shrira : Tue 1-2pm, and by appointment, send me e-mail to schedule
TA: TBD–3:30pm, and by appointment
Submitting via LATTE
All homework should be submitted via LATTE. You will see the page for 146a in LATTE once you register for the course. If you have any questions about submitting assignments, please contact the TA via email.
- The assignments will be posted on LATTE
Reading responses from students are posted on the LATTE page for this course.
Students with Disabilities:
If you are a student with a documented disability on record at Brandeis
University and wish to have a reasonable accommodation made for you in this
class, please see me immediately.
And Now For Something Completely Different
Random collection of articles on hot and/or controversial issues related
to 146a topics by experts from all over the web. Beware: you may or may
not need more then one grain of salt for each grain of truth here.
Kaashoek and Jerry
Saltzer, for making available the lecture materials.
Thanks David Evans
for making available the Rust programming assignments.
Last updated 1/6/2015
Computer Science Department