David A Smallberg
Department of Computer Science
AD
4.0
Overall Rating
Based on 148 Users
Easiness 2.5 / 5 How easy the class is, 1 being extremely difficult and 5 being easy peasy.
Clarity 4.1 / 5 How clear the class is, 1 being extremely unclear and 5 being very clear.
Workload 2.3 / 5 How much workload the class is, 1 being extremely heavy and 5 being extremely light.
Helpfulness 3.9 / 5 How helpful the class is, 1 being not helpful at all and 5 being extremely helpful.

TOP TAGS

There are no relevant tags for this professor yet.

GRADE DISTRIBUTIONS
32.9%
27.4%
21.9%
16.5%
11.0%
5.5%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

29.3%
24.4%
19.5%
14.6%
9.8%
4.9%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

44.0%
36.7%
29.3%
22.0%
14.7%
7.3%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

39.5%
32.9%
26.3%
19.7%
13.2%
6.6%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

40.7%
33.9%
27.1%
20.3%
13.6%
6.8%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

41.6%
34.6%
27.7%
20.8%
13.9%
6.9%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

47.8%
39.9%
31.9%
23.9%
15.9%
8.0%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

49.8%
41.5%
33.2%
24.9%
16.6%
8.3%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

29.6%
24.6%
19.7%
14.8%
9.9%
4.9%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

38.7%
32.2%
25.8%
19.3%
12.9%
6.4%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

24.1%
20.1%
16.1%
12.1%
8.0%
4.0%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

24.1%
20.1%
16.1%
12.1%
8.0%
4.0%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

19.4%
16.2%
13.0%
9.7%
6.5%
3.2%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

20.6%
17.1%
13.7%
10.3%
6.9%
3.4%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

21.3%
17.8%
14.2%
10.7%
7.1%
3.6%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

24.5%
20.4%
16.4%
12.3%
8.2%
4.1%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

17.5%
14.6%
11.7%
8.8%
5.8%
2.9%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

23.4%
19.5%
15.6%
11.7%
7.8%
3.9%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

21.0%
17.5%
14.0%
10.5%
7.0%
3.5%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

24.2%
20.2%
16.2%
12.1%
8.1%
4.0%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

17.3%
14.4%
11.5%
8.6%
5.8%
2.9%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

21.4%
17.8%
14.3%
10.7%
7.1%
3.6%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

ENROLLMENT DISTRIBUTIONS
Clear marks

Sorry, no enrollment data is available.

AD

Reviews (107)

5 of 11
5 of 11
Add your review...
Quarter: Winter 2023
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
April 14, 2023

Overall manageable class. Start projects early, especially Project 3 and Project 4, and you will find them fun instead of stressful. Reach out to peers or TAs if you need help

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2023
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
April 4, 2023

Professor Smallberg is a great professor. His lectures can be a bit bland at times, but he always tries to guide you through the reasons behind learning the concepts in class. CS32 is an extremely time consuming class. Projects take about 5 - 10 hours on average, with project 3 being the longest at 20 hours. Homeworks are slightly easier. Exams are not too hard if you study hard enough. The midterm 1 median was 32/35, the midterm 2 median was 55/65, and the final median was 85/100. If you take this course, you will learn a lot about computer science.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Nov. 24, 2022

Dr. Smallberg is a great professor but his online lectures (recorded) are long and dull (with the exception of his monkey and his clumsiness). If you intend to get through the lecture without falling asleep watch the video at 2x speed. Also refer to Nachenberg's slides where appropriate; they help a lot!

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Nov. 12, 2022

In this class, Smallberg builds very good intuition, as he will go on and on for a long time for why a certain algorithm/practice is incorrect, before finally showing the correct one. While I hated this method of teaching while I took the class, looking back, it helped me out a lot. Smallberg is also a walking C++ dictionary, as he was good at answering any question about C++ syntax.

There are 4 Projects and 5 Homeworks in this class. The homeworks were as hard as CS31 projects, while projects were longer (except for Project 1 and Project 4). Project 3 is the most brutal one, as he gives you two weeks to work on it. We had the Battleship project. I procrastinated the first week (bad idea), which forced me to work A LOT in the second week. Out of the last 48 hours before it was due, I spent 14 hours working on the project. Recommendation: do not procrastinate on projects.

For this class, use Smallberg's lectures to learn, and then Nachenberg's slides to review. It will help in the long run! Overall, in hindsight, I found this class to be more fun than CS31 and CS33; discussing edge cases and creating test cases with others was the most fun part of the projects.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: A
June 29, 2022

