https://courses.grainger.illinois.edu/ece101/fa2022/exams/study-guides/exam-1-study-guide-lumetta.pdf