Midterm and Final Exams



If you need a left-handed desk for the exams, fill out this survey. It closes on Friday, October 21 at 4pm


Exam Details

Midterm Exam
Wednesday, Nov 2, 2016 (5:30
6:30 pm, Kane 130)

Final Exam
Tuesday, Dec 13, 2016 (12:30
2:20 pm, Kane 130)


Exam Rules and Information

Seat Assignments

You must sit in your assigned seat. Seat Assignments for Kane 130 main floor: list, map.
Contact Jonathan Sanders if you have any questions about the seat assignments (jsanders@cs.washington.edu).

Bring Your UW ID

We may ask to check your UW ID card during the exam so please have it ready.

Closed Book

The exam is closed-book. You must work alone and may not use any computing devices of any kind including calculators or digital copies of the textbook. Cell phones, music players, and other electronic devices may NOT be out during the exam for any reason.

Coding Style

Unless a question specifically mentions otherwise, the code you write will be graded purely on whether it behaves properly as expected, not on style. So, for example, redundancy or lack of comments will not reduce your score.

Academic Integrity

If you violate the University Code of Conduct during the exam, you may receive a 0% for the exam and possibly further punishment. If you continue writing after time is called, you will receive a 10 point penalty.

Final Details

You will have 110 minutes to complete the exam. We will distribute the exam early and you can read and fill out the cover page of the exam, but you should not look at the exam questions until you are told to begin.

Sample Solutions

Download


Exam Regrades

If your exam score was simply added up incorrectly, take it to your TA and they'll fix it for you. If you believe that one or more programming problem was incorrectly graded and you would like Adam to regrade it, you must:
  • Type in the problem(s) to a Java file exactly as it appears on your exam. DO NOT EDIT YOUR ANSWER.
  • E-mail Adam a detailed description of why you believe your problem(s) were graded incorrectly. Attach the Java file with your code.
  • Put your physical exam under Adam's door (CSE 444).
  • All regrades must be received by Friday, December 23. No regrades will be accepted after this day for any reason.
  • If you submit a frivolous regrade (i.e., you want more points but your answer is incorrect and you disagree with the partial credit you got), Adam will re-grade your entire exam, and you may lose more points than you receive back.

Cheat Sheet

There will be a cheat sheet included inside your exam. Space will be provided for your answers and you may use the back of the cheat sheet as scratch paper.


Exam Format

The final exam will have the following types of questions:
  • Binary Tree Traversals. Perform the three standard traversals on a given binary tree.
  • Binary Search Tree Insertion. Given a set of values, insert them into a binary search tree.
  • Collections Mystery. Given some collections code (it will involve a map), write the output.
  • Polymorphism Mystery. Given a set of classes with inheritance relationships, a set of variables declared using those classes, and a set of method calls made on those variables, write the output.
  • Comparable Programming. Write a complete class and make it Comparable based on a given set of comparison criteria. (Note that many of our sample problems include inheritance but your exam will not.)
  • Binary Tree Programming (Traversal). Add a method to the IntTree class from lecture.
  • Binary Tree Programming (Modification). Add a method to the IntTree class from lecture.
  • Linked List Programming. Add a method to the LinkedIntList class from lecture.

Untested Topics

The following topics WILL NOT appear on the exam:
  • Java I/O, File Processing, Scanner
  • Programming with inheritance (extending a class, etc.)
  • Writing an interface (you will have to use interface types such as List, Set, Map, etc.)
  • Testing, Debugging, Commenting
  • Implementing Iterators
  • 2-D arrays
  • Detailed knowledge of Big-Oh (some questions will ask for a Big-Oh Limit though)
  • Searching and Sorting
  • Recursive Backtracking (recursion will definitely be needed, but not specific backtracking problems)
  • Catching Exceptions
  • Priority Queues
  • Implementing an Iterator class
  • Hashing


Practice-It

Practice-It has many sample finals. We recommend that you practice on paper (see below).


Practice Exams

We strongly suggest that you try to solve all of these problems yourself, on paper, without a computer, and without looking at the answer key until you're done. You may also want to time yourself to practice your pacing.

Midterm Details

You will have 60 minutes to complete the exam. We will distribute the exam early and you can read and fill out the cover page of the exam, but you should not look at the exam questions until you are told to begin.

Sample Solutions

Download


Exam Regrades

If you believe that one or more programming problem was incorrectly graded and you would like Adam to regrade it, you must:
  • Type in the problem(s) to a Java file exactly as it appears on your exam. DO NOT EDIT YOUR ANSWER.
  • E-mail Adam a detailed description of why you believe your problem(s) were graded incorrectly. Attach the Java file with your code.
  • Put your physical exam under Adam's door (CSE 444).
  • All regrades must be received by Friday, November 18. No regrades will be accepted after this day for any reason.
  • If you submit a frivolous regrade (i.e., you want more points but your answer is incorrect and you disagree with the partial credit you got), Adam will re-grade your entire exam, and you may lose more points than you receive back.

Cheat Sheet

There will be a cheat sheet included as the last page of the exam. You may remove this from your exam if you wish once the exam begins, but be sure to hold the staple when you remove the exam because otherwise your exam is likely to come apart. Space will be provided for your answers and you may use the back of the cheat sheet as scratch paper.


Exam Format

The midterm exam will have the following types of questions:
  • Recursive Tracing. Given a recursive piece of code, determine the output for various inputs.
  • ListNode Before & After. Given a "before" and "after" picture of a linked list, write code to turn the "before" picture into the "after" picture.
  • ArrayIntList Programming. Write a method inside the ArrayIntList class from lecture.
  • Stacks & Queues Programming. Write a method as a client of stacks and queues.
  • Recursive Programming. Write a method that uses recursion.
  • Collection Programming. Write a method that uses Java collections such as Lists, Sets, and Maps.

Untested Topics

The following topics WILL NOT appear on the exam:
  • Java I/O, File Processing, Scanner
  • Programming with inheritance (extending a class, etc.)
  • Writing an interface (you will have to use interface types such as List, Set, Map, etc.
  • Testing, Debugging, Commenting
  • Comparable
  • Iterators


Practice-It

Practice-It has many sample midterms. We recommend that you practice on paper (see below).


Practice Exams

We strongly suggest that you try to solve all of these problems yourself, on paper, without a computer, and without looking at the answer key until you're done. You may also want to time yourself to practice your pacing.