David A Smallberg
Department of Computer Science
AD
4.1
Overall Rating
Based on 208 Users
Easiness 3.2 / 5 How easy the class is, 1 being extremely difficult and 5 being easy peasy.
Clarity 4.3 / 5 How clear the class is, 1 being extremely unclear and 5 being very clear.
Workload 3.0 / 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
30.4%
25.4%
20.3%
15.2%
10.1%
5.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.

39.2%
32.7%
26.1%
19.6%
13.1%
6.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.

31.3%
26.1%
20.9%
15.6%
10.4%
5.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.

56.7%
47.2%
37.8%
28.3%
18.9%
9.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.

71.0%
59.2%
47.3%
35.5%
23.7%
11.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.

56.2%
46.8%
37.4%
28.1%
18.7%
9.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.

36.2%
30.2%
24.1%
18.1%
12.1%
6.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.

25.9%
21.6%
17.3%
13.0%
8.6%
4.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.

44.7%
37.2%
29.8%
22.3%
14.9%
7.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.

47.3%
39.4%
31.5%
23.7%
15.8%
7.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.

27.0%
22.5%
18.0%
13.5%
9.0%
4.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.

35.6%
29.7%
23.7%
17.8%
11.9%
5.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.

22.9%
19.1%
15.3%
11.5%
7.6%
3.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.

36.9%
30.8%
24.6%
18.5%
12.3%
6.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.

27.7%
23.1%
18.5%
13.9%
9.2%
4.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.

36.1%
30.1%
24.1%
18.0%
12.0%
6.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.

30.0%
25.0%
20.0%
15.0%
10.0%
5.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.

20.7%
17.2%
13.8%
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.

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.

26.8%
22.3%
17.8%
13.4%
8.9%
4.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.

22.3%
18.6%
14.8%
11.1%
7.4%
3.7%
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.5%
19.6%
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.

17.4%
14.5%
11.6%
8.7%
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.

ENROLLMENT DISTRIBUTIONS
Clear marks

Sorry, no enrollment data is available.

AD

Reviews (145)

4 of 15
4 of 15
Add your review...
Quarter: Fall 2024
Grade: B
Verified Reviewer This user is a verified UCLA student/alum.
Jan. 31, 2025

Start. Early.

Smallberg's class is, as every other review states, incredibly work-based. You don't have to attend any lectures, as they're all on Word documents online, and you're constantly slammed with project after project. There are Q&A opportunities during class time where you could get help on the projects, but I often found myself too busy working on the projects themselves to drag myself all the way to campus for help. Work in groups, get help from outside sources, and START EARLY or you will regret it!!

My only other gripe is that I studied incredibly hard for the tests (especially the final) but performed significantly worse than I expected, as did several of my classmates. Not sure what else I could've done, as I felt quite confident after the tests, but I did feel rather unsupported (and Smallberg has a very strict test-viewing policy that doesn't support you learning from what you missed at all on exams).

He is funny though. Just wouldn't take again.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2024
Grade: B
Verified Reviewer This user is a verified UCLA student/alum.
Jan. 27, 2025

This class was way harder than I thought it would be. Unless you have extensive prior knowledge of C++, be prepared to work harder than you ever had in your entire life. I still never broke the bottom 25% for any exam. The first midterm wiped me out, and the average was an 95. Anyways, taking CS32 this quarter, wish me luck!!!

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2024
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Jan. 18, 2025

The Ultimate CS31 Guide

Takeaways:
- Stay up to speed on lectures. It is easy to fall behind.
- Start your projects early. The main reason people fail projects is because they tried to do it in the 5 minutes before it was due.
- Bookmark Smallberg's CS31 website and CHECK IT EVERY 3 DAYS.
- Watch out for Smallberg's devious test day jeans lmao

Class Structure:
- Actual lecture material is posted online.
- Lecture periods are Q&A sessions (posted online). First lecture will have 300 people packed into one room, second lecture 2 will have 200 people, and the rest of the lectures will have like 100 people max. For me, lectures were not useful.
- Discussion periods are incomplete recaps of the lectures (not posted online) followed by worksheets (posted online). I would recommend the recap portion because it does round out your understanding of the material and it allows you to get some help on your project sometimes.

