To visit the website for fall quarter's CS106A offering, click here.


Assignment 3 Out
January 26, 2015

Assignment 3 (Problem-Solving in Java) goes out today and is due in one week (Monday, February 2). This assignment picks up where Assignment 2 leaves off and asks you to design a collection of smaller Java programs, some graphical, some text-based. We hope that you find these problems interesting and come away from this assignment with a firm grasp of loops, methods, variables, parameters, and return statements.

Good luck!

Assignment 2 Out
January 16, 2015

Assignment 2 goes out today and is due on Monday, January 26 at 3:15PM. In this assignment, you'll explore new features of Java that weren't covered in Karel (graphics, variables, parameters, and constants) and will get a better command of how these tools work. As always, feel free to email your section leader, stop by office hours, or visit Alisha's and Keith's office hours if you have any questions.

Good luck!

Assignment 1 Out
January 7, 2015

The first programming assignment of the quarter goes out today. It's due on Friday, January 16 at 3:15PM. In this assignment, you'll get your first practice programming Karel the Robot and will write your very first programs!

We recommend that you try to complete the Collect Newspaper Karel problem as soon as possible so that you have time to iron out any Eclipse installation issues that might come up. From there, you'll then have a full week to complete the remaining three programming problems.

Good luck!

Welcome to CS106A!
January 5, 2015

Welcome to CS106A! We've got an exciting quarter ahead of us and you're in for a real programming treat. Over the next ten weeks, we'll explore programming methodology, standard programming idioms and techniques, and applications of computer science across a variety of disciplines. It's going to be a lot of fun, and I hope that you're able to join us!

In the meantime, feel free to check out the course information handout and syllabus to learn more about what this class is all about, the prerequisites, and the course policies. If you have any questions in the meantime, feel free to email me at with questions.

See you soon!


07: Submission Instructions
05: Using Karel in Eclipse
04: Downloading Eclipse
03: Honor Code Policies
02: Course Placement
01: Syllabus
00: Course Information

Section Handouts

Section Handout 3
Section Handout 2
Section Handout 1


Assignment 3: Problem-Solving in Java
   Handout | Starter Files

Assignment 2: Welcome to Java!
   Handout | Starter Files

Assignment 1: Karel the Robot
   Handout | Starter Files

Office Hours

Keith (Gates 178)
  Thursday 1:00PM - 4:00PM

Alisha (Gates 160)
  Tuesday 1:00PM - 4:00PM
  Wednesday 4:15PM - 5:15PM


Lecture Videos
Download Eclipse
Karel Reader
Section Sign-Ups
Blank Karel Project
Blank Java Project
ACM Docs


09: Animation
  Slides | Code
08: Randomness and Returns
  Slides | Code
07: Control Structures Revisited
  Slides | Code
06: Methods and Parameters
  Slides | Code
05: Control Structures
  Slides | Code
04: Graphics in Java
  Slides | Code
03: Intro to Java
  Slides | Code
02: Problem-Solving with Karel
  Slides | Code
01: Programming Karel
  Slides | Code
00: Introduction
  Slides | Code