Sources http://web.stanford.edu/class/cs246/ http://snap.stanford.edu/class/cs246-videos-2019/ https://www.bilibili.com/video/BV1CE411f7PT?p=1