Review of the topic of the contextual multi-armed bandit. Includes implementation of easy-to-extend building blocks that form the contextual-bandit problem - e.g. agent, oracle, policy, environment.