Used for EECS 340 at Northwestern University