Houjun Liu

SU-CS107 SEP272023

Core Themes of CS107

how and why of 107:

  • how is program data represented in the hardware
  • how does the heap work and how is it implemented
  • how does a computer know how run code
  • how does an executable map onto computer systems
  • why is my program doing one thing when I expect it to do something else

“why is this broken system behaving the way it does?”

Core Goals of CS107

fluency

  • pointers and memory, and how to make use of them
  • an executable’s address space + runtime behavior

competency

  • the translation of C to and from assembly
  • implement programs with limits of computer arithmetic
  • identify bottlenecks and improve runtime performance
  • navigate Unix
  • ethical frameworks to design and implement software

exposure

computer architecture

Content of CS107

  • bits and bytes
  • chars and c strings
  • pointers stacks and heaps
  • generics: use them
  • assembly: reverse an engineering of binary
  • heap allocators: implement malloc and free