David A Smallberg
Department of Computer Science
AD
4.1
Overall Rating
Based on 222 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.1 / 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
31.1%
25.9%
20.7%
15.5%
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.

35.0%
29.1%
23.3%
17.5%
11.7%
5.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.

32.0%
26.7%
21.3%
16.0%
10.7%
5.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.

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
Loading...

Sorry, no enrollment data is available.

AD

Reviews (153)

4 of 16
4 of 16
Add your review...
Quarter: Fall 2025
Grade: A
Verified Reviewer This user is a verified UCLA student/alum.
Dec. 24, 2025

Smallberg is great at teaching and the flipped classroom format is perfect for flexibility. The projects were interesting, but be prepared to sink a lot of time into them if you aren't using AI. It was frustrating to see project averages at 100/100 most of the time, knowing that many students were using AI while I was putting in hours of manual work. The material is interesting and the teaching is solid, but the level of difficulty feels artificially high for those who actually follow the rules.

Helpful?

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

LECTURES - My only formal programming experience before this class was AP Computer Science A and Intro to Java in high school. I did not really program over the summer before this class. I did do an intro to C++ class on Codecademy to get familiar with the syntax, but the lectures teach you all the syntax about C++. Even though you're supposed to have prior experience with arrays before this class if you're taking it in the fall, he goes over logic/concepts like if statements, loops, arrays, and pointers. Lectures are posted online which I liked because I could watch on my own time and rewatch them.

PROJECTS - The first two projects are very easy (especially if you watch the lectures and have any programming experience beforehand), but project #3, #5, #7 are probably the most difficult. If you just even look at the spec and think about how to tackle the project the day it's posted, then it'll be okay. Also use the testers that's posted on the class website in case you make a small mistake.

MIDTERMS - Midterm #1 is pretty easy and straightforward. I personally found Midterm #2 also pretty fair (I did watch all the lectures as soon as they were posted instead of cramming them) but it differs for people. The final is very difficult, but it was mostly the one-point multiple choice questions that were tough, so missing a good number (even like 10) of those isn't too terrible.

I never went to a Q&A session (which is what lecture time is used for) because I found it better to just talk it out with people from class or use discussion time for questions.

Discussions just went over the worksheet that's also posted on the class website with solutions. These worksheets are super helpful for practice writing programs (which is an important section of the midterms and finals).

It's not an easy class, but it's doable if you don't cram.

Helpful?

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

If you've done any CS before, the (non-fall) class is going to be pretty easy. If you haven't, the class should still be manageable as his lectures explain things very thoroughly. The workload was relatively light most of the time and projects weren't overly complicated, although I'd advise against starting them last minute.

As other reviews state, lectures are pre-recorded, so don't worry about actually attending the live sessions. Very few people attend discussion but I actually found them very valuable - so few people show up that you can get a lot of personal help from the TA/LAs if necessary, and it's nice to be able to ask questions in person without having to attend a QnA session.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2025
Grade: A-
Verified Reviewer This user is a verified UCLA student/alum.
July 1, 2025

I like Smallberg. He was interesting and so was his class. Unfortunately, his tests are super nitpicky, which led to me questioning why I kept getting silly mistakes. This led me to getting diagnosed with ADHD. Long story short, if you are wondering if you have ADHD take Smallberg.

Helpful?

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

I took this off season because I am not a CS major. If you do, it is harder to do well comparatively. Technically this class is point based, but there can be a slight curve here and there at the end. The projects are annoying in my opinion. The spec is super detailed, but it becomes word vomit when you look at it and it honestly made me feel sick. You get some practice using Linux which is helpful for everyone. The lectures are recorded and also a cure for insomnia. They are in depth though. Lecture time is for questions. Usually there is like 5 people there. You can also join for Zoom. He often does not give you a straight answer but goes on a tangent. He also responds incredibly fast to emails. I hated his midterms but I don't really like CS. It is like half MC half written. The written content increases in length with every test. He has a way to kind of do a partial credit for MCQ which I thought was cool and appreciated. His tests are long. The final was especially long. No real way to prepare for it. Just have code. The MCQ always tries to trick you and go into the nuance of the language. For projects, start early because he makes this class long and difficult.

Helpful?

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

