https://courses.grainger.illinois.edu/ece551/fa2023/secure/Midterm1-soln.pdf