Follow the logical progression to master this module.
Avoiding worst-case pivots using RNG.
Sampling from an unknown size stream.
Smallest polygon enclosing all given points (Graham/Jarvis).
Detecting if two line segments cross.