Working on the CS70 Programming Assignments at home

May of you have expressed a desire to work at home. Although you can work from the second floor labs, you can certainly work at home if you like.

About doing work from home:

There are two ways to do work from home:

  • You can connect to the lab machines using lab resources. This requires less software, needs a high-speed internet connection, and is relatively slow, but since you will be working directly with the lab computers, the files you create or modify will be stored on the lab computers. As a result, you won't need to transfer your files from your home computer to the lab computers using the internet. If you are interested in using this method, you only need to read the Installing a SSH Client and X11 Tunneling sections.

  • You can also choose to write your programs on your own computer and then later upload your files to the lab computers. This requires more software and is much faster than the first option, but you will have to remember to transfer your files when you are done with your work.
  • Installing a SSH Client:

    Directions for Windows XP and Vista
    First, you will need to install PuTTY in order to connect to the lab computers. You may have friends who have used another SSH client when they took this class, but because of security issues, we recommend that you use PuTTY, which can be downloaded here. (You will just need to download PuTTY.exe for our purposes.) Once you have PuTTY, double-click on the downloaded file and enter as the Host Name and click on Open. From there, you can log on using your cs70-XX account and password.

    Directions for OSX and Linux: If you are using OSX or Linux, you will already have SSH installed on your operating system. To use SSH, open up a terminal and type in


    where cs70-XX corresponds to your login. Click on "yes" when you are asked to accept a key. Enter your password and you should be logged in.

    Installing an X Server:

    Now that you have a way to connect to the lab computers, you can begin working from home! However, you probably want the ability to open new windows just as you could on the lab computers, so our next step is to install an X11 Window Tunneling program. The drawback is that this can be quite slow, but you can actually use Emacs and Firefox from the Lab server!

    Directions for Windows XP and Vista
    First, you need to download and install Xming and Xming-fonts, both of which are available here. You will also need to enable X11 Tunneling for PuTTY. This can be done by opening PuTTY and navigating the tabs on the left side of the window. Expand the SSH tab under Connections and click on X11. Under "X11 forwarding", check the "Enable X11 Forwarding" and now you should be able to see X windows as long as you have Xming running as you use PuTTY

    Directions for OSX
    Make sure you have X11 on your computer. I've heard that this can be found on the OSX install CD, but I haven't confirmed this. Then, instead of entering:


    as you may have done earlier, add a -Y flag to enable X11 tunnelling by entering:

        ssh -Y

    Directions for Linux
    If you have X11 installed--and you do if you a distro newer than Yggdrasil--this should be installed on your system. Run

        ssh -Y

    Installing and using Scheme on your computer

    If you plan on writing Scheme programs on your local machine, follow these instructions.
    (Note that this isn't required for you to work from home, as you should now be able to connect to the lab computers and work remotely.)

    Remember, the files that you work on in lab won't be automatically available to you at your home computer, and visa versa. You will need to manually transfer those files (see below).

    Directions for Windows XP, OSX, or Linux
    A version of scheme that we use in this course can be found here. You want to download a precompiled binary version for your operating system. Versions are available for Macintoshes, Windows computers, and Linux computers. When you are done, you should have a setup much like we have made available in lab: emacs with scheme running in a split screen. (We use the stk-simply setup in CS70).

    Directions for Windows Vista
    Scheme for Vista can be found here. If you get a fatal exception error, that means XWin is running. You can fix this problem by right-clicking on the X icon on the lower-right-hand-corner of your screen and selecting 'exit'.

    Installing and using other languages on your computer

    You are free to use other languages for your assignments, as stated in the assignment descriptions. All allowed languages have development environments on Windows, OSX, and Linux, and you can find more information on using the language of your choice on your platform on the web.

    Moving files between your home computer and the lab servers

    If you work at home, you will most likely need to transfer files between the lab and your home computers. For instance, if you are finishing up a homework assignment at home, you will need to get the files over to the lab servers in order to submit them electronically. (The transfering and submitting can happen over the internet, so you don't have to be physically present in the lab).

    There are two main ways to go about doing this: connecting the two computers directly over the internet, or using some other service to store the files as you move them from one to the other.

    Transferring Files over the Internet:

    The main drawback to transferring files over the internet is that it will most likely only work when you are at your home computer and trying to connect to the lab computers remotely. The servers we use in lab are both available 24 hours and designed to be connected to remotely, unlike most home computers. So, if you are in lab and realize that something you need is only at home, you won't be able to get it.

    Directions for Windows XP and Vista
    You should use WinSCP to transfer files between your computer and the lab machines. WinSCP can be downloaded here.

    Directions for OSX
    You can use Cyberduck, which can be found here. Be sure to use SFTP instead of FTP.

    Directions for Linux
    sftp should work. You can also use scp if you want.

    Storing the files somewhere in order to move them:

    You could use an internet-based storage service, like Dropbox/: you will need to manually upload and download files through your browser each time you want to transfer.

    You could email the files to your self from one machine, and use an email client on the other machine to read and save the files. Using Calmail via firefox works fine (browsing for attachments on the lab machines is a lot like doing it on your home computer).

    You could also use a USB drive to store files and retrieve files. You probably know how to do this on your home computer. In lab, it is difficult to actually insert the drive in the lab machines and get the files on or off. See the instructions here to learn how to access a USB drive from the lab machines.

    The disadvantage to all of these additional solution is that you need to remember to upload the files when you are done working (whether at home or in the lab) in order to be able to get the files when you start working in the other location.

    Instructional Machines

    A list of available login machines can be found here. Note that you can only access the UNIX machines with your account and that some machines may be down for maintenance.

    Additional information

    Additional instructions are written up at

    Written Spring 2007
    Edited Summer 2011