CS106AP: Programming Methodologies in Python
Stanford University: Summer 2019
Monday, Tuesday, Wednesday, and Thursday 1:30-2:20 in Gates B1

RESOURCES

Syllabus
Help Hours
Python Guide
Error Guide
Style Guide
Additional Resources
Paperless
icon Piazza
icon PyCharm
Blank Karel Project
Spotify Playlist

EXAMS

Midterm
Monday, July 22
7pm-9pm
Hewlett 200

Final
Friday, August 16
3:30pm-6:30pm
Hewlett 200


STAFF

Lecturer: Kylie Jue
kyliej@stanford
Gates B02
Tuesday 10am-12pm

Lecturer: Sonja Johnson-Yu
sonjyu@stanford
Gates B02
Thursday 2:30-4:30pm

Head TA: Nick Bowman
nbowman@stanford
Gates B02
Tuesday 2:30-4:30pm


SCPD OFFICE HOURS

Monday 6-8PM
Tuesday 7-9PM
Wednesday 6-8PM

Sign up here
(free QueueStatus account required).

All office hours in PST.

Help sessions conducted over Google Hangouts.

Last office hours held during Week 8

This is the website for CS 106AP Summer 2019, which is not the current quarter. This class is now referred to as CS106A - The website for CS106A Spring 2020 can be found here .

ANNOUNCEMENTS

Final Exam Grades Released
2019081821

Thanks to the hard work of your section leaders, final exam grades have been released via Gradescope. Everyone should have received an email notification with a link to their graded exam. A digital copy of the exam can be found here and the solutions can be found here. A graph of the distribution of exam scores can be found here.


The regrade request policy is the same as for the midterm exam. All regrade requests must be submitted by 11:59pm tomorrow (Monday, August 19).

Practice Final Posted
2019081306

The practice final has been posted in the Resources section of the Final Exam Info page. We highly recommend working through this exam before the solutions are posted on Wednesday.

Week 8
2019081220

Exam Logistics
  • The final exam is this week! It will take place on Friday, August 16 from 3:30-6:30pm in Hewlett 200.
  • The final will only cover material up to and including last Tuesday's lecture (Lecture 25). For a more detailed list of topics that will not be covered, check Monday's lecture slides.
  • There will be a final review session during class on Tuesday.
  • Just like the midterm, the exam will be administered digitally using BlueBook.
  • All students will be allowed to bring 2 double-sided pages (4 sides) of notes to the exam, but outside of this the exam is closed-book and closed-Internet.
  • More details about the exam can be found on the Final page.
Assignments & Deadlines

  • Assignment 6 is due on Wednesday, August 14 at 11:59pm. Note that this is a hard deadline, and we will not be accepting any coursework after this point in time.
  • As mentioned in Monday's class discussion on the Honor Code, the deadline to submit retroactive citations and assignment retractions is Friday, August 16 at 11:59pm.

Important resources this week
  • The Campy Reference Guide and Jupyter Reference Guide will be valuable resources to consult while working on Assignment 6.
  • A practice final will be posted on the final exam information page by Tuesday morning.
Other logistics

  • Section attendance this week is optional and we have given section leaders the opportunity to reschedule section to a time that works better for everyone, so keep an eye out for an email from your section leader.
  • Wednesday's lecture has been replaced with in-class office hours. Come with questions about the practice final!
  • There is no class on Thursday.
  • Sonja's OHs have been shifted earlier and will take place from 10am-12pm on Thursday.

Week 7
2019080615

Assignments & Deadlines

  • Assignment 5 has its on-time deadline on Wednesday at 11:59pm.
  • Assignment 6 will be released tomorrow morning and will have its only deadline on Wednesday, August 14 at 11:59pm.

Important resources this week

The Campy Reference Guide has been updated with information about GImages, a new type of GObject that will be useful for Assignment 6.

The Jupyter Reference Guide has information on how to install Jupyter and use Jupyter notebooks, which will also be useful for Assignment 6.

Other logistics

  • The final exam is coming up on Friday, August 16 from 3:30-6:30pm in Hewlett 200. All students will be expected to take the exam at this time, excepting OAE accommodations.
  • Next Wednesday (August 14) is the last date that any work for the course will be accepted. This means that there is a single, hard deadline for Assignment 6, and there will be no extensions or late work accepted, with absolutely no exceptions. Finally, we will not be offering the opportunity for revisions on Assignments 5 and 6.
  • In order to use Jupyter, which is needed for Assignment 6, you need to install it on your computer. Instructions on how to do so can be found in the guide mentioned above.