SMALLBERG is KING

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: A
June 24, 2022

CS32 as a whole is an entire different ballpark than CS31. I took CS31 in the Winter with a different professor and entering this class was very different and. much more difficult. First of all, his lectures are entirely asynchronous and he posts them on the days class is scheduled for, and also on those days he holds a Q&A session where you can ask him anything about the material/homework/project during the assigned lecture time. His lectures work as asynchronous because this way we won't fall behind on lectures, because I know for students who took this class before Covid, they were always like two lectures behind. I guess that is a plus, but personally, I learn better with in-class lectures. As a word of advice, I would recommend watching these lectures literally on 2x speed and if you are still a little lost, go to discussion. I found that I didn't learn as well from the lectures but the discussions helped a lot, which I think is because I had a TA who explained these difficult concepts in a very manageable way. Your TA does matter in this class, and if you decide the TA you have isn't presenting the material in a way you can learn, go to a different TA's discussion. I would also highly recommend going to the TA office hours. Even if I didn't really have questions, having an environment to work in where everyone was doing the same project made me more motivated to do the projects. Also, and this is very important, DO NOT WAIT TO DO THE PROJECTS. Our projects were usually due on Tuesdays and the next one releases THE SAME TUESDAY. I often was overwhelmed by the workload and didn't start the next project until the weekend since I worked so hard last minute to complete the previous project, and then I would find myself in a difficult cycle of being behind on the project. So GO TO OFFICE HOURS the week the project is assigned and AT LEAST get started on the project the week before it is due; your whole life will be much easier if you work on the project the week in advance. I got a surprisingly good grade in this class and I would say it was because I got really good grades on all of the projects and homework assignments and did about average on the exams. The first exam was in person and even though I got average on the exam (70%) I still felt way more prepared on this exam than the second exam, which was online. The second exam was simply 3 coding questions and introduced a topic none of us were familiar with yet (trees), but somehow was supposed to get since we knew recursion. The final was very different, since it was online and had no coding questions and instead tested on some sorting, but mostly entirely Big-O. Even though it was "multiple choice", every question had about 20-30 options, so you really had to know your stuff. Regardless, very difficult class, but work really hard on the projects and homework to get good grades on them, and do about average to maybe above average on the exams and I think you'll be good.

Extra:
-I felt like understanding linked lists was the big turning point for me in this class, because understanding how they worked built on many of the other data structures in this class. Also, recursion is going to be difficult, but do your best to understand it through all of the assigned practice, and LA worksheets because unfortunately, they also test pretty heavily on your knowledge of recursion.
-Project 3 is always making some sort of game and it mainly tests on recursion, inheritance, choice of data structures, along with just your ability to come up with solutions. You get two weeks on this project, but it takes lowkey forever, so definitely start it the first week it's assigned because you WILL have questions, and you will run into a lot of errors.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: B-
Verified Reviewer This user is a verified UCLA student/alum.
June 24, 2022

The jump between CS31 and CS32 is pretty big. I went into CS32 knowing it was a weeder class and I almost got weeded out. The first two projects are pretty manageable, but project 3 will literally ruin you so please start the day it is assigned. I spent nearly ten hours for like three days straight trying to get a FEW function completed. Do not slack in this class. My only real issue with the course is that the lectures can be quite boring and that the tests (at least the second midterm and final) were not easy to prepare for and only covered a few topics. It was hard because the final, for example, was almost entirely big-O, which only was covered in like a lecture and a half. Other than that, Smallberg is a nice guy and the class is just hard. Make sure to just start early and ask for help when you need it because the TAs and Smallberg will usually accommodate.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: B+
June 23, 2022

took this class as someone with no cs background other than cs31. smallberg was really nice overall and he just posted recorded lectures every week and had q&a sessions during the live lecture times. the projects were manageable but if you aren't already good at coding you should expect to dedicate a good chunk of time to it. it also just feels like so much work because there was a homework/project due almost every week (sometimes both in the same week).
exams were pretty rough for me, both on paper (midterm 1) and online(the other 2 exams).
overall smallberg is cool and i can honestly say his lectures aren't unbearable (as someone who hates lectures). i appreciate him cutting out literally every second of the lecture that wasn't necessary and his monkey that pops up every now and then. take this class!!

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2022
Grade: A
COVID-19 This review was submitted during the COVID-19 pandemic. Your experience may vary.
Verified Reviewer This user is a verified UCLA student/alum.
June 22, 2022

