CS 106A: Programming Methodology
Summer 2017
Monday, Tuesday, Wednesday, Thursday 11:30AM-12:20PM PST in NVIDIA Auditorium
NOTE: this website is out of date. This is the course web site from a past quarter, Summer 2017. If you are a current student taking the course, you should visit the current class web site instead. Please be advised that courses' policies change with each new quarter and instructor, and any information on this out-of-date page may not apply to you.

RESOURCES

Lecture Videos
icon Eclipse
Course Staff
Textbooks
Pair Programming
LaIR Help Hours
icon Stanford Library Docs
Blank Karel Project
Blank Java Project

EXAMS

Midterm
Monday, July 24
7-9PM PST

Final
Friday, August 18
12:15-3:15PM PST


SCPD OFFICE HOURS

Sun 5:30-7PM PST

Tues 9-11AM PST

Tues 8-9PM PST

Wed 8:30-10PM PST

Thurs 4-5PM PST

Thurs 8:30-9:30PM PST

Sign up here.

SCPD students can sign up for help at the times above (free QueueStatus account required).


STAFF

Nick Troccoli Instructor: Nick Troccoli
troccoli@stanford.edu
Gates B02
Wed. + Thurs. 2-4PM
Rishi Bedi Head TA: Rishi Bedi
rbedi@stanford.edu
Gates B02
Tues. + Thurs. 9-11AM

Final Grades Posted
201708231502

Final grades have been uploaded to Axess and should be visible momentarily; please check your Stanford email for more information. Thank you for a great quarter! Have a great rest of the summer!

Final Exams Graded
201708231501

The final exams have been graded, and individual scores have been released via Gradescope. Please see the final exam webpage for more information about exam regrades, statistics and scores. Regrade requests will be accepted until the end of the first week of Fall quarter, at 11:59PM PST on Sunday, October 1, 2017.

UPDATED: Final Exam Information and Practice Materials
201708170001

We have posted the final exam information page, including exam logistics, topics emphasized, and practice materials. Click on the "final exam" link in the left sidebar for more information.

UPDATED: We have added an additional practice final exam, and have also listed the location of the final exam (which depends on your last name).

Section and Helper Hours the Week of 8/14
201708151602

As we wrap up the quarter, we will be offering our last round of help hours this week. Specifically, LaIR helper hours will end after Tuesday, 8/15. Nick and Rishi will hold their usual office hours this week, and SCPD office hours will be offered as normal this week as well.

Additionally, there are no discussion sections this week.

CS 106A Lunches
201708151601

This week, we will be hosting "CS 106A lunches"! These are informal lunches with the course staff to give you a chance to get lunch, hang out, and ask any questions you may have (about anything!). Rishi and Nick will be attending, as well as various Section Leaders from both 106A and 106B (the followup course to CS 106A). The lunches will be at the following times and locations:

  1. Wednesday, August 16, 11:30AM-12:30PM @ Arrillaga Family Dining Commons
  2. Thursday, August 17, 11:30AM-12:30PM @ Lakeside (Lag) Dining

Students must swipe themselves in, but anyone is welcome, even those without meal plans. If you have any financial concerns about attending, please contact Nick or Rishi. Please meet at the entrance in each dining hall where you swipe in.

If you are planning on coming, we would appreciate you filling out this form so we can get a sense of how many students are interested (though this is not required to attend). We hope to see you there!

Exporting Projects as JAR Files
201708092301

If you're interested in exporting your Eclipse projects as runnable programs to share with family and friends, see the handout on "JAR Files" linked to from the Handouts dropdown above. If you export your program as a JAR file, you can run it without Eclipse, just by double-clicking on it.

CS 106A Lunches
201708091202

Next week on Wednesday, 8/16 @ 12PM and Thursday, 8/17 @ 12PM, we will be hosting "CS 106A lunches"! These are informal lunches with the course staff to give you a chance to get lunch, hang out, and ask any questions you may have (about anything!). Rishi and Nick will be attending, as well as various Section Leaders from both 106A and 106B (the followup course to CS 106A). Each lunch will be at a different dining hall on campus, and details will be announced early next week. If you have any financial concerns about attending, please contact Nick or Rishi.

