For what it's worth, I think it's neat that you shared that the knowledge necessary to build a Shazam-like thing is something an undergraduate might do as a homework assignment. I had thought it would be a lot more complicated. :)
If you're interested, you can search Berkeley EE16A and if you're lucky you'll find the homework assignment (Berkeley's class materials are always open to public). It was like a Jupyter notebook and the "song" was I think random 5 seconds of Universal Declarations of Human Rights, or something like that. I'm writing this in case it helps your search, I'm at work so I don't have time to search it myself. I took this class a while ago and am alumni so my memory is fuzzy about the details of this assignment.
It's mostly pretty standard linear algebra (from matrix operations to vector spaces to eigenvalue/eigenvectors) and some circuit theory (KVL, KCL, op-amps, circuit design etc) and some signal processing (cross-correlation, OMP, Sparse OMP, least squares etc). All EE/CS students take this class in Berkeley, it is strongly recommended to be taken as freshman (unless you take Math 54 which is an equivalent course with no circuit theory). It is followed by EE16B which includes further topics in linear algebra (SVD!), circuits (transistors!) and signal processing (Fourier Series!), and CS70 which includes discrete mathematics and probability theory. This series is usually taken along with programming based classes CS 61A and CS 61B; and after finishing both of these series students start taking "upperdivision" classes.