Algorithms

Big O Notation

Notes on Big O notation: definition of Big O, approximation in determining runtimes, and individual runtimes: constant, logarithmic, linear, quasilinear, quadratic, exponential, factorial, etc.

Design Patters

Behavioral Design Patterns

Notes on behavioral design patterns: memento, state, iterator, strategy, template method, command, observer, mediator, chain of responsibility, and visitor.

Design Patters

Structural Design Patterns

Notes on structural design patterns: composite, adapter, decorator, facade, flyweight, bridge, and proxy.

Data Structures

Hash Tables

Notes on hash tables: hash functions, collisions, implementation, common operations, etc.

Data Structures

Arrays and Linked Lists

Notes on linked lists and arrays: definitions, features, implementation in Java and JavaScript, singly and doubly linked lists, circular linked lists, common operations, etc.

Data Strucutures

Stacks and Queues

Notes on stacks and queues: definition, common operations, implementation, etc.

Data Strucutures

Trees

Notes on trees: definitions, binary trees, binary search trees, implementation, breadth-first search, depth-first search, pre-order, in-order and post-order traversal, common operations, etc.