- Home
- Search
- Paul R Eggert
- All Reviews

Paul Eggert
AD
Based on 269 Users
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.
Be warned! This class is nothing like other lower-div classes such as CS31 and 32. I aced CS 31-33 but failed miserably in this class. CS97 and probably CS35l require a higher level of ability of self study and conquering problems on your own.
did not actually take this class but it fully fucked my friend. prayers up for my billah boys
I think I learned a lot from this course, but at the expense of my mental health unfortunately. The lectures are a bit all over the place in terms of organization, and it is sometimes difficult to know what are the essential concepts to take away from a lesson are. I do appreciate the professor's enthusiasm and extensive domain knowledge on the subject, and his little tidbits and asides kept the lectures from being dull. He is also really good at addressing questions that are brought up during lecture and is approachable in that regard. Overall, the lectures were very informational, but not very digestible. Sometimes the "bigger picture" was lost in the focus on minute details.
The homework/projects, on the other hand, are an utter mess. I wish I was being hyperbolic. The assignments are written in a way that almost seems like they are intentionally trying to be confusing and frustrating for students. I quickly learned that there is very little point in starting the homework before discussion section because it is simply not worth my time to decipher (and probably misinterpret) the assignment. Luckily, the TAs are great in filling the gaps in this respect, but their absolute necessity to make any meaningful progress on the assignments is very telling of their quality. Keeping updated on every Piazza post is a must to not lose points on arbitrary requirements that were mentioned vaguely, if at all in the assignment. For example, the Scheme parsing assignment is nearly impossible to complete by just reading the very open-ended specifications -- you almost have to code against the already additional sample test cases provided by the TAs to have a chance to do well or spend hours writing code to handle edge cases at random. This was especially frustrating because new test cases would be updated multiple times throughout the assignment period, though I am at least thankful they existed to make up for the shortcomings of the specification.
The stress of these assignments that many students complain about come from this dispiriting experience of programming based on assumptions that they are forced to make while waiting on TA's to confirm/deny via Piazza. It is sad to say that it is actually a viable strategy to wait for these Piazza clarification posts before starting the assignment. Overall, even though the assignments could be better formulated, I did feel like I learned a lot about the different programming styles by completing them. It's just a shame that my experience had to be this way, and although I think the TAs did a great job considering these circumstances, the course should be able to stand on its own.
PROS:
- Project-based class, so you walk out of this class with a unique project that you can put on your resume. This is a group project though, so experiences will vary.
- The discussions are super helpful for assignments. We also use Piazza.
CONS:
- Too much content: This class has so many topics crammed into it, yet it constantly feels like we are behind in lectures. In terms of languages, you have to learn Emacs/LISP, Python, JS, and C for the assignments. Depending on your role in the group project, you'll have to learn other technologies as well.
- A lot of work. The first few weeks are pretty manageable, where you get roughly a week to do each assignment. Assignments 1 (Emacs), 2 (Scripting), and 4 (Intro to Git) were pretty manageable since most of the assignment consisted of lab components that the TAs go over in discussion. Assignment 3 (React) was also relatively easy as well. Assignments 5 (C programming) and 6 (Git internals) were super time consuming and required a lot of things to learn by yourself. You also have the project to work on during this time. At least Eggert has a pretty generous late policy.
- Self-learning: Eggert has a "learn by doing" philosophy, so he has no problems assigning homework and teach the concepts behind them after they are due. Thankfully the TAs are pretty helpful when it comes to this. For the project, you were supposed to build a web app using React and Node.js. They were barely taught in class (1 lecture) and you only had 1 assignment that needed to use React. For the project, you said to learn Node.js and database things like SQL by yourself.
- Exams: They are typical Eggert exams. No real way to prepare for them since the questions are always pretty specific. Taking the exams open-computer was super helpful, but I think the students taking it in-person would have a much worse experience.
Wow. This is the worst class I've taken so far. The skills are all valuable but you are given little to no guidance / explanation and the work load is absolutely ridiculous. I EASILY spend twice as much time on this class as CS 32--the weeder class. Not to mention this class is only worth 3 units. :(
If you do not have a background in the technologies that are supposed to be taught in this class, you will struggle. However, if you do, Eggert's lectures will teach you a lot about the broader concepts behind them.
Homework is not that bad and were graded fairly generously.
Tests are Eggert Tests so they tend to be pretty tough.
The project required a lot of outside work.
I placed an incomplete as my grade since it has not been officially recorded yet, but I'm probably headed towards an A.
First off there is no professor for the class, only TAs that can help you solve small problems with your code or clear up concepts. The entire class is broken into 10 assignments and a final exam.
Assignments:
For most of the assignments they are "assigned" Monday and due that Friday, giving you roughly one school week to finish them (some exceptions like the shell scripting program that takes 2 weeks). I quickly learned to start the assignments the weekend before so I could space my work out properly. I would say to prepare to dedicate on average 15 hours for each assignment. Most of them are not even long, you just need to do a lot of the research on your own. There were multiple times were I had to scrap everything on Wednesday and restart to finish that Friday. Many people think they get easier further down the class. I think there's definitely hard ones throughout the class(Assignment 8) but you get into a nice groove. Also project 10 is just a presentation and short report, and it's pretty easy.
My advice: Break assignments into small chunks and work a bit everyday, while testing all the time of course. Always play around with your code a little too, it'll help answer some of your own questions.
Final Exam:
Focus on the TA slides and overall concepts for the assignments. Just make sure you get what is important from the slides and study these concepts every so often and you'll do fine.
Overall, this class is like a marathon were you think you are always behind. Just put in your best effort for the assignments and study a bit for the final and you'll do fine :)
---Lecture: Eggert's lectures are overall good. He makes them engaging and easy to follow. He does a pretty good job at explaining difficult topics. One critique I have for them is that he goes into depth about topics that are not too relevant.
---Discussion: Discussion sections are vital for doing homework. Eggert barely covers the homework in class, and they are very difficult to do without any guidance. Other than homework help, I did not find the content of discussion to be too useful.
---Professor: Eggert is a genuinely nice person, contradictory to how difficult his course is. He is very easy to approach with questions and does a lot to help.
---Project: You can choose or be placed in a group of 3-5 people. This quarter we were tasked with building a client-server web application. Contrary to regular school projects I recommend you really try on this since it can look great on a resume. Eggert only covers React, so if you want to use any other technology it's up to your team to learn (basically a no-guidance project).
---Assignments: He gave 6 assignments and most of them were pretty hard. If you understand them well, you can do them in a day, but if you don't it can take forever. Most of them are pretty useless in terms of attaining skills or prepping for the exam. The grading on them were extremely lenient. He also has an insanely forgiving late policy where each day you're late is 2^(n-1) points off (1 day: 1 point, 2 days: 2 points, 3 days: 4 points...)
---Exams: Eggert's exams are by far the hardest I've ever taken. I can't stress enough that there's no amount of studying that will fully prepare you.
---Tips: Go to discussion section before starting each assignment. Go to office hours if you're ever stuck on a project; don't waste time struggling through it. Start your project early and make a weekly product road map to ensure you're not cramming it during finals week. I would say study every detail of lecture for exams, but no one has time for that. To maximize points make sure you understand every coding language thoroughly and try to BS you're way through open ended questions. In coding questions if you find yourself writing many many lines of code, you're doing something wrong.
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.
Be warned! This class is nothing like other lower-div classes such as CS31 and 32. I aced CS 31-33 but failed miserably in this class. CS97 and probably CS35l require a higher level of ability of self study and conquering problems on your own.
I think I learned a lot from this course, but at the expense of my mental health unfortunately. The lectures are a bit all over the place in terms of organization, and it is sometimes difficult to know what are the essential concepts to take away from a lesson are. I do appreciate the professor's enthusiasm and extensive domain knowledge on the subject, and his little tidbits and asides kept the lectures from being dull. He is also really good at addressing questions that are brought up during lecture and is approachable in that regard. Overall, the lectures were very informational, but not very digestible. Sometimes the "bigger picture" was lost in the focus on minute details.
The homework/projects, on the other hand, are an utter mess. I wish I was being hyperbolic. The assignments are written in a way that almost seems like they are intentionally trying to be confusing and frustrating for students. I quickly learned that there is very little point in starting the homework before discussion section because it is simply not worth my time to decipher (and probably misinterpret) the assignment. Luckily, the TAs are great in filling the gaps in this respect, but their absolute necessity to make any meaningful progress on the assignments is very telling of their quality. Keeping updated on every Piazza post is a must to not lose points on arbitrary requirements that were mentioned vaguely, if at all in the assignment. For example, the Scheme parsing assignment is nearly impossible to complete by just reading the very open-ended specifications -- you almost have to code against the already additional sample test cases provided by the TAs to have a chance to do well or spend hours writing code to handle edge cases at random. This was especially frustrating because new test cases would be updated multiple times throughout the assignment period, though I am at least thankful they existed to make up for the shortcomings of the specification.
The stress of these assignments that many students complain about come from this dispiriting experience of programming based on assumptions that they are forced to make while waiting on TA's to confirm/deny via Piazza. It is sad to say that it is actually a viable strategy to wait for these Piazza clarification posts before starting the assignment. Overall, even though the assignments could be better formulated, I did feel like I learned a lot about the different programming styles by completing them. It's just a shame that my experience had to be this way, and although I think the TAs did a great job considering these circumstances, the course should be able to stand on its own.
PROS:
- Project-based class, so you walk out of this class with a unique project that you can put on your resume. This is a group project though, so experiences will vary.
- The discussions are super helpful for assignments. We also use Piazza.
CONS:
- Too much content: This class has so many topics crammed into it, yet it constantly feels like we are behind in lectures. In terms of languages, you have to learn Emacs/LISP, Python, JS, and C for the assignments. Depending on your role in the group project, you'll have to learn other technologies as well.
- A lot of work. The first few weeks are pretty manageable, where you get roughly a week to do each assignment. Assignments 1 (Emacs), 2 (Scripting), and 4 (Intro to Git) were pretty manageable since most of the assignment consisted of lab components that the TAs go over in discussion. Assignment 3 (React) was also relatively easy as well. Assignments 5 (C programming) and 6 (Git internals) were super time consuming and required a lot of things to learn by yourself. You also have the project to work on during this time. At least Eggert has a pretty generous late policy.
- Self-learning: Eggert has a "learn by doing" philosophy, so he has no problems assigning homework and teach the concepts behind them after they are due. Thankfully the TAs are pretty helpful when it comes to this. For the project, you were supposed to build a web app using React and Node.js. They were barely taught in class (1 lecture) and you only had 1 assignment that needed to use React. For the project, you said to learn Node.js and database things like SQL by yourself.
- Exams: They are typical Eggert exams. No real way to prepare for them since the questions are always pretty specific. Taking the exams open-computer was super helpful, but I think the students taking it in-person would have a much worse experience.
Wow. This is the worst class I've taken so far. The skills are all valuable but you are given little to no guidance / explanation and the work load is absolutely ridiculous. I EASILY spend twice as much time on this class as CS 32--the weeder class. Not to mention this class is only worth 3 units. :(
If you do not have a background in the technologies that are supposed to be taught in this class, you will struggle. However, if you do, Eggert's lectures will teach you a lot about the broader concepts behind them.
Homework is not that bad and were graded fairly generously.
Tests are Eggert Tests so they tend to be pretty tough.
The project required a lot of outside work.
I placed an incomplete as my grade since it has not been officially recorded yet, but I'm probably headed towards an A.
First off there is no professor for the class, only TAs that can help you solve small problems with your code or clear up concepts. The entire class is broken into 10 assignments and a final exam.
Assignments:
For most of the assignments they are "assigned" Monday and due that Friday, giving you roughly one school week to finish them (some exceptions like the shell scripting program that takes 2 weeks). I quickly learned to start the assignments the weekend before so I could space my work out properly. I would say to prepare to dedicate on average 15 hours for each assignment. Most of them are not even long, you just need to do a lot of the research on your own. There were multiple times were I had to scrap everything on Wednesday and restart to finish that Friday. Many people think they get easier further down the class. I think there's definitely hard ones throughout the class(Assignment 8) but you get into a nice groove. Also project 10 is just a presentation and short report, and it's pretty easy.
My advice: Break assignments into small chunks and work a bit everyday, while testing all the time of course. Always play around with your code a little too, it'll help answer some of your own questions.
Final Exam:
Focus on the TA slides and overall concepts for the assignments. Just make sure you get what is important from the slides and study these concepts every so often and you'll do fine.
Overall, this class is like a marathon were you think you are always behind. Just put in your best effort for the assignments and study a bit for the final and you'll do fine :)
---Lecture: Eggert's lectures are overall good. He makes them engaging and easy to follow. He does a pretty good job at explaining difficult topics. One critique I have for them is that he goes into depth about topics that are not too relevant.
---Discussion: Discussion sections are vital for doing homework. Eggert barely covers the homework in class, and they are very difficult to do without any guidance. Other than homework help, I did not find the content of discussion to be too useful.
---Professor: Eggert is a genuinely nice person, contradictory to how difficult his course is. He is very easy to approach with questions and does a lot to help.
---Project: You can choose or be placed in a group of 3-5 people. This quarter we were tasked with building a client-server web application. Contrary to regular school projects I recommend you really try on this since it can look great on a resume. Eggert only covers React, so if you want to use any other technology it's up to your team to learn (basically a no-guidance project).
---Assignments: He gave 6 assignments and most of them were pretty hard. If you understand them well, you can do them in a day, but if you don't it can take forever. Most of them are pretty useless in terms of attaining skills or prepping for the exam. The grading on them were extremely lenient. He also has an insanely forgiving late policy where each day you're late is 2^(n-1) points off (1 day: 1 point, 2 days: 2 points, 3 days: 4 points...)
---Exams: Eggert's exams are by far the hardest I've ever taken. I can't stress enough that there's no amount of studying that will fully prepare you.
---Tips: Go to discussion section before starting each assignment. Go to office hours if you're ever stuck on a project; don't waste time struggling through it. Start your project early and make a weekly product road map to ensure you're not cramming it during finals week. I would say study every detail of lecture for exams, but no one has time for that. To maximize points make sure you understand every coding language thoroughly and try to BS you're way through open ended questions. In coding questions if you find yourself writing many many lines of code, you're doing something wrong.