Midterm and Final Exams



Exam Details

Midterm Exam
Friday, July 24, 2015 (10:50
11:50 am, BAG 131)

Final Exam (Part 1)
Thursday, August 20, 2015 (in your registered section)
Final Exam (Part 2)
Friday, August 21, 2015 (10:50
11:50 am, BAG 131)


Exam Rules and Information

Seat Assignments

You must sit in your assigned seat: list, map

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 external correctness (proper behavior and output) and not on internal correctness (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 your exam is open or you continue writing before the exam or after time is called, you will receive a 10 point penalty.

Final Details

You will have two sessions, each lasting 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.

Final Solution

Solution Download

Exam Regrades

Exams are graded collectively by the course staff, so individual TAs have less power to deal with exam grading issues. A TA can correct obvious errors like an addition error or an obviously correct answer that has been marked as incorrect. For more detailed grading issues, you should request a regrade.

If you believe that one or more programming problem was incorrectly graded and you would like it regraded, you must:
  • Write a description for why you think you deserve more points on your solution
  • Give the description attached to your physical exam to the CSE front desk to be put in Chloe Lathe's mailbox. Please attach a note to the exam mentioning that it should go in Chloe Lathe's mailbox..
  • All regrades must be received by Friday, October 9th. No regrades will be accepted after this day for any reason.
  • Chloe will re-grade your entire exam, and you may lose more points than you receive back.
Please note: This is not an opportunity to turn in a second answer. It is intended to allow you to show how close your original answer was to being right.

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 be split into two sections, each lasting 60 minutes. Each section will have a combination of mechanical style questions and programming style questions. You should expect 3-5 questions on each part. 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 Programming. Write a method that uses one or more class from the Java Collections framework (with focus on Sets and Maps) (same as the midterm but harder).
  • Inheritance and 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)
  • Abstract Classes
  • Implementing a "generic" class (one that accepts type parameters such as )
  • Inner Clases
  • 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.

Sample Practice Final

Our actual final exam will be most similar to the practice exam above (ignore the Collections Mystery problem). Additional practice problems can be found in the PDFs below:

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.

Midterm Solution

Solution Download

Exam Regrades

Exams are graded collectively by the course staff, so individual TAs have less power to deal with exam grading issues. A TA can correct obvious errors like an addition error or an obviously correct answer that has been marked as incorrect. For more detailed grading issues, you should request a regrade.

If you believe that one or more programming problem was incorrectly graded and you would like Riley to regrade it, you must:
  • Write a description for why you think you deserve more points on your solution
  • Put the description attached to your physical exam under Riley's door (CSE 214).
  • All regrades must be received by Friday, August 7th. No regrades will be accepted after this day for any reason.
  • Riley will re-grade your entire exam, and you may lose more points than you receive back.
Please note: This is not an opportunity to turn in a second answer. It is intended to allow you to show how close your original answer was to being right.

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

Material from Weeks 1-5 is considered "fair game" for questions on the midterm. The actual midterm exam will have 6-8 total problems. Those problems will be selected from the following kinds of questions (and no other kinds 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.
  • ArrayList Mystery. Given a piece of code that uses ArrayLists, determine the output for various inputs. Note that this question will involve reference semantics in some way!
  • 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.
  • Grammars, regular expressions
  • Testing, Debugging, Commenting


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.