Midterm Grades Released
2019072919

Midterm grades have been released via Gradescope. Everyone should have received an email notification with a link to their graded exam. A digital copy of the exam can be found here and the solutions can be found here. A graph of the distribution of exam scores can be found here.

Regrade Request Policy

If you feel like the exam criteria have been inaccurately applied to your exam, you may submit a regrade request. Make sure to read the following constraints before submitting a regrade request:

  • All regrade requests must be submitted through Gradescope.
  • All regrade requests must be submitted by Monday, August 5 at 11:59pm.
  • You must submit 1 regrade request for each part of each question that you believe was incorrectly assessed.
  • Each regrade request must be accompanied with an exact description of which specific deductions you believe to have been incorrectly made and a short explanation of why you believe the deduction to be incorrect.
  • Your score is not guaranteed to increase following a regrade request. In fact, some regrade requests result in a lower overall score, so be judicious.
  • We reserve the right to regrade your entire exam if you submit a regrade request.
  • We will not be changing the grading criteria. Therefore, do not submit a request if you believe the criteria to be unfair. Only submit a request if you believe the criteria was inaccurately applied to your submission.

Week 6
2019072915

Assignments & Deadlines

  • Assignment 4 has its extended deadline tonight at 11:59pm.
  • Assignment 5 will be released tomorrow and will have its on-time deadline on Wednesday, August 7 at 11:59pm and its extended deadline on Thursday, August 8 at 11:59pm.

Important resources this week

The Campy Reference Guide will continue to be a very helpful resource this week as we build interactive graphical programs. As mentioned before, information contained here will be useful for lectures 18 to 22, section this week, as well as Assignment 5. We will continue to get more practice with campy through the end of this week!

Other logistics

  • Midterm grades and solutions will be released in an announcement by tomorrow morning.
  • In order to use the campy library, which is needed for Assignment 5, you need to install it on your computer. Instructions on how to do so can be found in the guide mentioned above. You should install this library as soon as you can, as you will need it for lecture and section this week, as well as for Asssignmnt 5.

Week 5
2019072312

Congratulations on finishing the midterm exam! We will be grading over the weekend, so you should expect to get your grades back early next week.

Assignments & Deadlines

  • Assignment 3 grades will be released by Saturday at 11:59pm. For those that choose to do revisions on Assignment 3, those will be due on Wednesday, July 31 at 11:59pm.
  • Assignment 4 has its on-time deadline on Sunday, July 28 at 11:59pm and its extended deadline on Monday, July 29 at 11:59pm.

Important resources this week

The Campy Reference Guide will be a very helpful resource as we transition to writing more complex graphical programs. The information contained here will be useful for lectures 18 to 22, section this week and next week, as well as Assignment 5. We will become very familiar with campy over the coming weeks!

Other logistics

  • In order to use the campy library seen in class, you need to install it on your computer. Instructions on how to do so can be found in the guide mentioned above. You should install this library as soon as you can, as you will need it for lecture and section this week, as well as for Asssignmnt 5.

Bluescreen Art Contest Voting
2019072214

Vote for your favorite Bluescreen Art Contest submissions here! Voting will close at noon on Tuesday and winners will be announced in class that day!

Midterm Today
2019072212

Today is the day of the midterm! We have two final reminders for everyone:

  1. Bring your two-step authentication device with you to the exam. You will need it to complete the exam submission process.
  2. Make sure to turn off your Wifi before you open Bluebook to take the exam. You will have an opportunity to turn it back on before starting the exam submissions process once you have actualy completed taking the exam.

Midterm Exam
2019071712

The midterm is Monday, July 22, from 7pm to 9pm. All students taking the normally scheduled exam will be in Hewlett 200. See the Midterm page for all the details and practice exams.

The exam will cover all material from Lectures 1 to 14 (inclusive).

It is open-notes with 10 pages of double-sided note sheets permitted, but closed electronic device for everything except administering the exam itself (this means any resources you want to use during the exam must be printed out). If you requested an alternate time and/or OAE accommodations, you should have received an email from Nick with your timing and room assignment details.

The exam will be administered digitally; if you do not have access to a laptop you feel comfortable using for the duration of the exam, please email Nick as soon as possible. Please bring a fully charged laptop to the exam. If you'd like extra assurance of access to an outlet, please feel free to bring an extension cord if you have one (we will have some, but extras are always helpful). Additionally, you must download the exam and exam software before coming to the exam.

