Planned topics

Programming

  • More data structures and algorithms topics
    • Fundamentals and General Topics
      • Complexity, Big O, and Other Performance Topics
        • Also talk about complexity classes, NP completeness, and P=NP.
      • Binary Representation and Arithmetic
        • Bit shifting
        • IEEE 754 floating point, including special values, and cover quantization error and other important implications
        • overcoming overflow/underflow
        • ASCII, Unicode, and possibly other character encodings
        • Modular arithmetic (especially useful for competitive programming)
      • Dynamic Arrays
      • Array Search, Selection, and Partitioning Algorithms
        • Include Quickselect
      • Sorting Algorithms
      • Linked Lists
      • Binary Search Trees (BSTs)
      • Tries
      • Hash Tables
    • Divide-and-Conquer Algorithms
      • Introduction
        • What is it?
        • What is the master theorem?
      • Karatsuba Multiplication
      • Fast Fourier Transform (FFT)
    • Randomized Algorithms
    • Mathematical Computing
      • TODO: There should be a better name for this chapter since the scope is a little wider than the name suggests. Some of this stuff should maybe be moved to the intro chapter though.
      • How to compute square root? Linear search vs. binary search vs. Newton’s method? What about fast inverse square root?
      • Machine epsilon
      • How to manage overflow and underflow?
    • Appendices
      • Introduction to Fourier Analysis, for Computer Science Students