Home

 

Sections

Lectures

Assignments

Solutions

Resources

Staff

CS61a: The Structure and Interpretation of Computer Programs

Course resources

Newsgroup

You can find general (unmoderated) discussion of the class on the newsgroup, ucb.class.cs61a.  If you don't have a news reader or don't want to set yours up, you can use the web news reader.  Please try to keep in mind that this newsgroup is intended specifically for CS61a discussion and is not a general-purpose newsgroup.

Student Learning Center

Berkeley's Student Learning Center offers CS 61A-specific help.  The center facilitates student-run study groups that meet three hours per week and offers tutoring Monday through Friday. 

Eta Kappa Nu

The EECS Honor Society, Eta Kappa Nu (HKN), offers drop-in tutoring and also keeps a file of past 61A exams.

 

Reader

You can find the .tex and .pdf files for the reader in the reader directoryPlease don't print this out; you already have it!  (There is nothing here that is not in the reader.)


Administrative resources

Obtaining cardkey access to Cory, Davis and Soda Halls

To obtain cardkey access to the instructional labs in Cory, Davis, and Soda, see the fine people in 391 Cory or 387 Soda.  Cardkeys cost $20, of which $15 is refunded when you return the cardkey.

Setting up your personal workstation for 61A coursework

You are welcome to use the instructional labs designated for 61A.  However, with a ratio of approximately ten enrolled students to every available lab machine, space may be tight, especially near project and homework due dates.  Be proactive.  Set up your personal machine now; you can program in your bathrobe all semester long.

 

There are two approaches to programming at home.  One is to install programs that allow you to log into the same machine that you'll be working on for labs, dv310.cs.berkeley.edu.  When you go to lab section and sit at a workstation, you're actually working on a terminal attached to a server -- the dv310 machine.  The workstations themselves have no persistent data storage of their own; everything is stored centrally.  When you log into dv310 from home, you're using your home computer to do the same thing, so the same files you create in lab section will be available at home.

 

Another approach is to install the actual Scheme program (called an interpreter) at home.  The advantage to this approach is that you do not need to be constantly connected to the network to do your work; however, you won't be able to access the files that you've worked on in lab section unless you explicitly download them from dv310 to your home machine first.  In addition, you'll need to move your files back to the lab computers in order to submit them, and you should test your code on dv310 before submitting it.  (The readers will be testing your code on the lab computers, so you should too.)

 

The information following this paragraph details the first approach: how to log into dv310 from your home machine.  For information about installing the UCB STk Scheme interpreter at home, see UCB Scheme.  For help, see UCB Scheme Help.

Installing software for remote access

To access the instructional server dv310.cs.berkeley.edu from your computer, you'll need to install a secure shell (ssh) client and an Xwindows client.  If you have an active CalNet ID, you can download these programs for free from Berkeley's software vault.  For Windows PCs, Berkeley provides SSH Secure Shell 3.2.0 and Exceed 7.1 (an Xwindows client).  Mac OS X and later already has ssh and Xwindows clients built-in; for Mac OS 9 and previous, you can install Mac SSH 2.1fc3, but you won't be able to use Xwindows for graphical Emacs.  If you use Linux or other Unix OSes, you should know what you need, and you probably already have it.

Setting up SSH Secure Shell and Exceed

Once you've downloaded and installed SSH and Exceed, run Exceed.  In the default Windows 2000 installation, this can be found in the Start menu under Start->Programs->Hummingbird Connectivity 7.1->Exceed->Exceed.  A splash screen should pop up, then disappear.  There will be a taskbar item named "Exceed" but no associated window.  This is normal.  

 

Now run SSH.  In the default Windows 2000 installation, you can find this program under the Start menu at Start->Programs->SSH Secure Shell->Secure Shell Client.  A terminal window should appear.  From the Edit menu, open Edit->Settings..., and select "Tunneling" from the tree on the left.  Make certain that the "Tunnel X11 connections" box is checked at the bottom of the screen.  Close the settings dialog box.

Testing your setup

Now press the button labeled "Quick connect."  Another dialog box should pop up.  To the right of "Host name," type dv310.cs.berkeley.edu.  To the right of "User name," type your login name.  Leave the "Port" set at 22, and the "Authentication method" set to Password.  At the prompt, type your password.  You should see the standard cory login screen.  Type "emacs" at the command line and hit return.  Wait a few moments; if an Emacs window pops up on your screen, you're set to go.  If you get an error like "Couldn't find per display information", there's been some problem with your configuration, most likely with Exceed.

System tutorials

CSUA Unix tutorial

If you're unfamiliar with Unix or having trouble with basic Unix commands, you should attend the Computer Science Undergraduate Association's (CSUA) Unix help sessions.  If you attend, be friendly; they're fellow undergrads providing Unix help as a public service.

Emacs

Emacs is a standard text editor for Unix-like systems, written and distributed by the GNU project.  If you're unfamiliar with any other Unix text editors, Emacs is reasonably friendly, and knowing at least one Unix text editor well is a worthwhile skill for any computer scientist.  Emacs is often accused of being too large for its own good; but it does include a built-in tutorial.  To run the Emacs tutorial, type control-'h', then type 't.'

 

If you'd like context coloring of your Scheme files under Emacs, save this file to your home directory and rename it '.emacs.'  (pronounced "dot emacs")