https://courses.grainger.illinois.edu/ece563/fa2022/hw1-F2022.pdf