University of Minnesota
Machine Architecture and Organization
index.php

U of M / CSELabs:

Books about C:

  • The C Programming Language, Brian Kernighan and Dennis Ritchie. The classic tutorial and reference, by the original creator of the language and an early colleague. Concise but clear. Even the second edition is now slightly out of date (it describes the ANSI 1989/ISO C90 standard), but the small differences won't affect 2021 much. Book home page
  • C: A Reference Manual, Samuel P. Harbison and Guy L. Steele Jr. Firmly a reference rather than a tutorial, this one goes for completeness. The most recent fifth edition covers C99. Book home page
  • C by Dissection, Al Kelley and Ira Pohl. Recommended by some previous years' instructors, this textbook is based on an approach of reading complete programs. Book home page

Online resources about C:

Online resources related to C programming:

  • Steve Summit's Introduction to C Programming
  • comp.lang.c FAQ (Learn a great deal about the esoteric parts of C. A good resource if you are having weird problems.)
  • GNU libc manual (The GNU implementation of the C standard library.)
  • GCC manual (Be sure to look at the appropriate version.)
  • Optimization of Computer Programs in C (How to make your programs faster in the real world.)
  • What's new in C9x (C99, nicknamed C9x before it was ratified, is the intermediate C standard after the 1989/1990 ANSI/ISO C, but before the latest 2011 standard.)

Programming tools:

Unix:

SSH/SCP/SFTP:

  • PuTTY, an SSH/SCP/SFTP client for Windows.
  • WinSCP, another SCP/SFTP client for Windows.

Online resources about logic design: