Tools
Documentation of software tools used in CS 240:
CS 240 Computing Environments
Spring 2020: Computing During Remote Instruction
During remote instruction, most students should use the csenv appliance, a self-contained virtual machine you can install on your computer. It includes all necessary software tools for CS 240, allowing you to work while offline.
If you are unable to install the appliance, you can still work via SSH access to the CS server/workstations while connected to the internet. If using SSH, you should plan to use the pure-text interface (learn the Emacs keybindings). Depending on your location and internet connection, sending the graphical interface over SSH is likely too laggy to be pleasant or usable.
If neither option is working, please be in touch.
First-Time Account Setup
Spring 2020: Account setup for the csenv appliance
After installing the csenv appliance, you must complete the Account Setup tasks for Git and CodeTub once by running:
$ cs240 auth -i s20
You will be prompted to enter your CS username and password. Since you
are acting as the user u
within your appliance, you will be prompted
to confirm the CS username you enter. This will give you access to the
same Git repositories you have used previously.
Whether you are using the appliance or SSH, you do not need to repeat the setup instruction below.
A CS account is required for all computing options. Request one if needed (on campus only).
Account setup for the CS GNU/Linux server/workstations
Completing these steps on one workstation sets up the account that you use on all workstations (and cs.wellesley.edu).
-
Start with the lab activities on the Linux command line, Emacs, and C if you did not finish those during lab.
-
To configure your CS account permanently1 to find CS 240 tools, open a terminal and run the command:
source /home/cs240/live/env/init/account.sh
-
Complete the Account Setup tasks for Git and CodeTub.
General Tools
- Gradescope for written assignments and exams
- GNU/Linux Skills (← start here) for the command line (ignore
drop
), Scott Anderson, Wellesley College- Remote access with SSH:
ssh wendy@cs.wellesley.edu
- Bash commands, Ruth Anderson, University of Washington
- Some useful Unix commands, Tia Newhall, Swarthmore College
- Remote access with SSH:
- Emacs Basics (← start here) for text editing
- Emacs Reference Card (pdf), Tour, Manual
- A Visual Guide to Emacs – fun illustrated guides, by Sacha Chua
- lots more…
- Git and CodeTub (← start here) for version control of CS 240 assignments.
C and x86
- The C Programming Language (a.k.a. K&R), Kernighan and Ritchie, classic book
- Stanford CS Library C resources
- C resources, Tia Newhall, Swarthmore College
- Duane’s Incredibly Brief Introduction to the C Programming Language, Duane Bailey, Williams College
- C for Python programmers
- GCC manual (
gcc --version
) - Using
make
and writing Makefiles, Tia Newhall, Swarthmore College - GDB Basics for CS 240 (pdf, txt):
gdb ./executable
- Valgrind Memcheck manual:
valgrind ./executable
- **x86-64 Basics Machine Diagram for CS 240
- CSAPP Chapter 3 (copies in lab, draft online)
- exhaustive x86 manuals from Intel and AMD
- x86 Assembly WikiBook (GAS syntax)
- CSAPP textbook resources
-
If you prefer to use the CS 240 tools only in the current shell session, then run the command
source /home/cs240/live/env/init/session.sh
instead; run this command in each shell session where you want to use the CS 240 tools. If you need to remove the permanent account configuration, edit~/.bash_profile
to remove the lines marked as related to CS 240. ↩