I'm writing this review for winter '22. I found CS 32 to be much, much harder than CS 31, both in terms of content and workload. Before taking the class, I had been coding for five years and had done a coding internship, yet it was still difficult for me. Unlike CS 31, where it's possible to just cruise through and put in minimal effort and still get an A (if you know coding already), in CS 32, a lot more effort is needed.

This class had a flipped classroom format. Smallberg's prerecorded lectures were kind of boring but he was quite clear and explained the concepts well, for the most part. The only topic in which his lectures were lacking was recursion. For recursion, I would strongly suggest using Nachenburg's slides, as in my opinion he explained it much better. Smallberg only gave about 3 examples in his recursion lecture whereas Nachenburg gave a lot more. I only truly got the grasp of recursion when I saw Nachenburg's slides. For the other topics though, Smallberg's lectures were pretty good.

The projects and homeworks were much more time-consuming and complicated than CS 31's. Unlike CS 31, where each homework was just some ZyBook problems, most of the CS 32 homeworks were similar difficulty/time involvement as CS 31 projects and were graded on accuracy rather than completion. My ranking of the homeworks, from hardest to easiest, is hw 3, hw 1, hw 2, hw 4, hw 5. It was a bit annoying to have a hw due two days before the final but luckily it was the easiest one by far and took under an hour to complete. As for the projects, my ranking from hardest to easiest is project 4, project 3, project 2, project 1. Basically, the projects got exponentially harder as the course went on. Initially, I was really scared for project 3 since it had a 60 page spec and seemed very complicated. However, it wasn't actually super conceptually difficult, it was just very time-consuming. The spec was quite clear and basically told you what to do so there wasn't much hard thinking. If you start project 3 on time, it should be fine. I think about 45% of students got 100% on it. Personally, I spent about a week on it and treated it kind of like a full-time job lol. It took me 45 hours. I actually found it super fun though! It's my favorite memory of the course. Project 4 was a different story though. It was time-consuming AND super difficult. At first glance, it appeared simpler than project 3 since its spec was only a third of the length of project 3's spec. But that was because it didn't tell you what to do -- you had to think things through. It required a lot of critical thinking and it literally fried my brain lol. I spent 45 hours on it and was not able to come up with a working solution, as my code failed more complicated test cases. A lot of other students struggled as well and many submitted a dummy implementation. My general advice for projects 3 and 4 is to start early and to use resources for help. I'd highly recommend UPE's project 3 and 4 hacks, as they really came in clutch. Ask questions to Smallberg/your TA if you're unclear about something in the spec or requirements. Put effort into writing good test cases for your code, as testing your code thoroughly can make a big difference in your score. Smallberg is right when he emphasizes using an incremental approach to programming. Definitely do not code everything all at once -- break the project up into chunks and make sure each chunk works properly before moving onto the next. Also, the debugger is your best friend!

Both of the midterms were online. The first one was super easy and most people got 100. The second one was very difficult though and one of the questions was on a concept we hadn't covered yet. There isn't much leeway in the online exams, as the code is graded entirely on performance, so even if you have the right thought process and logic, if you make a small error that causes your code to fail test cases, you're screwed. I totally failed the second midterm and was so stressed that I almost dropped the course. However, Smallberg encouraged me not to drop, so I stayed. Fortunately, the midterm was curved, so even though I only got 1 out of 3 questions right, I got 60%. The final was in-person and it was very hard too. Smallberg still hasn't released our scores for the final exam (and for project 4), so I'm not sure exactly how I did, but I probably got a C at best. The format of the in-person exam was very different from the online tests. The online tests purely involve coding, but the in-person ones are mostly multiple choice with some short answers. A couple of the short answers involve handwriting code. Some of the multiple choice questions had over 20 answer choices each!! The multiple choice section was the craziest I'd ever seen in my life. Definitely be sure to study hard for the final, as you definitely won't be able to get lucky with guessing. In general, I'd highly recommend going over (and printing out) Nachenburg's slides before each exam, as they are good for reviewing and they are an excellent supplement to Smallberg's lectures. Also, don't rely on the open-note format of the tests, as you need to understand the topics on a conceptual level.

