Resources
This page contains links to local and third-party resources that you may find helpful. If you have suggestions for other resources that your fellow students may find helpful, please let me know.
Class-Specific
- Project guide
 - Project coding standards
 - C function quick reference
 - Y86-64 ISA reference
 - Y86-64 simulator
 - CS:APP textbook website
 - Project files are on stu at /cs/students/cs261/sp23/lam
 - Mindmap of course topics: (PDF | MM)
 
Videos
- Crash Course Computer Science - "Crash Course Computer Science" Youtube video series (playlist)
        
This is a really well-done video series introduction to Computer Science, and many of the episodes focus on topics relevant to CS 261. Highly recommended!
 - Unix tutorial - Dr. Weikle's tutorial from CS 149
 - C Programming Language - Computerphile w/ Brian Kernighan
 - Why C is so influential - Computerphile
 - Pointers - Computerphile
 - 15 and Hexadecimal - Computerphile on binary representations
 - How Gangnam Style Broke Youtube - Computerphile on integer overflow
 - Binary Addition and Overflow - Computerphile
 - Two's Complement - Computerphile
 - Floating Point Numbers - Computerphile
 - AND OR NOT Logic Gates - Computerphile
 - XOR and Half Adder - Computerphile
 - 10,000 Domino Computer - Matt Parker (standupmaths)
 - 8-bit breadboard computer - Simple CPU built from scratch (playlist)
 - Memory - Computerphile
 - Addressing Memory: Pt.1 and Pt.2 - Computerphile
 - Caching - Computerphile
 - Nanoseconds - Grace Hopper
 
Basic Command-Line & Linux
- Basics of using stu (on JMU CS wiki)
 - The Linux Command Line (online book)
 - Linux Tutorial
 - JMU Unix Users Group mirror - VirtualBox and Linux virtual machine images
 
The C Language
- GNU C Reference Manual
 - C Standard Library Reference
 - File I/O: Tutorial | Reference
 - Getopt: reference and example
 - C Tutor - visualize C code execution
 
Text Editors
- VS Code tutorial video 1 (password-less access and remote SSH extension setup)
 - VS Code tutorials
 - Vimtutor - builtin Vim tutorial
 - Vim cheatsheet
 - Guided Tour of Emacs
 
Debugging and Version Control
- VS Code tutorial video 2 (C debugging setup and basic Git)
 - GDB tutorial
 - GDB quick references: simpler | denser
 - Valgrind tutorial
 - Floating-point debugging article
 - Git tutorial
 
x86-64 Reference
- X86 Cheat Sheet - Quick reference from Brown University's CS 33 course
 - Intel Manual (all volumes in one PDF)
 - AMD64 Vol 1: Application Programming
 - AMD64 Vol 2: System Programming
 - AMD64 Vol 3: General Instruction Reference
 - AMD64 Vol 4: SSE and AVX Instruction Reference
 
Logic Gates and Circuits
- Logisim - Graphical tool for modeling/simulating circuits
 - Circuit simulator - Web tool for modeling/simulating circuits
 
Floating Point Representation
- IEEE-754 floating point converter
 - fp.c - utility for experimenting with floating-point representations