David A Smallberg
Department of Computer Science
AD
4.1
Overall Rating
Based on 196 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 4.0 / 5 How helpful the class is, 1 being not helpful at all and 5 being extremely helpful.

TOP TAGS

  • Would Take Again
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 (136)

11 of 14
11 of 14
Add your review...
Quarter: Fall 2015
Grade: A
Jan. 27, 2016

Although some might say (and its definitely true) that Smallberg's lectures are a bit on the dry side, he's an extremely knowledgable and thorough professor. If you've taken AP Computer Science, this class should be pretty straightforward - but if you haven't, Smallberg will provide you with a solid foundation in Computer Science. Expect the project's to take a bit of your time (don't procrastinate) and lectures to be somewhat long. One negative that I've found is that Smallberg doesn't use slides to teach the material, rather he uses a text editor and walks through the process of thinking/developing each concept. I actually rather liked this way of teaching, though it may be a little overdone and slow at times, it really helps you to understand the reasoning behind the concepts that you learn in class.

Overall, taking CS31 with Smalberg will provide you with a solid foundation in CS , and will definitely prepare you for classes ahead.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
June 29, 2015

I came into CS31 with no experience, and thus I was quite anxious, starting projects really early and thoroughly tested them before submitting. I found project 3 to be really hard, as there is a giant gap between p3 and p1&2. Project 4,6,7 are okay, while project 5 is also time-consuming (but the spec for project 5 is much detailed, and thus for me it is easier to come up with the algorithm.)

Exams are not difficult. As i said before, i don't have any programming experience, but I found all problems doable. The trick to do well in the exam is to calm down and trace the code cautiously, as the time is quite limited.

I think Professor Smallberg is really lenient in giving A's, and this class is really great for beginners. He is a good professor.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Feb. 9, 2015

Smallberg is great at explaining the fundamentals of CS, especially to beginners. His lectures can sometimes be a bit boring and a little hard to follow since he doesn't use a powerpoint or anything and simply types out examples manually in a text editor or writes on the board, but he is very thorough with the material. The exams are not especially difficult, but can be very specific. The real difficulty of this course is the projects. Some projects take quite a while, while others not so much. In order to succeed in the projects you need to allow yourself enough time to work on the project in advance and TEST YOUR PROJECT THOROUGHLY before submitting. You can lose a lot of points if your project doesn't work perfectly, and often it seems like it works but upon thorough testing you will discover a lot of bugs. On the bright side, the project specs are not vague in any way and answer most questions you will have about what you can or can't do or what you are supposed to do. Overall, a little difficult, but a great way to learn CS.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 27, 2014

I have zero experience in Computer Science, and thus I followed advices from Lecturer Smallberg.

Grades:

Lecturer Smallberg gave a lot of 'A's. Do not worry if you only get median scores or below in the Projects. As long as you can do well in the exams (at least a little above median), an A is easy.

My final grade is A. I have 100 (midterm 1 35, midterm 2 65) in the midterms and all 100s in the Projects, except Project 4. I did little to review for the final, so my score is only a little bit above the 75th percentage score.

Advice:

First, make sure to go to Lecturer Smallberg's lectures, with or without programming experience. He will basically cover everything in the lectures and will explain a lot of tricks which may or may not appear in the exams. If you go to his lectures, you may not need to spend time on the boring and tedious textbook. I also saw a lot of people who had previous programming experience, never went to lectures, and struggled in the finals. So, GO TO HIS LECTURES! (You may hear that his lectures are boring; actually, sometimes it is really boring, but going to his lectures makes learning much easier)

Moreover, make sure to understand everything in the Projects because Projects are especially helpful to understand and practice the materials Smallberg covered in the lectures. I also suggest everyone to look for the Project solutions, from which I learned a lot about programming style and tricks.

Furthermore, start early!!!! I saw a number of people who did not start early and ran out of time. They could not fix all the bugs and turned in late (There are punishment for turning in late). The scores were appalling. If you start early, you probably can finish projects early, and you can have more time debugging and asking Smallberg or TAs questions. For me, I actually spend more time debugging than actually writing Projects.

