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
10.0 / 10
Organization
10.0 / 10
Time
0-5 hrs/week
Overall
10.0 / 10

Reviews

    Quarter Taken: Fall 2022 In-Person
    Grade: N/A

    Projects take a VERY LONG TIME. Carey was a great teacher, and i thoroughly enjoyed the content!

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Carey delivers.

    This class presents the concepts of Programming languages from the point of view of software engineering (that is to say, less theoretical and with more applications). This make the course content easier to digest but at the cost of some important concepts like syntax trees, ANFs, and BNFs

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

    If you have to take CS131, definitely take it with Carey. This was the first quarter he taught it, so some imperfections were expected. Overall, Carey and the TAs (pre-strike) were all very passionate and helpful. They actively listened to our feedback and put in a lot of effort to improve the class.

    Class website: https://ucla-cs-131.github.io/fall-22/

    The homework (graded on completion) was initially very long, but they listened to feedback and made some questions optional. The projects were a bit more time-consuming than initially expected (maybe 20+ hours), but the autograder was insanely helpful to instantly see your score on Gradescope, and there was a subset of the test cases publically available. The exams (open book) were fair but challenging, and really tested your deep understanding of the concepts. The course material wasn't particularly difficult, but there was a significant amount.

    Advice: (seriously) don't procrastinate on the projects! Try to keep up with the course content because it's really easy to fall behind. Attend lectures (he's entertaining and gives out snacks) - it may feel easy to ditch because he posts his slides, but he will explain things more clearly than if you skimmed through the slides yourself.

    Quarter Taken: Fall 2022 In-Person
    Grade: P

    Nachenberg is GOATed. He's extremely thorough with his lectures and is very focused on prepping us for what's used in industry.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Nachenberg's lectures were very engaging. The homeworks are graded on completion and the exams were pretty straightforward.

    Quarter Taken: Spring 2023 In-Person
    Grade: A-

    Carey is a decent lecturer, but overall I dislike this class due to the limited knowledge taught and the highly repetitive code examples given in the lecture. Carey somewhat treats his students as kindergarteners, not college students. I don't like the feeling being treated so.

    Quarter Taken: Spring 2023 In-Person
    Grade: B

    Absolutely not a simple class. The projects are very doable and exciting, but if you mess up a midterm or final, you're screwed; it's extremely easy as there are so many details to remember, and the words are sometimes confusing.

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    Lectures were very good, prepared you very well for the exams. Exams were a little long, but the class is still in the process of improving and grading will probably be more reasonable than it was the first time this quarter. Carey ended up changing the grading scheme on the midterm to offer more partial credit from feedback, so feedback does clearly affect the class. Would definitely recommend over Eggert

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    Very enjoyable class. Definitely less content than Eggert's but I still really enjoyed the material, and definitely feel that it is much easier to pick up programming languages now. The class really teaches you what to look for when trying to learn a new programming language. The 3 interpreter projects are challenging but also fun, and the exams are also challenging but fair. The slides are incredibly well made and presented.

    The only issues I have are that Carey isn't always able to answer questions, or he tells you to defer your question until later rather than answering them. Additionally, though I did feel that I learned a lot in the class, the exact process of picking up a new programming language using the things we learned is still sort of unclear – it's definitely easier to pick up a new language, as it's now easier to read languages that I didn't previously know, but it's still unclear how exactly to learn one.

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    It's Carey, lectures are pretty interesting, and if you go you'll be fine on the exams. Projects are a bit time consuming (and checked for plagiarism lol)

Course

Instructor
Carey Nachenberg
Previously taught
23F 23S 22F

Grading Information

  • No group projects

  • Attendance not required

  • 1 midterm

  • Finals week final

  • 27% recommend the textbook

Previous Grades

Grade distributions not available.