- Home
- Search
- Paul R Eggert
- All Reviews

Paul Eggert
AD
Based on 269 Users
CS 111 is already a very hard class. The materials are condensed and the projects definitely cost tens of hours to finish. However, having Professor Eggert makes this class even harder. His exams are not predictable at all - which means, he could give his finals in two totally different styles on two consecutive quarters. One could score 80 in the previous quarter but 40 in the current quarter. The only way to score an A - at least what I could think of - is to prepare yourself with any kind of hard questions. Go to his office hours regularly and ask him tricky questions so that you could follow his answer as an example of how your thinking process should be when facing a similar question in the final. And when attending lectures, don't just drop down notes about concepts he mentions but how he actually gets there as well, that being very important.
Just to give you some general tips to help you succeed in this class:
hw1 and hw2 are OCaml functional programming. hw1 is easy, but hw2 is exponentially harder (probably the hardest one), so make sure you start early on this one.
hw3 (concurrency in Java) is probably the easiest, but you need to derive data and write report.
hw4 (prolog) is intermediate difficulty, but lots of people may find functional programming hard to understand at first, and you need to figure out how to optimize performance to get full score.
hw5 (scheme) is also intermediate difficulty, but I personally find this one the hardest to understand. Personally, I insist the spec and my solution on this one is quite sloppy, even though I got full score.
hw6 basically requires no programming.
Project (asyncio in Python) is not hard on the logic side, but you need to understand the asyncio library in Python and the concept of server and client.
As for the lecture, you can learn a lot if you do the reading and pay full attention to Eggert's lecture. However, unlike the experience of others, I found his lecture quite hard to follow (I feel like I have not mastered adequate background knowledge in CS to understand his points).
As for the exam, based on the response of my peers, the midterm tends to be easier than the final, although I did better on the final (I score fairly above the median in both and get an A). One thing to notice is that some open-end questions are actually quite hard to get points, so fully develop you arguments and provide enough technical details to back it up. One general strategy to eggert's exam is always to remain calm, pick the battle you can fight, and aim for every possible points.
Some side notes: go the the discussion as the TA will explain the spec for you; I personally find that CS131+CS181 combo is quite helpful since both of them talks about grammar, and I notice that there are handful of students in both lecture (although CS181 is usually recommended as the last CS class to take).
Comparing to his 111, Professor Eggert's 131 is much more managable. All you need to do is understand his lecture content and know your homeworks & projects by heart during exams.
I really wanted to like this class because Eggert was legitimately an interesting lecturer (unlike his CS33). I felt I learned a lot by going to class. Unfortunately that's ruined by every other part of this course.
TAs are one of the most important parts of getting through this class. Go to different discussions and compare with your friends. A good TA makes all the difference and some are more generous about giving tips on the homework than others. A few of the assignments involve written reports, which is annoying but at the same time is easier than the 100% code ones. I'd rather write more reports than pull my hair out over OCaml .
Tests are your standard Eggert tests. It's open book/note so bring all the things you want but it just comes down to whether you're lucky enough that the things you focus on happen to be what he write questions about.
Half the assignments consist of Eggert flexing on all of us about how he contributed to Linux coreutils. The lab sections' quality varies drastically since the class isn't standardized with one lecture, and obviously TAs vary. Most assignments are vaguely written up and expect you to be an almost-expert on the topic after learning about it for the first time for an hour and a half. The 3-unit listing is incredibly deceiving — the assignments are exceptionally time-consuming (particularly 2, 3, 4, 5, 6, 7 — almost of all of them at this point) if you aren't well-versed in the topics the way Eggert has been for decades.
The final was by far the worst final I've taken. He and his TAs' goal in writing the common final is having a median of 50%, but they slightly missed the mark on that with a median around 54% (*gasp*). The variations from question to question are rather drastic; a few are reasonably written to test your grasp of concepts, but others ask you to demonstrate proficiency in writing full-featured scripts/programs using a variety of languages and libraries by hand. Your score on the final might as well have been generated by a random number generator designed to have a mean of 50 and a standard deviation of 10.
His assignment late policy was rather lenient, though. That might be the only redeeming quality. Some of the topics covered in 35L are relatively important and practical, but overall this class is designed incredibly poorly.
Good class, learned a lot, textbook was very helpful for exams! Selling textbook, Modern Programming Languages by Adam Brooks Webber. If interested, text me at 503-880-4378
The textbook for this class is actually amazing. Highly recommend dishing out the fat stacks of cash to buy it because it is well worth it. It is easy to understand, often funny, engaging, AND it covers EVERYTHING Eggert talks about in lecture. Seriously. Honestly, don't go to a single lecture. It's a waste of time. Just read the textbook, it's much better at explaining than Eggert.
I really enjoyed Professor Eggert's class. He was incredibly knowledgeable and had a way of enthralling the entire class. I had though operating systems would be incredibly boring, but Eggert somehow made it very interesting. He is brilliant professor, but ...
This class is pretty close to impossible. That being said, I did get an A. The projects did take about 12 hours per week, so you should certainly not take the class with any other hard ones on your schedule. The funny things about the projects is that you can get about a 90% on each one while only doing half the work. Every project has one last little section that's worth about 10% that is a ridiculous amount of work. If you're a shoddy programmer like me, don't even bother with this part. Oh, and don't bother buying the course reader, if he still has it. Ours was 579 pages, with 2 real pages on each page. This becomes of 1000 pages of uselessness! Finally, a note about the tests. They are difficult, open ended questions that likely don't have any 1 answer. Just put something down for every question, and you'll likely get partial credit. He aims for the average on the tests to be around 50%, but it was around 60% for us. If you do well on the midterm, you'll do well on the final. Same questions, different material.
This class is very difficult. I'd recommend getting a good programmer for the projects, because there is absolutely no way to go it alone. With all this bad stuff, he was still probably my favorite professor. You should definitely take this class with Eggert if you get the chance and don't have too much other work that quarter.
assignment 9 was pretty horrible. it was a completely new assignment that the TAs were like "we haven't started it either so we can't help you yet and we have no idea as well what its about" so basically you head into week 10 with no time to study for your finals because you ahve to wait until monday or tuesday to see if you can get any hints from your lab section but as usual, you don't get anything so you just gotta do the assignment yourself, cry a lot, finally give up, but you've already lost so many hours of precious study time on this assignment -- if you get this same assignment start on it as soon as possible and never have hope that your lab section will give you any hints on how to start, for any project. the other assignments obviously took a super long time but it was a whole learning process and less stressful than assignment 9 because you don't need to worry as much about not having time to study for all your other classes's exams that are worth half your grade, ya know? and it was graded so, so harshly... no mercy or help at all but I guess you will also experience this amount of stress and pressure in the workplace allegedly. sounds like I will be changing majors so I can avoid these kinds of workplaces.
kedar is a fantastic ta he is so nice.
the final sucked so bad i dont remember any of it other than it being one of the most horrible experiences ever.
This class is a mess.
More specifically, there were 10 assignments with this class, some of which are easier than others. Of the particular, the most challenging assignments were certainly 2, 5, and 9.
Assignment 2 dealt with bash, which had really weird syntax, vastly different from C++.
Assignment 5 dealt with system calls and relates back to 4, so you better make sure your assignment 4 is working properly from before.
Assignment 9 is a new assignment. The TA that made it made the homework portion way too difficult. With finals week coming up, I couldn't finish it fully.
The final was difficult, but not impossible. One of the question is multiple choice, just guess for that one. It's basically a trivia contest. The other questions are more related to the class and all of them should be doable if you have a good grasp of the material. The main thing is that you have to be fast. You can also bring notes in, but don't get too confident as reading your notes may take up more time than you think.
CS 111 is already a very hard class. The materials are condensed and the projects definitely cost tens of hours to finish. However, having Professor Eggert makes this class even harder. His exams are not predictable at all - which means, he could give his finals in two totally different styles on two consecutive quarters. One could score 80 in the previous quarter but 40 in the current quarter. The only way to score an A - at least what I could think of - is to prepare yourself with any kind of hard questions. Go to his office hours regularly and ask him tricky questions so that you could follow his answer as an example of how your thinking process should be when facing a similar question in the final. And when attending lectures, don't just drop down notes about concepts he mentions but how he actually gets there as well, that being very important.
Just to give you some general tips to help you succeed in this class:
hw1 and hw2 are OCaml functional programming. hw1 is easy, but hw2 is exponentially harder (probably the hardest one), so make sure you start early on this one.
hw3 (concurrency in Java) is probably the easiest, but you need to derive data and write report.
hw4 (prolog) is intermediate difficulty, but lots of people may find functional programming hard to understand at first, and you need to figure out how to optimize performance to get full score.
hw5 (scheme) is also intermediate difficulty, but I personally find this one the hardest to understand. Personally, I insist the spec and my solution on this one is quite sloppy, even though I got full score.
hw6 basically requires no programming.
Project (asyncio in Python) is not hard on the logic side, but you need to understand the asyncio library in Python and the concept of server and client.
As for the lecture, you can learn a lot if you do the reading and pay full attention to Eggert's lecture. However, unlike the experience of others, I found his lecture quite hard to follow (I feel like I have not mastered adequate background knowledge in CS to understand his points).
As for the exam, based on the response of my peers, the midterm tends to be easier than the final, although I did better on the final (I score fairly above the median in both and get an A). One thing to notice is that some open-end questions are actually quite hard to get points, so fully develop you arguments and provide enough technical details to back it up. One general strategy to eggert's exam is always to remain calm, pick the battle you can fight, and aim for every possible points.
Some side notes: go the the discussion as the TA will explain the spec for you; I personally find that CS131+CS181 combo is quite helpful since both of them talks about grammar, and I notice that there are handful of students in both lecture (although CS181 is usually recommended as the last CS class to take).
I really wanted to like this class because Eggert was legitimately an interesting lecturer (unlike his CS33). I felt I learned a lot by going to class. Unfortunately that's ruined by every other part of this course.
TAs are one of the most important parts of getting through this class. Go to different discussions and compare with your friends. A good TA makes all the difference and some are more generous about giving tips on the homework than others. A few of the assignments involve written reports, which is annoying but at the same time is easier than the 100% code ones. I'd rather write more reports than pull my hair out over OCaml .
Tests are your standard Eggert tests. It's open book/note so bring all the things you want but it just comes down to whether you're lucky enough that the things you focus on happen to be what he write questions about.
Half the assignments consist of Eggert flexing on all of us about how he contributed to Linux coreutils. The lab sections' quality varies drastically since the class isn't standardized with one lecture, and obviously TAs vary. Most assignments are vaguely written up and expect you to be an almost-expert on the topic after learning about it for the first time for an hour and a half. The 3-unit listing is incredibly deceiving — the assignments are exceptionally time-consuming (particularly 2, 3, 4, 5, 6, 7 — almost of all of them at this point) if you aren't well-versed in the topics the way Eggert has been for decades.
The final was by far the worst final I've taken. He and his TAs' goal in writing the common final is having a median of 50%, but they slightly missed the mark on that with a median around 54% (*gasp*). The variations from question to question are rather drastic; a few are reasonably written to test your grasp of concepts, but others ask you to demonstrate proficiency in writing full-featured scripts/programs using a variety of languages and libraries by hand. Your score on the final might as well have been generated by a random number generator designed to have a mean of 50 and a standard deviation of 10.
His assignment late policy was rather lenient, though. That might be the only redeeming quality. Some of the topics covered in 35L are relatively important and practical, but overall this class is designed incredibly poorly.
The textbook for this class is actually amazing. Highly recommend dishing out the fat stacks of cash to buy it because it is well worth it. It is easy to understand, often funny, engaging, AND it covers EVERYTHING Eggert talks about in lecture. Seriously. Honestly, don't go to a single lecture. It's a waste of time. Just read the textbook, it's much better at explaining than Eggert.
I really enjoyed Professor Eggert's class. He was incredibly knowledgeable and had a way of enthralling the entire class. I had though operating systems would be incredibly boring, but Eggert somehow made it very interesting. He is brilliant professor, but ...
This class is pretty close to impossible. That being said, I did get an A. The projects did take about 12 hours per week, so you should certainly not take the class with any other hard ones on your schedule. The funny things about the projects is that you can get about a 90% on each one while only doing half the work. Every project has one last little section that's worth about 10% that is a ridiculous amount of work. If you're a shoddy programmer like me, don't even bother with this part. Oh, and don't bother buying the course reader, if he still has it. Ours was 579 pages, with 2 real pages on each page. This becomes of 1000 pages of uselessness! Finally, a note about the tests. They are difficult, open ended questions that likely don't have any 1 answer. Just put something down for every question, and you'll likely get partial credit. He aims for the average on the tests to be around 50%, but it was around 60% for us. If you do well on the midterm, you'll do well on the final. Same questions, different material.
This class is very difficult. I'd recommend getting a good programmer for the projects, because there is absolutely no way to go it alone. With all this bad stuff, he was still probably my favorite professor. You should definitely take this class with Eggert if you get the chance and don't have too much other work that quarter.
assignment 9 was pretty horrible. it was a completely new assignment that the TAs were like "we haven't started it either so we can't help you yet and we have no idea as well what its about" so basically you head into week 10 with no time to study for your finals because you ahve to wait until monday or tuesday to see if you can get any hints from your lab section but as usual, you don't get anything so you just gotta do the assignment yourself, cry a lot, finally give up, but you've already lost so many hours of precious study time on this assignment -- if you get this same assignment start on it as soon as possible and never have hope that your lab section will give you any hints on how to start, for any project. the other assignments obviously took a super long time but it was a whole learning process and less stressful than assignment 9 because you don't need to worry as much about not having time to study for all your other classes's exams that are worth half your grade, ya know? and it was graded so, so harshly... no mercy or help at all but I guess you will also experience this amount of stress and pressure in the workplace allegedly. sounds like I will be changing majors so I can avoid these kinds of workplaces.
kedar is a fantastic ta he is so nice.
the final sucked so bad i dont remember any of it other than it being one of the most horrible experiences ever.
This class is a mess.
More specifically, there were 10 assignments with this class, some of which are easier than others. Of the particular, the most challenging assignments were certainly 2, 5, and 9.
Assignment 2 dealt with bash, which had really weird syntax, vastly different from C++.
Assignment 5 dealt with system calls and relates back to 4, so you better make sure your assignment 4 is working properly from before.
Assignment 9 is a new assignment. The TA that made it made the homework portion way too difficult. With finals week coming up, I couldn't finish it fully.
The final was difficult, but not impossible. One of the question is multiple choice, just guess for that one. It's basically a trivia contest. The other questions are more related to the class and all of them should be doable if you have a good grasp of the material. The main thing is that you have to be fast. You can also bring notes in, but don't get too confident as reading your notes may take up more time than you think.