It's a class you have to learn independently. I personally am not the best at that but it ended up being fine, he records lectures so you have to keep up with it yourself. I dont have alot of coding background but I thought the material was very straightforward, and you had great resources as long as you knew how to find them. The TAs are more helpful than the professor. The midterms and finals are how you would expect, not easy but doable.

Helpful?

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

Review of off-cycle cs31 course (Not with cs majors, i.e. not in fall) so results may differ:

I took this in spring so not many cs majors this time around so the curve is more generous and people don't tend to do as well as the class is not as competitive which is an advantage.

All right, so I will say it is extremely easy to get behind in this class. His lectures are all pre-recorded and his actual lecture hours are just office hours. At one point I was behind like 5 weeks on lectures but it took me one day of brute force to catch up and I was fine. I really learned a lot from my discussion as my LAs were amazing, my TA was kinda just there and didn't say anything lol. The projects are the bulk of your grade, around 42% and he is very tedious with his testing. He will literally test cases you will not even think of on your own but I guess it helps in the long run as you will make sure your code works to the T. Get familiar with g31, it will be your best friend when testing as this is where he tests your projects. His homework is not worth much and really easy for Zybooks to practice some topics but it sucks you gotta pay like 80 bucks for like 3 assignments lol. His midterms are lowkey kinda hard and have so many answer choices for no reason. I mean I went in thinking it wouldn't be bad since it was MCQ with one FRQ code-writing question, but when I opened the exam and saw 30+ answer choices for just one question was kinda insane. Other than that, just make sure you know your projects well and how to trace code as that is the bulk of the mcq and then your frq is just using skills from your projects up to the exam. Since the exams are worth like 12% and 9% (can't remember atm), he does this weird thing where your project scores have to be within 30 points of your exam scores. So if your project average is a 100%, but you get a 60% average on your exams, you get bumped down to a 90% on your project score to have that 30% gap. He also requires you score a 42% on the final to pass no matter what you end with which seems low but when you take the exam, you'll see why. I will say though, the exams are hard so don't get down on yourself and just try your best. The final though.......... that was a beast and a half. It was actually terrible, had wack questions and the average was a 67%. This was nice because though, the class got curved a ton which was also due to it being off-cycle from the cs major path. It was annoying that he gave you a literal piece of code that would then output your final grade in the class LOL. I mean that's unique but maybe not when you're literally going through it the entire quarter. Smallberg is a nice guy but I do think he could make the exams more doable and not as tedious.

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. 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.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2025
Grade: A
Dec. 24, 2025

Smallberg is great at teaching and the flipped classroom format is perfect for flexibility. The projects were interesting, but be prepared to sink a lot of time into them if you aren't using AI. It was frustrating to see project averages at 100/100 most of the time, knowing that many students were using AI while I was putting in hours of manual work. The material is interesting and the teaching is solid, but the level of difficulty feels artificially high for those who actually follow the rules.

Helpful?

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

LECTURES - My only formal programming experience before this class was AP Computer Science A and Intro to Java in high school. I did not really program over the summer before this class. I did do an intro to C++ class on Codecademy to get familiar with the syntax, but the lectures teach you all the syntax about C++. Even though you're supposed to have prior experience with arrays before this class if you're taking it in the fall, he goes over logic/concepts like if statements, loops, arrays, and pointers. Lectures are posted online which I liked because I could watch on my own time and rewatch them.

PROJECTS - The first two projects are very easy (especially if you watch the lectures and have any programming experience beforehand), but project #3, #5, #7 are probably the most difficult. If you just even look at the spec and think about how to tackle the project the day it's posted, then it'll be okay. Also use the testers that's posted on the class website in case you make a small mistake.

MIDTERMS - Midterm #1 is pretty easy and straightforward. I personally found Midterm #2 also pretty fair (I did watch all the lectures as soon as they were posted instead of cramming them) but it differs for people. The final is very difficult, but it was mostly the one-point multiple choice questions that were tough, so missing a good number (even like 10) of those isn't too terrible.

I never went to a Q&A session (which is what lecture time is used for) because I found it better to just talk it out with people from class or use discussion time for questions.

Discussions just went over the worksheet that's also posted on the class website with solutions. These worksheets are super helpful for practice writing programs (which is an important section of the midterms and finals).

It's not an easy class, but it's doable if you don't cram.

Helpful?

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

If you've done any CS before, the (non-fall) class is going to be pretty easy. If you haven't, the class should still be manageable as his lectures explain things very thoroughly. The workload was relatively light most of the time and projects weren't overly complicated, although I'd advise against starting them last minute.

As other reviews state, lectures are pre-recorded, so don't worry about actually attending the live sessions. Very few people attend discussion but I actually found them very valuable - so few people show up that you can get a lot of personal help from the TA/LAs if necessary, and it's nice to be able to ask questions in person without having to attend a QnA session.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Spring 2025
Grade: A-
July 1, 2025

I like Smallberg. He was interesting and so was his class. Unfortunately, his tests are super nitpicky, which led to me questioning why I kept getting silly mistakes. This led me to getting diagnosed with ADHD. Long story short, if you are wondering if you have ADHD take Smallberg.

Helpful?

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

I took this off season because I am not a CS major. If you do, it is harder to do well comparatively. Technically this class is point based, but there can be a slight curve here and there at the end. The projects are annoying in my opinion. The spec is super detailed, but it becomes word vomit when you look at it and it honestly made me feel sick. You get some practice using Linux which is helpful for everyone. The lectures are recorded and also a cure for insomnia. They are in depth though. Lecture time is for questions. Usually there is like 5 people there. You can also join for Zoom. He often does not give you a straight answer but goes on a tangent. He also responds incredibly fast to emails. I hated his midterms but I don't really like CS. It is like half MC half written. The written content increases in length with every test. He has a way to kind of do a partial credit for MCQ which I thought was cool and appreciated. His tests are long. The final was especially long. No real way to prepare for it. Just have code. The MCQ always tries to trick you and go into the nuance of the language. For projects, start early because he makes this class long and difficult.

Helpful?

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

It's a class you have to learn independently. I personally am not the best at that but it ended up being fine, he records lectures so you have to keep up with it yourself. I dont have alot of coding background but I thought the material was very straightforward, and you had great resources as long as you knew how to find them. The TAs are more helpful than the professor. The midterms and finals are how you would expect, not easy but doable.

Helpful?

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

Review of off-cycle cs31 course (Not with cs majors, i.e. not in fall) so results may differ:

I took this in spring so not many cs majors this time around so the curve is more generous and people don't tend to do as well as the class is not as competitive which is an advantage.

All right, so I will say it is extremely easy to get behind in this class. His lectures are all pre-recorded and his actual lecture hours are just office hours. At one point I was behind like 5 weeks on lectures but it took me one day of brute force to catch up and I was fine. I really learned a lot from my discussion as my LAs were amazing, my TA was kinda just there and didn't say anything lol. The projects are the bulk of your grade, around 42% and he is very tedious with his testing. He will literally test cases you will not even think of on your own but I guess it helps in the long run as you will make sure your code works to the T. Get familiar with g31, it will be your best friend when testing as this is where he tests your projects. His homework is not worth much and really easy for Zybooks to practice some topics but it sucks you gotta pay like 80 bucks for like 3 assignments lol. His midterms are lowkey kinda hard and have so many answer choices for no reason. I mean I went in thinking it wouldn't be bad since it was MCQ with one FRQ code-writing question, but when I opened the exam and saw 30+ answer choices for just one question was kinda insane. Other than that, just make sure you know your projects well and how to trace code as that is the bulk of the mcq and then your frq is just using skills from your projects up to the exam. Since the exams are worth like 12% and 9% (can't remember atm), he does this weird thing where your project scores have to be within 30 points of your exam scores. So if your project average is a 100%, but you get a 60% average on your exams, you get bumped down to a 90% on your project score to have that 30% gap. He also requires you score a 42% on the final to pass no matter what you end with which seems low but when you take the exam, you'll see why. I will say though, the exams are hard so don't get down on yourself and just try your best. The final though.......... that was a beast and a half. It was actually terrible, had wack questions and the average was a 67%. This was nice because though, the class got curved a ton which was also due to it being off-cycle from the cs major path. It was annoying that he gave you a literal piece of code that would then output your final grade in the class LOL. I mean that's unique but maybe not when you're literally going through it the entire quarter. Smallberg is a nice guy but I do think he could make the exams more doable and not as tedious.

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.
4 of 16
4.1
Overall Rating
Based on 222 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.1 / 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!