Here we answer frequently asked questions about course contents, assignments, etc. There are some common questions about course policy answered on our policy page. If you still have unanswered questions, please don't hesitate to ask us.

How can I figure out which CS106 is the right course for me?

Handout #1 provides an overview of our introductory programming courses and offers general placement advice. In short, CS106B is the appropriate course for students who had success in CS106A and are ready to move on to new challenges. Other comparable experience programming in a modern language (high school AP course, other college first course, etc.) is often appropriate preparation as well. You're welcome to talk with me if you need help determing the best fit for your situation.

I already know how to program and want to learn C++. Is this the right class for me?

Probably not. CS106B is a second course in programming and is designed to teach more advanced programming techniques (recursion, dynamic data structures, data abstraction, and so) to the apprentice programmer. We do use C++, but we cover only those language features relevant to our pedagogical goals. If you are looking to master C++, consider CS193D (our straight C++ course for experienced programmers) or self-study options.

What is CS106L about?

Recognizing the desire from our students to gain more mastery over the standard C++ language and libraries, CS106L has been designed as a companion lab courseF to help fill this need. This optional 1-unit S/NC lab will explore more in-depth details of standard C++ programming as an accompaniment to the material being covered in the CS106B/X lectures. There will be a few small programming exercises assigned. Enrollment in the lab course is limited to students concurrently enrolled in CS106B/X. Check out the CS106L page for more information.

Is the course videotaped and offered online?

Yes, the winter offering of CS106B is scheduled to be taught in a video-capable room and thus the taped lecures are available online. This can be convenient in allowing you to make up for a missed lecture or review lectures later. However, I believe that attending lecture in person is to your benefit, so I encourage you to join us live!