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