COM SCI 33

Introduction to Computer Organization

Description: Lecture, four hours; discussion, two hours; outside study, nine hours. Enforced requisite: course 32. Introductory course on computer architecture, assembly language, and operating systems fundamentals. Number systems, machine language, and assembly language. Procedure calls, stacks, interrupts, and traps. Assemblers, linkers, and loaders. Operating systems concepts: processes and process management, input/output (I/O) programming, memory management, file systems. Letter grading.

Units: 5.0
1 of 1
Overall Rating N/A
Easiness N/A/ 5
Clarity N/A/ 5
Workload N/A/ 5
Helpfulness N/A/ 5
Overall Rating 4.1
Easiness 2.7/ 5
Clarity 3.8/ 5
Workload 2.7/ 5
Helpfulness 4.5/ 5
Most Helpful Review
Fall 2019 - CS33 is a pretty hard class but Professor Nowatzki is an amazing professor. Content/Lectures: The content of this class is very different from CS31 and CS32 (which is really a continuation of CS31) but I do think that I did learn some valuable things from this class. This class is essentially about dissecting the layer between software and hardware and connects the commands you type with the keyboard to what is actually happening inside a computer (somewhat). Professor Nowatzki is really passionate about this class because the topic is relevant to his research. As a result, he is extremely knowledgeable. He uses slides during lectures, which he will put up. To be honest, I found the class to be a bit fast-paced, as a lot of material requires further thinking and trying to understand why things work they way they do. It is HIGHLY recommended to read the textbook before class (which I didnt do, but I did find the textbook helpful for when I was looking at the slides on my own but couldnt understand some concepts), so that you will have an easier time following along in class. It is really easy to be lost during lecture, but I would highly highly recommend staying engaged (once again, by reading textbook beforehand, even skimming helps) and asking questions if you have any. For my quarter, lectures were mandatory for participation and the professor enforced it by having "pop quizzes" randomly, which is an online poll that you have to fill out during lecture. There were 3 in my class. Discussions/Participation: I personally didnt find discussions really helpful, but it involved the TA going over again the content from the past week and then the LAs going over a worksheet. This quarter, discussion was made mandatory and enforced with an online poll every section. However, in past quarters, discussion was not mandatory and there was homework that was checked for completeness instead. I'm not sure if this will change for future quarters Projects/Labs: The projects are actually really really manageable, in my opinion. The first one, data lab, took a lot of thinking and a lightbulb going off in my head before I figured it out. The bomb lab and attack/buffer lab I actually found to be really fun. The malloc lab was infamously hard for having bugs and seg faults, but during my quarter, there was a much easier solution and, as a result, many people (including me) were able to complete it without that much difficulty. I'm not sure if the test cases will be changed, because that simpler solution is very dependent on the test cases given and it might not work as well for some test cases. After the malloc lab, the last one, thread lab, is a breeze. Exams: One thing I really like about Professor Nowatzki is that he has past exams and full solutions that he provides as practice. However, those dont cover all the types of the problems and concepts that may be covered for your actual exam. Not that he will ask questions about things you've never learned or hes never talked about, but more like, just because you see bomb lab questions on two past exams doesnt mean you should expect a bomb lab question to appear on your exam. However, his exams are pretty doable and fair (in retrospect). Piazza: Both Professor Nowatzki and the TAs are very active on piazza and will answer questions very quickly. Extra Credit: Professor Nowatzki gives extra credit on almost every lab and on both midterm and final exam! ALSO, THIS IS KIND OF IRRELEVANT TO THE COURSE, BUT PROFESSOR NOWATZKI IS AN AWESOME PERSON. HE IS FUNNY AND I HONESTLY LOVE READING HIS REPLIES ON PIAZZA. Overall, would recommend.
Overall Rating N/A
Easiness N/A/ 5
Clarity N/A/ 5
Workload N/A/ 5
Helpfulness N/A/ 5
AD
Overall Rating 4.2
Easiness 3.0/ 5
Clarity 4.0/ 5
Workload 3.0/ 5
Helpfulness 4.2/ 5
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.
Overall Rating 3.3
Easiness 1.5/ 5
Clarity 3.3/ 5
Workload 1.3/ 5
Helpfulness 3.3/ 5
1 of 1

Adblock Detected

Bruinwalk is an entirely Daily Bruin-run service brought to you for free. We hate annoying ads just as much as you do, but they help keep our lights on. We promise to keep our ads as relevant for you as possible, so please consider disabling your ad-blocking software while using this site.

Thank you for supporting us!