Study of the structure of compilers. Topics include: lexical analysis; syntax analysis including LL and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools.
4
UnitsLetter
Grading1, 2, 3
PasstimeNone
Level LimitEngineering
CollegeDO 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.
Only graded on projects due throughout the quarter. The late policy is pretty generous. Imo organizing the course like this increases the workload a lot because you definitely need to attend lecture (no recordings or slides) in addition to working on projects throughout the quarter. People like him but idk if it's worth it unless you love theory.
In my opinion, the best Computer Science professor I have had at UCSB. Very clear and fair grading policies. Tends to put less emphasis on quizzes and no exams, and teaches project-based courses with interesting tasks.
Great Lecturer. Projects were pretty tough, but not impossible. and they build on, so don't fall behind. Overall, learned a lot