Overall, the course is hard but totally doable if you're diligent, put in the effort, start projects early, and get help when you need it. Do keep in mind that the difficulty gets much harder towards the end of the quarter, especially after week 6. For some perspective, a whopping 43% of the overall grade relies on things that are due in the last week of the course (hw 5 - 5%, project 4 - 13%, final exam - 25%). If a binary search tree was that unbalanced it would be O(N)! (You'll get the joke at the end of the course). Whatever happens, don't give up. Despite the difficulty, the curve is very generous, so there is definitely room to make mistakes and you don't need to be perfect to get an A. I failed midterm 2, did poorly on the final, and didn't do so well on project 4, yet I still somehow got an A. If I can do it, anyone can!

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2022
Grade: N/A
COVID-19 This review was submitted during the COVID-19 pandemic. Your experience may vary.
March 22, 2022

smallberg is by far the nicest prof ive ever had, he's extremely understanding and genuinely cares about his students. projects 3 and 4 take some time but overall the class is super easy. homeworks projects and tests are all very easy, the medians were always high 90s. bless david i hope his pillow is always cold at night <3

Helpful?

0 2 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Winter 2023
Grade: A
April 14, 2023

Overall manageable class. Start projects early, especially Project 3 and Project 4, and you will find them fun instead of stressful. Reach out to peers or TAs if you need help

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Winter 2023
Grade: A
April 4, 2023

Professor Smallberg is a great professor. His lectures can be a bit bland at times, but he always tries to guide you through the reasons behind learning the concepts in class. CS32 is an extremely time consuming class. Projects take about 5 - 10 hours on average, with project 3 being the longest at 20 hours. Homeworks are slightly easier. Exams are not too hard if you study hard enough. The midterm 1 median was 32/35, the midterm 2 median was 55/65, and the final median was 85/100. If you take this course, you will learn a lot about computer science.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Spring 2022
Grade: A
Nov. 24, 2022

Dr. Smallberg is a great professor but his online lectures (recorded) are long and dull (with the exception of his monkey and his clumsiness). If you intend to get through the lecture without falling asleep watch the video at 2x speed. Also refer to Nachenberg's slides where appropriate; they help a lot!

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Spring 2022
Grade: A
Nov. 12, 2022

In this class, Smallberg builds very good intuition, as he will go on and on for a long time for why a certain algorithm/practice is incorrect, before finally showing the correct one. While I hated this method of teaching while I took the class, looking back, it helped me out a lot. Smallberg is also a walking C++ dictionary, as he was good at answering any question about C++ syntax.

There are 4 Projects and 5 Homeworks in this class. The homeworks were as hard as CS31 projects, while projects were longer (except for Project 1 and Project 4). Project 3 is the most brutal one, as he gives you two weeks to work on it. We had the Battleship project. I procrastinated the first week (bad idea), which forced me to work A LOT in the second week. Out of the last 48 hours before it was due, I spent 14 hours working on the project. Recommendation: do not procrastinate on projects.

For this class, use Smallberg's lectures to learn, and then Nachenberg's slides to review. It will help in the long run! Overall, in hindsight, I found this class to be more fun than CS31 and CS33; discussing edge cases and creating test cases with others was the most fun part of the projects.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: A
June 29, 2022

SMALLBERG is KING

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: A
June 24, 2022

CS32 as a whole is an entire different ballpark than CS31. I took CS31 in the Winter with a different professor and entering this class was very different and. much more difficult. First of all, his lectures are entirely asynchronous and he posts them on the days class is scheduled for, and also on those days he holds a Q&A session where you can ask him anything about the material/homework/project during the assigned lecture time. His lectures work as asynchronous because this way we won't fall behind on lectures, because I know for students who took this class before Covid, they were always like two lectures behind. I guess that is a plus, but personally, I learn better with in-class lectures. As a word of advice, I would recommend watching these lectures literally on 2x speed and if you are still a little lost, go to discussion. I found that I didn't learn as well from the lectures but the discussions helped a lot, which I think is because I had a TA who explained these difficult concepts in a very manageable way. Your TA does matter in this class, and if you decide the TA you have isn't presenting the material in a way you can learn, go to a different TA's discussion. I would also highly recommend going to the TA office hours. Even if I didn't really have questions, having an environment to work in where everyone was doing the same project made me more motivated to do the projects. Also, and this is very important, DO NOT WAIT TO DO THE PROJECTS. Our projects were usually due on Tuesdays and the next one releases THE SAME TUESDAY. I often was overwhelmed by the workload and didn't start the next project until the weekend since I worked so hard last minute to complete the previous project, and then I would find myself in a difficult cycle of being behind on the project. So GO TO OFFICE HOURS the week the project is assigned and AT LEAST get started on the project the week before it is due; your whole life will be much easier if you work on the project the week in advance. I got a surprisingly good grade in this class and I would say it was because I got really good grades on all of the projects and homework assignments and did about average on the exams. The first exam was in person and even though I got average on the exam (70%) I still felt way more prepared on this exam than the second exam, which was online. The second exam was simply 3 coding questions and introduced a topic none of us were familiar with yet (trees), but somehow was supposed to get since we knew recursion. The final was very different, since it was online and had no coding questions and instead tested on some sorting, but mostly entirely Big-O. Even though it was "multiple choice", every question had about 20-30 options, so you really had to know your stuff. Regardless, very difficult class, but work really hard on the projects and homework to get good grades on them, and do about average to maybe above average on the exams and I think you'll be good.