Week 4
2019071516

Exam Logistics
  • The midterm is coming up next week! It will take place on Monday, July 22 from 7-9pm in Hewlett 200.
  • There will be a midterm review session on Friday, July 19 from 1:30-2:30pm in Gates B1. Come with any questions you might have about the material we've covered in the first half of this class! The session will be recorded and made available online as well.
  • More details about the exam can be found on the Midterm page.
Assignments & Deadlines

  • Assignment 2 grades will be released by Wednesday at 11:59pm. For those that choose to do revisions on Assignment 2, those will be due on Sunday, July 21 at 11:59pm.
  • Assignment 3 has its on-time deadline on Thursday, July 18 at 11:59pm and its extended deadline on Friday, July 19 at 11:59pm.
  • Assignment 4 will be released at the end of the week and will be due after the midterm.

Important resources this week

We have posted a guide to running programs from the command line, which can be found here. We will be posting a practice midterm, as well as some tips on how to study for the midterm later this week. Finally, we have updated the style guide with relevant tips for Assignment 3!

Command Line Guide
2019071420

Due to popular demand, we've put together an in-depth command line guide that provides a breakdown of what is happening when you run your Python programs from the command line. We discussed running our programs from the command line for the first time in last Thursday's lecture and will be predominantly running our programs from the command line going forward in this class. If you have any questions about what it means to run Python code from the command line, we highly recommend checking out the guide, linked here and in the "Handouts" tab!

Week 3
2019070815

Assignments & Deadlines

  • Assignment 1 grades will be released by Tuesday at 11:59pm. For those that choose to do revisions on Assignment 1, those will be due on Saturday, July 13 at 11:59pm.
  • Assignment 2 has its on-time deadline on Wednesday, July 10 at 11:59 PM and its extended deadline on Thursday, July 11 at 11:59 PM.
  • Assignment 3 has been released and has its on-time deadline on Thursday, July 18 at 11:59 pm and its extended deadline on Friday, July 19 at 11:59pm.

Important resources this week

We have posted a guide to Python error messages and an additional resources page where you can find more practice problems and helpful tools, both of which are linked in the sidebar. The Image Reference Guide will be an important resource for lecture on Tuesday, as well as for Assignment 3. Finally, we have updated the style guide with relevant tips for Assignment 2!

Other logistics
  • If you have an academic conflict with the midterm exam (which is on July 22 from 7-9 PM), please fill out this form in addition to sending Nick an email. The deadline to do so is Monday, July 15 at 5pm.
  • In order to use the SimpleImage library seen in class, you need to install the Pillow library. Instructions on how to do so can be found in the Image Reference Guide. You should try to install Pillow before lecture on Tuesday.
Error Guide and Additional Resources
2019070708

There are two new great resources linked in the resources sidebar!

  • The first is a guide to Python error messages that was created by a former CS106AP section leader, Kartik Chandra. If you're ever stuck debugging a cryptic error message, this should be the first place you go!
  • The second is a page of additional resources for students that are looking for extra practice with the topics covered in class. We will be adding to this page as the quarter progresses and more topics are covered.
Week 2
2019070209

Assignments & Deadlines

  • Assignment 1 has its on-time deadline on Tuesday, July 2 at 11:59 PM and its extended deadline on Wednesday, July 3 at 11:59 PM.
  • Assignment 2 has been released and will have its on-time deadline on Wednesday, July 10 at 11:59 PM and its extended deadline on Thursday, July 11 at 11:59 PM.

Important resources this week

This week's section handout has been posted. The material in this week's section is all incredibly important for Assignment 2, and it is unlikely to all be covered during section this week. Therefore, we highly recommend working through any exercises that you do not get a chance to cover in section. Additionally, a starter PyCharm project has been made available for this week's section handouts. As of Wednesday night, section solutions have also been released. All of these materials can be found under the "Sections" tab of the top navigation bar.

Other logistics
  • If you have an academic conflict with the midterm exam (which is on July 22 from 7-9 PM), please fill out this form in addition to sending Nick an email.
  • The LaIR will be closed the night of Wednesday, July 3 due to the 4th of July holiday.
  • Section is cancelled on Thursday, July 4. Making up section attendance is not required for those with Thursday sections, but if you want an opportunity to still attend section, Sonja will be teaching a makeup section after lecture (2:30-3:20pm) on Wednesday in Gates B1.
  • SCPD office hour times for remote students have been posted. See our earlier announcement for more details.
