This document discusses molecular docking and different models used to describe molecular recognition between biomolecules. It begins by defining molecular recognition and docking, and describes early models like the lock-and-key and induced-fit models. It then discusses computational docking methods, including representing molecules, scoring docked poses, and search algorithms to generate poses. Flexibility is an important consideration, and methods to incorporate flexibility of both small molecule ligands and protein receptors are described.