Extra:
-I felt like understanding linked lists was the big turning point for me in this class, because understanding how they worked built on many of the other data structures in this class. Also, recursion is going to be difficult, but do your best to understand it through all of the assigned practice, and LA worksheets because unfortunately, they also test pretty heavily on your knowledge of recursion.
-Project 3 is always making some sort of game and it mainly tests on recursion, inheritance, choice of data structures, along with just your ability to come up with solutions. You get two weeks on this project, but it takes lowkey forever, so definitely start it the first week it's assigned because you WILL have questions, and you will run into a lot of errors.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Spring 2022
Grade: B-
June 24, 2022

The jump between CS31 and CS32 is pretty big. I went into CS32 knowing it was a weeder class and I almost got weeded out. The first two projects are pretty manageable, but project 3 will literally ruin you so please start the day it is assigned. I spent nearly ten hours for like three days straight trying to get a FEW function completed. Do not slack in this class. My only real issue with the course is that the lectures can be quite boring and that the tests (at least the second midterm and final) were not easy to prepare for and only covered a few topics. It was hard because the final, for example, was almost entirely big-O, which only was covered in like a lecture and a half. Other than that, Smallberg is a nice guy and the class is just hard. Make sure to just start early and ask for help when you need it because the TAs and Smallberg will usually accommodate.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: B+
June 23, 2022

took this class as someone with no cs background other than cs31. smallberg was really nice overall and he just posted recorded lectures every week and had q&a sessions during the live lecture times. the projects were manageable but if you aren't already good at coding you should expect to dedicate a good chunk of time to it. it also just feels like so much work because there was a homework/project due almost every week (sometimes both in the same week).
exams were pretty rough for me, both on paper (midterm 1) and online(the other 2 exams).
overall smallberg is cool and i can honestly say his lectures aren't unbearable (as someone who hates lectures). i appreciate him cutting out literally every second of the lecture that wasn't necessary and his monkey that pops up every now and then. take this class!!

Helpful?

0 0 Please log in to provide feedback.
COVID-19 This review was submitted during the COVID-19 pandemic. Your experience may vary.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Winter 2022
Grade: A
June 22, 2022

I'm writing this review for winter '22. I found CS 32 to be much, much harder than CS 31, both in terms of content and workload. Before taking the class, I had been coding for five years and had done a coding internship, yet it was still difficult for me. Unlike CS 31, where it's possible to just cruise through and put in minimal effort and still get an A (if you know coding already), in CS 32, a lot more effort is needed.

This class had a flipped classroom format. Smallberg's prerecorded lectures were kind of boring but he was quite clear and explained the concepts well, for the most part. The only topic in which his lectures were lacking was recursion. For recursion, I would strongly suggest using Nachenburg's slides, as in my opinion he explained it much better. Smallberg only gave about 3 examples in his recursion lecture whereas Nachenburg gave a lot more. I only truly got the grasp of recursion when I saw Nachenburg's slides. For the other topics though, Smallberg's lectures were pretty good.

