Exam Dates

  • Midterm: Friday, July 21st 10:50am - 11:50am in SIG 134
  • Final part 1: Thursday, August 17th in your section
  • Final part 2: Friday, August 18th 10:50am - 11:50am in SIG 134
  • Contact Hunter if you need to make other arrangements (hschafer).

Results:

icon Final Key

You can now check your final exam score on Canvas. You may pick up your exam from the CSE main office between 9am and 4pm (closed for lunch 12 -1). Please wait to pick up your exam in person before asking grading questions

Stats:

 MEDIAN  79
AVG 76.7
question average
1. Inheritance/Polymorphism 9.4 / 10
2. Binary Tree Programming 8.1 / 10
3. LinkedList 11.9 / 20
4. Binary Tree Traversal 5.9 / 6
5. Binary Search Tree 3.7 / 4
6. Collections 8.1 / 10
7. Comparable 14.1 / 20
8. Binary Tree Programming 14.7 / 20

Regrades:

If you believe that one or more programming problem was incorrectly graded and you would like Hunter to regrade it, you must:

  • Type in the problem(s) to a Java file exactly as it appears on your exam.
  • E-mail Hunter a detailed description of why you believe your problem(s) were graded incorrectly. Attach the Java file with your code.
  • For the LinkedList question, if you can find ONE LINE that can be added/removed that would make your solution correct and tell us what that line is, Hunter regrade that problem at a 5 point charge. (That is, your score would be capped at 15 out of 20)
  • Give Hunter your original final exam either by dropping it off at the front office reception (after September 1) OR sliding it under his door in CSE 218 (before September 1)
  • All regrade requests must be received by Wednesday, October 11th (beginning of Fall quarter).
  • Hunter will regrade your entire exam meaning that your exam score may go down as a result of a regrade request

Final exam contents:

icon cheat sheet (will be provided as last page of exam)

The questions on the final exam will be selected from the following. Each question will be worth between 5-20 points:

  • Binary Tree Traversals: Perform pre-order, in-order and post-order traversals on a tree.
  • Binary Search Trees: Given a set of values, add them to a binary search tree.
  • 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. (similar to section 19 problems)
  • Comparable programming: Write a complete class and make it Comparable based on a given set of comparison criteria. (similar to section 17 problems) You will not be asked to extend another pre-existing class like some problems seen on past exams
  • Collections programming: Write a method that uses one or more class from the Java Collections framework (with focus on Sets and Maps and lists).
  • Binary tree programming: Add a method to the IntTree class from lecture. (similar to section 15, 16 problems)
  • Binary tree programming: Add a method to the IntTree class from lecture. Similar in spirit to the previous question but harder (likely involves modifying or building a tree).
  • Linked list programming: Add a method to the LinkedIntList class from lecture. (similar to section 6, 17 problems)

The following topics are guaranteed NOT to be explicitly tested on the final exam:

  • detailed knowledge of Big-Oh (some questions may ask you to solve them within a certain big-Oh limit, but mainly this is just to ward off extremely inefficient answers)
  • detailed knowledge of search/sort algorithms
  • tracing or writing code with 2-D arrays
  • catching exceptions
  • priority queues
  • input/output streams
  • abstract classes
  • inner classes
  • implementing an Iterator class
  • implementing a "generic" class (one that accepts type parameters such as <T>)
  • hashing

Practice Exams and Problems:

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.

Note: Several of these ask about sorting or ask you to write a class that extends another. You will NOT be asked these kinds of questions (though, you will have to write a class that implements the Comparable interface)

Additional practice problems can be found on Practice-It or by category here

Results:

icon Midterm Key

You can now check your midterm score on Canvas. Your exam wil be returned to you in section on Tuesday. Please wait to receive your exam before asking grading questions!

Stats:

AVG 83
 MEDIAN   88 
question average
Q1 (Recursive tracing) 13.7 / 15
Q2 (Recursion) 12.6 / 15
 Q3 (ListNode Manipulation)  11.6 / 15
Q4 (Collections) 17.4 / 20
Q5 (Stacks and Queues) 20.3 / 25
 Q6 (ArrayIntList Programming)  7.6 / 10

Low Grades: If you weren't satisfied with your midterm grade, please remember that it's only 20% of your grade -- there's still about 50% of your grade to be determined! If you want to calculate your current course grade, the syllabus describes the grading scale. You can also use the Grade-a-nator to help you compute your approximate grade.

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 Hunter to regrade it, you must:

  • Type in the problem(s) to a Java file exactly as it appears on your exam.
  • E-mail Hunter a detailed description of why you believe your problem(s) were graded incorrectly. Attach the Java file with your code.
  • For the Stacks + Queues question, if you can find ONE LINE that can be added/removed that would make your solution correct and tell us what that line is, Hunter regrade that problem at a 5 point charge. (That is, your score would be capped at 15 out of 20)
  • Give Hunter your original midterm either in person or slide it under her door in CSE218.
  • All regrade requests must be received by Tuesday, August 8th.
  • Hunter will regrade your entire exam meaning that your exam score may go down as a result of a regrade request

Seat Assignments:

Sieg 134: list (names shortened), map

Contact Jonathan Sanders if you have any questions about the seat assignments (jsanders@cs.washington.edu).

Midterm Content

icon cheat sheet (will be provided as last page of exam)

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):

  • ArrayList "mystery" (look at a piece of code that uses ArrayLists, and write its output -- video)
  • ArrayList programming (write a method that uses ArrayLists)
  • ArrayIntList programming (add a method to the ArrayIntList class from lecture)
  • Collection programming (write a method that uses Java collections such as Lists, Sets, and Maps)
  • stack and queue programming (write a method that uses Stacks and Queues)
  • linked list node manipulation (write a few lines of code to change a "before" picture of some linked nodes into an "after" picture -- video)
  • recursion tracing (look at a piece of recursive code, and write its output)
  • recursion programming (write a method that uses recursion)
  • The following topics are guaranteed NOT to be required to solve any problem on the midterm:
    • Java I/O, file processing, Scanner
    • programming with inheritance (extending a class, etc.)
    • writing an interface (though you might have to write a method that accepts a parameter of interface type, such as List, Set, Map, etc.
    • testing, debugging, commenting
    • grammars
    • Iterator
    • implementing Comparable (though you may have to be a client of TreeSet and/or TreeMap which require the elements to be comparable)
    • implementing sorting algorithms (though you may have to be a client of TreeSet and/or TreeMap which maintains the elements in sorted order
    • hashing

Practice-It has many sample midterms. We recommend that you practice on paper so here are PDFs you can print out:

Exam Rules and Information:

  • You must sit in your assigned seat.
  • We may ask to check your UW ID card during the exam so please have it ready.
  • You will have 60 minutes to complete the exam. You may receive a 10-point deduction if you keep your exam booklet open after time is called.
  • 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.
  • 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.
  • You don't need to write any import statements in your exam code.
  • You may use S.o.p for System.out.print and S.o.pln for System.out.println. Otherwise do not abbreviate any code on the exam.
  • Please be quiet during the exam. If you have a question or need, please raise your hand.
  • Corrections or clarifications to the exam will be written at the front of the room.
  • If you violate the University Code of Conduct during the exam, you may receive a 0% for the exam and possibly further punishment.
  • When you have finished the exam, please turn in your exam quietly and leave the room.
  • If you enter the room, you must turn in an exam paper and will not be permitted to leave the room without doing so.