Professor
Glenn Reinman
Most Helpful Review
Spring 2020 - A lot of people say that CS 33 is easier than CS 32. I definitely did not find that to be the case. Where CS 32 is practical application of quick to learn concepts, CS 33 is dense in theory. Note: This review is of Spring 2020 which was a special remote learning quarter due to the pandemic. Some things may be different in person. TLDR; if you have to take this class, take it with Professor Reinman. Instruction: Professor Reinman, as noted by many reviews, uses the flipped-classroom approach. You'll have anywhere from a 30 to 70 minute video to watch before each lecture. If you understand that, you get context for the class and can ask doubts which the professor answers quite meticulously. While it's officially called flipped classroom, it's more like saying that the professor gave you the slides of what he's going to go over in the class beforehand... attached with an audio file. I personally found it easier to keep engaged in the class since the material is so dense I'd have to go over it multiple times. Labs: You will most likely have data lab (binary manipulation of integers), bomb lab (finding answers to a "bomb" puzzle using GNU debugger and interpreting x86 assembly), attack lab (manipulating your input in a way that circumvents design of a C program), and parallel lab (given some C code, you have to optimize it using optimization techniques and parallel programming). All of the last three labs have extra credit, even if the professor doesn't say so initially. Make sure that you grab all of that; it might end up being very handy. In terms of difficulty, Data lab > bomblab > attack lab > parallel lab (personally that's what I think. but most would agree that data lab was the hardest). Keep in mind if the professor opens up some assembly code in the first class and talks about it like you should know all of it somehow beforehand, it would be nice to know that he'll teach everything about that and there's no need to worry. Midterm and Final: There is just one midterm for the course, so make sure you do that well. Due to the special circumstances, I was able to opt out of the final, so I can not say much about that. But the midterm was to the point, however a little tricky here and there. Make sure you have a good understanding of the concepts; ask as many doubts as you have. If you do the labs yourself, you'll be fine for midterm. Would definitely recommend the LA worksheets as well. (Thank you LAs for your help). The course is well constructed. It may look useless at first, specially coming from something like CS 32, but will end up changing the way you code for optimizations that don't involve algorithmic changes. Professor Reinman is great; he maintains a cheery attitude and genuinely tries his best to help everyone succeed.
Spring 2020 - A lot of people say that CS 33 is easier than CS 32. I definitely did not find that to be the case. Where CS 32 is practical application of quick to learn concepts, CS 33 is dense in theory. Note: This review is of Spring 2020 which was a special remote learning quarter due to the pandemic. Some things may be different in person. TLDR; if you have to take this class, take it with Professor Reinman. Instruction: Professor Reinman, as noted by many reviews, uses the flipped-classroom approach. You'll have anywhere from a 30 to 70 minute video to watch before each lecture. If you understand that, you get context for the class and can ask doubts which the professor answers quite meticulously. While it's officially called flipped classroom, it's more like saying that the professor gave you the slides of what he's going to go over in the class beforehand... attached with an audio file. I personally found it easier to keep engaged in the class since the material is so dense I'd have to go over it multiple times. Labs: You will most likely have data lab (binary manipulation of integers), bomb lab (finding answers to a "bomb" puzzle using GNU debugger and interpreting x86 assembly), attack lab (manipulating your input in a way that circumvents design of a C program), and parallel lab (given some C code, you have to optimize it using optimization techniques and parallel programming). All of the last three labs have extra credit, even if the professor doesn't say so initially. Make sure that you grab all of that; it might end up being very handy. In terms of difficulty, Data lab > bomblab > attack lab > parallel lab (personally that's what I think. but most would agree that data lab was the hardest). Keep in mind if the professor opens up some assembly code in the first class and talks about it like you should know all of it somehow beforehand, it would be nice to know that he'll teach everything about that and there's no need to worry. Midterm and Final: There is just one midterm for the course, so make sure you do that well. Due to the special circumstances, I was able to opt out of the final, so I can not say much about that. But the midterm was to the point, however a little tricky here and there. Make sure you have a good understanding of the concepts; ask as many doubts as you have. If you do the labs yourself, you'll be fine for midterm. Would definitely recommend the LA worksheets as well. (Thank you LAs for your help). The course is well constructed. It may look useless at first, specially coming from something like CS 32, but will end up changing the way you code for optimizations that don't involve algorithmic changes. Professor Reinman is great; he maintains a cheery attitude and genuinely tries his best to help everyone succeed.
AD
Most Helpful Review
Professor Reinman is a very smart, funny guy who makes students feel comfortable in his class. He welcomes discussion, and does not mind questions. However, his lectures aren't very organized and he goes over material very, very quickly. In addition, his lectures on parallel programming concepts are very advanced, and many times I was very lost. His lectures felt like it was directed more towards graduate students or students who are extremely knowledgeable in computers in general. What's worse was that there were no digital lecture notes or even a book to fall back on. However, this class is relatively easier workload-wise than other CS classes. First, he doesn't administer quizzes, midterms, or a final. He only assigned three labs throughout the entire quarter which each took less than 5 hours each. There is a big project in the end where you'd have to parallelize an already existing software, which takes a LOT of time. I recommend this Reinman for CS 133 if you're interested in parallel programming and already have some knowledge of the technology behind it. Also, this class isn't time consuming except for the final project. But for me personally, I didn't get much out of this class.
Professor Reinman is a very smart, funny guy who makes students feel comfortable in his class. He welcomes discussion, and does not mind questions. However, his lectures aren't very organized and he goes over material very, very quickly. In addition, his lectures on parallel programming concepts are very advanced, and many times I was very lost. His lectures felt like it was directed more towards graduate students or students who are extremely knowledgeable in computers in general. What's worse was that there were no digital lecture notes or even a book to fall back on. However, this class is relatively easier workload-wise than other CS classes. First, he doesn't administer quizzes, midterms, or a final. He only assigned three labs throughout the entire quarter which each took less than 5 hours each. There is a big project in the end where you'd have to parallelize an already existing software, which takes a LOT of time. I recommend this Reinman for CS 133 if you're interested in parallel programming and already have some knowledge of the technology behind it. Also, this class isn't time consuming except for the final project. But for me personally, I didn't get much out of this class.