Exams

Important Dates:

  • Friday, July 26 : Midterm Exam, 10:50-11:50AM
  • Sunday, August 11: Last day to change to or from S/NS grade option; last day to drop courses using Annual Drop.
  • Thursday, August 22 : Final Exam part 1 in your section
  • Friday, August 23 : Final Exam part 2, 10:50-11:50AM

Please contact Jonathan Sanders if you need to make other arrangements for exams (jsanders@cs.washington.edu).

Seat Assignments:

  • Gug 220 (all sections), list, map

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

Exam Rules and Information:

  • You will have an assigned seat and you must sit in that seat. If you arrive for the exam and find someone else in your seat, ask them to move because we will move students to their assigned seats. We will take pictures of the room to help us verify that students sit in their assigned seats (please contact us if you have a concern about this). Students are expected to make a reasonable effort to sit in their assigned seat. Students who demonstrate an egregious disregard for the seating assignments will receive a 5-point penalty (e.g., if a student goes to the wrong room or refuses to move when asked to).
  • 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 midterm and 60 minutes for each session of the final. 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. At the end when time is called, you are required to stop writing and close your exam. Students who look at the exam before being told to begin and students who make changes to their exam after time is called will receive a 10-point penalty. Students who do not close their exam booklet when time is called may also receive a 10-point penalty.
  • The exams are closed-book and closed-note. 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.
  • There will be a cheat sheet included as the last page of the exam. Space will be provided for your answers. If you need additional scratch paper, raise your hand and a TA will give it to you. You are not allowed to use your own paper during the exam.
  • 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 are, however, required to declare all data fields as private, to use generics properly, and to declare variables and parameters using interfaces when possible. The midterm cheat sheet mentions important restrictions on stacks and queues that you must follow.
  • Unless otherwise specified, you should write each solution as a public instance method. You may define helper methods as part of your solution, but they should be declared to be private.
  • You are allowed to abbreviate "compiler error" and "runtime error" for the inheritance question on the final (as in "ce" and "re" or "c.e." and "r.e."), but you should otherwise NOT use any abbreviations on the exam.
  • You don't need to write any import statements in your exam code.
  • You are not allowed to use advanced material to solve exam problems. In general, you are restricted to the classes and methods listed on the exam cheat sheet.
  • You are not allowed to use break, continue, a return from a void method, try/catch, or Java 8 features.
  • For standard Java classes such as Math and String, you are limited to the methods listed on the cheat sheet. You are not allowed to use the Arrays or Collections classes or other standard classes and methods that aren't included on the cheat sheet.
  • Please be sure that your answer is clearly indicated. This is particularly important if you provide more than one answer or if you have notes in addition to your answer. You can draw a box around the answer you want to have graded and you can draw an "X" through anything that you do not want to have graded.
  • You do not need to turn in scratch paper unless you have all or part of an answer on that sheet of paper (you can take the other sheets of paper with you). If you have a sheet of paper with all or part of an answer, please write your name on that sheet of paper, staple the entire sheet to the end of your test (not in the middle) with a single staple in the upper-left corner, and clearly indicate under the corresponding problem that your answer is attached on an extra sheet of paper. A stapler will be available.
  • Please be quiet during the exam. If you have a question or need assistance, please raise your hand.
  • When you have finished the exam, please turn in your exam quietly and leave the room.

After the Final

  • Average was 75.9, Median was 78.5
  • Final key
  • Regrade policy
  • Regrade requests must be submitted before Wednesday October 9th at 11:00 pm. Results of the requests will be sent after the deadline.

Final

Content

Material from all quarter is considered "fair game" for questions on the final. The actual final exam will have 8 total problems. Those problems will correspond to the following kinds of questions (and no other kinds of questions):

  • 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 8/15 problems).
  • Comparable programming: Write a complete class and make it Comparable based on a given set of comparison criteria (similar to section 8/13 problems).
  • Collections programming: Write a method that uses one or more class from the Java Collections framework (with focus on Sets, Maps and Lists).
  • Binary tree programming: Add a method to the IntTree class from lecture (similar to section 8/6 problems).
  • Binary tree programming: Add a method to the IntTree class from lecture. Similar to the previous question but a bit harder (similar to section 8/8 problems).
  • Linked list programming: Add a method to the LinkedIntList class from lecture (similar to problem 2 onward from section 7/11).

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

  • detailed knowledge of Big-O (some questions may ask you to solve them within a certain big-O limit, so you do need a basic understanding)
  • detailed knowledge of search/sort algorithms
  • tracing or writing code with 2-D arrays
  • catching exceptions
  • priority queues
  • input/output streams
  • abstract classes
  • implementing an Iterator class
  • implementing a "generic" class (one that accepts type parameters such as <T>)
  • hashing
  • extending a pre-existing class for the Comparable problem

Resources

After the Midterm

  • Average was 74, Median was 77
  • Midterm key
  • Regrade policy
  • Regrade requests must be submitted before Tuesday Aug 13th. Results of the requests will be sent after the deadline.
  • The midterm is worth 20% of your grade - that means about 50% of your grade is still to be determined! If the midterm didn't go as well as you would have liked, come talk to me about study tips and exam approaches to use on the final. You can also use Grade-a-nator to compute your approximate grade so far.

Midterm

Content

Material from Weeks 1-5 is considered "fair game" for questions on the midterm. The actual midterm exam will have 6 total problems. Those problems will correspond to the following kinds of questions (and no other kinds of questions):

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

  • programming with inheritance (extending a class, etc.)
  • inheritance / polymorphism mystery
  • 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
  • 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

Resources

  • icon cheat sheet (will be provided as last page of exam)
  • icon practice midterm #1 (18au's midterm) (iconanswer key)
  • icon practice midterm #2 (19wi's midterm) (iconanswer key)
  • icon old exam question database
  • icon Practice-It!
    • Note: Practice-It! has many full CSE 143 midterms which can be great to practice to help you with timing, but be careful since these exams are quite old and have problem types that are guaranteed to not be on your exam; great examples of this are inheritance and programming LinkedIntList with loops. If you are curious what is and will not be on the exam, re-read the section above.