Cs106a Assignments Definition

The results for the graphics contest were announced. See screenshots of some of the submissions. Honorable mention emails are still pending (and will be sent out after the final).

The final exam is next Monday 8:30-11:30am. Because our class is so large the exam is split among two locations. Students with last names that start with the letters 'A' through 'L' take the exam in Cemex Auditorium. Students with last names that start with the letters 'M' through 'Z' take the exam in Dinklespiel Auditorium.

See the practice final! We will post solutions and more practice problems by this Friday. We will also be holding a final exam review session during our normal class time on Friday (in NVIDIA). The review session is optional and will be recorded.

In your last assignment you will program a mini version of Facebook called FacePamphlet (get it?). Part of this assignment is new. We have put a lot of effort into making this assignment a better learning experience. To that end, for the first time ever as a CS106A class you will be writing a server that can recieve internet requests. See the assignment page for the handout and starter code. YEAH hours will be Thursday March 9th, 7:00-8PM in Hewlett 200. (Note new location and time!)


To encourage you to become more familiar with the Eclipse debugger, we have created a short (~30min - 1hr) optional extra credit debugging assignment. On the extra credit information page, you will find an Eclipse project that is supposed to animate a ball that bounces off the 4 walls. However, there are some bugs lurking that are preventing the program from functioning correctly. If you can find and fix all 4 bugs, the program will give you a secret code that you can send to your Section Leader for extra credit points! See the the extra credit information page if you're interested in trying it out. Update: the solution has been posted to the assignment page.

In your penultimate assignment you will program a data visualizer: NameSurfer. See the assignment page for the handout and starter code. Assignment 6 YEAH hours will be Wednesday March 1st, 7:30-9PM in Bishop Auditorium (in Lathrop Library).

One of the joys of programming is the ability to make something totally of your own creation. In CS106A this quarter we are hosting a Graphics Contest where you can program anything you like using the concepts and tools we learn in class. There will be four grand prizes which each are worth a 100% on the final exam. Runners up will be awarded extra credit on assignments. See the contest handout for more details.

Graded CS106A midterms were returned after class on Wednesday, Feb. 22 via Gradescope, an online assignment grading website; if you did not receive an email inviting you to Gradescope (check your spam folder just in case), please email Nick, the Head TA. See the midterm solutions for reference. If your scanned exam in Gradescope is difficult to read, and you would like to see your (ungraded) paper exam, you can pick it up from the CS106A filing cabinet in the "handout hangout", the lobby down the hall from Chris's office (Gates 193). Please note that while grading we referenced both the paper and scanned versions to ensure your work was correctly graded.

The median for the CS106A midterm was 41 out of 60 points. Here is the full distribution:

If you believe part of your exam was incorrectly graded, regrade requests will be accepted through Gradescope until Wednesday, March 1. As part of your request, you will need to provide a short write-up of the problem(s) on your exam that you think were misgraded. Regrade requests need to point out the aspect of the problem that was correct, but for which points were taken off. We use a detailed rubric to grade exams, so simply requesting that an incorrect answer "should be worth more points" is not likely to result in additional points. Also, we reserve the right to re-grade the whole exam to make sure there are no other grading issues present - this may result in a lower total score.

In your fifth assignment you will program the classic game of Yahtzee! See the assignment page for the handout and starter code. Assignment 5 YEAH hours will be Tuesday 2/21, 7:30-9PM in Bishop Auditorium (in Lathrop Library). 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!

We found a small bug when running the Hangman starter code on Windows machines. Specifically, due to the way Windows displays Eclipse programs, the height of the screen is 20 less than when running on a Mac. For this reason, the constant Y value given for the incorrect guesses label () is off-screen.
To resolve this issue (for consistency, every student please do this, Mac or PC), PLEASE CHANGE and to the following:



The starter code on the website has also been updated to reflect this change. We apologize for the last-minute change; if you do not make the above change, you will not be penalized if your incorrect guesses label is offscreen, as long as you are positioning it correctly. But the above change may help ensure that your calculations are correct.

To give you resources to help prepare for the midterm, we have posted practice midterm and exam strategies handouts. We recommend taking the practice midterm under similar conditions to the regular exam. Solutions to the practice midterm have also been posted. As a reminder, the midterm exam is Monday 2/13 7-9PM and is open book, open notes, closed-electronic-device. It will cover everything through lecture on 2/8 except for file-reading. UPDATED: Notably, you will not be required to write imports on the exam.