The Honor Code
201708091201

As mentioned in class today during the Honor Code discussion, if you wish to retract any of your assignments for any reason whatsoever, please send Nick an email (email at left) saying which assignment(s) you wish to retract. We will, no questions asked, retract that assignment and give you a 0 for that assignment. In particular, if there were any Honor Code issues with that assignment, retracting will remove it and we will no longer consider it an Honor Code issue. Note that you may not retract just parts of assignments, and we do not provide an opportunity to redo that assignment. The deadline to retract an assignment is Tuesday, August 15 @ 1PM.

If you have any questions about the Honor Code, please see the Honor Code handout under the "Handouts" tab. Also feel free to come talk to us if you have any questions about the Honor Code, retractions, or anything else.

Assignment 6: NameSurfer
201708070901

NameSurfer

For your sixth assignment, you will implement a baby name graphing program that will give you practice with data structures, classes and interactors. See the assignment page for more details. The assignment is due Tuesday, August 15th, but make sure to get started early! Additionally, no late submissions (free late days or otherwise) will be accepted on this assignment.

Midterms Graded
201708020901

The midterm exams have been graded, and individual scores have been released via Gradescope, an online course grading website. Please see the midterm webpage for more information about exam regrades, statistics and scores. Regrades will be accepted until 1PM on Wednesday, August 9, 2017.

Assignment 5: ImageShop
201707312201

ImageShop

For your fifth assignment, you will implement the algorithms for an image editing program. This assignment will give you practice with concepts like 1D arrays, 2D arrays, and image manipulation. See the assignment page for more details. The assignment is due Monday, August 7th, but make sure to get started early!

Midterm Review Session Materials
201707211801

Thanks to everyone who came to the midterm review session today! A recording of the session is now available at the "Lecture Videos" link to the left. A copy of the slides from today are also available on the Midterm page under "Practice Materials".

Assignment 4: Artistry and Breakout
201707200901

Breakout

For your fourth assignment, you will implement the classic arcade game Breakout. This assignment will give you practice with concepts like graphics programs, events, animation and instance variables. See the assignment page for more details. The assignment is due Monday, July 31st, but make sure to get started early!

In particular, the material covered by this assignment is also covered by the midterm, so starting this assignment before the midterm can give you extra practice with graphics, events, animation and instance variables.

Midterm
201707180901

The midterm is coming up on Monday, July 24 7-9PM PST, and a review session will be held on Friday, July 21 3:30-4:50PM PST in Gates B03 (basement). For detailed information, including exam location, material to study, exam policies, and practice material, please see the midterm info webpage, linked to in the sidebar at left.

Assignment 3: Hangman
201707131301

Hangman

For your third assignment, you will write a console program to play the game "Hangman". This program will give you practice with methods, parameters, return, Strings, and file-reading. See the assignment page for more details. This assignment may optionally be completed in pairs.

The assignment is due Thursday, July 20th, but make sure to get started early!

Lecture Feedback
201707130001

Thank you to everyone who has given feedback on some or all of their 2 assigned lectures this quarter (if you have not been emailed yet, your assigned lectures have not come up yet). We really appreciate your feedback and have been working to incorporate it as much as possible. If, at any point, you would like to provide quick feedback on a lecture besides the days to which you are assigned, please feel free - we would greatly appreciate it! The feedback link can be found in the "Lectures" dropdown at the top.

Assignment 2: Intro to Java
201707051101

Java

For your second assignment, you will write a series of Java console programs. These programs will give you practice with concepts like variables, methods, control flow, and more. See the assignment page for more details.

The assignment is due Wednesday, July 12th, but make sure to get started early!

July 4 Holiday
201707030901

