https://theory.stanford.edu/~trevisan/cs261/

https://www.youtube.com/playlist?list=PLY55ZtPLwJDzFjTxZhcqvUjXjFx09SipI