CS106A: Programming Methodologies
Stanford University: Winter 2019
Monday, Wednesday, Friday 3:30pm - 4:20pm in NVIDIA Auditorium


CS106A Info
Course Schedule
Style Guide
icon Piazza
icon Eclipse
Karel Book
icon Stanford Java Lib
Blank Java Project
Blank Karel Project
LaIR Hours



Monday, Feb 11th

Final Exam
Monday, Mar 18th

Chris Piech
Gates 202
Tue 1:30-3:30pm

Brahm Capoor
Gates B02
Wed 1-3pm
Thurs 2-4pm


Monday 2-4PM
Tuesday 4-6PM
Wednesday 5:30-7:30PM
Thursday 12-2PM

Sign up here
(free QueueStatus account required).

All office hours in PST.

Office Hours end after Thurs. 3/14


Nested for loops walkthrough

Nested for loops are a challenging concept, but important to understand. To help make sure you grasp the mechanics of this control flow, we prepared a video walkthrough of the chessboard example from lecture today. Check it out below:

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! After Friday's lecture you should be able to complete problems 1 through 5. Note that the style guide has also been updated with additional guidelines for the second assignment, and YEAH hours slides will be available after YEAH hours.

Section Assignments & Late Signups

For those who submitted section preferences by 5PM on Sunday, we have finished making section assignments; as a reminder, sections start this week! (You can view your assigned section via cs198.stanford.edu). If you were unable to submit the form by the 5PM Sunday deadline, the late signup form is available on that site as well once you log in.

If you would like to individually switch to a different section because of scheduling or other constraints please request a swap via cs198.stanford.edu. You can also use this form to join the section of a partner who is another section. If you have any questions, email Brahm.

Section Signups Open Until 5PM Sunday 1/13

Section signups are now open! Click on the "Section" tab at the top and select "Section Signup" 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.

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 18th, 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 iconEclipse to write our programs. It is the most popular development environment for the Java language. Download eclipse by following these instructions.

If you run into any issues while installing or using Eclipse, please see the bottom of the Eclipse install instructions for common troubleshooting steps. There will also be an Eclipse installation troubleshooting session Wednesday the 9th of January, 7pm to 9pm in the LaIR (first floor of Tresidder). 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.

CS 106A PathFinders

CS Pathfinders is a supplementary instruction program created to increase the diversity of the undergraduate population in the School of Engineering. Students participating in the program will enroll in an additional one unit course (CR/NC) and will attend an additional two hour section every week focused on reviewing course material and completing coding exercises to solidify understanding.

Application link: https://goo.gl/forms/Yrt6X3fmnJZ0Ceq83 This is the general ACE link but students can select CS106A as their "ACE Course" at the bottom of the form.

Any questions can be directed towards (TG) at tgsido@stanford.edu

What is CS106A?

We put together some handouts to help you the CS106A journey. 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 and the corresponding readings.


Welcome to CS106A! We are looking forward to a fun quarter. Class starts Monday Jan 7th at 3:30pm in the NVIDIA Auditorium (inside the Huang building).