Special Courses in Computer Science
Virtual Reality - 188 Class was great! You do have to learn the game engine almost by yourself, but you learn a lot. No tests and just a term long project! You work with 2 other people to accomplish this task. You have to spend a lot of time for this class but in the end it is worth it!!! One of my favorite classes at UCLA!
Fall 2015 - Mutz is probably among the best lecturers I've ever had. Very clean, professional slides and the guy knows what he's talking about, since he also works at a pretty high up position for a tech company. The class covers very relevant and interesting technology (Ruby on Rails, TravisCI, Git, Amazon Web Services), and not your standard Lisp / C stuff that you need to run in a command line on the Linux servers. He assigns reading and practice from the textbook, and those are not enforced but highly recommended. 100% of your grade comes from a group project / report due at the end of the class. The project involves building a web app and using a variety of techniques to scale it to handle thousands of users. The textbook and a little bit of the class cover web development and how to incorporate features into your app but the main focus is on scaling, so mostly concerning the database / backend. You can go tryhard mode and make a killer web app or you can just build a simple app; either way you'll get the same grade if you do all the methods he mentions for scaling.
Spring 2019 - The professor is definitely a good person, who is always trying to help us and support us, but not necessarily the class . I have never seen such a harsh grading on a 188 class, ppl who GitHub every project can get good grades, but if you really working hard to achieve something, you probably won't be treated fairly in this class. One Ta was amazing and my favorite TA so far, the other was the exact opposite who is the worst TA I have ever seen, who is gonna be a professor in some school soon, such a pity, why he needs to be a professor ? to educate ppl to be mean and selfish ? I actually developed a personal dislike toward that racist and bias person, we don't need ppl like him in our world, we are still humans. This class ruined my plan to go to grad school through the special program, now I have to leave the country and wait for one more year to apply for grad school. Biggest mistake I made was probably not Githubbing everything and playing the "game". Again, the professor is an amazing person, I have a lot of respect for him, but not the class overall.
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 - Most enjoyable CS class ever taken at UCLA. Probably the most useful one as well for those who want to follow a SDE career path in web development, next to Cho's CS144. John is always so clear. He's the kind of person who can always explain concepts in the most optimal way. I would say some extent of web development experience is preferred though. It will give you a much easier time understanding stuff. You would want to first understand how to build a web app before you think about how to scale them. John will cover some of the basics, but he mainly focuses on the scalability part. Also, he is from the industry, and he will invite some guest speakers from the industry as well. So, another plus for those who are industry-oriented. Overall, definitely worth taking! Such a pity that this class probably won't open every quarter, and he probably won't even teach regularly at UCLA.