- Home
- Search
- David A Smallberg
- COM SCI 32
AD
Based on 150 Users
TOP TAGS
There are no relevant tags for this professor yet.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Sorry, no enrollment data is available.
AD
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!
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
Smallberg is probably one of the smartest professors in the country. He knows every detail of C++ all the way through and can literally recite lines from the documentation. Taking CS32 with him gives a huge boost to any student because of the amount of detail and nuance that Smallberg approaches his class with. This class is hands down one of the most valuable experiences for any student in CS.
Favorite project: Super Peach Sisters, hands down. It's so fun doing an actual graphical CS project for a change.
A lot of these reviews don't tell you about how this class is. Truth is, Smallberg is an insanely intelligent dude. He knows C++ like it was one of his children(C++ is a Small berg). He sometimes takes a bit to build up the analogies(which can make it slightly monotonous at times and thus hard to concentrate) but when you pay 100% attention, you will realize that no one can explain a complex computing concept like he does. At the same time, this class workload is fucked up. Way too intense way too quickly. And projects, esp 3 and 4, are a massive time crunch. When taking this, take it with 12 units or if more, make sure the rest of your load is not too heavy coz you will have a hard time otherwise(don't be me. 16 stem units including this class and it got so bad that I had to late drop this class)
Both Smallberg and Nachenberg are very good imo. Smallberg's lecture goes more in depth than Nachenberg's, but covers less topics/breadth. It's best if you supplement Smallberg's lectures with Nachenberg's slides.
In our class, we had a total of 5 homework assignments and 4 projects. Every week, we had to turn in 1 or 2 of these assignments. When there's both homework and project due, homework assignments will be shorter (about 3-5hrs), otherwise they take 10-20hrs. Projects take about the same time as homework assignments, but project 3 and 4 are much longer (they're not necessarily harder, just longer assignments).
There are 2 midterms and 1 final exam. In my opinion, exams are much trickier than assignments. Reviewing notes and looking over lecture slides will not be enough, you have to find practice problems for yourself. I did quite well on the homework and projects, but the exams slaughtered my GPA.
I enrolled in Carey's section for CS 32, but due to the course being online, I had access to Smallberg's lecture videos (that he prepared ahead of time). Smallberg presented the material extremely clearly and was especially thorough in his explanations of important C++ concepts. It's clear he knows C++ more than Carey, although both are phenomenal CS 32 professors. He includes some additional info about the history of C++ language features that I personally found interesting, although it is not tested on his exams. He is very nice when it comes to answering student questions and definitely not unapproachable like some of the previous reviews mentioned.
Grading for the class is painstakingly slow, although Smallberg is working hard to get scores out to students as soon as possible. I feel CS 32 projects, particularly the last two, take a ton of time to test thoroughly and it is pretty much impossible to design an automated grading script.
I really hope Smallberg's rating goes up! By the way, Carey has mentioned how hard Smallberg has worked. For project 4, he spent a ton of time designing skeleton code for Windows, Mac, and Linux machines and posted updates to the spec at literally 4 in the morning (and no, Smallberg did not set a timer for 4 in the morning!). While previous reviewers mentioned how slow the grading has been, I feel that the heavy workload of CS 32 makes grading assignments inevitably time consuming. As frustrated as I am with not knowing scores to the last two projects, both midterms, and the final, I am confident that Smallberg is working hard to get those scores back soon.
Edit: Smallberg's rating is now 4.0 for CS 32 :)
Edit (again): I got an A+ in CS 32!
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!
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
Smallberg is probably one of the smartest professors in the country. He knows every detail of C++ all the way through and can literally recite lines from the documentation. Taking CS32 with him gives a huge boost to any student because of the amount of detail and nuance that Smallberg approaches his class with. This class is hands down one of the most valuable experiences for any student in CS.
Favorite project: Super Peach Sisters, hands down. It's so fun doing an actual graphical CS project for a change.
A lot of these reviews don't tell you about how this class is. Truth is, Smallberg is an insanely intelligent dude. He knows C++ like it was one of his children(C++ is a Small berg). He sometimes takes a bit to build up the analogies(which can make it slightly monotonous at times and thus hard to concentrate) but when you pay 100% attention, you will realize that no one can explain a complex computing concept like he does. At the same time, this class workload is fucked up. Way too intense way too quickly. And projects, esp 3 and 4, are a massive time crunch. When taking this, take it with 12 units or if more, make sure the rest of your load is not too heavy coz you will have a hard time otherwise(don't be me. 16 stem units including this class and it got so bad that I had to late drop this class)
Both Smallberg and Nachenberg are very good imo. Smallberg's lecture goes more in depth than Nachenberg's, but covers less topics/breadth. It's best if you supplement Smallberg's lectures with Nachenberg's slides.
In our class, we had a total of 5 homework assignments and 4 projects. Every week, we had to turn in 1 or 2 of these assignments. When there's both homework and project due, homework assignments will be shorter (about 3-5hrs), otherwise they take 10-20hrs. Projects take about the same time as homework assignments, but project 3 and 4 are much longer (they're not necessarily harder, just longer assignments).
There are 2 midterms and 1 final exam. In my opinion, exams are much trickier than assignments. Reviewing notes and looking over lecture slides will not be enough, you have to find practice problems for yourself. I did quite well on the homework and projects, but the exams slaughtered my GPA.
I enrolled in Carey's section for CS 32, but due to the course being online, I had access to Smallberg's lecture videos (that he prepared ahead of time). Smallberg presented the material extremely clearly and was especially thorough in his explanations of important C++ concepts. It's clear he knows C++ more than Carey, although both are phenomenal CS 32 professors. He includes some additional info about the history of C++ language features that I personally found interesting, although it is not tested on his exams. He is very nice when it comes to answering student questions and definitely not unapproachable like some of the previous reviews mentioned.
Grading for the class is painstakingly slow, although Smallberg is working hard to get scores out to students as soon as possible. I feel CS 32 projects, particularly the last two, take a ton of time to test thoroughly and it is pretty much impossible to design an automated grading script.
I really hope Smallberg's rating goes up! By the way, Carey has mentioned how hard Smallberg has worked. For project 4, he spent a ton of time designing skeleton code for Windows, Mac, and Linux machines and posted updates to the spec at literally 4 in the morning (and no, Smallberg did not set a timer for 4 in the morning!). While previous reviewers mentioned how slow the grading has been, I feel that the heavy workload of CS 32 makes grading assignments inevitably time consuming. As frustrated as I am with not knowing scores to the last two projects, both midterms, and the final, I am confident that Smallberg is working hard to get those scores back soon.
Edit: Smallberg's rating is now 4.0 for CS 32 :)
Edit (again): I got an A+ in CS 32!
Based on 150 Users
TOP TAGS
There are no relevant tags for this professor yet.