Grading Structure:
- (1%) Responsibility Assignment or something . . . it's like two surveys.
- (7%) Homework is mildly time consuming yet helpful and done through ZYbook online, usually between projects.
- (42%) Projects are graded on code (relatively simple), test cases (very tedious, err on the side of more test cases), report (very easy), and PAYING ATTENTION TO THE SPEC. Smallberg tests code and spec requirements with a pre-built program, so the only place where leniency can clutch up is on the report and test cases (graded by TAs and LAs). Late policy is 12.5% per hour.
- (7%) Midterm 1 is quite easy but you HAVE to take your time on each problem because it is very easy to make silly mistakes. You are allowed 1 double sided page of cheat sheet.
- (13%) Midterm 2 is harder because it does include cstrings and pointers which can get confusing. Make sure you know the basics well. You are allowed 1 double sided page of cheat sheet.
- (30%) Final is doable but just long honestly. 3 multi part code writing questions and then maybe 60 multiple choice. You are allowed 2 double sided pages of cheat sheet.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2024
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Dec. 31, 2024

Smallberg does a great job of explaining the fundamentals of C++. Don't take the class if you don't have any programming experience. I had years of prior experience and it wasn't exactly a walk in the park either. CS 31 with Smallberg isn't a very difficult class, but don't let your guard down! The first midterm is quite easy but the second midterm is more difficult. The final is more difficult than either of the two. Make sure to watch the pre-recorded lectures, Smallberg explains everything he puts on tests and on the projects. Don't make the mistake of skipping the recorded lectures, thinking you know C++ already.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2023
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Nov. 25, 2024

The class is not too bad. Smallberg records his lectures beforehand and uses lecture-time as a forum to ask questions. For me, this format was quite enjoyable, as it means I could watch at my own pace and didn't have to go to lecture. Discussions were occasionally useful but probably not worth the time I spent in them. While the projects in CS31 are quite tedious at times, they should not be too big of a deal for students with prior programming experience. If you are new to CS, Smallberg does a good job of explaining everything you must do in the specs. Overall, it is a somewhat difficult but also enjoyable CS class.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2024
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Sept. 26, 2024

The class uses the flipped classroom model where lectures are online. This is nice for flexibility, but ultimately puts a responsibility on you to remain caught up. Final was much harder than both midterms, but very manageable if you did the work throughout the quarter. Smallberg is very detail oriented, almost to a fault, but you learned what you needed to.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2023
Grade: B+
Verified Reviewer This user is a verified UCLA student/alum.
June 3, 2024

Smallberg is an interesting guy. There's a lot of reviews on here that either glorify him or completely bash him, but the truth should be that he's somewhere inbetween. There are some things that he is great at -- particularly, he's a good explainer of concepts and he definitely is one of the more well-versed CS professors.

However, he is not nice or particularly accommodating, and he won't feel bad about it, either. When he sends out project grades, he includes a lovely little segment essentially saying that you will never succeed in life if you don't pay attention to the details. True or not, this is pretty devastating to receive if you get a bad grade on a project you've put 30+ hours into.

The class has 7 projects normally, and a handful of homeworks thrown in. The homeworks are simple and are great study-guides. But the projects are generally feared, especially during fall quarter. If you put in the work and start early (as he loves to repeat countless times), you'll be okay. Also, one bad project grade won't hurt you too much, as opposed to CS32 where there are only 4 projects.

My overall advice would be to DEFINITELY NOT take this class DURING FALL if you are not somewhat experienced in coding, and even if you are, to not take it lightly. If you respect Smallberg and his devilish project specs, you'll come out with a grade that you'll at least accept. I went into the class expecting an A, quickly realized I should be expecting a C, and worked my ass off to receive a B+.

I've heard that winter quarter CS31 is a joke compared to fall quarter, so consider that if you have less experience.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2023
Grade: B+
Verified Reviewer This user is a verified UCLA student/alum.
Jan. 9, 2024

I was nervous going into this class with little background in computer science, I hadn't taken any AP CS classes in high school and had only taken a C++ Codeacademy course the summer before. Smallberg is informative and concise in his lectures and having them prerecorded takes away so much stress. The class is tough but manageable as long as you take his advice, always start early, always develop incrementally. He's often intentionally vague on answers to questions which can be frustrating in the moment but is really beneficial in the long run.