UPDATED: We held a midterm review session Sat. 2/11 4-6PM in Bishop Auditorium. We went over class concepts that may appear on the midterm, and additional practice problems. The slides are available here. Due to technical troubles, unfortunately we were only able to capture the audio from the session, which is available on the lecture videos page.

UPDATED: The midterm exam will take place in Memorial Auditorium:

Thanks to everyone who came to YEAH hours for Assignment 4! The slides have been posted to the Assignment 4 page. Additionally, a recording of the video is available on the lecture videos website.

Assignment 4 (Hangman) has been released, a fun console+graphics game that will give you practice with strings and file-reading - see the assignment page for the handout and starter code. This is also the first assignment that may be done (optionally) in pairs.. As a reminder, you may only pair up with students in the same section time and location. Assignment 4 YEAH hours will be Thursday 2/9, 7:30-9PM in Bishop Auditorium (in Lathrop Library). We hope to see you there!

The midterm is Monday, Feb 13th, from 7pm to 9pm. If you can't make the scheduled time because of an academic conflict please send Chris and Nick an email over the weekend (before Monday 6th of Feb). We can find an alternate time for you to take the exam.

Thanks to everyone who came to YEAH hours for Assignment 3! The slides have been posted to the Assignment 3 page. Additionally, a recording of the video is available on the lecture videos website.

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 1/31, 7:30-9PM in Bishop Auditorium (in Lathrop Library). 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!

Thanks to everyone who came to our first YEAH hours for assignment 2! The slides have been posted on the assignment 2 page. Additionally, a recording of the session is available on the SCPD/online videos page (link in sidebar).

Some of the problems on assigment 1 are difficult! I made a recording of an extra example called "random painter" that solves a problem relevant to checkerboard karel. Check it out if you want some extra review. I also uploaded the random painter code.

If you haven't tried submitting yet, give it a shot. See the submitting handout for instructions. You can submit assignments as many times as you like, we grade your last submission. Assignment 1 is due Friday at 10:30am.

For those who submitted section preferences by 5PM on Sunday, we have finished emailing out section assignments; as a reminder, sections start this week! If you were unable to submit the form by the 5PM Sunday deadline, the late signup form is now open. Click on the "Sections" tab to get to the form link. As a reminder, SCPD students should sign up for the "SCPD section", unless you are able to attend a section in person.

If you would like to permanently switch into another section, there is also a link under "Sections" to request a permanent section swap. However, because this form only allows you to request a new section by time (not location), if you would like to request a swap to a specific section for pair programming reasons, please email Nick, the Head TA.

There is also a link under "Sections" to a list of all section times and locations, and a link to drop your section if you decide to unenroll from the class (this is important, as it allows another student to potentially take your section spot!).

The deadline for section swaps is Tuesday, 1/24, at 5PM.

We apologize for any confusion in class today about when LaIR helper hours start. To clarify, because of the 3-day weekend, the LaIR will be open in the Tresidder food court area starting on Monday 1/16. From then onwards, the LaIR will be open from 6PM-12midnight Sunday - Thursday. Come by if you need help with your first assignment, or if you have any conceptual questions!

Reminder that tomorrow, Jan 16th, is MLK day so there will be no classes. LaIR office hours will start the evening of Monday, Jan 16th.

Here is a video of the last public speech MLK gave. The date was April 3, 1968 and he was assasinated the day after. Civil rights for all people, regardless of their ethnicity, is a cause that is still being faught for around the world.

Of course if you haven't seen the I Have a Dream Speech, that is worth watching for its beautiful narrative and its influence on history.

Section signups are now open! Click on the "Section" tab 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 Sunday 5PM deadline. We will notify you of your section assignment early next 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 sign up for the special "SCPD Section" in the section preferences form. Remote SCPD students will not be assigned a physical section; instead, you will have access to online recordings of one section this quarter, and another assigned Section Leader to grade your assignments.

In CS106A we use a free, "development environment" called Eclipse to write our programs. It is the most popular development environment for the Java language. Download eclipse by following these instructions.

There will be an Eclipse installation trouble shooting session Friday the 13th of Jan, 3pm to 5pm in Hewlett 200. Try to install Eclipse before and come if you have any trouble.

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.

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 Jan 9th at 10:30am in NVIDIA Auditorium.

