Please make note of the following exam dates because we do not allow make-up exams (other than for OAE or student athletics):

No other exam information has been posted yet. There will be an announcement on the main course web page when exam information is posted.

Final Exam

Scores, Curve, and Other Information:

Stats:

AVERAGE 42.3
MEDIAN 45
STDEV 10.3

Curve: We feel that the final exam scores are high enough as-is, so there is no curve applied to the final exam scores. Of course the grade cut-points are still being adjusted as needed to ensure a reasonable grade distribution.

You can pick up your final exam from the filing cabinets in the first floor of the Gates building, starting with the first week of spring quarter. If you have questions about exactly what you missed and why, please go pick up your exam and look it over first. The instructor, head TA, and Section Leaders don't have your exam and aren't able to answer detailed questions by email about what points you lost and why.

Regrade Policy:

The system for final exam regrades is the same as on the midterm. If you disagree with the grading of a programming problem, such as if you think your solution actually does work, or that your solution is more nearly correct than it was given credit for, you must download our ZIP Eclipse code project above, which will contain runnable testers for the exam problems. Type your code into the relevant project .java file(s), fixing any trivial syntax problems. Run it for yourself and see how nearly correct your solution is.

If after running the code files you still think your grade is incorrect, submit your exam to the instructor for a regrade. (Slide it under his office door.) You must include a cover page with a brief written explanation of what specifically you think was misgraded and why. You must also email your .java file(s) for the relevant problem(s) to the instructor so that we can compile and run your code to verify your claim. As part of your cover page, include copy/pasted output from the the test case results, so that we can to verify its correctness.

We will not accept any exam for a regrade unless it includes this cover page, and we will not re-evaluate grading of the correctess of any programming questions without a typed copy of your solution from the .ZIP / .java file being shown to us first.

Also note: When you submit an exam for a regrade, we will regrade your entire exam. If we notice anywhere that you were mistakenly given too many points, we will also correct this. So it is possible that a regrade request will result in you receiving a lower mark than what you started with.

All final exam regrade requests (other than simple score addition errors) must be submitted to the instructor within 7 days of the start of the following quarter (in this case, Autumn 2015).

Time/Place:

  • Date: Saturday, June 6, 2015
  • Time: 8:30 - 11:30am (3 hours)
  • Place: TBA
  • icon syntax reference sheet (will be given out attached to your exam as a reference; bring your textbook to reference any other Java syntax/libraries)

Rules and Information:

Same as on the midterm exam (see rules below).

Practice Exams:

  • icon practice final #1 | key (based on Spring 2014 practice final exam)
  • icon practice final #2 | key (based on Spring 2014 final exam)
  • icon slides from exam review session, led by our TA Elmer Le
  • More practice problems can be found from the links to past quarters below, and in your section handouts, and in the textbook.
  • Sample final exam(s) posted here are intended to be similar to the actual final. The number of problems and type of problems on the actual exam will be relatively similar to what is seen on these practice exams, though we do not promise that it will be exactly the same in length or in difficulty.

Practice Exams from Past Quarters:

If you want more practice problems, here are links to some past exams given in 106A by other instructors. They don't exactly match the current exam format, so they may be of limited use. Some of the problems on these tests don't match the topics, difficulty level, and/or type of questions we currently plan to ask. Also note that some of these quarters do not match our exam policies such as whether the test is open or closed-book/notes, etc., so any notes about such policies on these exams do not apply this quarter. These links are provided merely as a convenience to help you study.

Topics to Study:

The actual final exam will have roughly 8-9 total problems. Those problems will be selected from the following categories. For each category, you may be asked to read code (look at a piece of existing code and answer questions about it, such as writing its output), and/or write code (write a piece of code such as a method, class, or short program that solves a problem about that topic).

  • value and reference semantics: demonstrate your understanding of objects vs. primitive values by tracing code that passes several objects, primitives, or arrays as parameters
  • objects and classes: write a class and/or add behavior to an existing class
  • inheritance and polymorphism: look at a confusing piece of code involving inheritance and interpret its output; and/or, write a class that uses inheritance to extend some existing base class
  • arrays
  • multi-dimensional arrays (possibly from the pixels of a graphical image, possibly not)
  • collections: interpret the output of an existing piece of code that uses the collections ArrayList and/or HashMap, and/or write code that uses these collections to solve a problem
  • graphical user interfaces (GUIs): write a complete graphical program that uses GUI components and events to produce a given behavior
  • Note: Though the final focuses on material taught since the time of the midterm, programming is inherently cumulative in that new topics build upon old ones. So you may be asked to solve problems that involve, though not necessarily focus primarily upon, past topics such as strings, int, double, boolean, random numbers, loops, if/else, parameters, return, expressions, variables, constants, file input with Scanner,
  • The following topics are guaranteed NOT to be required to solve any problem on the final exam:
    • Karel the Robot
    • interfaces (taught in week 9 lecture)
    • Javadoc (taught in week 9 lecture)
    • "real" Java transition without Stanford libraries (taught in Week 10 lecture)
    • designing your own data structure (seen in some of the practice final problems from past quarters)
    • searching and sorting algorithms (taught in some past quarters)
    • Java layout managers as mentioned in the end of the GUI-3 slide deck (FlowLayout, GridLayout, BorderLayout, etc.)
    • graphical shapes not used in lecture/homework, such as GArc, GPolygon
    • converting numbers to/from other bases, such as binary (base-2) or hexadecimal (base-16)
    • do/while loops and the break or continue statements (regular while loops may be needed, though)
    • the switch statement
    • static methods or data (other than final constants)
    • any Stanford libraries not explicitly taught in class/homework
    • anything else not explicitly covered in lecture / section / homework

This document and its content are copyright © Marty Stepp, 2015. All rights reserved. Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the authors' expressed written permission.