Projects:

Projects 3 and 5 are hard and time-consuming. Project 4 is tricky (Pay attention to the spec; there are a number of ambiguous requirements. I lost a lot of points because I did not fully understand when to return 0 and when to return -1). Other Projects are relatively easy.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 27, 2014

CS 31 is a pretty straightforward (yet time consuming) class if you come in with AP CS experience.
CS 31 fall 2014 had 7 projects (40%), 2 midterms (25%), and a final (35%).

The projects are where you end up learning most of the stuff that’s going to be on the assessments. Some of the projects (3,5, and 7) are somewhat tricky and time consuming, but the rest of them are pretty simple and straightforward. Getting a good grade on the projects isn’t too hard; the median score on the projects is almost always an A (project 5 was the only outlier with a B+ average).

I found the midterms and finals to be pretty annoying. They basically require you to be a human compiler, which is kind of tedious, but they're not too hard (average score in the midterm category was an 85%). The final was honestly pretty hard for me (I did around 3-4 hours of studying for it total and got a C) since it covered pointers and classes and dynamic allocation of memory. The average on the final was a 79. I’m assuming there was some sort of curve on the class at the end though; I had a raw grade that was a high B+ and my final grade was an A.

Smallberg is incredibly knowledgeable about the material he’s teaching, and if you pay attention to his lectures, you will learn an incredible amount about C++ and object oriented programming. Unfortunately, he’s not the most engaging lecturer and thus it was very difficult for me to pay attention; I stopped going to lectures after the third week. In the end, it didn’t really matter since the only material he went over that wasn’t covered in AP CS was pointers and dynamic allocation of memory, topics that can be learnt anyway through projects 6 and 7 and the book.

Overall, this class requires between 5-20 hours of work a week, and if you manage your time well and start the projects early, there’s no reason you can’t get an A if you have prior programming experience. If you don’t have prior programming experience, this will probably be a pretty difficult class for you that will require excellent time management and study strategies to get an A.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 17, 2014

His lectures are very clear and easy to understand, and when he knows a topic is confusing to a lot of people (like pointers), he spends more time on it and gives more examples to help his students learn better. His lectures tend to be quite boring though, and I had a hard time not falling asleep a few times. The projects tend to be quite difficult, but they really help you understand the material better. The midterms and final are multiple choice with a few short code-writing sections, and you get a whole sheet of paper (or two for the final) for notes. I didn’t find the midterms very difficult, but there were a few tricky problems on the final.

Overall, if you’ve taken APCS and you know the material well, CS 31 shouldn’t be too hard for you. I found this class very relaxing but slightly challenging in an interesting way at the same time (because of the projects).

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 17, 2014

swoll

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 10, 2014

Smallberg is simply a great great teacher. I can't find anyone else who teaches CS 31 better than he does. His projects are hard and time consuming but they really test your understanding of the stuff you learned in class. Also, midterms and final are not bad.

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Feb. 10, 2014

Took CS31 with him last quarter. I must admit it was a little boring at times and I found it hard to sit through the 2 hour lectures, but he really does know what he's talking about! I took APCS in high school so I was pretty familiar with the concepts (just had to learn C++ syntax and pointers), but I feel like even without any programming experience people would still be able to understand everything. Projects were manageable, some take longer than others so just start early. I maybe spent ~5-10 hours a week on them? Projects 3 and 5 probably more like 20-30 hours. Midterms were straightforward as well. I didn't end up going to many of the lectures because I tended just to fall asleep during them, but I watched most of the podcasts online. He's a good teacher and really cares. Overall it's not a bad class, especially if you have some prior programming experience!

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
June 17, 2013

Professor Smallberg is a very good lecturer. I had 0 experience with programming before the class, but he explained the material in simple terms so that I understood it. He uses a lot of analogies and he has a great sense of humor, so class doesn't even get boring.

The projects get difficult and VERY time consuming, so start early! Go to TA office hours and some TAs practically give you the code. The tests are difficult, just make sure you understand all of the code that you're using in your projects.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Fall 2015
Grade: A
Jan. 27, 2016