In section this week, we built a server program that helps a client to schedule a flight itinerary. The second part of the section handout involves writing a that can act as a client to this server. In the real world, many clients aren't s but rather websites. To give you an example of how a server that you might write might work with a website, we've made a small sample webpage that works by making requests to your program:


 

If you're interested in trying this out for yourself, download the eclipse project here , and open in your browser. The page will have instructions as to how to set up your server!

If you have any questions about how this webpage works or if something doesn't appear to be working, shoot Brahm an email at brahm@stanford.edu .

Thanks to everyone who came to YEAH hours for Assignment 7! The slides and video have been posted to the Assignment 7 page.

In your last assignment you will program a mini version of Facebook called FacePamphlet (get it?). This assignment consists of client and server programs that communicate with each other over the Internet. See the assignment page for the handout and starter code, as well as demo programs.

Assignment 7 YEAH hours will be Thursday March 8th, 7:00-8PM in 260-113. We hope to see you there!

Updated 3/8: we have clarified in the handout that the text field should be characters large.

Thanks to everyone who came to YEAH hours for Assignment 6! The slides and video have been posted to the Assignment 6 page. Additionally, we have added a link to an updated version of the style guide for assignment 6!

In your penultimate assignment you will program a data visualizer: NameSurfer. See the assignment page for the handout and starter code.

Update: we have added an folder to the starter code containing sample output, and have also linked to a demo of NameSurfer from the assignment page. Moreover, we have added 2 missing constants, and , to the starter code.

Assignment 6 YEAH hours will be Wednesday 2/28, 8-9PM in STLC 114. We hope to see you there!

Update 2: we have added updated output images to help you better test your program.

One of the joys of programming is the ability to make something totally of your own creation. In CS106A this quarter we are hosting a Graphics Contest where you can program anything you like using the concepts and tools we learn in class. There will be four grand prizes which each are worth a 100% on the final exam. Serious entries and runners up will be awarded extra credit on assignments. WSee the contest handout for more details.

This contest is genuinely optional (and in the genuine sense of the word optional – not in some mischievous “this is extra credit but if you don’t do it, your grade will suffer” sort of way). I will only apply bonuses for the contest after I have calculated final grades for the class. Thus, if you don’t participate you are going to get the exact same final grade in CS106A as you would have received had there been no contest.

Graded CS106A midterms were returned after class on Wednesday, Feb. 22 via https://cs106a.stanford.edu/restricted/midtermreturn.html, if the site does not load for you, please email Nick, the Head TA. The website has your solutions

The median for the CS106A midterm was 87 out of 120 points. Here is the full distribution:


If you believe part of your exam was incorrectly graded, regrade requests will be accepted through https://goo.gl/forms/GXgwVN0yaH1LqDUp2 until Wednesday, Feb 28. As part of your request, you will need to provide a short write-up of the problem(s) on your exam that you think were misgraded. Regrade requests need to point out the aspect of the problem that was correct, but for which points were taken off. We use a detailed rubric to grade exams, so simply requesting that an incorrect answer "should be worth more points" is not likely to result in additional points. Also, we reserve the right to re-grade the whole exam to make sure there are no other grading issues present - this may result in a lower total score.


Thanks to everyone who came to YEAH hours for Assignment 5! The slides and video have been posted to the Assignment 5 page.

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. Checkout the assignment page and make sure to get started early!

The midterm is Monday, Feb 12th, from 7pm to 9pm. It's on a computer so don't forget your laptop as well as a charger if you feel you'll need it! Please make sure to disable notifications on your computer for the duration of the exam . Bluebook detects when you swap away from your screen, and disabling notifications reduces the risk of that.

UPDATED: the encrypted exam is now available to download on the Midterm Info page below. Please download this in advance of the exam!

You can find all of the midterm information here: Midterm Info

Midterm location is based on last name:

Last Name: A through J
Cubberley Auditorium

Last Name: K through Z
Hewlett 200

The pair programming page erroneously said that you must be taking the course for the same grading basis to be partners on assignments. This has been corrected to clarify that the only pair requirement is that both of you are in the same section time and location.

The practice midterm is live.

  • Mac download: Mac
  • PC download: PC
  • Linux download: Linux

