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/f23
- 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 Evolution - 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