Lecture, four hours; discussion, two hours; outside study, six hours. Introduction to computer science via theory, applications, and programming. Basic data types, operators and control structures. Input/output. Procedural and data abstraction. Introduction to object-oriented software development. Functions, recursion. Arrays, strings, pointers. Abstract data types, object-oriented programming. Examples and exercises from computer science theory and applications. Letter grading.

Review Summary

Clarity
8.3 / 10
Organization
8.3 / 10
Time
5-10 hrs/week
Overall
8.3 / 10

Reviews

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Class structure was "flipped" for fall 2022 - lectures were recorded and published for students to watch before class, with the actual scheduled class period serving as a hybrid Q&A section regarding lectures, projects, etc.

    Smallberg's lectures are very, very comprehensive and go in-depth into both general programming and the ins and outs of C++ specifically - even speaking as someone with a substantial amount of prior CS (albeit not C++) experience, I found the lectures to be very informative and give an excellent understanding of basic C++. Due to how detailed-oriented the lectures are, I did not find the in-person Q&As to be necessary for fulfilling the learning objectives of the class.

    In terms of projects and homework, we had 7 projects that made up a substantial part (42%) of our grade, which generally meant one project every other week. We got around a week and a half to two weeks to complete each project. The bigger projects took anywhere from 2 hours to 5+ hours, depending on prior programming experience, though I would recommend starting the projects early as a rule. The project specs are quite long; if you want to get a good grade, read. every. word. The devil is absolutely in the details. You can easily lose 10, 20% because you missed a little clause in parentheses telling you to do something or other.

    Tests were fairly straightforward: two midterms and a final. Smallberg gave us one sheet of paper to use as a cheat sheet for the midterms, and two for the final. Each test had a multiple choice component and a free response component. Free responses were akin to scaled-down (slightly easier) projects - a spec is given, and you implement it. The multiple choice questions vary wildly in terms of structure and difficulty, and can get pretty funky. Smallberg's lectures can get very into the minutiae of C++, to the extent that some may initially consider such details superfluous and not worth writing. They are absolutely *not* superfluous, and just about everything mentioned in lecture will absolutely come up in tests.

    Quarter Taken: Fall 2022 In-Person
    Grade: A-

    CS31 is light if you pay attention. Lectures are online, class is very doable.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Smallberg is solid. He answers your questions thoroughly, but sometimes he goes over the top with the explanations. For help with the projects, ask the TAs in Boelter. I needed help and they walked me through it pretty well.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    I would not recommend taking this class in Fall if you are not a freshman CS student. The curve gets significantly pushed up.

    Quarter Taken: Fall 2022 In-Person
    Grade: B+

    Do the HW and the projects, internalize the concepts in them
    This will be sufficient to get a good grade. The curve is tough in the Fall quarter due to CS students.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Pretty manageable class, especially if you have prior experience with CS. Definitely do not procrastinate on starting your projects and you should be fine. Attend discussions if you need help but neither discussions nor in-person lectures are required.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Definitely a class where what you know going in matters. It's either a breeze or super hard. I don't particularly like Smallberg as a lecturer, but all of the lecture times are a flipped Q&A session and the actual content is online, which I knew a lot of my friends liked.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Very fun class; definitely more rigorous than Winter/Spring. Smallberg's flipped classroom model meant you can watch and rewatch any lecture at any time at any speed, and the lectures are full of content and not dead space.

    Quarter Taken: Fall 2022 In-Person
    Grade: N/A

    This quarter Smallberg followed the "flipped lecture" format in which we were supposed to watch a pre recorded lecture before class and the actual class time was just used as a QnA session. This was helpful as you didn't have to go for class if you didn't want to and there was more flexibility. Almost half of your grade depended on projects(42%). The coding part of all the projects wasn't too hard but the testing is what always got me. Midterm 1 was pretty easy and straight foward. Projects 3 and 5 have been the most time consuming till now (Week 8).

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    flipped classroom, recorded lectures; doable if you understand course concepts

Course

Instructor
David A. Smallberg
Previously taught
24F 24S 23F 23S 22F 22S 21F 21S 20F 20S 19F 19S 18F 18S 17F 17S 16F 16S 15F 15S 14F 14S 13F 13S 12F 12S 11F 11S 10F 10S 09F 09S 08F 08S 07F 06F 05F 04F 03F 02F 01F

Grading Information

  • No group projects

  • Attendance not required

  • 2 midterms

  • Finals week final

  • 47% recommend the textbook