Fall 2015 - Reiher relies 100% on his slides. His lectures can be boring, but he moves through material quickly and in depth. Reiher has no involvement with the projects at all, they are completely assigned, handled and graded by the TAs. The projects can be very time consuming, so it's important to work closely with your partner and go to office hours if you are unclear on implementation details. Reiher's version of this class requires a lot of memorization of fine OS details, alongside fairly deep understanding required to pull concepts together to answer the long-form test questions. Open note final does help but the final is also brutal.
Winter 2022 - Professor Reiher does a decent job of going through all the materials at a moderate pace. The projects were difficult and takes a long time, so be prepared for that. Really appreciate how accommodating Professor Reiher is of the remote situation. All our exams are remote and he made classes hybrid + always recorded. I feel like materials were all pretty high level. Some are useful and some I'm not too sure whether I will remember them. Overall, not too difficult since exams were remote and open book. However, if the class is taught completely in person, be aware, the exams will be very hard.
Winter 2020 - For Secure Software Development. Truly a great class - it’s essentially CS 136 Part 2: practical project time. There are no exams, and few lectures. Most lectures are designated as team time - where you meet with your team and work on your project/reports. The entire class revolves around proposing, designing, and building a piece of software in a secure fashion. You do this in a group of 4-5. Your grade is entirely based on the reports you write, and the project demo. First, you write a short project proposal. Then, you write a detailed design document, mainly focusing on security. These are done in weeks 1 and 2, respectively. Then, you work on the project. You’re expected to complete the project by the end of Week 7, at which point you’ll demo it. Then, you conduct a security review of your project, and write a report on it. After that, you have a week to fix bugs/issues you found. From there, you do a security review of another team’s project, and write a report. Finally, you have one final report which details your final implemented design - including all the security fixes you made after your own security review. It really is a great class. Reiher and the TAs are always available and willing to help, and encourage you to try new ideas and challenge yourself. It’s very much student-driven: it’s entirely up to you what you make, and how you split up your time building your app/service (procrastinate at your own peril). The only requirement Reiher makes for project proposals is that they have some significant security element (say, processing payments, or storing passwords). I feel like this class and CS 136 should be mandatory for graduation - they’re that valuable in my opinion. 136 gives you baseline theoretical knowledge of computer security, and small practical applications in the labs. This 188 gives you a complete real-world experience in building a secure piece of software. Reiher is knowledgeable, helpful, and has put together a truly practical class. Take this if it ever is offered while you’re at UCLA.
Fall 2020 - This quarter was the first time this version of ethics was offered. The lectures are very long and the nice part was that it was CS-oriented. Nevertheless, near middle to end of the quarter, only around 30 ppl attend lecture... I don't think attending lecture is necessary to pass the class since our exams were all open book. Aside from the lecture, attending discussions were mandatory and your discussions experience will greatly depend on the TA. My TA never had a discussion that was over 1 hour long and often ended within 30 min. Aside from one midterm and one final, we had to write two papers that were over 3000 words that took quite a bit of time. Aside from the essay, this course does not require much other effort unless you want to read the readings. The readings aren't necessary imo to do well on the tests since you can ctrl-f through them. I felt like my TA was definitely not an easy grader, and there wasn't a large curve in the class which is why I decided to PNP this class.
Summer 2018 - His lecture and homework aren't related to the exam. He expects students to read his mind during the exam and write answers he wants to read. If you fail to read his mind, expect B or worse. For lectures, he would explain to you something really simple and just throw you a bunch of papers to read that take more than 10 hr/week just to digest and expect you to understand completely for the exam. Nevermind that he didn't cover any of that during the lecture. He would give you the grade for the exam, but no explanation whatsoever. You don't even get the graded exam back to understand why you got such a grade. I had to ask him and TA multiple times to get my exam back. Very disappointed in UCLA that this school keeps this professor.