Written by Julie Zelenski
Here is where we have gathered links to various helpful materials on topics relevant to CS107.
Stanford Unix workstations
- The myth cluster in the basement of Gates is the computing home for CS107; it is a subgroup of the larger Stanford farmshare environment
- Your SUNet ID is your username/account for myth/farmshare
- Available secure login options
- Optionally, you can configure Xwindows to enable graphical windows.
- Summary of basic Unix commands
- Using AFS (access, permissions)
General Unix environment
- Overview of UNIX development tools from Nick Parlante
- The cs107 guide to basic unix
- The cs107 guide to unix development tips
- Allison Yuen's survival guide. Nice overview of the key tools for CS107 students contributed by a CS107 alum (thanks Allison!)
Text editors
- Our cs107 guide to choosing an editor
- The bare essentials of emacs
- Our cs107 guide to emacs
- Jam-packed emacs reference card
- Full emacs manual (from GNU)
- Our cs107 guide to vim
The gcc compiler and gdb debugger
- The cs107 guide to gdb
- Jam-packed gdb reference card
- Full gcc manual and gdb manual (from GNU)
- Two gdb articles I wrote long ago for a programming journal: Breakpoint Tricks and gdb's Greatest Hits
Make and makefiles
- The cs107 guide to makefiles
- Full make manual (from GNU)
- Nutshell handbook "Managing Projects with GNU Make" (requires authentication, accesses Stanford's subscription to Safari Books Online)
C programming language
- Nick Parlante's Essential C
- The cs107 guide to the C standard library functions
- Kernighan and Ritchie's classic text The C Programming Language (requires authentication, accesses Stanford's subscription to Safari Books Online)
The valgrind dynamic analysis tool
- The cs107 guide to valgrind memtool (memory errors/leaks)
- Full valgrind manual
- The cs107 guide to valgrind callgrind (CPU/cache profiling)
Mercurial revision control system
- The cs107 guide to Mercurial
- Illustrated step-by-step guide to Mercurial basics from Joel on Software
- Online book Mercurial: the definitive guide
Assembly
- The cs107 guide to x86-64 basics
- The one page of x86-64 that lists commonly used instructions and addressing modes.
- There are a lot of additional books/web sites on x86-64 but one quirky thing to note is there are two distinct assembler syntaxes in use so best to stick with resources that use the same syntax we did (that would be GNU/att, not Intel).
E-books
- Stanford Libraries includes some excellent online book collections, such as Safari Books Online (includes Nutshell books on Linux, programming tools, languages) and Books 24x7 ITPro (includes "for Dummies" series, Sams, Osbourne/McGraw-Hill, MIT Press, Peachpit Press, and Sybex). Search Stanford's online book collection