course CS Primer

Computer Systems


  • Bits and bytes
  • Intro to C
  • Low-level programming
  • CPU microarchitecture and low-level performance
  • The memory hierarchy (CPU caches)

Bits and bytes

  • Develop skills for working with binary encodings of data
    • Useful for networking, databases, etc.
  • Key concepts:
    • Fixed width integer encodings and byte ordering
    • Signed integer encodings
    • IEEE-754 floating point scheme
    • Unicode, UTF-8, and other encodings

Protobuf varint


  • What does it mean for something to "be" a certain number of bits?
    • We have a fixed amount of bits to store data
      • Memory is allocated for a value
    • The amount of memory limits determines can be stored there
      • eg. 4 bits can only store 0000 --> 1111
      • Adding 1 to 1111 results in 0000 (overflow)
    • The "width" is how many bits something takes up
    • Python solves overflows in software