CS40, UCSB: "Foundations of Computer Science"