Read Me First: Welcome!

This instructor guide is intended to help you get started quickly with the material. (If you're reading this on GitHub, you might prefer the much nicer formatting of the Gitbook version.)
If you're new to the course, you might want to quickly scan the Pedagogy and Teaching Tips sections first, so that you know what you're getting into!
The following materials are public and available to everyone:
  • The free-to-download textbook, also available as an interactive website
  • A set of lecture videos, one per textbook section, as YouTube playlists
  • Lecture slides, one deck per textbook chapter, as Google Slides
  • Practice exams from previous offerings of the course at UC Berkeley
  • CHIPS (Coding & Hands-on Integrated Projects)—“learn by doing” programming-related assignments. If you adopt Codio for the course, the assignments are preconfigured including auto-graders. You can also use the assignments manually outside of Codio, without the preconfigured autograders.
Access to the following requires you to join the esaas-instructors Google group (note: you must be signed in to a Google account for the link to work). In your join request, please include your GitHub username and a link to evidence that you are an instructor (web page, etc.). Once you're a member, you can email [email protected] with questions/support.
  • Per-chapter activity worksheets (with instructor solutions) for flipped-classroom or small group work
  • Per-chapter quizzes (see separate page in this book describing them) consisting of mostly multiple-choice questions to test understanding. You can modify and deliver the quizzes via PrairieLearn, or use legacy materials to generate the quizzes yourself.
  • Open-ended exam questions suitable for written exams.
  • Questions for exams that have a coding component (see separate page in this book for details). You can deliver these via Codio which includes autograding, or administer them manually.
This manual guides you through using the above materials and provides pedagogical information and background as well.

About Codio

Codio is an all-in-one Web-based IDE that also includes our textbook, autograding, and LMS integration. This is the recommended way to administer CHIPS, since students need only a web browser and everything is preconfigured including the autograders. Note: We have no connection to Codio and do not receive any royalty if you use their service, but it makes the course much easier to manage, so we highly recommend using it.
How to get started:
  1. 1.
    Create a Codio account—you can start with a free trial
  2. 3.
    Preview the content the quick way, or preview it as a test student to see the full student experience
  3. 4.
    Contact Codio support to convert your trial into a full account. You can then either integrate with your LMS or add students directly to Codio.

About PrairieLearn

As of 2021, we are converting all summative assessments (quizzes/exams) and all non-CHIPS formative assessments (practice problems, practice questions not involving code-writing) to use the PrairieLearn (PL) assessment authoring system. Besides allowing us to create rich interactive exercises, PL allows randomizing elements of the questions, making them suitable for summative assessments as well as practice.
PL is open source and you can download and run it yourself (not trivial), or contact the nice folks at to host it for you. Note: We have no formal connection to PL so you'll need to contact them directly for support, but we believe it’s the best system we have seen for authoring rich interactive exercise for this course.