🔧 Tools
Documentation of software tools used in CS 341:
- Code must run on cs.wellesley.edu
- Live Remote Collaborative Editing
- General Tools
- C Language and Tools
Code must run on cs.wellesley.edu
Unless otherwise noted, all projects for the course will be tested on cs.wellesley.edu, where all necessary tools are installed. You are welcome to work anywhere you want. Many projects will work on Linux, macOS, or maybe WSL, but you should verify that your code behaves as expected on cs.wellesley.edu.
For minimum fuss, we suggest working remotely via SSH to cs.wellesley.edu. Use whatever method you prefer to connect and edit code. If you are not familiar with a method, try VSCode and its Remote Development extension.
First-Time cs.wellesley.edu Account Setup for CS 341
To configure your CS account permanently1 to find CS 341 tools, SSH to cs.wellesley.edu and run the command:
source /home/cs341/live/env/init/account.sh
Do this once.
Live Remote Collaborative Editing
To collaborate remotely with group members, I suggest one of the following:
- Use the Live Share extension for VSCode, Teletype for Atom, or another similar extension for your favorite editor, while you fire up your preferred application for video/audio communication.
- The “driver” shares their screen via Zoom while other group members give suggestions.
- Use Git, GitHub, and other communication streams to work asynchronously.
General Tools
- VSCode with the Remote Development extension is one option for programming and remote access to the CS GNU/Linux server/workstations if you do not already have a preferred method.
- OSTEP docs on basic tools
- Unix skills 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
- Unix skills for the command line (ignore
- Git documentation and book
- See also: CS 240 Git tutorial if you need a refresher. Note we will not use the
cs240
tool (or CodeTub) in 341. - GitHub documentation
- See also: CS 240 Git tutorial if you need a refresher. Note we will not use the
- Optional/other/more:
- 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 Language and Tools
- Essential C (and other Stanford CS Library C resources)
- The C Programming Language (a.k.a. K&R), Kernighan and Ritchie, classic book
- UNIX System Calls and Subroutines using C A.D. Marshall
- 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 Quick Reference Card
- Valgrind Memcheck manual:
valgrind ./executable
-
If you prefer to use the CS 341 tools only in the current shell session, then run the command
source /home/cs341/live/env/init/session.sh
instead; run this command in each shell session where you want to use the CS 341 tools. If you need to remove the permanent account configuration, edit~/.bash_profile
to remove the lines marked as related to CS 341. ↩