Resources
Textbook sites
- CS:APP student site: http://csapp.cs.cmu.edu/public/students.html
- The C Programming Language / K&R / The "White Bible": http://cm.bell-labs.com/cm/cs/cbook/
- Advanced Unix Programming: http://basepath.com/aup/
C programming
- comp.lang.c FAQ: http://c-faq.com/
- "The C Book"
- GNU C Library documentation: http://www.gnu.org/software/libc/manual/
- Some handy educational materials having to do with C, pointers, and data structures, from the Stanford CS Education Library: http://cslibrary.stanford.edu/
Dynamic Memory Allocation
- A tutorial on using Valgrind, a very useful tool that can help you detect various memory management related bugs.
- An illuminating survey of dynamic storage allocation techniques: Paul Wilson et. al., Dynamic Storage Allocation: A Survey and Critical Review, 1995.
- Writeup (and link to source code) for Doug Lea's malloc
Exams and Study Guides
- The IIT final exam schedule: http://www.iit.edu/registrar/important_dates/final_exam_schedule.shtml
- Old exams:
- Practice VM translation exercises
- Instead of just posting answers, I figured it might be helpful to see the
worked out solutions. In case you can't read my
writing, the final answers (the data bytes --- a cache hit always occurs
in the given problem set) are:
- Problem #1: (a) 0xE7 (b) 0xCA
- Problem #2: (a) 0xCB (b) 0x92
- Problem #3: (a) 0xA0 (b) 0x00
- Instead of just posting answers, I figured it might be helpful to see the
worked out solutions. In case you can't read my
writing, the final answers (the data bytes --- a cache hit always occurs
in the given problem set) are:
Miscellaneous
- Students are often interested in working on lab assignments on their own (local) machines and keep things in sync with ada (for final submission) using Git. Here's a detailed walkthrough of one possible approach to doing that. Note that this writeup is now out of date, as we've transitioned to a different way of handling student repositories -- I'm leaving this here, however, for those interested in learning more about Git.
- A handy
gdbreference card