- Home
- Search
- Paul R Eggert
- All Reviews

Paul Eggert
AD
Based on 367 Users
READ THE TEXTBOOK BEFORE CLASSES!!! Go to Eggert' s office hours, which I found more helpful than his lectures. His projects and homework are doable, and you can still get a decent grade even if you submit one or two days after the deadline. It is also advisable to take CS35L BEFORE this class. The average scores of midterm 1 and 2 this quarter are 32% and 52% respectively, even though TAs are very generous in grading. The problems are mostly open ended, and legend has it that Eggert came up with his questions hours before exams. During his last office hour this quarter he said that he taught us his understanding of the class materials, while the textbook provides us with another perspective, and his exams test us both versions of "truth". I think that is why so many people found this class daunting.
Eggert is a pretty eccentric teacher, but for this class I felt like that was good. He did a pretty good job of teaching concepts of programming languages and getting you to question why things are the way they are, how different languages look like, etc. The homeworks can be tricky, but once you get a feel for the language and start to understand what's going on, the assignments usually only involve a few lines of code. Tests are basically a bunch of theoretical questions that you just have to work your way through, as I believe is typical for Eggert tests. If you like tests that are straightforward and just test you on your memorization of concepts, you probably won't like this, but personally because it's curved I was fine with it.
This is more an evaluation of the course rather than the professor, who I may mention did not respond to emails very well and did not interact with the class at all.
This course is a disgrace. For the amount of useful content this course aims to provide, I cannot believe teaching of the material and handling of the class was so poorly executed. It really is sad because these skills are actually really valuable if you are interested in working in industry.
I understand that TA's are given a fairly big responsibility in this class, but the presentations they made were not at all very useful. Furthermore, when my peers and I went for help on labs, we were at many times told to go and google what we needed help in. I understand that "this is the way the real world works", but I am certainly not paying over $3,000 worth of tuition every single quarter for this bs.
Specs are pretty shitty and LADEN with vagueness everywhere. They make Smallberg's specs look like godsends. Don't expect the TA's to clarify what you need - in many cases they will not be able to.
The grading is lazy and cryptic. The syllabus does not clarify how projects are graded, and I received grades for labs MANY WEEKS after I turned them in (the quarter has ended, and I only recently received my grade for lab 6/7). For a TA who is getting PAID to do this job, this is unacceptable service. It cannot take that long to grade labs, and the feedback is required when labs for one week require segments from labs for previous weeks (ex. lab 7 depended on lab 5, which a lot of people ended up failing).
I have to this day been unable to inquire about how labs are graded. Some (I speculate) are graded solely for correctness (no mention in the syllabus), others are graded for answers to questions (subjective, but one can only provide an answer accurate enough to what the vague spec asks), others are mix and match combinations, but above all, grading scheme is NEVER revealed. When projects are worth 50%, this is unacceptable. When I asked the TA's about how much a particular error will penalize me, I was told to never worry about it too much. Most labs ended up turning out well, but I ended up getting an F on lab 5 AFTER being told this same story - again absolutely unacceptable.
Averages are NEVER posted for projects or the final, so you have NO idea how you are doing relative to your peers. Did I also mention that your final has the potential to be exceptionally difficult depending on your TA? Example: Has anyone seen a for - else statement in Python before?
Overall, this is the WORST CLASS I have ever taken as a STUDENT - not just an undergrad. I truly expected better from the CS department for such valuable material, and it saddens me to know that this same issue will continue every single year.
He is a good lecturer. Even though some people think he is hard professor, I took him and it turned out it was not a true. I think the main reason that people think he is hard is because they don't read a textbook. The textbook is written by CMU faculties and it is a bible.
Also, the professor knows the stuff really well. He is one of the guys who participated in making LINUX EMAC function, which is gonna be a big part of the lecture, so hands down. And he is kind, if you ask a question, he is always there to answer you.
Read the book, and review the lecture, end of the story. You definitely learn a lot from this class, and I've got so many of the job interview problems that I would not have been able to solve if it were not for this class. GOOD CLASS OVERALL.
Prof. Eggert really knows what's going on here, and his experience will bring you a lot of insight. His CS33 is not that desperate. I am not good at CS and I am able to get an A. I'd say if you put enough effort in it, you could get a good one since the exams are hard but normally curved.
For CS33 projects, they are alright. And there is a kind late policy so handing in late for a day or two will not greatly affect your grades. Just pay more attention on correctness.
To prepare Eggert's tests, it is important to go to lectures and take down every point he mentioned. His tests cover EVERYTHING. Lecture notes are materials that you have to go through before the exams. If you have time, reading textbook surely helps if you are not an experienced CS student (like me). Problems in textbook does not help much, though. There is probably not sufficient time (for me) to finish everything on the exams, so my strategy is to make sure what I did is as "correct" as possible.
I must say TA helps me survive this quarter. Luckily I got Uen-Tao this quarter and he is the best TA I've ever had. His discussions and slides are really helpful to understand the materials. The reason for this is that he goes to lectures! So he knows what happens during class and will cover the subtle points professor mentioned by few words in his discussion so I believe you could find some clues for the exams on Uen-Tao's slides. Uen-Tao also shares his lecture notes which could be a very good supplement of yours. Take this TA if he will TA in the future.
So Eggert's CS33 is doable. You surely need to pay more efforts on it, but you will get great returns.
Lectures are interesting but all over the place. I would recommend watching the recording to make sure you don't miss ANYTHING. If Eggert spends more than two sentences talking about a topic, it is fair game to assume it's on the exam.
Assignments are a pain, so start them early. And take notes on them. I think Eggert aims for about 40% average on his exams, so expect to do bad. Bare minimum you need to understand every thing he said in class, and that should get you a median grade. If you want to do better, try printing out hundreds of pages of command manuals, guides, and tutorials to make sure you are proficient in JS, Python, shell scripting, and C. Aim for partial credit.
Class participation is 10x endorsed answers on Piazza for 0.1% each. I'm not sure why this is a thing because that means TAs have to endorse 2400 answers for everyone to get full credit.
Make sure you have at least one or two people you know will pull their weight in your project group. It's 35% of your grade, and I had a groupmate that authored one commit. I don't think the TAs give af.
TLDR: Pretend this class is 15 units.
Unfortunately, this class is based on your TA. Eggert basically tells the TAs "Here are the topics and projects you have to teach, now go have fun" and the TAs are left to sift through the madness that is Eggert. They are there to help you get through his cryptic projects while somehow learning Linux, Python, Git, and seemingly random elements of C. I was lucky enough to have a competent TA. My friend was not so lucky. Along with a 3rd friend, we slaved over the harder projects (have fun with multithreading). I highly recommend taking this class with people you know, even if they're not in your section; for 2 of the projects, they actually require you to find a partner; with the other projects, you will benefit from having an extra set of eyes to collaborate with.
Over time, you'll appreciate how smart Eggert is. Though his specs are a nightmare to understand, once you get through it, you'll look at it and feel amazing for having completed it. A bunch of the projects feature bugs and patches in real-life open-source software that Eggert himself programmed back in the day. Holistically, it's really quite impressive.
Lastly, you will benefit from using Linux on your personal laptop. It's super easy to install alongside Windows, and took me more time to download Ubuntu than to actually install it. I say this because SEASNet Linux is infuriating to use if you don't have a strong internet connection. Therefore, it's easier to do the projects on your personal Linux, and test them on SEASNet every once in a while. In addition, the projects have weird requirements such as "making sure your files are ASCII text files that have no more than 80 characters per line, with no carriage returns." This is basically making sure the file is easily readable from the Linux command line, which isn't a problem if you're already using Linux.
The other comments speak truth in regards to your final and grade distributions.
You learn nothing from Professor Eggert. You learn everything from TA's slides, so this class would have been much easier if you had a good TA.
Assignment specs are vague and slides usually do not cover everything you need to know. Everything is fast-paced and basically I forgot most of them after the final. However, I do really remember how to use man command and google...
Assignment 2, 3, 5 are very very very very time consuming. Please please please start early. Note that you only lose 1% of that particular homework grade, which counts just 0.05% of your final grade if you submit one day after the due date. Thus, if you have something malfunctioning on the due date, fix them completely and turn them in a day later.
Finals are not hard are very similar to practice finals, but make sure you really understand how to use Shell Script, Python, C. You should also FULLY understand how to use regular expressions and posix thread. Please please please prepare for the final because it counts 50% of your grade.
God this class is awful. Graduating UCLA and the most awful experience of my life. There are way too many projects and too much material to review. It's great if you get some TAs who give most of the class great grades and is clear. If you get a ass of TA like mine, good luck. Doesn't explain and yells in class. Grades awfully and the average turns out to be 30~%. I still have nightmares.
This class is supposed to teach you the basics of software and languages used in upper division courses. You certainly will learn them, but saying that you are "taught" them might not quite be right.
First important thing to know is that the course is not taught by the professor - he only writes the assignments, and possibly the slides as well. The actual instruction is done entirely by the TAs, and as such the class is heavily dependent on whether you have the good fortune to end up with a helpful TA. Most of them like to read off the slides, and office hours can be difficult to make sometimes (assuming the TA even shows up to them, which I found they frequently did not.) The end result is having to brute force your way through things with Google. That being said, it's still important to show up to your Lab section; some TAs may divulge hints for how to do the assignments or what will be on the final.
Assignments vary greatly in difficulty. The simplest ones might take half an hour, the hardest ones could take the entire week. The good news is that the late policy is generous, costing you 2 ^ (n-1) % for a submission n days late. The bad news is that the assignments can often be very vague, and it's hard to know how to even start without ripping the answers from previous years off Github. Cheating is widespread, as the assignments don't change much (if at all) from year to year, but if you do choose to pull answers off Github, be warned that you do so at great risk: the assignment numbers are swapped, and slight details are usually added or removed each time. Not to mention that you don't actually learn anything if you just copy the answers.
The final is worth 50% of your grade, but it is open note and open book. The questions and grading are entirely at the discretion of the TA, so again, your mileage may vary. Linux commands, regular expressions, shell scripting, and C make up the core of the points, so make sure you have those down pat.
I scraped by with an A-, but I probably just got lucky with my TA and section (got one of the few that wasn't filled with CS majors.) The curve can be pretty harsh - some quarters they actually may curve downward. I wouldn't recommend this class to anyone who doesn't need it, but the material is undeniably useful, even if you have to struggle a bit to understand it at all.
READ THE TEXTBOOK BEFORE CLASSES!!! Go to Eggert' s office hours, which I found more helpful than his lectures. His projects and homework are doable, and you can still get a decent grade even if you submit one or two days after the deadline. It is also advisable to take CS35L BEFORE this class. The average scores of midterm 1 and 2 this quarter are 32% and 52% respectively, even though TAs are very generous in grading. The problems are mostly open ended, and legend has it that Eggert came up with his questions hours before exams. During his last office hour this quarter he said that he taught us his understanding of the class materials, while the textbook provides us with another perspective, and his exams test us both versions of "truth". I think that is why so many people found this class daunting.
Eggert is a pretty eccentric teacher, but for this class I felt like that was good. He did a pretty good job of teaching concepts of programming languages and getting you to question why things are the way they are, how different languages look like, etc. The homeworks can be tricky, but once you get a feel for the language and start to understand what's going on, the assignments usually only involve a few lines of code. Tests are basically a bunch of theoretical questions that you just have to work your way through, as I believe is typical for Eggert tests. If you like tests that are straightforward and just test you on your memorization of concepts, you probably won't like this, but personally because it's curved I was fine with it.
This is more an evaluation of the course rather than the professor, who I may mention did not respond to emails very well and did not interact with the class at all.
This course is a disgrace. For the amount of useful content this course aims to provide, I cannot believe teaching of the material and handling of the class was so poorly executed. It really is sad because these skills are actually really valuable if you are interested in working in industry.
I understand that TA's are given a fairly big responsibility in this class, but the presentations they made were not at all very useful. Furthermore, when my peers and I went for help on labs, we were at many times told to go and google what we needed help in. I understand that "this is the way the real world works", but I am certainly not paying over $3,000 worth of tuition every single quarter for this bs.
Specs are pretty shitty and LADEN with vagueness everywhere. They make Smallberg's specs look like godsends. Don't expect the TA's to clarify what you need - in many cases they will not be able to.
The grading is lazy and cryptic. The syllabus does not clarify how projects are graded, and I received grades for labs MANY WEEKS after I turned them in (the quarter has ended, and I only recently received my grade for lab 6/7). For a TA who is getting PAID to do this job, this is unacceptable service. It cannot take that long to grade labs, and the feedback is required when labs for one week require segments from labs for previous weeks (ex. lab 7 depended on lab 5, which a lot of people ended up failing).
I have to this day been unable to inquire about how labs are graded. Some (I speculate) are graded solely for correctness (no mention in the syllabus), others are graded for answers to questions (subjective, but one can only provide an answer accurate enough to what the vague spec asks), others are mix and match combinations, but above all, grading scheme is NEVER revealed. When projects are worth 50%, this is unacceptable. When I asked the TA's about how much a particular error will penalize me, I was told to never worry about it too much. Most labs ended up turning out well, but I ended up getting an F on lab 5 AFTER being told this same story - again absolutely unacceptable.
Averages are NEVER posted for projects or the final, so you have NO idea how you are doing relative to your peers. Did I also mention that your final has the potential to be exceptionally difficult depending on your TA? Example: Has anyone seen a for - else statement in Python before?
Overall, this is the WORST CLASS I have ever taken as a STUDENT - not just an undergrad. I truly expected better from the CS department for such valuable material, and it saddens me to know that this same issue will continue every single year.
He is a good lecturer. Even though some people think he is hard professor, I took him and it turned out it was not a true. I think the main reason that people think he is hard is because they don't read a textbook. The textbook is written by CMU faculties and it is a bible.
Also, the professor knows the stuff really well. He is one of the guys who participated in making LINUX EMAC function, which is gonna be a big part of the lecture, so hands down. And he is kind, if you ask a question, he is always there to answer you.
Read the book, and review the lecture, end of the story. You definitely learn a lot from this class, and I've got so many of the job interview problems that I would not have been able to solve if it were not for this class. GOOD CLASS OVERALL.
Prof. Eggert really knows what's going on here, and his experience will bring you a lot of insight. His CS33 is not that desperate. I am not good at CS and I am able to get an A. I'd say if you put enough effort in it, you could get a good one since the exams are hard but normally curved.
For CS33 projects, they are alright. And there is a kind late policy so handing in late for a day or two will not greatly affect your grades. Just pay more attention on correctness.
To prepare Eggert's tests, it is important to go to lectures and take down every point he mentioned. His tests cover EVERYTHING. Lecture notes are materials that you have to go through before the exams. If you have time, reading textbook surely helps if you are not an experienced CS student (like me). Problems in textbook does not help much, though. There is probably not sufficient time (for me) to finish everything on the exams, so my strategy is to make sure what I did is as "correct" as possible.
I must say TA helps me survive this quarter. Luckily I got Uen-Tao this quarter and he is the best TA I've ever had. His discussions and slides are really helpful to understand the materials. The reason for this is that he goes to lectures! So he knows what happens during class and will cover the subtle points professor mentioned by few words in his discussion so I believe you could find some clues for the exams on Uen-Tao's slides. Uen-Tao also shares his lecture notes which could be a very good supplement of yours. Take this TA if he will TA in the future.
So Eggert's CS33 is doable. You surely need to pay more efforts on it, but you will get great returns.
Lectures are interesting but all over the place. I would recommend watching the recording to make sure you don't miss ANYTHING. If Eggert spends more than two sentences talking about a topic, it is fair game to assume it's on the exam.
Assignments are a pain, so start them early. And take notes on them. I think Eggert aims for about 40% average on his exams, so expect to do bad. Bare minimum you need to understand every thing he said in class, and that should get you a median grade. If you want to do better, try printing out hundreds of pages of command manuals, guides, and tutorials to make sure you are proficient in JS, Python, shell scripting, and C. Aim for partial credit.
Class participation is 10x endorsed answers on Piazza for 0.1% each. I'm not sure why this is a thing because that means TAs have to endorse 2400 answers for everyone to get full credit.
Make sure you have at least one or two people you know will pull their weight in your project group. It's 35% of your grade, and I had a groupmate that authored one commit. I don't think the TAs give af.
TLDR: Pretend this class is 15 units.
Unfortunately, this class is based on your TA. Eggert basically tells the TAs "Here are the topics and projects you have to teach, now go have fun" and the TAs are left to sift through the madness that is Eggert. They are there to help you get through his cryptic projects while somehow learning Linux, Python, Git, and seemingly random elements of C. I was lucky enough to have a competent TA. My friend was not so lucky. Along with a 3rd friend, we slaved over the harder projects (have fun with multithreading). I highly recommend taking this class with people you know, even if they're not in your section; for 2 of the projects, they actually require you to find a partner; with the other projects, you will benefit from having an extra set of eyes to collaborate with.
Over time, you'll appreciate how smart Eggert is. Though his specs are a nightmare to understand, once you get through it, you'll look at it and feel amazing for having completed it. A bunch of the projects feature bugs and patches in real-life open-source software that Eggert himself programmed back in the day. Holistically, it's really quite impressive.
Lastly, you will benefit from using Linux on your personal laptop. It's super easy to install alongside Windows, and took me more time to download Ubuntu than to actually install it. I say this because SEASNet Linux is infuriating to use if you don't have a strong internet connection. Therefore, it's easier to do the projects on your personal Linux, and test them on SEASNet every once in a while. In addition, the projects have weird requirements such as "making sure your files are ASCII text files that have no more than 80 characters per line, with no carriage returns." This is basically making sure the file is easily readable from the Linux command line, which isn't a problem if you're already using Linux.
The other comments speak truth in regards to your final and grade distributions.
You learn nothing from Professor Eggert. You learn everything from TA's slides, so this class would have been much easier if you had a good TA.
Assignment specs are vague and slides usually do not cover everything you need to know. Everything is fast-paced and basically I forgot most of them after the final. However, I do really remember how to use man command and google...
Assignment 2, 3, 5 are very very very very time consuming. Please please please start early. Note that you only lose 1% of that particular homework grade, which counts just 0.05% of your final grade if you submit one day after the due date. Thus, if you have something malfunctioning on the due date, fix them completely and turn them in a day later.
Finals are not hard are very similar to practice finals, but make sure you really understand how to use Shell Script, Python, C. You should also FULLY understand how to use regular expressions and posix thread. Please please please prepare for the final because it counts 50% of your grade.
God this class is awful. Graduating UCLA and the most awful experience of my life. There are way too many projects and too much material to review. It's great if you get some TAs who give most of the class great grades and is clear. If you get a ass of TA like mine, good luck. Doesn't explain and yells in class. Grades awfully and the average turns out to be 30~%. I still have nightmares.
This class is supposed to teach you the basics of software and languages used in upper division courses. You certainly will learn them, but saying that you are "taught" them might not quite be right.
First important thing to know is that the course is not taught by the professor - he only writes the assignments, and possibly the slides as well. The actual instruction is done entirely by the TAs, and as such the class is heavily dependent on whether you have the good fortune to end up with a helpful TA. Most of them like to read off the slides, and office hours can be difficult to make sometimes (assuming the TA even shows up to them, which I found they frequently did not.) The end result is having to brute force your way through things with Google. That being said, it's still important to show up to your Lab section; some TAs may divulge hints for how to do the assignments or what will be on the final.
Assignments vary greatly in difficulty. The simplest ones might take half an hour, the hardest ones could take the entire week. The good news is that the late policy is generous, costing you 2 ^ (n-1) % for a submission n days late. The bad news is that the assignments can often be very vague, and it's hard to know how to even start without ripping the answers from previous years off Github. Cheating is widespread, as the assignments don't change much (if at all) from year to year, but if you do choose to pull answers off Github, be warned that you do so at great risk: the assignment numbers are swapped, and slight details are usually added or removed each time. Not to mention that you don't actually learn anything if you just copy the answers.
The final is worth 50% of your grade, but it is open note and open book. The questions and grading are entirely at the discretion of the TA, so again, your mileage may vary. Linux commands, regular expressions, shell scripting, and C make up the core of the points, so make sure you have those down pat.
I scraped by with an A-, but I probably just got lucky with my TA and section (got one of the few that wasn't filled with CS majors.) The curve can be pretty harsh - some quarters they actually may curve downward. I wouldn't recommend this class to anyone who doesn't need it, but the material is undeniably useful, even if you have to struggle a bit to understand it at all.