CS 106A: Programming Methodology
Summer 2017
Monday, Tuesday, Wednesday, Thursday 11:30AM to 12:20PM in NVIDIA Auditorium

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

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


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


SCPD students can sign up for help on QueueStatus here 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

NEW ANNOUNCEMENTS

UPDATED: Final Exam Information and Practice Materials
2017081700

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
2017081516

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
2017081516

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
2017080923

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.

OLD ANNOUNCEMENTS

Change in Rishi's Office Hours for 8/10
2017080921

We apologize for the short notice, but Rishi needs to shorten his office hours tomorrow morning (8/10) to be from 9:30-10:30AM instead of the normal 9-11AM. As a makeup, Rishi will hold an additional office hour on Friday from 1-2PM in the usual room (Gates B02).

CS 106A Lunches
2017080912

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
2017080912

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
2017080709

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
201708029

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
2017073122

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
2017072118

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
201707209

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
2017071809

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

Updated - Assignment 3: Hangman
2017071313
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!


IMPORTANT NOTE: In the original version of the starter code, the required methods were included in the Hangman.java file, but mistakenly labeled public instead of private. This has been fixed in the updated starter code. If you previously downloaded the starter code, unfortunately you cannot simply change public to private in your code, as you will get a compiler error. Instead, you can do the following:

  1. Download the updated starter code from the assignment webpage
  2. Copy your Hangman.java file from your old project's src folder into your new project's src folder.
  3. Delete your existing project from Eclipse (right-click on the project and select "Delete") and import your new project.
  4. Change all methods except run in Hangman.java to be private instead of public.

We sincerely apologize for the inconvenience. Please feel free to stop by the LaIR or Office Hours or email your Section Leader if you have any questions.

Lecture Feedback
2017071300

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
2017070511
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
2017070309

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
2017063009

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
2017062900

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:

  • 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.
  • 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.
  • 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
2017062812
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
2017062700

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
2017062713

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
2017062500

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
2017062500

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.

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

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


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


SCPD students can sign up for help on QueueStatus here 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