https://courses.grainger.illinois.edu/ece333/sp2022/ECE_333_Syllabus2021.pdf