Although some might say (and its definitely true) that Smallberg's lectures are a bit on the dry side, he's an extremely knowledgable and thorough professor. If you've taken AP Computer Science, this class should be pretty straightforward - but if you haven't, Smallberg will provide you with a solid foundation in Computer Science. Expect the project's to take a bit of your time (don't procrastinate) and lectures to be somewhat long. One negative that I've found is that Smallberg doesn't use slides to teach the material, rather he uses a text editor and walks through the process of thinking/developing each concept. I actually rather liked this way of teaching, though it may be a little overdone and slow at times, it really helps you to understand the reasoning behind the concepts that you learn in class.

Overall, taking CS31 with Smalberg will provide you with a solid foundation in CS , and will definitely prepare you for classes ahead.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
June 29, 2015

I came into CS31 with no experience, and thus I was quite anxious, starting projects really early and thoroughly tested them before submitting. I found project 3 to be really hard, as there is a giant gap between p3 and p1&2. Project 4,6,7 are okay, while project 5 is also time-consuming (but the spec for project 5 is much detailed, and thus for me it is easier to come up with the algorithm.)

Exams are not difficult. As i said before, i don't have any programming experience, but I found all problems doable. The trick to do well in the exam is to calm down and trace the code cautiously, as the time is quite limited.

I think Professor Smallberg is really lenient in giving A's, and this class is really great for beginners. He is a good professor.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Feb. 9, 2015

Smallberg is great at explaining the fundamentals of CS, especially to beginners. His lectures can sometimes be a bit boring and a little hard to follow since he doesn't use a powerpoint or anything and simply types out examples manually in a text editor or writes on the board, but he is very thorough with the material. The exams are not especially difficult, but can be very specific. The real difficulty of this course is the projects. Some projects take quite a while, while others not so much. In order to succeed in the projects you need to allow yourself enough time to work on the project in advance and TEST YOUR PROJECT THOROUGHLY before submitting. You can lose a lot of points if your project doesn't work perfectly, and often it seems like it works but upon thorough testing you will discover a lot of bugs. On the bright side, the project specs are not vague in any way and answer most questions you will have about what you can or can't do or what you are supposed to do. Overall, a little difficult, but a great way to learn CS.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 27, 2014

I have zero experience in Computer Science, and thus I followed advices from Lecturer Smallberg.

Grades:

Lecturer Smallberg gave a lot of 'A's. Do not worry if you only get median scores or below in the Projects. As long as you can do well in the exams (at least a little above median), an A is easy.

My final grade is A. I have 100 (midterm 1 35, midterm 2 65) in the midterms and all 100s in the Projects, except Project 4. I did little to review for the final, so my score is only a little bit above the 75th percentage score.

Advice:

First, make sure to go to Lecturer Smallberg's lectures, with or without programming experience. He will basically cover everything in the lectures and will explain a lot of tricks which may or may not appear in the exams. If you go to his lectures, you may not need to spend time on the boring and tedious textbook. I also saw a lot of people who had previous programming experience, never went to lectures, and struggled in the finals. So, GO TO HIS LECTURES! (You may hear that his lectures are boring; actually, sometimes it is really boring, but going to his lectures makes learning much easier)

Moreover, make sure to understand everything in the Projects because Projects are especially helpful to understand and practice the materials Smallberg covered in the lectures. I also suggest everyone to look for the Project solutions, from which I learned a lot about programming style and tricks.

Furthermore, start early!!!! I saw a number of people who did not start early and ran out of time. They could not fix all the bugs and turned in late (There are punishment for turning in late). The scores were appalling. If you start early, you probably can finish projects early, and you can have more time debugging and asking Smallberg or TAs questions. For me, I actually spend more time debugging than actually writing Projects.

Projects:

Projects 3 and 5 are hard and time-consuming. Project 4 is tricky (Pay attention to the spec; there are a number of ambiguous requirements. I lost a lot of points because I did not fully understand when to return 0 and when to return -1). Other Projects are relatively easy.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 27, 2014

