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

8.3 / 10
8.3 / 10
10-15 hrs/week
6.7 / 10


    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: 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: Spring 2022 In-Person
    Grade: A

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

    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: A

    Textbook is good for OCaml

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

    we hate eggert

    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.


Paul R. Eggert
Previously taught
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

  • 75% recommend the textbook


Textbook information not available.