On a Windows PC, download the .zip file and completely extract it into another folder. Then open the BlueBook program by double-clicking. If you get a Windows message that says, "Windows protected your PC," click on "More info" and then "Run anyway" (We're working on resolving this!).

The password for the exam is . Practice exam submission will not work , but a tool to view your exam answers - as well as solutions - is below. If you run into any issues, please email Brahm and Chris .

UPDATE

In order to view your practice midterm answers, download the appropriate exam viewer below: upon opening the application, you should be able to view your answers immediately.

  • Mac download: Mac
  • PC download: PC
  • Linux download: Linux

Should you run into any issues, please email Brahm . Note that this exam viewer will work only for this Practice Midterm, and not future exams.

Thanks to everyone who came to YEAH hours for Assignment 4! The slides and video have been posted to the Assignment 4 page.

Assignment 4 (Hangman) has been released, a fun console+graphics game that will give you practice with strings and file-reading - see the assignment page for the handout and starter code. This is also the first assignment that may be done (optionally) in pairs. We have posted a pair programming guide in the sidebar to the left if you would like more information. As a reminder, you may only pair up with students in the same section time and location. Assignment 4 YEAH hours will be Wednesday 2/7, 8:30-9:30PM in STLC 114. We hope to see you there!

The midterm is Monday, Feb 12th, from 7pm to 9pm, locations to be announced soon. It is open-book, open-notes, but closed electronic device for everything except administering the exam itself. If you can't make the scheduled time because of an academic conflict, or if you have OAE accommodations, please send Chris and Nick an email by Thursday, Feb. 8 at 11:59PM PST.

Additionally, 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 send Chris and Nick an email by Wednesday, Feb. 7 at 11:59PM PST.

We will be administering a practice midterm exam seating Thursday, Feb. 8 7-9PM in Cemex, to give a sample exam under conditions similar to the actual midterm. We hope to see you then!

Thanks to everyone who came to our YEAH (Your Early Assignment Help) hours for assignment 3! The slides have been posted on the assignment 3 page. Additionally, a recording of the session is available online. In an effort to provide videos with a faster turnaround, recordings will be posted immediately following each YEAH on Canvas (link in sidebar). On Canvas, select "CS106A" and click "Lecture Videos" to view YEAH videos. The videos will also be uploaded to the regular lecture videos location, mvideox, but there may be a delay of up to 48 hours due to SCPD processing.

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 Wednesday 1/31, 7:30-8:30 PM in 370-370 . 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!

Thanks to everyone who came to our first YEAH (Your Early Assignment Help) hours for assignment 2! The slides have been posted on the assignment 2 page. Additionally, a recording of the session is available on the SCPD/online videos page (link in sidebar). The next YEAH session will be on Wednesday 1/31, 7:30-8:30PM in 370-370.

For those who submitted section preferences by 5PM on Sunday, we have finished emailing out section assignments; as a reminder, sections start this week! (You can also view your assigned section via the "Section" dropdown above). If you were unable to submit the form by the 5PM Sunday deadline, the late signup form is available under the "Sections" tab. As a reminder, SCPD students should sign up via the special SCPD link instead.

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 by going to the form linked to in the "Sections" dropdown in the top bar. 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 the second form, please be sure to fill out ALL possible times you and your partner are free, not just your current section times.

The deadline for section swaps is Tuesday, 1/23, at 5PM.

Reminder that today, Jan 15th, is MLK day so there will be no classes. LaIR office hours will start this evening at 6pm.

Here is a video of the last public speech MLK gave. The date was April 3, 1968 and he was assassinated the day after. Civil rights for all people, regardless of their ethnicity, is a cause that is still being fought for around the world.

If you haven't recently seen the I Have a Dream Speech, that is worth watching for its beautiful narrative and its influence on history. In 1967 MLK gave a speech at Stanford where he directly addressed students and faculty.

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.

Note: Remote SCPD students (if you are an SCPD student but able to attend a section on campus, you may disregard this message) should instead click on the "Remote SCPD Signup" link in the "Section" tab. Remote SCPD students will not be assigned a physical section; instead, you will have access to online recordings of one section this quarter, and another assigned Section Leader to grade your assignments.

In CS106A we use a free, "development environment" called Eclipse 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 Thursday the 11th of Jan, 7pm to 9pm in the LaIR. Try to install Eclipse before and come if you have any trouble.

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.

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 Jan 8th at 1:30pm in NVIDIA Auditorium.

0 comments

Leave a Reply

Your email address will not be published. Required fields are marked *