CS 31 is a pretty straightforward (yet time consuming) class if you come in with AP CS experience.
CS 31 fall 2014 had 7 projects (40%), 2 midterms (25%), and a final (35%).

The projects are where you end up learning most of the stuff that’s going to be on the assessments. Some of the projects (3,5, and 7) are somewhat tricky and time consuming, but the rest of them are pretty simple and straightforward. Getting a good grade on the projects isn’t too hard; the median score on the projects is almost always an A (project 5 was the only outlier with a B+ average).

I found the midterms and finals to be pretty annoying. They basically require you to be a human compiler, which is kind of tedious, but they're not too hard (average score in the midterm category was an 85%). The final was honestly pretty hard for me (I did around 3-4 hours of studying for it total and got a C) since it covered pointers and classes and dynamic allocation of memory. The average on the final was a 79. I’m assuming there was some sort of curve on the class at the end though; I had a raw grade that was a high B+ and my final grade was an A.

Smallberg is incredibly knowledgeable about the material he’s teaching, and if you pay attention to his lectures, you will learn an incredible amount about C++ and object oriented programming. Unfortunately, he’s not the most engaging lecturer and thus it was very difficult for me to pay attention; I stopped going to lectures after the third week. In the end, it didn’t really matter since the only material he went over that wasn’t covered in AP CS was pointers and dynamic allocation of memory, topics that can be learnt anyway through projects 6 and 7 and the book.

Overall, this class requires between 5-20 hours of work a week, and if you manage your time well and start the projects early, there’s no reason you can’t get an A if you have prior programming experience. If you don’t have prior programming experience, this will probably be a pretty difficult class for you that will require excellent time management and study strategies to get an A.

Helpful?

1 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 17, 2014

His lectures are very clear and easy to understand, and when he knows a topic is confusing to a lot of people (like pointers), he spends more time on it and gives more examples to help his students learn better. His lectures tend to be quite boring though, and I had a hard time not falling asleep a few times. The projects tend to be quite difficult, but they really help you understand the material better. The midterms and final are multiple choice with a few short code-writing sections, and you get a whole sheet of paper (or two for the final) for notes. I didn’t find the midterms very difficult, but there were a few tricky problems on the final.

Overall, if you’ve taken APCS and you know the material well, CS 31 shouldn’t be too hard for you. I found this class very relaxing but slightly challenging in an interesting way at the same time (because of the projects).

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 17, 2014

swoll

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Dec. 10, 2014

Smallberg is simply a great great teacher. I can't find anyone else who teaches CS 31 better than he does. His projects are hard and time consuming but they really test your understanding of the stuff you learned in class. Also, midterms and final are not bad.

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
Feb. 10, 2014

Took CS31 with him last quarter. I must admit it was a little boring at times and I found it hard to sit through the 2 hour lectures, but he really does know what he's talking about! I took APCS in high school so I was pretty familiar with the concepts (just had to learn C++ syntax and pointers), but I feel like even without any programming experience people would still be able to understand everything. Projects were manageable, some take longer than others so just start early. I maybe spent ~5-10 hours a week on them? Projects 3 and 5 probably more like 20-30 hours. Midterms were straightforward as well. I didn't end up going to many of the lectures because I tended just to fall asleep during them, but I watched most of the podcasts online. He's a good teacher and really cares. Overall it's not a bad class, especially if you have some prior programming experience!

Helpful?

0 0 Please log in to provide feedback.
Quarter: N/A
Grade: N/A
June 17, 2013

Professor Smallberg is a very good lecturer. I had 0 experience with programming before the class, but he explained the material in simple terms so that I understood it. He uses a lot of analogies and he has a great sense of humor, so class doesn't even get boring.

The projects get difficult and VERY time consuming, so start early! Go to TA office hours and some TAs practically give you the code. The tests are difficult, just make sure you understand all of the code that you're using in your projects.

Helpful?

0 0 Please log in to provide feedback.
11 of 14
4.1
Overall Rating
Based on 196 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 4.0 / 5 How helpful the class is, 1 being not helpful at all and 5 being extremely helpful.

TOP TAGS

  • Would Take Again
    (77)
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!