<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>CS 61A Course Reader, Volume 2</title><style type="text/css">@namespace url(http://www.w3.org/1999/xhtml);
@font-face {
font-family: 'EasyRead2';
font-style: normal;
font-weight: 400;
src: local('EasyRead2'), url(https://cdn.rawgit.com/PullJosh/files/gh-pages/Arial-LargePeriod2.woff) format('woff');
}input[type="text"], input[type="textarea"], textarea {
font-family: "EasyRead2" !important;
}</style></head>
<body>
<center>
<h1> CS61A: Structure and Interpretation of Computer Programs </h1>
<h3> Course Reader, Volume 2: Reference Documents </h3>
</center>
<p><b>These documents are here for online reference! Please do not print
these on the printers in Berkeley computer labs. Lab printers are for your
homework and project solutions, not for reference documents. Thank you.</b>
</p><p>For many years I resisted the trend to putting course materials online,
but I've been convinced because of the increasing numbers of people who
aren't at Berkeley but use the
<a href="http://wla.berkeley.edu/main.php?course=cs61a">online lectures</a>
to study SICP. Welcome, visitors!
</p><ul>
<li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/OOP/aboveline.pdf">
Object-Oriented Programming: Above the Line View</a>
</li><li> <a href="OOP/ref-man.pdf">
Reference Manual for the OOP Language</a>
</li><li><a href="OOP/belowline.pdf">
Object-Oriented Programming: Below the Line View</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/gnuemacs.pdf">
Highlights of GNU Emacs</a><sup>*</sup>
</li><li> <a href="quick.pdf">
Emacs Quick Reference Guide</a><sup>*</sup>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/exit.pdf">
Exit Information (Read at end of semester!)</a>
</li><li><a href="Therac-25.pdf">
An Investigation of the Therac-25 Accidents</a><sup>**</sup>
</li><li><a href="r5rs.pdf">
Revised<sup>5</sup> Report on Scheme</a><sup>***</sup><br />
(the last <i>real</i> version of Scheme before its hostile takeover
by industrial programmers)
</li><li><a href="mapreduce-osdi04.pdf">
MapReduce: Simplified Data Processing on Large Clusters</a><sup>****</sup>
</li><li>Sample Exams:
<ul>
<li><b>Please read this:</b>
<p>These exams are made up of actual past exam questions, but reorganized to
make each sample more comprehensive and to choose the best possible questions.
Some of the exams are a little longer (by one question) than actual exams, but
they're in the right ballpark.
</p><p>Since the questions within a sample are taken from different semesters,
don't try to compare the number of points between problems. The solutions
include scoring information only to give you an idea of how part credit is
awarded within each problem.
</p></li><li>Midterm 1
<ul>
<li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm1/mt1-1.pdf">
Sample exam 1</a>
</li><li><a href="Midterm1/mt1-1.soln.txt">
Solutions to sample exam 1</a>
</li><li><a href="Midterm1/mt1-2.pdf">
Sample exam 2</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm1/mt1-2.soln.txt">
Solutions to sample exam 2</a>
</li><li><a href="Midterm1/mt1-3.pdf">
Sample exam 3</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm1/mt1-3.soln.txt">
Solutions to sample exam 3</a>
</li></ul>
</li><li>Midterm 2
<ul>
<li><a href="Midterm2/mt2-1.pdf">
Sample exam 1</a>
</li><li><a href="Midterm2/mt2-1.soln.txt">
Solutions to sample exam 1</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm2/mt2-2.pdf">
Sample exam 2</a>
</li><li><a href="Midterm2/mt2-2.soln.txt">
Solutions to sample exam 2</a>
</li><li><a href="Midterm2/mt2-3.pdf">
Sample exam 3</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm2/mt2-3.soln.txt">
Solutions to sample exam 3</a>
</li></ul>
</li><li>Midterm 3
<ul>
<li><a href="Midterm3/mt3-1.pdf">
Sample exam 1</a>
</li><li><a href="Midterm3/mt3-1.soln.txt">
Solutions to sample exam 1</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm3/mt3-2.pdf">
Sample exam 2</a>
</li><li><a href="Midterm3/mt3-2.soln.txt">
Solutions to sample exam 2</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Midterm3/mt3-3.pdf">
Sample exam 3</a>
</li><li><a href="Midterm3/mt3-3.soln.txt">
Solutions to sample exam 3</a>
</li></ul>
</li><li>Final exam
<ul>
<li><a href="Final/f-1.pdf">
Sample exam 1</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Final/f-1.soln.txt">
Solutions to sample exam 1</a>
</li><li><a href="Final/f-2.pdf">
Sample exam 2</a>
</li><li><a href="Final/f-2.soln.txt">
Solutions to sample exam 2</a>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/Final/f-3.pdf">
Sample exam 3</a>
</li><li><a href="Final/f-3.soln.txt">
Solutions to sample exam 3</a>
</li></ul>
</li></ul>
</li><li><a href="mapreduce-osdi04.pdf">
Mapreduce: Simplified Data Processing on Large Clusters</a><sup>****</sup>
</li><li><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/notes.pdf">
Lecture Notes</a>
</li><li><a href="sicp-errata.txt">
SICP Errata</a><sup>*****</sup>
</li><li><a href="word.txt">
Berkeley Word/Sentence Functions</a>
</li><li>Ergonomic Information (external links):
<ul>
<li><a href="https://www.uhs.umich.edu/computerergonomics">
Computer Workstation Ergonomics (UMich)</a>
</li><li><a href="https://www.ors.od.nih.gov/sr/dohs/HealthAndWellness/Ergonomics/Pages/ergonomics_home.aspx">
Ergonomics (NIH DOHS)</a>
</li></ul>
</li></ul>
<p>
*: Prof. Paul Hilfinger, UCB EECS<br>
**: Nancy G. Leveson, Clark S. Turner. IEEE <cite>Computer</cite>, July 1993<br>
***: Richard Kelsey, William Clinger, Jonathan Rees (Editors), et al., 1998<br>
****: Jeffrey Dean, Sanjay Ghemawat, Google, Inc., OSDI 2004<br>
*****: Harold Abelson, Gerald Jay Sussman, Julie Sussman, 1999
</p><p>
</p><p>
</p><p>
</p><p><a href="../Volume1/CS 61A Course Reader, Volume 1.html">Volume 1</a>
</p><p><a href="../../61a-pages">Back to class web page</a>
</p></body></html>