Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisites: courses 33, 35L. Basic concepts in design and use of programming languages, including abstraction, modularity, control mechanisms, types, declarations, syntax, and semantics. Study of several different language paradigms, including functional, object-oriented, and logic programming. Letter grading.

Review Summary

Clarity
1.7 / 10
Organization
1.7 / 10
Time
10-15 hrs/week
Overall
1.7 / 10

Reviews

    Quarter Taken: Spring 2021 Online
    Grade: A

    It's an Eggert class. It's difficult, the projects are long and complex, and the tests are hard. It's possibly the hardest upper division CS course you will take. However, it is an interesting class if you want to learn about the theory behind programming languages. If you've never encountered functional or logical programming before, those offer an interesting way of approaching problems. You do get an overview of several different languages (OCaml, Java, Prolog, Python, Lisp), but it's not long enough to learn any of them in depth. Thankfully, the TAs provide lots of help in discussion sections, so I recommend attending those.

    Basically, you're gonna have to take this class at some point, so at least make it the focus of your quarter. Don't take other difficult classes with it, and don't procrastinate on the projects.

    Quarter Taken: Spring 2021 Online
    Grade: B+

    This class wasn't as bad as I thought. Like all Eggert classes it was really valuable to go to lecture and discussion. The projects were hard (HARD) but the midterm and final were honestly not too bad (big focus on OCaml and parsing). I feel like this class made me a better developer and I learned a lot, it was just structured too chaotically.

    Quarter Taken: Fall 2021 In-Person
    Grade: D+

    You have to start projects early in this class. They will take a lot longer than you think. As with any Eggert class, the midterm and final are super hard and no amount of notes you bring will probably help. I got egged real hard. :(

    Quarter Taken: Fall 2021 In-Person
    Grade: A

    The class is fine, you know what to expect from Eggert, exams and homeworks are difficult, but the curve is generous.

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    - lectures are really good
    - exams follow the lecture content and practice exams pretty well.
    - assignments are as awful as everyone else says they are

    Quarter Taken: Spring 2022 In-Person
    Grade: B+

    This class is way too rigorous for an undergraduate class, and the exam averages very much speak to that point.

    Quarter Taken: Spring 2022 In-Person
    Grade: C+

    we hate eggert

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    Textbook is good for OCaml

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    eggert is a bad professor. people get good grades off studying themselves

    Quarter Taken: Winter 2023 In-Person
    Grade: N/A

    HW ranking IMO (Hw2 > Hw5 > Hw3 > Hw4 > Hw1), Hw5 is easier if you don't care about getting a full score as it is more incremental than the rest. Midterm is a tossup as all eggert classes are.
    This quarter they added an autograder through gradescope so HW averages were higher

Course

Instructor
Paul R. Eggert
Previously taught
25W 24S 24W 23W 22S 22W 21F 21S 21W 20F 20S 20W 19F 19S 19W 18F 18S 18W 17F 17W 16F 16W 15F 15S 15W 14S 14W 13W 12F 12W 11F 11W 10F 10S 10W 09F 09S 09W 08F 08S 07F 07S 06F 06S 05F 05S 04F 04S 04W 03F 03S 03W

Grading Information

  • No group projects

  • Attendance not required

  • 1 midterm

  • Finals week final

  • 58% recommend the textbook