CS106A: Programming Methodologies
Winter 2017
Monday, Wednesday, Friday 10:30 to 11:20am in NVIDIA Auditorium


CS106A Info
Course Schedule
How to Submit
Lecture Videos
icon Eclipse
Karel Book
icon Stanford Java Lib
Blank Java Project
Blank Karel Project
Help Hours



Monday, Feb 13th

Monday, March 20th


Lecturer: Chris Piech
Gates 193
Wed 1-3pm

Head TA: Nick Troccoli
Gates B02
Th 1-3pm


Sun 8-10PM

More times to be added soon!

Join the Google Hangouts call here at the times above.


Second Assignment: Simple Java

For your second assignment, you'll get practice writing a series of small Java programs. These programs consist of both console and graphics programs, and will give you practice with concepts like variables, methods, control flow, and more. Please note that for problems 4+5, we recommend waiting until after Wednesday's lecture to get started, as some material we cover that day will help you with those problems. For more details about the assignment, see the assignment 2 page under the "Assignments" tab.

The assignment must be done individually and is due Monday, Jan. 30 @ 10:30AM.

We will also be holding Assignment 2 YEAH hours, or Your Early Assignment Help Hours, this coming Monday, Jan. 23 from 7-9PM in Hewlett 200. YEAH hours are optional sessions, starting with Assignment 2, meant to provide additional help getting started with each assignment. A Section Leader will go over the assignment, how to approach it, and common pitfalls and things to look out for. The session will be recorded, and slides will be made available afterwards as well. We hope to see you there!

Extra Karel Example: Random Painter

Some of the problems on assigment 1 are difficult! I made a recording of an extra example called "random painter" that solves a problem relevant to checkerboard karel. Check it out if you want some extra review. I also uploaded the random painter code.

Submit Assignment 1

If you haven't tried submitting yet, give it a shot. See the submitting handout for instructions. You can submit assignments as many times as you like, we grade your last submission. Assignment 1 is due Friday at 10:30am.

Section Assignments / Late Signups

For those who submitted section preferences by 5PM on Sunday, we have finished emailing out section assignments; as a reminder, sections start this week! If you were unable to submit the form by the 5PM Sunday deadline, the late signup form is now open. Click on the "Sections" tab to get to the form link. As a reminder, SCPD students should sign up for the "SCPD section", unless you are able to attend a section in person.

If you would like to permanently switch into another section, there is also a link under "Sections" to request a permanent section swap. However, because this form only allows you to request a new section by time (not location), if you would like to request a swap to a specific section for pair programming reasons, please email Nick, the Head TA.

There is also a link under "Sections" to a list of all section times and locations, and a link to drop your section if you decide to unenroll from the class (this is important, as it allows another student to potentially take your section spot!).

The deadline for section swaps is Tuesday, 1/24, at 5PM.

LaIR Helper Hours Started Monday 1/16

We apologize for any confusion in class today about when LaIR helper hours start. To clarify, because of the 3-day weekend, the LaIR will be open in the Tresidder food court area starting on Monday 1/16. From then onwards, the LaIR will be open from 6PM-12midnight Sunday - Thursday. Come by if you need help with your first assignment, or if you have any conceptual questions!


Martin Luther King, Jr. Day

Reminder that tomorrow, Jan 16th, is MLK day so there will be no classes. LaIR office hours will start the evening of Monday, Jan 16th.

Here is a video of the last public speech MLK gave. The date was April 3, 1968 and he was assasinated the day after. Civil rights for all people, regardless of their ethnicity, is a cause that is still being faught for around the world.

Of course if you haven't seen the I Have a Dream Speech, that is worth watching for its beautiful narrative and its influence on history.

Section Signups Open Until 5PM Sunday 1/15

Section signups are now open! Click on the "Section" tab at the top and select "Sign up for section" to submit your preferences. As a reminder, signups are not first come first serve. As such, you may modify your preferences any time up until the Sunday 5PM deadline. We will notify you of your section assignment early next week.

Note: Remote SCPD students (if you are an SCPD student but able to attend a section on campus, you may disregard this message) should sign up for the special "SCPD Section" in the section preferences form. Remote SCPD students will not be assigned a physical section; instead, you will have access to online recordings of one section this quarter, and another assigned Section Leader to grade your assignments.

First Assignment: Karel

For your first assignment you will write a series of Karel the Robot programs. See the assignment page for more details. The assignment is due Friday, Jan 20th, but make sure to get started early. Though Karel is a fun, simple robot, some of the questions can take a lot of time.

Download Eclipse

In CS106A we use a free, "development environment" called icon Eclipse to write our programs. It is the most popular development environment for the Java language. Download eclipse by following these instructions.

There will be an Eclipse installation trouble shooting session Friday the 13th of Jan, 3pm to 5pm in Hewlett 200. Try to install Eclipse before and come if you have any trouble.

Who are you?

We have a very simple google form for you to fill out so that we have a chance to get to know you a little. It should only take a few minutes. Though we call it "assignment 0" it is not for a grade.

What is CS106A?

We put together some handouts to help you understand where we are going to go in CS106A and how we plan to get there. See the General Information handout for details on logistics and the Course Placement handout to help you decide if CS106A is the right place for you.

The Course Schedule page shows you the topics that we are going to cover in CS106A and the corresponding readings. We will also post lecture slides and lecture code on the schedule page.


Welcome to CS106A! We are looking forward to a fun quarter. Class starts Monday Jan 9th at 10:30am in NVIDIA Auditorium.