Adam Blank 

Welcome to CS 37!


Getting Help

It is very important to us that you succeed in CS 37. We provide many extra resources to help you. Adam and the TAs hold many office hours, and we have a message board called .

It is also very important to us that you maintain your mental wellness throughout the course. A few points are not worth losing sleep over. Everyone on the course staff is available to chat, and you can always attend office hours for a non-academic conversation if necessary. You can also visit the counseling center if you find you need help beyond the course staff. If you have a temporary health condition or permanent disability (either mental health or physical health related), you should contact disability services if you have not already. Additionally, if there is something we can do to make your experience better, please let us know.

Course Staff


Annenberg 115
(626) 395-1765

Course Mascot


Teaching Assistants


  • Introduction
  • Compression
  • Seminumerical Algorithms
  • Randomness
  • Primes & Cryptography
  • Error-Correcting Codes
  • Computer Algebra
  • Compilers
  • Conclusion
Problem Sets
Prefix Sum
Partner Choosing Mixer
Huffman Coding & LZ77
DEFLATE & Canonical Huffman Codes
Zip Checkpoint
Big Numbers I
Big Numbers II
More Fast Multiplication
Linear Congruential Generators & Mersenne Twister
MPI Library Checkpoint
RSA & Diffie-Helman
Fermat Test & Miller-Rabin
AKS (?)
RSA Key Analysis
RSA Padding & Side-Channel Attacks
Lagrange Interpolation & Reed-Solomon Coding
Shamir's Secret Sharing Algorithm & QR Codes
Solving Summations & Recurrences
Representing Polynomials
Compiler Optimizations
Complexity Checkpoint
Parallelism & Scan
Victory Lap
No Class!