COM SCI 111
Operating Systems Principles
Description: Lecture, four hours; laboratory, two hours; outside study, nine hours. Enforced requisites: courses 32, 33, 35L. Introduction to operating systems design and evaluation. Computer software systems performance, robustness, and functionality. Kernel structure, bootstrapping, input/output (I/O) devices and interrupts. Processes and threads; address spaces, memory management, and virtual memory. Scheduling, synchronization. File systems: layout, performance, robustness. Distributed systems: networking, remote procedure call (RPC), asynchronous RPC, distributed file systems, transactions. Protection and security. Exercises involving applications using, and internals of, real-world operating systems. Letter grading.
Units: 5.0
Units: 5.0
Most Helpful Review
Spring 2021 - Jon was a great lecturer. (He ended every lecture with: "I'm pulling for you" : ) ) He revamped the course to simplify the labs and submission process. For example, we didn't have to use a BeagleBoard for the labs. Instead, we did all the labs in a Linux VM (Arch) in Virtual Box. He also streamlined the submission process for labs. Instead of tarballing the assignment and uploading it to CCLE, all we had to do to submit was (git) push our changes to the class server. We also got 4 late days (spread out across all the labs). The submission time is when you push, not the time of the commit. He also streamed his lectures using Twitch (significantly better video quality than Zoom) and posted the recordings on YouTube. We also used Discord for asking questions and talking to the TAs and professor. We also got to choose what topics were covered for the last few lectures (sockets, VMs) which was great. Here's a link to the course website: https://laforge.cs.ucla.edu/cs111/ and the syllabus: https://laforge.cs.ucla.edu/cs111/media/cs111/syllabus.pdf . The grade breakdown is: 5% for the warm-up lab, 10% for each of the four labs, 24% for the midterm, and 30% for the final. (There was also 1% extra credit if you complete the course evaluation.)
Spring 2021 - Jon was a great lecturer. (He ended every lecture with: "I'm pulling for you" : ) ) He revamped the course to simplify the labs and submission process. For example, we didn't have to use a BeagleBoard for the labs. Instead, we did all the labs in a Linux VM (Arch) in Virtual Box. He also streamlined the submission process for labs. Instead of tarballing the assignment and uploading it to CCLE, all we had to do to submit was (git) push our changes to the class server. We also got 4 late days (spread out across all the labs). The submission time is when you push, not the time of the commit. He also streamed his lectures using Twitch (significantly better video quality than Zoom) and posted the recordings on YouTube. We also used Discord for asking questions and talking to the TAs and professor. We also got to choose what topics were covered for the last few lectures (sockets, VMs) which was great. Here's a link to the course website: https://laforge.cs.ucla.edu/cs111/ and the syllabus: https://laforge.cs.ucla.edu/cs111/media/cs111/syllabus.pdf . The grade breakdown is: 5% for the warm-up lab, 10% for each of the four labs, 24% for the midterm, and 30% for the final. (There was also 1% extra credit if you complete the course evaluation.)
AD
Most Helpful Review
Spring 2017 - I'm surprised no one rants here. You need 94 in total to get an A when only 15 people are above 90 in part 1 of the final and 8 people are above 90 in part 2 of the final. (Update: apparently he changed the break down points, which can boost him from a 1 to a 2.) Project specs are changed after due date. Sanity check and grading script is incoherent. Need to pay 10 points of late penalty for using the right make clean targets. Never provide enough detail for project 3. No sample output for project 3 like previous quarters. His lectures are long and boring. He tries to explain but his explanation is so convoluted that you understand even less after listening to it. I can't believe anyone can praise this guy. Avoid him and take Eggert it you can.
Spring 2017 - I'm surprised no one rants here. You need 94 in total to get an A when only 15 people are above 90 in part 1 of the final and 8 people are above 90 in part 2 of the final. (Update: apparently he changed the break down points, which can boost him from a 1 to a 2.) Project specs are changed after due date. Sanity check and grading script is incoherent. Need to pay 10 points of late penalty for using the right make clean targets. Never provide enough detail for project 3. No sample output for project 3 like previous quarters. His lectures are long and boring. He tries to explain but his explanation is so convoluted that you understand even less after listening to it. I can't believe anyone can praise this guy. Avoid him and take Eggert it you can.
Most Helpful Review
Spring 2022 - Great class for CS 111. I really liked how the lectures for this class were all recorded, and the exams were conducted entirely remotely. This meant that I never had to physically attend class (which would be quite a pain since lectures occur at 8 am). This course is tough, don't get me wrong. As the previous reviewers have mentioned, 100 pages of dense OS textbook reading a week. On top of that, you also have the lectures to rewatch and 5 projects that involve programming in C. I easily spent at least 10 hours a week on this class alone. Professor Reiher is a very clear lecturer and always answers students' questions in a timely manner either on the Zoom chat or on Piazza. In addition, the labs this quarter were incredibly straightforward, as the TA's used Professor Eyolfson's labs. None of the labs were particularly difficult, and most of them took no more than 6-7 hours. I can definitely see how just a few years ago, one taking Reiher's CS 111 could easily spend over 20-25 hours a week on this course alone. Exams were all multiple choice and remote (and timed, where you choose a 2 hour time period to take the test from a 24 hour window). That being said, you still need to know your stuff to do well on the tests. Many of the test questions were in the form of "Select all that apply," so it's essential to do the readings, take good notes on them, and study for the tests. I can see how one could get away with skipping some of the readings and then frantically Ctrl-F their way through the readings on the day of the exam looking for answers. But to save yourself stress, it's best to do the readings and watch the lectures ahead of time as recommended by Professor Reiher himself. I somehow ended up just shy of a 93 percent in the class (like 0.1 percent away), yet still ended up with an A. Really thankful that Professor Reiher decided to bump my grade up!
Spring 2022 - Great class for CS 111. I really liked how the lectures for this class were all recorded, and the exams were conducted entirely remotely. This meant that I never had to physically attend class (which would be quite a pain since lectures occur at 8 am). This course is tough, don't get me wrong. As the previous reviewers have mentioned, 100 pages of dense OS textbook reading a week. On top of that, you also have the lectures to rewatch and 5 projects that involve programming in C. I easily spent at least 10 hours a week on this class alone. Professor Reiher is a very clear lecturer and always answers students' questions in a timely manner either on the Zoom chat or on Piazza. In addition, the labs this quarter were incredibly straightforward, as the TA's used Professor Eyolfson's labs. None of the labs were particularly difficult, and most of them took no more than 6-7 hours. I can definitely see how just a few years ago, one taking Reiher's CS 111 could easily spend over 20-25 hours a week on this course alone. Exams were all multiple choice and remote (and timed, where you choose a 2 hour time period to take the test from a 24 hour window). That being said, you still need to know your stuff to do well on the tests. Many of the test questions were in the form of "Select all that apply," so it's essential to do the readings, take good notes on them, and study for the tests. I can see how one could get away with skipping some of the readings and then frantically Ctrl-F their way through the readings on the day of the exam looking for answers. But to save yourself stress, it's best to do the readings and watch the lectures ahead of time as recommended by Professor Reiher himself. I somehow ended up just shy of a 93 percent in the class (like 0.1 percent away), yet still ended up with an A. Really thankful that Professor Reiher decided to bump my grade up!
AD
Most Helpful Review
Winter 2021 - At this point, it's no secret that CS 111 is a horribly designed course with many flaws, particularly regarding its awful pacing and disconnect between lecture material and labs. I would, however, instead like to offer tips about how to survive this class and some insight about Professor Xu. Lectures can be a little boring and confusing at times, but I think it's still a good way to stay on top of things and learn the material. Plus, the professor often emphasizes material that will show up on exams. Doing the recommended readings is also a good way to enforce your understanding of the material, especially if you have trouble grasping the how and why. The professor also provided some practice problems the quarter that I took it, and they really helped test my knowledge and let me figure out what topics I should review. For labs, you should attend discussion sections since the TAs go over what the labs are about and help get you started. It saves a lot of time since you won't have to really start from scratch looking things up all the time. Professor Xu isn't the best at explaining concepts in lecture, but he is definitely one of the most understanding instructors I've had. He listened to a lot of the complaints that students had about the course and took it as constructive advice for improving the class. For example, students complained about the difficulty of the midterm exam given the 2 hour time limit, and he made the final a lot more manageable. In all, he seems like one of the better options for this course.
Winter 2021 - At this point, it's no secret that CS 111 is a horribly designed course with many flaws, particularly regarding its awful pacing and disconnect between lecture material and labs. I would, however, instead like to offer tips about how to survive this class and some insight about Professor Xu. Lectures can be a little boring and confusing at times, but I think it's still a good way to stay on top of things and learn the material. Plus, the professor often emphasizes material that will show up on exams. Doing the recommended readings is also a good way to enforce your understanding of the material, especially if you have trouble grasping the how and why. The professor also provided some practice problems the quarter that I took it, and they really helped test my knowledge and let me figure out what topics I should review. For labs, you should attend discussion sections since the TAs go over what the labs are about and help get you started. It saves a lot of time since you won't have to really start from scratch looking things up all the time. Professor Xu isn't the best at explaining concepts in lecture, but he is definitely one of the most understanding instructors I've had. He listened to a lot of the complaints that students had about the course and took it as constructive advice for improving the class. For example, students complained about the difficulty of the midterm exam given the 2 hour time limit, and he made the final a lot more manageable. In all, he seems like one of the better options for this course.