Spring 2020 - Bar none, this is the right way to take CS 130. This class is taught by a rotating group of employees at Google who actually do this stuff for a living. In my mind, despite how much work this class is (not very much by Eggert's standards, but still sizeable), this made all the difference in the world. This quarter, it was taught by Michael Burns, Greg Billock, and Eric Hennigan. As with Eggert's version of this class, the group projects really do make or break your grade, so having a cooperative, helpful group to work with is essential. I took this course during the COVID-19 pandemic when everything was online, so good communication with teammates and the instructors was more difficult, but still doable. Nothing about this course felt too overwhelming or frustrating. You worked on a team webserver project for most of the quarter (the project topic rotates from year to year I'm told) and you didn't have to deal with overwhelming and unnecessary problems on final exams and copious amounts of reading. Just practical things you would actually work on in industry. And that was a really nice break from what classes at UCLA usually are. The exams were very open-ended (and a small portion of the grade, 20%) but that was typical of exams this quarter because of online instruction, so I'm not sure how that will be different in the future. I would say the biggest challenge of this class was interacting with other teams for part 7 of the project, because you have to work across teams to add design features to each other's project repos based on our APIs. The team we were adding features to was quite late sometimes in providing reviews, and the team working on our repo implemented their changes really late. So having to coordinate all that was challenging, but not impossible. Tips: try to do extra unit tests whenever you can for the early projects. They are pretty generous with extra credit if you have much higher than 80% coverage. Set expectations with your team early on about when to make deadlines and how to handle situations when you can't get something done. Lack of communication results in unnecessary last-minute struggles, especially near the end of the quarter. TL;DR Overall, it was a great quarter, all things considered, and this is by far the definitive way to take this class. Even if you hate group projects or otherwise don't like this class, you are infinitely better off taking this with Michael and the Google team than with Eggert. Also, shoutouts to Eric for having a unique and snazzy bowtie for every lecture session.
Winter 2021 - Overall, the class is not terrible but I wouldn't say I had a great experience. Most grades came out pretty late. We got the final grade on the deadline for submitting grades, which is fine, but over half of the individual grades (participation, parts of the project, final exam, and hw, if I remember correctly) were not shown, so there wasn't really any way for us to verify anything. A few days after grades were submitted, they were released (on myUCLA and the project grade breakdown on gradescope). However, for some things, such as participation and final exam, we weren't able to really see the breakdown. LECTURE Lectures are mandatory and professor enforces this by having Google Forms quizzes, usually 2-4 per lecture. I thought that the lectures were very helpful and the professor's slides were very detailed. He also has examples, which were really nice. I think that for many students, the material and concepts are rather new, which is what makes it difficult. But overall, I thought lectures were relatively clear and understandable. DISCUSSION Discussion sections are mandatory as well (supposedly), but I'm not sure how TAs took attendance, since they never explicitly did anything or asked us to fill out anything. However, section is usually just us getting into breakout rooms with our project groups and working on the projects. TA will go to every breakout room to answer any questions we may have. PROJECT We have do create an application w/ 5 other students and this is a quarter-long project. Besides the actual application, there are also 4 reports/things that we have to submit: project proposal, project design/description (basically, how you will implement your application, using concepts learned in class), final project report (what changes did you make since your previous report, etc.), recorded presentation video. I think that given that we worked in a team of 6, the project was pretty manageable, if you have good teammates. The rubrics for the reports were also very clear, so if you use what you learn in class and hit all the points, it shouldn't be a big issue. HOMEWORK We had four homeworks and they were pretty long. However, I think it was good practice, since it's pretty much the only practice you will get for the exams (in addition to the quiz problems during lecture. Those are helpful too!!!). Homework answer keys are released after the submission deadline, so you can review what you missed to study. EXAMS We had one midterm and one final. I would say that the exams are fair, but NOT EASY. There were a lot of questions, given the time limit, and so it was pretty stressful. I don't remember if it was open-internet, but it was at least open-book and open-notes for sure. However, you probably won't have time to flip through everything so I recommend really understanding the concepts + the homework/in-class quizzes to prepare for the exam. Overall, I think the class was okay. I think the fact that our grades were held back for so long and the lack of statistics and details for the final exam and the last part of the project and participation probably upset a lot of people, but Professor Elaasar is very experienced in terms of software engineering so he's not a bad lecturer.
Spring 2016 - This is a review for CS111 Mark Kampe is by far the WORST professor I had ever taken here at UCLA. He talks about the material as if we have already learned it and uses examples that make little to no sense. He explains things in the most round-about way and does the worst job at keeping us engaged. The material for this class in itself is very heavy and his lectures were not helpful at all. Most of the time, I would walk out of the class asking myself what I even learned in those two hours. And then there's the reading... what kind of computer science class has more readings than an English class. We are expected to read an average of 40 pages before every lecture and on some occasions, 80+ pages. The reading isn't easy either. It's on material we haven't ever learned and on top of this, he doesn't cover the reading material well during lecture. The quizzes based off the reading are also horrible. It's usually 5 questions in 8 minutes. But most of the time its a "choose all that apply" type of question. This is dumb because suppose there are 6 options to "choose all that apply". That's essentially 6 True or False questions in a single question. And we are expected to complete 5 of these in 8 minutes. Now onto the projects... He gives us completely new projects and doesn't even have a working solution to it half the time. The solutions usually have bugs and major errors that would mess up the way the TA explained it to us. And on top of this, the specs are terrible. They provide no detail as to what we should be doing. My TA even said he was essentially using us as "guinea pigs" to experiment with the new course for next quarter. Overall Kampe is the WORST professor I have ever taken. I took CS33 with Eggert and would take 111 with Eggert any day over Kampe. If you can avoid this professor and take 111 another quarter, I strongly advise you to do so.
Fall 2017 - This is one of the more overrated classes. Coming into the class, I have such high expectation for learning something useful instead of some old school stuff from Eggert. However, I don't think anything other than design patterns are that useful, and there are so many good online resources and practices for design patterns. To get an A, you need to score almost 100% on every homework, quiz and exam, and get at least median on all parts of project, which is pretty difficult.