Tools
Documentation of software tools used in CS 240:
CS 240 Computing Environment
The CS 240 Computing Environment is available via:
- Remote access to the CS GNU/Linux server/workstations with one of:
- (Recommended) VSCode with the Remote Development extension; or
- Direct SSH access.
- The CS GNU/Linux workstations in the SCI L037 CS Systems Lab.
Installation of VSCode and first-time CS account setup are described in Assignment Zero.
If the recommended option is not working out for you, such as if you are not able to maintain a consistent network connection, there are other options for access to a CS 240 computing environment. (They require a little more setup or learning.) Please get in touch directly with your instructor if this is the case.
CS 240 code assignments require a CS 240 computing environment.
CS 240 code assignments are designed, tested, and graded in the CS 240 computing environment, since low-level system details matter in this course. We guarantee support (help with provided tools) and consistency (our grading and your testing use the same environment) only for work in a CS 240 computing environment.
General Tools
- VSCode with the Remote Development extension for programming and remote access to the CS GNU/Linux server/workstations.
- GNU/Linux Skills (← start here) for the command line (ignore
drop
), Scott Anderson, Wellesley College- Bash commands, Ruth Anderson, University of Washington
- Some useful Unix commands, Tia Newhall, Swarthmore College
- Git and CodeTub (← start here) for version control of CS 240 assignments.
- Gradescope for written assignments
- Optional:
- Remote access with SSH:
ssh wendy@cs.wellesley.edu
- 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…
- Remote access with SSH:
C and x86
- Essential C (and other Stanford CS Library C resources)
- The C Programming Language (a.k.a. K&R), Kernighan and Ritchie, classic book
- C reference (when in doubt, stick to C99)
- 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