Notes on Big O notation: definition of Big O, approximation in determining runtimes, and individual runtimes: constant, logarithmic, linear, quasilinear, quadratic, exponential, factorial, etc.
Notes on behavioral design patterns: memento, state, iterator, strategy, template method, command, observer, mediator, chain of responsibility, and visitor.
Notes on structural design patterns: composite, adapter, decorator, facade, flyweight, bridge, and proxy.
Notes on hash tables: hash functions, collisions, implementation, common operations, etc.
Notes on stacks and queues: definition, common operations, implementation, etc.