SCPD Office Hours
2019070211

Information regarding SCPD office hour times has now been published on the course website, in the left sidebar. If you are an SCPD or remote student and need help on assignments but are unable to make it to the LaIR or instructor office hours in person, these sessions are meant to act as a way for you to get help from section leaders. To get helped, you should sign up for a free QueueStatus account and sign up in the queue here during the times listed on the course website. Once you sign up in the queue, a section leader will service your request by calling you on Google Hangouts from the course account (cs106apscpd@gmail.com).

Week 2 Office Hours
2019062922

On account of the July 4th holiday, Sonja's office hours this upcoming week (which typically occur Thursdays 2:30-4:30) will be on Monday, July 1st 2:30-4:30pm in Gates B02. Her OH will go back to the normal Thursday time the following week. Feel free to stop by with any questions you have!

Additionally, the LaIR will be closed on Wednesday (6/3) due to the July 4th holiday.

Assignment Feedback
2019062716

After you submit each of your assignments on Paperless, you will be directed to a short, anonymous survey where you can give feedback on the most recently submitted assignment. We read all feedback and use it to inform our decisions in the class going forward, so we highly recommend taking the time to fill out these surveys.

Section Assignments Released
2019062609

Section assignments have been released. You can view your section time and section leader by following the "View My Section" link in the "Sections" menu of the topbar. All sections with open spots are now open for late adds as well, which you can access via this link. Please check your section assignment immediately, as sections begin today. Sections will close for late adds and swaps on Sunday, June 30 at 5pm.

Blank Karel Project
2019062516

To give everyone the opportunity to play around with Karel, we have constructed a blank Karel PyCharm project that is linked in the sidebar. This project is loaded up with a ton of worlds and a blank Karel.py file in which you can write your code. In general, if you want to write Karel code outside of the lecture examples or assignments, we recommend using this project (you can download as many copies as you need). More specifically, you should not try to add new Python files to an existing Karel project, as you will likely run into issues when trying to run those files.

Week 1
2019062408

Assignments & Deadlines

Assignments 0 and 1 have been released.

  • Assignment 0 (a short Google form) is due on Wednesday, June 26 at 11:59 PM.
  • Assignment 1 has its on-time deadline on Tuesday, July 2 at 11:59 PM and its extended deadline on Wednesday, July 3 at 11:59 PM.
General LaIR office hours will begin on Wednesday, June 26 from 7-11 PM in Tresidder Student Union. More information on timing and location of these help hours can be found in the Course Communication handout (linked below).

Important resources this week

Be sure to check out the Course Syllabus and Course Communication Handout. Make sure to install PyCharm as soon as possible using the instructions in the PyCharm installation handout.

Other logistics
  • Section signups opened Sunday at 5pm and will close on Tuesday at 5pm.
  • Sign up for our course's Piazza!
  • Instructor and head TA office hours begin this week! Since Sonja is out of town this week, Kylie/Nick will be in B02 on Thursday at her scheduled time instead. See the sidebar for location and timing details. Feel free to come by with any questions you have, or just for a chat!
  • Please email Nick as soon as possible if you have academic accommodations from the OAE.
  • If you have an academic conflict with the midterm exam (which is on July 22 from 7-9 PM), please fill out this form in addition to sending Nick an email.
  • We will be holding two PyCharm installation help sessions this week. These sessions will be staffed by the instructors, head TA, and section leaders and are meant to help troubleshoot any issues you may have while installing PyCharm. The times and locations for the sessions are as follows:
    • Monday (6/24) from 3-4:30 PM in Gates 200
    • Tuesday (6/25) from 2:30-4:30 PM in Gates B02
    Please attempt to install PyCharm using the instructions in the PyCharm installation handout before attending one of these sessions.
What is CS106AP?
2019062408

We put together some handouts to help you during your journey in CS106AP. See the Course Syllabus for details on course logistics and policies. The Course Schedule page shows you the topics that we are going to cover and the corresponding assignment and exam dates.

Welcome!
2019062408

Welcome to CS106AP! We are looking forward to a fun summer. Class starts today at 1:30pm in Gates B1. See you there!

Sign up for section!
2019062310

Section signups open at 5pm today. To sign up for a section, go to this website. Log in if you are prompted to do so, and then fill out the form linked on the page. Make sure to list as many times that work for you as you can, in order to ensure you’re placed into a section that works for your schedule. Signups will close at 5pm on Tuesday.