https://courses.grainger.illinois.edu/ece551/fa2023/secure/HW1_soln.pdf