Source: https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/.pdf