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

    Great professor! Great class with the inverted class format.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    For the tests, be sure you know how to do the assignments since I received a FRQ based on the project we had

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    It's always great to have an asynchronous class with recorded lecture, of which the length is much shorter than a regular lecture. Such a way help me saved a lot of time.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Pretty easy if you've have any cs background

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

    Class was a bit difficult for someone with no coding experience but bearable

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    Smallberg's lectures were thorough and useful, if a bit dull. The exams (2 midterms and final) are difficult but not exceedingly so. Most exams consist of analyzing code for mistakes or to understand how to works. The code in exams seem to be purposely written confusingly, so make sure you are careful when reading through it, and just do a ton of practice problems tracing through code.

    Projects are the meat of the class. I thought Project 3 and 5 were the toughest, and I personally spent up to 20 hrs in a week working on those projects. However, all the proejcts are definitely doable, you just need to make sure that you start early.

    I personally found the textbook pretty useful. Usually I listened to lecture first, then go through the textbook to review and go through their exercises/problems to understand the concepts before working on a project.

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    Smallberg uses a flipped classroom format for this class, where lectures are pre-recorded and lecture times are essentially office hours. Overall, if you watch all the lectures and do the textbook things thoroughly, and go to Smallberg's office hours and ask questions, you can do well in the class, even with little to no programming experience. There is a learning curve for sure, but once you get the hang of debugging and how to use all the C++ software, the projects are very doable.

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    All lectures were recorded and posted online and the actual class time was treated as office hours. Projects were all very doable (except project 3 was the most difficult and time consuming). Exams were also fair

    Quarter Taken: Fall 2023 In-Person
    Grade: A

    As someone with no CS background taking it in Fall, the class was rigorous but extremely effective. Smallberg really prepares you well for CS32 such that the jump in difficulty is not too big.

    Quarter Taken: Fall 2023 In-Person
    Grade: A

    <3 David. Good beginner class. Project 3 was not fun. Thank you.

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