CSCI 237

Computer Organization

Home | Lectures | Labs | CS@Williams

Getting Started

  1. Login to a lab machine and open a terminal.

  2. If you aren't on a Linux machine in lab, SSH to your favorite CS Linux machine. See list of machines here. If you are in lab and already on an Ubuntu machine, skip ahead to Step 4.
    $ ssh 25abc@lohani.cs.williams.edu
  3. Make a new directory for cs237, and change into that directory.
    $ mkdir cs237
    $ cd cs237
  4. Update your path to include the submit237 script. To do this, create a file called .local_bashrc in your home directory. (If you already have this file, that's ok. You can update it.) You can use VS Code or your favorite text editor to open the file. Add a line that says:
    export PATH=$PATH:/usr/cs-local/237/bin
    Close your editor and load the file by typing
    $ source .local_bashrc
  5. Get started on Lab 1.

  6. To logout of the ssh session, type exit. Close the Terminal, then logout of the lab machine. Never turn a lab machine off!

Notes and Advice

  1. Though not required, I encourage you to gain familiarity with a non-graphical text editor this semester. I use emacs, but there are other options. To open a file using emacs, just type emacs followed by the file you wish to open.
    $ emacs bits.c
    WARNING: You will not be able to use your mouse in emacs. Type Ctrl+x, followed by s to save a file, and Ctrl+x followed by c to save and close.

  2. Compiling in C:
    $ gcc -o output -g input.c 
    The -g is used for debugging. You will just use a Makefile most of the time, however, you should know how to compile a C program without a Makefile. We will go over some of this in lab, but you are always encouraged to ask questions.

  3. New to emacs/Unix/C? Check out the links on this page for some cheat sheets and tutorials.

  4. These tutorials are also great. I recommend completing the first five of these tutorials on your own time. The tutorials were designed for use on the computing facilities at CMU, so there will be a few points where what they say does not reflect our configuration. Overall, however, these tutorial appear to provide an excellent introduction to Unix commands.