Documentation of software tools used in CS 240:
CS 240 GNU/Linux Computing Environment
The CS 240 GNU/Linux Computing Environment is available via:
- Local access to the CS GNU/Linux workstations in the SCI L037 CS Systems Lab.
- Remote access to the CS GNU/Linux server/workstations with one of:
Account and tool setup are described in Assignment Zero.
CS 240 code assignments require a CS 240 GNU/Linux computing environment.
CS 240 code assignments are designed, tested, and graded in the CS 240 GNU/Linux 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 GNU/Linux computing environment.
- 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
- Git and CodeTub (← start here) for version control of CS 240 assignments.
- Gradescope for written assignments
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 (
makeand writing Makefiles, Tia Newhall, Swarthmore College
- GDB Basics for CS 240 (pdf, txt):
- Valgrind Memcheck manual:
- x86-64 Basics Machine Diagram for CS 240
- CSAPP textbook resources