As a reminder, because of the July 4 holiday, we will not have lecture tomorrow. Additionally, there will be no helper hours or office hours tomorrow; they will resume on Wednesday 7/5.

Debugging with Karel
201706300901

Since we did not have much time to cover the Eclipse debugger during lecture on Wednesday, we have posted instructions and a handout walkthrough to help you get more familiar with debugging using Eclipse. There are two new resources that may come in handy:

  1. Instructions on how to use the Eclipse debugger: these are in a new section added to the Eclipse page, linked to on the left.
  2. A "Debugging with Karel" handout: this is a new handout in the "Handouts" dropdown at the top. This handout walks you through debugging a sample buggy Roomba Karel program using the Eclipse debugger functionality outlined in the above online instructions.

We highly recommend you read through both of these resources to help you when working on Assignment 1. Knowing how to use the debugger is a valuable skill that will help you find and fix bugs more quickly. Moreover, if you run into bugs, you should try finding and fixing them yourself first before reaching out for help at the LaIR or office hours; in particular, at helper hours we will ask what you have first tried on your own to fix the issue you are having.

Good luck working on Assignment 1!

Help Hours
201706290001

As a reminder, LaIR helper hours and office hours started yesterday, and are available if you need help on your first assignment, or if you have any questions about the material. The LaIR is in the first floor of Tresidder Union (in the food court area - sign up for help at the computer in the back) and is open Sun - Wed 7PM-11PM. Rishi and Nick's office hours times are listed in the sidebar to the left.


If you visit the LaIR, you will have the option to sign up for 3 different queues to most efficiently get help:

  1. 2-minute queue: Sign up for the 2 minute queue if you have a quick 2-minute question a course staff member can help you with.
  2. CLaIR queue: Sign up for the "Conceptual LaIR" (CLaIR) queue if you have a conceptual question about an assignment or material. Note that you are not allowed to ask questions about your code (e.g. debugging questions) in the CLaIR queue; only conceptual questions.
  3. Standard queue: Sign up for the standard queue if you have a question that does not fit in the above categories, such as a more in-depth debugging question about your code.
Assignment 1: Karel the Robot
201706281201

Karel the Robot

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 Wednesday, July 5th, but make sure to get started early. Though Karel is a fun, simple robot, some of the questions can be tricky!

UPDATED: Section Assignments + Late Section Signups
201706271501

Regular section signups have concluded, and we have finalized section assignments; you should receive an email from your section leader this evening.

If you missed regular section signups, you may sign up using the late signup form in the "Section" dropdown at the top. Any SCPD students who missed the opportunity to sign up for a grader should do so also via the "Section" dropdown at the top.

If you would like to request a section swap, please carefully follow the instructions below. The deadline to request a section swap is Wednesday, 7/5 @ 3PM PST:

  • If you are an individual requesting a swap, you may do so via the "Section" dropdown at the top.
  • If you are a pair that are in different sections but would like to be in the same section, please contact the Head TA, Rishi Bedi.
Lecture Feedback
201706271301

As mentioned in lecture today, as a small portion of your section participation grade we are asking each student to provide brief feedback on 2 assigned lectures throughout the quarter. The feedback should only take a few minutes, and will be used to understand how the course is going, and to help make it better. You will receive an email with a link to the feedback form before lecture on each day to which you are assigned. We greatly appreciate any feedback you have to improve the course!

Section Signups Open Until 11:59PM Monday 6/26
201706250002

Section signups are now open! Click on the "Section" dropdown 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 Monday 11:59PM deadline. We will notify you of your section assignment by Tuesday afternoon, 6/27. Sections start this 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 not sign up for a section; instead, register through the SCPD signup link in the "Section" tab.

Welcome
201706250001

Welcome to CS 106A! We are looking forward to a fun quarter. Class starts Monday, June 26th at 11:30AM in NVIDIA Auditorium. Please see the "Handouts" dropdown above for the General Information handout, as well as the Honor Code handout. SCPD students should also read the SCPD Information handout.