Happy Enrolling,
A Smallberg Fan

Helpful?

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

Smallberg is an excellent professor and very good at explaining the material. He posts recorded lectures, so the in person class time is just a QnA session (basically a giant office hour). The class is definitely loaded with work, overall 7 projects and a couple homework assignments. The work is manageable if you start early and keep on track with watching the lectures. He definitely gives hard tests. They aren't impossible to score well on, but they are very thorough and involve both tracing and writing code. He does allow a cheat sheet. My only complaint is that he can be snarky when answering questions, so make sure to read the entire specification before asking your question.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2023
Grade: A
Dec. 30, 2023

He just uses all the videos taken during pandemic. Projects are hard and you lose points for minor mistakes. The videos are helpful to be honest.

The Fall quarter for CS 31 is definitely an honor version, because everyone has some level of prior experience.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2024
Grade: B
Jan. 31, 2025

Start. Early.

Smallberg's class is, as every other review states, incredibly work-based. You don't have to attend any lectures, as they're all on Word documents online, and you're constantly slammed with project after project. There are Q&A opportunities during class time where you could get help on the projects, but I often found myself too busy working on the projects themselves to drag myself all the way to campus for help. Work in groups, get help from outside sources, and START EARLY or you will regret it!!

My only other gripe is that I studied incredibly hard for the tests (especially the final) but performed significantly worse than I expected, as did several of my classmates. Not sure what else I could've done, as I felt quite confident after the tests, but I did feel rather unsupported (and Smallberg has a very strict test-viewing policy that doesn't support you learning from what you missed at all on exams).

He is funny though. Just wouldn't take again.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2024
Grade: B
Jan. 27, 2025

This class was way harder than I thought it would be. Unless you have extensive prior knowledge of C++, be prepared to work harder than you ever had in your entire life. I still never broke the bottom 25% for any exam. The first midterm wiped me out, and the average was an 95. Anyways, taking CS32 this quarter, wish me luck!!!

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2024
Grade: A
Jan. 18, 2025

The Ultimate CS31 Guide

Takeaways:
- Stay up to speed on lectures. It is easy to fall behind.
- Start your projects early. The main reason people fail projects is because they tried to do it in the 5 minutes before it was due.
- Bookmark Smallberg's CS31 website and CHECK IT EVERY 3 DAYS.
- Watch out for Smallberg's devious test day jeans lmao

Class Structure:
- Actual lecture material is posted online.
- Lecture periods are Q&A sessions (posted online). First lecture will have 300 people packed into one room, second lecture 2 will have 200 people, and the rest of the lectures will have like 100 people max. For me, lectures were not useful.
- Discussion periods are incomplete recaps of the lectures (not posted online) followed by worksheets (posted online). I would recommend the recap portion because it does round out your understanding of the material and it allows you to get some help on your project sometimes.

Grading Structure:
- (1%) Responsibility Assignment or something . . . it's like two surveys.
- (7%) Homework is mildly time consuming yet helpful and done through ZYbook online, usually between projects.
- (42%) Projects are graded on code (relatively simple), test cases (very tedious, err on the side of more test cases), report (very easy), and PAYING ATTENTION TO THE SPEC. Smallberg tests code and spec requirements with a pre-built program, so the only place where leniency can clutch up is on the report and test cases (graded by TAs and LAs). Late policy is 12.5% per hour.
- (7%) Midterm 1 is quite easy but you HAVE to take your time on each problem because it is very easy to make silly mistakes. You are allowed 1 double sided page of cheat sheet.
- (13%) Midterm 2 is harder because it does include cstrings and pointers which can get confusing. Make sure you know the basics well. You are allowed 1 double sided page of cheat sheet.
- (30%) Final is doable but just long honestly. 3 multi part code writing questions and then maybe 60 multiple choice. You are allowed 2 double sided pages of cheat sheet.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2024
Grade: A
Dec. 31, 2024

