- Home
- Search
- Paul R Eggert
- COM SCI 131
AD
Based on 89 Users
TOP TAGS
- Tough Tests
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Sorry, no enrollment data is available.
AD
Eggert's class never fail to piss me off. The amount of work required for this class is ridiculous, and the pacing is just way too fast. On top of that, we all know Eggert writes these impossible exams where the average is 40%. I put so much time into this class and still struggled. No one really knows what's going on and everyone copies code off Github.
He doesnt care if you understand the material, he makes no sense, his projects make no sense, he doesnt feel the need to make his projects easier because no one confronts him for reasons i dont understand. I wish i learned but i cant learn from him. Hes all over the place.
I'm sure the other comments have already painted quite the picture of this class. I'll spare you the repetition about how this class is a mess, has the most insanely unpractical workload I've ever seen, and absurd tests.
Instead I'll just outline some tips that may help you get an A like I did:
-Take notes in lecture, and really make sure you understand everything he goes over conceptually. Lecture can feel so bizarre, because it is almost never relates to the assignments you will have to do that week. But the tests are at least, if not over half conceptual, and understanding the conceptual will give you the extra edge to do well on the tests.
-Don't waste too much time on homeworks. If you did each homework legitimately, by yourself, from start to finish, you may be able to finish just before you graduate. Maybe. Just reference github instead.
-Do the practice tests. They are super helpful and similar to the real tests.
-On the tests, don't panic. The medians are 50% for a reason, you aren't supposed to be able to nail every question. There will be a question that will blindside you. Just write what you can, and throw in as much Eggert vocab that you learned during lecture and from the textbook as possible. Its okay if some of it is a little wrong too, just write a lot of stuff down with good vocab that is somewhat logical and move on
-Lastly, study. Many students go in thinking their notes will save them. Or that because the tests are so hard they don't have a chance and will use the textbook as a crutch. Not the best idea. If you understand 90% of the things he talked about in lecture and can do from memory most of the basic/intermediate tasks required in the homework by hand without notes, then you are set.
Also just take a nap during the first hour of the first lecture.
TL;DR: This class is the most awful CS class I've taken at UCLA, and I've already taken all the required courses. Homeworks were so bad that the TAs couldn't even handle the workload of grading in Winter 2021.
On paper, this should be one of the most useful classes in the CS curriculum. If you work as a software engineer, it's expected to have to work with different technologies and programming languages. It's useful to know the general programming paradigms because languages might change in the future. However, in reality, this class was the biggest clusterfuck of the UCLA CS department I've yet to experience.
- As expected with Eggert projects, specs are often unclear and leave you longing for the 20-page Smallberg specs of CS 31/32. Any questions you have should be answered by the TAs, but they were not active at all on Piazza. There was only one TA (bless Boyan) who was semi-frequently active to answer questions, but there were still entire weeks when questions on Piazza went without an instructor answer.
- There's a super useful CS 131 assignment repo (made by a previous TA) with amazing hints and boilerplate code, but for some reason the current TAs no longer support it? It had sanity checks that are super useful when working with a brand new language, but our TAs wouldn't answer questions about it, or provide any alternatives.
- Grading in this class is so fucked. I spent an entire week neglecting other classes and used multiple late days to finish the Scheme homework assignment, but the instructors just gave everyone arbitrary scores about 90. Yeah, this sounds great, but the class is curved, so it just fucks over the students who actually did the work. I'm convinced that the homeworks were so ridiculous that the TAs used a random number generator because they couldn't figure out grading. I had friends who turned in code that couldn't pass half of the provided test cases, used multiple late days, and got a 100.
- Homework breakdowns:
HW 1: OCaml. Pretty easy stuff, mostly teaching OCaml syntax.
HW 2: OCaml. Much harder than HW 1, but a surprisingly useful project in understanding how grammars and parsers work.
HW 3: Java. Super easy thread stuff, most of your time is spent writing a report that the TAs probably don't read.
HW 4: Prolog. Prolog is a weird language, but this project is pretty easy and a good tutorial on logic programming. Still, Prolog is a useless fucking language that nobody in the 21st century uses.
HW 5: Scheme. LMAO this hw was ridiculous. I'm sure it's useful in some AI/ML/symbolic programming contexts, but the language is so ridiculously hard to read and debug for beginners. This HW in my opinion is the hardest, but don't worry if you don't do it, it probably won't get graded anyways lol.
HW 6: Probably changes every year, but usually it's to evaluate some new language and talk about advantages/disadvantages. Not much practical use, but the skills of identifying pros and cons of languages is probably useful. Doubt the TAs read the report.
Project: Not too hard because it's done in Python, but the specs were unclear and TAs decided to take this week off on Piazza lmaooo
- Somehow, in this quarter, exams were the most fair part of this class. They were still Eggert exams, so strange conceptual stuff, but surprisingly good at measuring how much of the course you understood. I'd recommend reviewing homework assignments and previous exams to prepare for this.
This class was a complete mess in Winter 2021. There was only one TA who seemed to care- thank you Boyan Ding.
The workload was so high that the TAs could not keep up with grading and gave arbitrary scores to everyone on HW5 and HW6. For example, I turned in HW5 6 days late (-32 penalty) but got a 100.
If Eggert cares about most of the students learning, rather than only the top 5 or 10% of the class learning, he should make the workload lighter by removing a HW or two, or at the very least simplifying HW2 and HW5.
Anyone who had the unfortunate opportunity to take CS 33 with Eggert will find that CS 131 with him is easier.
But not that easy.
This class crams a ton of programming languages into 10 weeks and expects you to learn them as if you only had this one class for the quarter. Be prepared to slam your head against the wall while doing Homework 2 (the hardest one by far) and spend a lot of hours dissecting the textbook (it's helpful, but dense) to actually learn the material.
For lectures, Eggert invites you to his two-hour TedTalks twice a week. He's a great lecturer if you just wanted to sit in on his history lessons and hear his opinions on language semantics or something. But if you actually want to learn to pass the class, please go to your TAs.
Assignments take forever, but Eggert has that incredibly generous late policy, so make sure to take advantage of it. TAs are a godsend in this class (shoutout to Patricia for spending a whole night writing test scripts for the Python project during Thanksgiving break! <3). Anyways, go to office hours and ask questions on Piazza. Your grade depends on it if you aren't a natural CS whiz.
Exams are hard. Seriously, the average for the midterm was like 45%. And the final will probably be in that range too. There's no way to truly study for Eggert exams. But it's an even playing field because almost everyone is just as confused! Eggert knows people are always lost in his class. He grades on knowledge, but he rewards INTUITION. No matter how wrong your answer may be, if you can back it up with any kind of evidence, you will get partial points. Pro-tip: Eggert's favorite questions in this class are language implementations and optimization languages. Is X language better than Y language for Z task? Is it feasible to implement X's function in Y to do Z?
Lastly, do yourself a favor and do NOT take this class with CS 111. You will die. Literally. I took this course in a four-class quarter and it was not fun to say the least. But everything will be all right. Getting through Eggert is like a rite of passage. You can't call yourself a true CS major without getting Egged after all.
What a bad course. I really have nothing to say that hasn't been said before. I don't think I've learned anything in this class that I didn't have to teach to myself and on top of that, I've lost interest in these topics because of the way this class was handled. I don't think I've met any student who has taken this class and not hated it (or themselves) by the end of it.
He really said that his course was better than the college of letters and science because his course was "harder"? Way to think that your mediocre class is better than any of the amazing courses I've taken in the college of letters and science. It's so boring when a white man is going off about how he thinks non-Engineering subjects are lesser than him.
Also, the fact that he doesn't tell us the answers to the exam or assignments shows that he actually doesn't care about us learning from our mistakes but he just wants to uphold the ridiculous standards that no one apart from him cares about. One of the worst classes I've taken at UCLA and that is really something because I have taken multiple other CS courses which were similar experiences (except CS 33. Shout out to professor Rienman who can do no wrong, cares about his students, teaches well, and doesn't have a god complex).
It's almost like a philosophy of programming languages class - Eggert's lectures are engaging, thoughtful, and worth every second of your time. Each lecture is jam-packed with information (not always timely in relation to the projects, unfortunately). Each lecture genuinely feels like a valuable use of your time. You start to really enjoy every second of it. Then you remember it's still an Eggert CS class, and the projects destroy your very soul.
This is not a class to double with another hard class - this is a "take a GE, a moderately hard class (maybe) and another easy major class, then focus most of your efforts on this" kind of class. Projects are insanely difficult. Like insanely. Be prepared to sink hours of your life each week into them. You're pretty surely going to finish them, but it's going to take some willpower and some sacrifice.
Exams are typical Eggert fare - asking lots of theoretical questions that involve making arguments and backing them up. Honestly, after taking his CS 33, I think I was just more prepared for these, and they didn't seem that bad. Just pay attention in lecture, make sure your notes are well-organized, and present coherent answers to the questions he asks, citing stuff from lecture/discussion. If you're totally lost, find any relevant notes you have for the question, and start writing down key words and concepts in a way that seems like you're at least semi-legitimately trying to answer the question. Generally, that should get you to a B, if not an A, on the exam (after the curve, obviously, only like 4 people got a legit 90+ on these exams).
Yes, this class is stressful. Yes, it's a lot of work. Yes, you'll probably hate it while you're taking it (I know I did at times). However, I think you learn a good amount, and get a great discussion on a lot of the "why's" in CS. Honestly, I wish I'd tried to take every Eggert class I could have. If you have the opportunity to take 131 with him, do it - just make sure you're emotionally prepared to cry over some of your half-baked attempts at mutually recursive grammar parsing functional language nonsense.
Eggert's class never fail to piss me off. The amount of work required for this class is ridiculous, and the pacing is just way too fast. On top of that, we all know Eggert writes these impossible exams where the average is 40%. I put so much time into this class and still struggled. No one really knows what's going on and everyone copies code off Github.
He doesnt care if you understand the material, he makes no sense, his projects make no sense, he doesnt feel the need to make his projects easier because no one confronts him for reasons i dont understand. I wish i learned but i cant learn from him. Hes all over the place.
I'm sure the other comments have already painted quite the picture of this class. I'll spare you the repetition about how this class is a mess, has the most insanely unpractical workload I've ever seen, and absurd tests.
Instead I'll just outline some tips that may help you get an A like I did:
-Take notes in lecture, and really make sure you understand everything he goes over conceptually. Lecture can feel so bizarre, because it is almost never relates to the assignments you will have to do that week. But the tests are at least, if not over half conceptual, and understanding the conceptual will give you the extra edge to do well on the tests.
-Don't waste too much time on homeworks. If you did each homework legitimately, by yourself, from start to finish, you may be able to finish just before you graduate. Maybe. Just reference github instead.
-Do the practice tests. They are super helpful and similar to the real tests.
-On the tests, don't panic. The medians are 50% for a reason, you aren't supposed to be able to nail every question. There will be a question that will blindside you. Just write what you can, and throw in as much Eggert vocab that you learned during lecture and from the textbook as possible. Its okay if some of it is a little wrong too, just write a lot of stuff down with good vocab that is somewhat logical and move on
-Lastly, study. Many students go in thinking their notes will save them. Or that because the tests are so hard they don't have a chance and will use the textbook as a crutch. Not the best idea. If you understand 90% of the things he talked about in lecture and can do from memory most of the basic/intermediate tasks required in the homework by hand without notes, then you are set.
Also just take a nap during the first hour of the first lecture.
TL;DR: This class is the most awful CS class I've taken at UCLA, and I've already taken all the required courses. Homeworks were so bad that the TAs couldn't even handle the workload of grading in Winter 2021.
On paper, this should be one of the most useful classes in the CS curriculum. If you work as a software engineer, it's expected to have to work with different technologies and programming languages. It's useful to know the general programming paradigms because languages might change in the future. However, in reality, this class was the biggest clusterfuck of the UCLA CS department I've yet to experience.
- As expected with Eggert projects, specs are often unclear and leave you longing for the 20-page Smallberg specs of CS 31/32. Any questions you have should be answered by the TAs, but they were not active at all on Piazza. There was only one TA (bless Boyan) who was semi-frequently active to answer questions, but there were still entire weeks when questions on Piazza went without an instructor answer.
- There's a super useful CS 131 assignment repo (made by a previous TA) with amazing hints and boilerplate code, but for some reason the current TAs no longer support it? It had sanity checks that are super useful when working with a brand new language, but our TAs wouldn't answer questions about it, or provide any alternatives.
- Grading in this class is so fucked. I spent an entire week neglecting other classes and used multiple late days to finish the Scheme homework assignment, but the instructors just gave everyone arbitrary scores about 90. Yeah, this sounds great, but the class is curved, so it just fucks over the students who actually did the work. I'm convinced that the homeworks were so ridiculous that the TAs used a random number generator because they couldn't figure out grading. I had friends who turned in code that couldn't pass half of the provided test cases, used multiple late days, and got a 100.
- Homework breakdowns:
HW 1: OCaml. Pretty easy stuff, mostly teaching OCaml syntax.
HW 2: OCaml. Much harder than HW 1, but a surprisingly useful project in understanding how grammars and parsers work.
HW 3: Java. Super easy thread stuff, most of your time is spent writing a report that the TAs probably don't read.
HW 4: Prolog. Prolog is a weird language, but this project is pretty easy and a good tutorial on logic programming. Still, Prolog is a useless fucking language that nobody in the 21st century uses.
HW 5: Scheme. LMAO this hw was ridiculous. I'm sure it's useful in some AI/ML/symbolic programming contexts, but the language is so ridiculously hard to read and debug for beginners. This HW in my opinion is the hardest, but don't worry if you don't do it, it probably won't get graded anyways lol.
HW 6: Probably changes every year, but usually it's to evaluate some new language and talk about advantages/disadvantages. Not much practical use, but the skills of identifying pros and cons of languages is probably useful. Doubt the TAs read the report.
Project: Not too hard because it's done in Python, but the specs were unclear and TAs decided to take this week off on Piazza lmaooo
- Somehow, in this quarter, exams were the most fair part of this class. They were still Eggert exams, so strange conceptual stuff, but surprisingly good at measuring how much of the course you understood. I'd recommend reviewing homework assignments and previous exams to prepare for this.
This class was a complete mess in Winter 2021. There was only one TA who seemed to care- thank you Boyan Ding.
The workload was so high that the TAs could not keep up with grading and gave arbitrary scores to everyone on HW5 and HW6. For example, I turned in HW5 6 days late (-32 penalty) but got a 100.
If Eggert cares about most of the students learning, rather than only the top 5 or 10% of the class learning, he should make the workload lighter by removing a HW or two, or at the very least simplifying HW2 and HW5.
Anyone who had the unfortunate opportunity to take CS 33 with Eggert will find that CS 131 with him is easier.
But not that easy.
This class crams a ton of programming languages into 10 weeks and expects you to learn them as if you only had this one class for the quarter. Be prepared to slam your head against the wall while doing Homework 2 (the hardest one by far) and spend a lot of hours dissecting the textbook (it's helpful, but dense) to actually learn the material.
For lectures, Eggert invites you to his two-hour TedTalks twice a week. He's a great lecturer if you just wanted to sit in on his history lessons and hear his opinions on language semantics or something. But if you actually want to learn to pass the class, please go to your TAs.
Assignments take forever, but Eggert has that incredibly generous late policy, so make sure to take advantage of it. TAs are a godsend in this class (shoutout to Patricia for spending a whole night writing test scripts for the Python project during Thanksgiving break! <3). Anyways, go to office hours and ask questions on Piazza. Your grade depends on it if you aren't a natural CS whiz.
Exams are hard. Seriously, the average for the midterm was like 45%. And the final will probably be in that range too. There's no way to truly study for Eggert exams. But it's an even playing field because almost everyone is just as confused! Eggert knows people are always lost in his class. He grades on knowledge, but he rewards INTUITION. No matter how wrong your answer may be, if you can back it up with any kind of evidence, you will get partial points. Pro-tip: Eggert's favorite questions in this class are language implementations and optimization languages. Is X language better than Y language for Z task? Is it feasible to implement X's function in Y to do Z?
Lastly, do yourself a favor and do NOT take this class with CS 111. You will die. Literally. I took this course in a four-class quarter and it was not fun to say the least. But everything will be all right. Getting through Eggert is like a rite of passage. You can't call yourself a true CS major without getting Egged after all.
What a bad course. I really have nothing to say that hasn't been said before. I don't think I've learned anything in this class that I didn't have to teach to myself and on top of that, I've lost interest in these topics because of the way this class was handled. I don't think I've met any student who has taken this class and not hated it (or themselves) by the end of it.
He really said that his course was better than the college of letters and science because his course was "harder"? Way to think that your mediocre class is better than any of the amazing courses I've taken in the college of letters and science. It's so boring when a white man is going off about how he thinks non-Engineering subjects are lesser than him.
Also, the fact that he doesn't tell us the answers to the exam or assignments shows that he actually doesn't care about us learning from our mistakes but he just wants to uphold the ridiculous standards that no one apart from him cares about. One of the worst classes I've taken at UCLA and that is really something because I have taken multiple other CS courses which were similar experiences (except CS 33. Shout out to professor Rienman who can do no wrong, cares about his students, teaches well, and doesn't have a god complex).
It's almost like a philosophy of programming languages class - Eggert's lectures are engaging, thoughtful, and worth every second of your time. Each lecture is jam-packed with information (not always timely in relation to the projects, unfortunately). Each lecture genuinely feels like a valuable use of your time. You start to really enjoy every second of it. Then you remember it's still an Eggert CS class, and the projects destroy your very soul.
This is not a class to double with another hard class - this is a "take a GE, a moderately hard class (maybe) and another easy major class, then focus most of your efforts on this" kind of class. Projects are insanely difficult. Like insanely. Be prepared to sink hours of your life each week into them. You're pretty surely going to finish them, but it's going to take some willpower and some sacrifice.
Exams are typical Eggert fare - asking lots of theoretical questions that involve making arguments and backing them up. Honestly, after taking his CS 33, I think I was just more prepared for these, and they didn't seem that bad. Just pay attention in lecture, make sure your notes are well-organized, and present coherent answers to the questions he asks, citing stuff from lecture/discussion. If you're totally lost, find any relevant notes you have for the question, and start writing down key words and concepts in a way that seems like you're at least semi-legitimately trying to answer the question. Generally, that should get you to a B, if not an A, on the exam (after the curve, obviously, only like 4 people got a legit 90+ on these exams).
Yes, this class is stressful. Yes, it's a lot of work. Yes, you'll probably hate it while you're taking it (I know I did at times). However, I think you learn a good amount, and get a great discussion on a lot of the "why's" in CS. Honestly, I wish I'd tried to take every Eggert class I could have. If you have the opportunity to take 131 with him, do it - just make sure you're emotionally prepared to cry over some of your half-baked attempts at mutually recursive grammar parsing functional language nonsense.
Based on 89 Users
TOP TAGS
- Tough Tests (32)