CS106A: Programming Methodologies
Spring 2018
Monday, Wednesday, Friday 1:30pm to 2:20pm in Hewlett 200


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



Monday, May 7th

Final Exam
Friday, June 8th

Chris Piech
Gates 193
Thurs 1:30-3:30pm

Julia Daniel
Gates B02
Wed 2:45-4:45pm


Assignment 3: Breakout

In your third assignment you will program the classic game of Breakout! See the assignment page for the handout and starter code. Assignment 3 YEAH hours will be Tuesday April 24th, 7:30-8:30 PM in 380-380x . As a reminder, YEAH hours, or “Your Early Assignment Help” hours, are optional sessions meant to provide additional help getting started with each assignment. We hope to see you there!

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 (and are not switching for reasons related to being with a requested partner), please request a swap via cs198.stanford.edu. If you would like to switch into a different section to be with a requested partner, please request a swap by filling out this form. For this form, please be sure to fill out ALL possible times you and your partner are both free, not just your current assigned section times.

The deadline for signups and swaps is Wednesday, 4/18, at 12PM.

Section Signups Open Until 5PM Sunday 4/8

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.

Video recording free

As you have probably noticed CS106A lecture is not recorded Spring quarter. Suprisingly, that turns out to be a good thing! Students consistently learn more and perform much better in quarters without video recordings. If you miss a class you can catch up by doing the readings -- the book is an amazing resource :-).

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 19th, 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 4th of April, 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.

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 Apr 2nd at 1:30pm in the Hewlett 200 Auditorium.