Materials used in this course include:
- Patterson and Hennessy, Computer Organization and Design: The Hardware/Software Interface, 4th Ed., Morgan Kaufmann Publishing, 2012.
- Kernighan and Ritchie, The C Programming Language, 2nd Ed., Prentice Hall, 1988.
- Kernigan, Understanding the Digital World, 2nd Edition, Princeton University Press, 2021.
- Introduction To Unix by Mark Thomas (E-book)
- Essential C by Nick Parlante, Stanford University. (E-book: A comprehensive description of C)
- Tutorial on Pointers and Arrays in C by Ted Jensen.
- The Kalamazoo College Computer Science Program Style Guide and Documentation Standards.
- Templates that meet the documentation standards: function template file and header template file.
- You may be interested in learning more about Unix/Linux and vi/vim
from the following sites:
- Basic UNIX
- Suggested aliases and enviroment variables to make using UNIX easier.
- You may also be interested in a series of dot files that you
can put in your home directory on any linux or OS X machine to create
shortcuts and otherwise customize your working environment. One such
set of dot files is available on GitHub:
https://github.com/AlyceBrady/Unix-Intro.
Follow the directions in the
README.md
file to customize an existing.bashrc
file.
- For more information, you may be interested in the University of Surrey's UNIX Tutorial for Beginners (mirrored here in case that link is broken).
- You can find information on accessing command line arguments in section 17.1 of The GNU C Programming Tutorial. Information on writing to files can be found in section 16. Information on working with strings (and converting them to integers) can be found in section 15.