WARNING! This wiki is for Fall 2017. See Winter 2018 for more recent course information.

CS 224, Introduction to Computer Systems, studies How a computer works to execute sequential code: low level data representation and abstraction, the relationship between C and assembly, computer architecture and pipelining, the memory hierarchy, dynamic memory allocation, and processes.

This class examines the concepts underlying hardware and software components that are common to most computer systems. The main premise of the course is that “what's under the hood” matters since it affects the correctness, performance, and utility of application programs. The key questions that we explore in the course are:

  1. How can a programmer use hardware abstractions to avoid defects in programs?
  2. What is the relationship between the software a programmer writes and what is executed on the underlying architecture? How does that relationship affect program performance? Security?
  3. Why is the memory mountain so critical to modern computing? How does it affect program performance? How should I use it in an application?
  4. How can I use my new understanding of computer systems to improve the performance of any code that I write?

Please see the Syllabus and Schedule for more details. Due dates and section specific details are in Learning Suite.

cs-224/start.txt · Last modified: 2018/01/10 14:06 by egm
Back to top
CC Attribution-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0