- Home
- Search
- Paul R Eggert
- COM SCI 111
AD
Based on 33 Users
TOP TAGS
- Tough Tests
- Tolerates Tardiness
- Engaging Lectures
- Snazzy Dresser
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
The popular opinion for this course is that the projects are way too hard and take way too long. For most people, that does carry quite a bit of truth. However, just saying that would make this review sound exactly like the ten preceding this one, so I'll try to do better.
I would qualify the difficulty in the projects, as not that they themselves are difficult, but rather they require quite a lot of knowledge and maturity in programming in C – something that the previous Computer Science classes do not prepare the students well for. Having done the projects myself and helped numerous others, I'd say the two major pillars that people were not as prepared for were:
- reading documentation (“man pages”): ability to skip the boilerplate and get to what you are actually looking for; finding and adapting example code
- understanding and applying memory allocation: fixed-size arrays vs. malloc(); pointers, lifetime, and ownership. Most people understand what they are and how they are different, but applying that knowledge correctly could be a different challenge.
If you are or become comfortable with these things, the projects will be quite doable.
On the other hand, the exams had a different focus. I hate to use the overused word, but they force you to think critically and provide a reasoned answer backed up with facts and experience. For dreamers and debaters, it was heaven. For the rest of us, it was a first taste at what software engineering is all about: a whole lotta dreaming and debating. (Oh, feel free to replace “dream” with “BS.”)
But where do you get the facts and the experience? The former you get by following textbook readings, which are unfortunately very heavy, as well as by listening and processing Professor Eggert's excellent lectures. The latter you get by stumbling and reflecting while doing the projects.
Of course, many online resources exist for help in the projects. However, a word of caution if you do decide to go down that route: most folks on GitHub who post their solutions were just as clueless as you are when they did it. Thus there is great variance in the the quality of said resources.
But if you do end up finding resources of high quality, make sure to maximize your learning by carefully reading and understanding why they did something but not something else: because there’s an actual reason, or because they just felt like it? How did they think of something that you didn't? Reflect, and you’d become a much better Computer Scientist or Software Engineer for it.
Probably said too much already, so I'll stop. In any case, good luck, and hope you enjoy the class!
If you actually do the readings, this class will be a lot of work. I read all the assigned A.D readings and additional readings and did most of the S.K. readings (all of those before the midterm and chapter 11). The discussions are very helpful and my TA was very helpful in telling us how to approach the project and often times gave us pseudo or actual code to implement the project. The projects are relatively time consuming but for the most part aren't super difficult.
I got 80% on one of the projects but over 90/100 on all the other projects. I got a 49.5% on the midterm after a regrade(mean was 49.5% and median was 51%). The TA's grade the report at the end and don't seem to care much so I got 100 on it even though I completely rewrote it the day it was due in like an hour. The final was open book and open note so I had a whole binder with a table of contents that really helped in the final which I got a 77% on and ended up with an A overall in the class.
I definitely suggest going to his office hours to clarify on concepts in readings/in class because he is really good at explaining in smaller settings and is a really nice person, so don't be intimidated!
Eggert takes you on quite the roller coaster. I actually liked the readings, I felt it was important for the exams to actually do all the assigned AD readings. Of course, most important was lecture material. But it was difficult to decipher lecture material often, so you had to really pay attention. Other than Yadi, the other TA's weren't super helpful, and we only had 2 out of our 5 labs graded before the final, which was bad, since I had no idea how I was doing.
But overall, the labs were interesting and I think I came out with better knowledge on C programming than anything else.
Highly reccomend the class, but its really tough. Grading is also really weird. There are 4 labs that make up over %30 of our grade, but only lab 0 and lab 1 were graded in time to talk to TAs about grading. The rest were not graded until 2 hours before the grade deadline, and any 0s were left that way even if unfair. The only enjoyable part of this class was lecture, and maybe labs if the grading wasn't so bad. Eggert is a really ood lecturer, and can stay engaging for 2 hours, unless the material is really boring which does happen. The labs are actually pretty fun to do, but hard to test, so a working program might still get a 70-80 because of special case test cases. Exams were very hard, ~%50 averages on both. As a really bad test taker i still did around average on the midterm and below on the final and passed.
EGGERT IS THE GOAT. This class is legendary. As long as you stay on top of your work, you will survive and walk out learning a lot about OS. His tests are impossible so they might not even be worth studying for. <3
Paul Eggert is an absolute legend. A veteran of the software development industry, he shines in his lectures while he doles out wisdom from his years of experience. He is irreplaceable.
In terms of exams, yes, they are hard, but one can easily get away with 1-2 standard deviations above the mean by writing down what seems reasonable. Much easier than other exams where you absolutely must know the answer.
Readings were a little bit harsh. Too many readings, not much useful content on them in the exams. One of the books, Principles of Computer System Design: An Introduction by Jerome H. Saltzer and M. Frans Kaashoek (SK), was way too stuffy.
Projects were an absolute disaster this quarter. Way too easy, the skeleton gives everything away. Takes me only like 2 hours to complete. Absolute disgrace, learning nothing from them. Please note that I talked to the professor about this—this isn't his fault, he says he has to keep the labs because the TAs are only trained on them.
I didn't really attend discussion, but the first one was pretty good. Solid TA. Just by design of the course, this discussion wasn't very useful. Reading over the PDF worked just as well for me.
I took this course in Fall 22 and have to say, the course seems to have become a lot less work in recent years. Now, Professor Eggert uses Eyolfson's Labs for the majority of his assignments (excluding a short paper at the end) which are far easier than the assignments he used to give out (though they're a bit less interesting). The decrease in workload coupled with Eggert's fantastic lectures makes this class a pretty great one. The tests are the only real beast to beat but I managed an A with around a 60 on the midterm and a 75 on the final. Just stay on top of things and print out all your notes and assignments and you should be good to go. I would also recommend paying attention to the resources provided by your TAs for help with the assignments.
Overall, 10/10 would take again.
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.
This course is extremely rewarding if you put in the work. You will walk away having learnt something. But if you are not a hard-core CS major who just wants to coast by with little work, do not take it with Paul Eggert. If you want to get a rigorous introduction to Systems then take Eggert. This is what you have to do to learn well and do well:
1. Do the 100 or so pages of reading from Arpaci and Duseau before every lecture and take notes on them! You can ignore SK, maybe it helps with lecture or exams? Also do the readings on the course page. You will find that Dr. Eggert offers a perspective that is distinct from what is in the readings. It is much easier to follow the lecture if you do the readings.
2. Start projects early. Obviously not the day its assigned (everything is assigned on day 1 in Eggert's classes). I mean start 2-3 days before the deadline and be willing to stay up until 3am coding them up. It is also important to discuss edge cases with friends as these will for sure be tested by the grader.
3. Pay rapt attention in lecture. Type down everything he says. It will come to 1500-2000 words per lecture. I advise you to not have classes during his office hours. The TAs are, for most part, clueless about the material especially if they are Masters students (shoutout to Vishwas for reading the man page in all its glory). But TA Zhaoxing Bu, was quite useful. Eggert's office hours are not packed despite how much you can learn from him in those hours. I basically had close to one on one attention and was able to clarify all my questions. I personally felt that discussion for this class are useless as all they do is give project hints which are not that hard for you to figure on your own, if you love coding in C/C++ or enjoyed 35L.
The popular opinion for this course is that the projects are way too hard and take way too long. For most people, that does carry quite a bit of truth. However, just saying that would make this review sound exactly like the ten preceding this one, so I'll try to do better.
I would qualify the difficulty in the projects, as not that they themselves are difficult, but rather they require quite a lot of knowledge and maturity in programming in C – something that the previous Computer Science classes do not prepare the students well for. Having done the projects myself and helped numerous others, I'd say the two major pillars that people were not as prepared for were:
- reading documentation (“man pages”): ability to skip the boilerplate and get to what you are actually looking for; finding and adapting example code
- understanding and applying memory allocation: fixed-size arrays vs. malloc(); pointers, lifetime, and ownership. Most people understand what they are and how they are different, but applying that knowledge correctly could be a different challenge.
If you are or become comfortable with these things, the projects will be quite doable.
On the other hand, the exams had a different focus. I hate to use the overused word, but they force you to think critically and provide a reasoned answer backed up with facts and experience. For dreamers and debaters, it was heaven. For the rest of us, it was a first taste at what software engineering is all about: a whole lotta dreaming and debating. (Oh, feel free to replace “dream” with “BS.”)
But where do you get the facts and the experience? The former you get by following textbook readings, which are unfortunately very heavy, as well as by listening and processing Professor Eggert's excellent lectures. The latter you get by stumbling and reflecting while doing the projects.
Of course, many online resources exist for help in the projects. However, a word of caution if you do decide to go down that route: most folks on GitHub who post their solutions were just as clueless as you are when they did it. Thus there is great variance in the the quality of said resources.
But if you do end up finding resources of high quality, make sure to maximize your learning by carefully reading and understanding why they did something but not something else: because there’s an actual reason, or because they just felt like it? How did they think of something that you didn't? Reflect, and you’d become a much better Computer Scientist or Software Engineer for it.
Probably said too much already, so I'll stop. In any case, good luck, and hope you enjoy the class!
If you actually do the readings, this class will be a lot of work. I read all the assigned A.D readings and additional readings and did most of the S.K. readings (all of those before the midterm and chapter 11). The discussions are very helpful and my TA was very helpful in telling us how to approach the project and often times gave us pseudo or actual code to implement the project. The projects are relatively time consuming but for the most part aren't super difficult.
I got 80% on one of the projects but over 90/100 on all the other projects. I got a 49.5% on the midterm after a regrade(mean was 49.5% and median was 51%). The TA's grade the report at the end and don't seem to care much so I got 100 on it even though I completely rewrote it the day it was due in like an hour. The final was open book and open note so I had a whole binder with a table of contents that really helped in the final which I got a 77% on and ended up with an A overall in the class.
I definitely suggest going to his office hours to clarify on concepts in readings/in class because he is really good at explaining in smaller settings and is a really nice person, so don't be intimidated!
Eggert takes you on quite the roller coaster. I actually liked the readings, I felt it was important for the exams to actually do all the assigned AD readings. Of course, most important was lecture material. But it was difficult to decipher lecture material often, so you had to really pay attention. Other than Yadi, the other TA's weren't super helpful, and we only had 2 out of our 5 labs graded before the final, which was bad, since I had no idea how I was doing.
But overall, the labs were interesting and I think I came out with better knowledge on C programming than anything else.
Highly reccomend the class, but its really tough. Grading is also really weird. There are 4 labs that make up over %30 of our grade, but only lab 0 and lab 1 were graded in time to talk to TAs about grading. The rest were not graded until 2 hours before the grade deadline, and any 0s were left that way even if unfair. The only enjoyable part of this class was lecture, and maybe labs if the grading wasn't so bad. Eggert is a really ood lecturer, and can stay engaging for 2 hours, unless the material is really boring which does happen. The labs are actually pretty fun to do, but hard to test, so a working program might still get a 70-80 because of special case test cases. Exams were very hard, ~%50 averages on both. As a really bad test taker i still did around average on the midterm and below on the final and passed.
EGGERT IS THE GOAT. This class is legendary. As long as you stay on top of your work, you will survive and walk out learning a lot about OS. His tests are impossible so they might not even be worth studying for. <3
Paul Eggert is an absolute legend. A veteran of the software development industry, he shines in his lectures while he doles out wisdom from his years of experience. He is irreplaceable.
In terms of exams, yes, they are hard, but one can easily get away with 1-2 standard deviations above the mean by writing down what seems reasonable. Much easier than other exams where you absolutely must know the answer.
Readings were a little bit harsh. Too many readings, not much useful content on them in the exams. One of the books, Principles of Computer System Design: An Introduction by Jerome H. Saltzer and M. Frans Kaashoek (SK), was way too stuffy.
Projects were an absolute disaster this quarter. Way too easy, the skeleton gives everything away. Takes me only like 2 hours to complete. Absolute disgrace, learning nothing from them. Please note that I talked to the professor about this—this isn't his fault, he says he has to keep the labs because the TAs are only trained on them.
I didn't really attend discussion, but the first one was pretty good. Solid TA. Just by design of the course, this discussion wasn't very useful. Reading over the PDF worked just as well for me.
I took this course in Fall 22 and have to say, the course seems to have become a lot less work in recent years. Now, Professor Eggert uses Eyolfson's Labs for the majority of his assignments (excluding a short paper at the end) which are far easier than the assignments he used to give out (though they're a bit less interesting). The decrease in workload coupled with Eggert's fantastic lectures makes this class a pretty great one. The tests are the only real beast to beat but I managed an A with around a 60 on the midterm and a 75 on the final. Just stay on top of things and print out all your notes and assignments and you should be good to go. I would also recommend paying attention to the resources provided by your TAs for help with the assignments.
Overall, 10/10 would take again.
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.
This course is extremely rewarding if you put in the work. You will walk away having learnt something. But if you are not a hard-core CS major who just wants to coast by with little work, do not take it with Paul Eggert. If you want to get a rigorous introduction to Systems then take Eggert. This is what you have to do to learn well and do well:
1. Do the 100 or so pages of reading from Arpaci and Duseau before every lecture and take notes on them! You can ignore SK, maybe it helps with lecture or exams? Also do the readings on the course page. You will find that Dr. Eggert offers a perspective that is distinct from what is in the readings. It is much easier to follow the lecture if you do the readings.
2. Start projects early. Obviously not the day its assigned (everything is assigned on day 1 in Eggert's classes). I mean start 2-3 days before the deadline and be willing to stay up until 3am coding them up. It is also important to discuss edge cases with friends as these will for sure be tested by the grader.
3. Pay rapt attention in lecture. Type down everything he says. It will come to 1500-2000 words per lecture. I advise you to not have classes during his office hours. The TAs are, for most part, clueless about the material especially if they are Masters students (shoutout to Vishwas for reading the man page in all its glory). But TA Zhaoxing Bu, was quite useful. Eggert's office hours are not packed despite how much you can learn from him in those hours. I basically had close to one on one attention and was able to clarify all my questions. I personally felt that discussion for this class are useless as all they do is give project hints which are not that hard for you to figure on your own, if you love coding in C/C++ or enjoyed 35L.
Based on 33 Users
TOP TAGS
- Tough Tests (12)
- Tolerates Tardiness (11)
- Engaging Lectures (11)
- Snazzy Dresser (10)