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 and examples are on stu at /cs/students/cs261/f18/common
- 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!
- CS 261 Video Lectures - Dr. Kirkpatrick's lectures from Spring 2016
- 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
- Development basics (from Dr. Kirkpatrick)
- The Linux Command Line (online book)
- Linux Tutorial
- JMU Unix Users Group mirror - VirtualBox and Linux virtual machine images
Fall 2015 CS 240 Tutorials (C Language)
The C Language
- The C Programming Language, 2nd Ed. (online book -- THIS IS THE CLASSIC "K&R BOOK")
- Practical C Programming (online book)
- Understanding and Using C Pointers (online book)
- GNU C Reference Manual
- C Standard Library Reference
- File I/O: Tutorial | Reference
- getopt() reference
- C Tutor - visualize C code execution
Text Editors
- Vimtutor - builtin Vim tutorial
- Vim cheatsheet (also available outside my office door)
- Guided Tour of Emacs
Debugging
- GDB tutorial
- GDB quick references: simpler | denser
- Valgrind tutorial
- Floating-point debugging article
Version Control
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
- AMD64 Vol 5: MMX and x87 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