Mathematical foundations of computer science, including sets, relations, functions, logic and combinatorics.
1 - 6
UnitsPass no pass
Grading1, 2, 3
PasstimeNone
Level LimitCreative studies
CollegeAmazing lectures and great TAs. Start the assignments early because none of them are actually difficult but require time to fully process what is being asked. No tests, only very fun programming assignments. Plus you get to learn scala which is excellent, and prolog which is pretty cool too. Tied with CS138 as the best class I've taken here.
His lectures are very good. The lectures focus more on the theory while the homework focuses on implementing the theory. There were no exams, only programming assignments due about every two weeks. He has handouts that cover everything in lecture though it's also good to go because he explains well.
By far my favorite Computer Science professor in UCSB! He is extremely helpful when it comes to learning the concepts. If you actually listen in class and make genuine attempts at the projects, you won't need to crack open a single book or study. Super nice, funny, and smart.
DO NOT WORK SOLO!!! This is the hardest class I've ever took, only one I've failed. Each project is abt 2000+ lines of C++ so work w a TEAM. Prof is rlly nice but the projects are too huge, w no skeleton code. Class is just 5-6 projects, they take ~2 hrs daily 7 days/wk. Assign #2 is insanely hard if you get stuck just ditch it don't fall behind.
Completely project-based, which is a blessing and a nightmare (if you're solo which i did). You will spend a lot of time debugging to ensure thousands of fuzzed inputs exactly match Gradescope. Good, principled coding design will mean fewer headaches, segfaults, and refactoring later. Project 2 is arguably the hardest project (parsing + type check)
DO NOT WORK SOLO!! WORK IN A TEAM! I failed this class despite working so hard bc each project is ~2000 lines of code (there are 6 projects). Prof is really nice and super helpful but projects have no skeleton code so it's INSANELY hard. If stuck on assign 2, just ditch it, don't fall behind. Hardest class I've had. You should spend 1-2 hrs daily.