Smallberg does a great job of explaining the fundamentals of C++. Don't take the class if you don't have any programming experience. I had years of prior experience and it wasn't exactly a walk in the park either. CS 31 with Smallberg isn't a very difficult class, but don't let your guard down! The first midterm is quite easy but the second midterm is more difficult. The final is more difficult than either of the two. Make sure to watch the pre-recorded lectures, Smallberg explains everything he puts on tests and on the projects. Don't make the mistake of skipping the recorded lectures, thinking you know C++ already.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2023
Grade: A
Nov. 25, 2024

The class is not too bad. Smallberg records his lectures beforehand and uses lecture-time as a forum to ask questions. For me, this format was quite enjoyable, as it means I could watch at my own pace and didn't have to go to lecture. Discussions were occasionally useful but probably not worth the time I spent in them. While the projects in CS31 are quite tedious at times, they should not be too big of a deal for students with prior programming experience. If you are new to CS, Smallberg does a good job of explaining everything you must do in the specs. Overall, it is a somewhat difficult but also enjoyable CS class.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2024
Grade: A
Sept. 26, 2024

The class uses the flipped classroom model where lectures are online. This is nice for flexibility, but ultimately puts a responsibility on you to remain caught up. Final was much harder than both midterms, but very manageable if you did the work throughout the quarter. Smallberg is very detail oriented, almost to a fault, but you learned what you needed to.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2023
Grade: B+
June 3, 2024

Smallberg is an interesting guy. There's a lot of reviews on here that either glorify him or completely bash him, but the truth should be that he's somewhere inbetween. There are some things that he is great at -- particularly, he's a good explainer of concepts and he definitely is one of the more well-versed CS professors.

However, he is not nice or particularly accommodating, and he won't feel bad about it, either. When he sends out project grades, he includes a lovely little segment essentially saying that you will never succeed in life if you don't pay attention to the details. True or not, this is pretty devastating to receive if you get a bad grade on a project you've put 30+ hours into.

The class has 7 projects normally, and a handful of homeworks thrown in. The homeworks are simple and are great study-guides. But the projects are generally feared, especially during fall quarter. If you put in the work and start early (as he loves to repeat countless times), you'll be okay. Also, one bad project grade won't hurt you too much, as opposed to CS32 where there are only 4 projects.

My overall advice would be to DEFINITELY NOT take this class DURING FALL if you are not somewhat experienced in coding, and even if you are, to not take it lightly. If you respect Smallberg and his devilish project specs, you'll come out with a grade that you'll at least accept. I went into the class expecting an A, quickly realized I should be expecting a C, and worked my ass off to receive a B+.

I've heard that winter quarter CS31 is a joke compared to fall quarter, so consider that if you have less experience.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2023
Grade: B+
Jan. 9, 2024

I was nervous going into this class with little background in computer science, I hadn't taken any AP CS classes in high school and had only taken a C++ Codeacademy course the summer before. Smallberg is informative and concise in his lectures and having them prerecorded takes away so much stress. The class is tough but manageable as long as you take his advice, always start early, always develop incrementally. He's often intentionally vague on answers to questions which can be frustrating in the moment but is really beneficial in the long run.

Happy Enrolling,
A Smallberg Fan

Helpful?

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

Smallberg is an excellent professor and very good at explaining the material. He posts recorded lectures, so the in person class time is just a QnA session (basically a giant office hour). The class is definitely loaded with work, overall 7 projects and a couple homework assignments. The work is manageable if you start early and keep on track with watching the lectures. He definitely gives hard tests. They aren't impossible to score well on, but they are very thorough and involve both tracing and writing code. He does allow a cheat sheet. My only complaint is that he can be snarky when answering questions, so make sure to read the entire specification before asking your question.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2023
Grade: A
Dec. 30, 2023

He just uses all the videos taken during pandemic. Projects are hard and you lose points for minor mistakes. The videos are helpful to be honest.

The Fall quarter for CS 31 is definitely an honor version, because everyone has some level of prior experience.

Helpful?

0 0 Please log in to provide feedback.
4 of 15
4.1
Overall Rating
Based on 208 Users
Easiness 3.2 / 5 How easy the class is, 1 being extremely difficult and 5 being easy peasy.
Clarity 4.3 / 5 How clear the class is, 1 being extremely unclear and 5 being very clear.
Workload 3.0 / 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!