The projects and homeworks were much more time-consuming and complicated than CS 31's. Unlike CS 31, where each homework was just some ZyBook problems, most of the CS 32 homeworks were similar difficulty/time involvement as CS 31 projects and were graded on accuracy rather than completion. My ranking of the homeworks, from hardest to easiest, is hw 3, hw 1, hw 2, hw 4, hw 5. It was a bit annoying to have a hw due two days before the final but luckily it was the easiest one by far and took under an hour to complete. As for the projects, my ranking from hardest to easiest is project 4, project 3, project 2, project 1. Basically, the projects got exponentially harder as the course went on. Initially, I was really scared for project 3 since it had a 60 page spec and seemed very complicated. However, it wasn't actually super conceptually difficult, it was just very time-consuming. The spec was quite clear and basically told you what to do so there wasn't much hard thinking. If you start project 3 on time, it should be fine. I think about 45% of students got 100% on it. Personally, I spent about a week on it and treated it kind of like a full-time job lol. It took me 45 hours. I actually found it super fun though! It's my favorite memory of the course. Project 4 was a different story though. It was time-consuming AND super difficult. At first glance, it appeared simpler than project 3 since its spec was only a third of the length of project 3's spec. But that was because it didn't tell you what to do -- you had to think things through. It required a lot of critical thinking and it literally fried my brain lol. I spent 45 hours on it and was not able to come up with a working solution, as my code failed more complicated test cases. A lot of other students struggled as well and many submitted a dummy implementation. My general advice for projects 3 and 4 is to start early and to use resources for help. I'd highly recommend UPE's project 3 and 4 hacks, as they really came in clutch. Ask questions to Smallberg/your TA if you're unclear about something in the spec or requirements. Put effort into writing good test cases for your code, as testing your code thoroughly can make a big difference in your score. Smallberg is right when he emphasizes using an incremental approach to programming. Definitely do not code everything all at once -- break the project up into chunks and make sure each chunk works properly before moving onto the next. Also, the debugger is your best friend!

Both of the midterms were online. The first one was super easy and most people got 100. The second one was very difficult though and one of the questions was on a concept we hadn't covered yet. There isn't much leeway in the online exams, as the code is graded entirely on performance, so even if you have the right thought process and logic, if you make a small error that causes your code to fail test cases, you're screwed. I totally failed the second midterm and was so stressed that I almost dropped the course. However, Smallberg encouraged me not to drop, so I stayed. Fortunately, the midterm was curved, so even though I only got 1 out of 3 questions right, I got 60%. The final was in-person and it was very hard too. Smallberg still hasn't released our scores for the final exam (and for project 4), so I'm not sure exactly how I did, but I probably got a C at best. The format of the in-person exam was very different from the online tests. The online tests purely involve coding, but the in-person ones are mostly multiple choice with some short answers. A couple of the short answers involve handwriting code. Some of the multiple choice questions had over 20 answer choices each!! The multiple choice section was the craziest I'd ever seen in my life. Definitely be sure to study hard for the final, as you definitely won't be able to get lucky with guessing. In general, I'd highly recommend going over (and printing out) Nachenburg's slides before each exam, as they are good for reviewing and they are an excellent supplement to Smallberg's lectures. Also, don't rely on the open-note format of the tests, as you need to understand the topics on a conceptual level.

Overall, the course is hard but totally doable if you're diligent, put in the effort, start projects early, and get help when you need it. Do keep in mind that the difficulty gets much harder towards the end of the quarter, especially after week 6. For some perspective, a whopping 43% of the overall grade relies on things that are due in the last week of the course (hw 5 - 5%, project 4 - 13%, final exam - 25%). If a binary search tree was that unbalanced it would be O(N)! (You'll get the joke at the end of the course). Whatever happens, don't give up. Despite the difficulty, the curve is very generous, so there is definitely room to make mistakes and you don't need to be perfect to get an A. I failed midterm 2, did poorly on the final, and didn't do so well on project 4, yet I still somehow got an A. If I can do it, anyone can!

Helpful?

0 0 Please log in to provide feedback.
COVID-19 This review was submitted during the COVID-19 pandemic. Your experience may vary.
Quarter: Winter 2022
Grade: N/A
March 22, 2022

smallberg is by far the nicest prof ive ever had, he's extremely understanding and genuinely cares about his students. projects 3 and 4 take some time but overall the class is super easy. homeworks projects and tests are all very easy, the medians were always high 90s. bless david i hope his pillow is always cold at night <3

Helpful?

0 2 Please log in to provide feedback.
5 of 11
4.0
Overall Rating
Based on 148 Users
Easiness 2.5 / 5 How easy the class is, 1 being extremely difficult and 5 being easy peasy.
Clarity 4.1 / 5 How clear the class is, 1 being extremely unclear and 5 being very clear.
Workload 2.3 / 5 How much workload the class is, 1 being extremely heavy and 5 being extremely light.
Helpfulness 3.9 / 5 How helpful the class is, 1 being not helpful at all and 5 being extremely helpful.

TOP TAGS

There are no relevant tags for this professor yet.

ADS

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!