# Exams Overview

## Midterms

This quarter's midterms will be in the form of technical interviews intended to simulate real-world questions that you may come across during the technical job search. Midterm 1 will cover content across June 22nd to July 13th, while Midterm 2 will focus on content across July 17th to August 5th. Each exam is tentatively worth 15% of your grade, subject to flexibility by 10% as outlined in the syllabus.

Given the live interview-based format, we recognize this may be a first-time experience for you all and can be stressful at first glance. However, these exams are intended to be low-stakes and target the core of DSA knowledge we expect you all to acquire. In these exams, our goal is to see if you can reason through and convey implementation ideas, conceptual understanding, and debugging to another person.

### Format

You'll have a roughly ~15-20 minute conversation with a TA to discuss various conceptual exercises and implementation design scenarios. During this time, you'll talk through your approach, break down the structures and algorithms involved, identify pros/cons, and pinpoint runtimes. With this format, you may receive nudges when you're stuck, and discuss with your TA freely. By default, these interviews will be conducted in-person. However, we are happy to accommodate your needs and provide remote interviews as needed.

### Study Preparation

Review the material across the relevant time ranges from lectures, exercises, and section. We highly recommend preparation that focuses on explaining out loud to an audience, such as mock-teaching to a friend (or rubber ducky). We are placing a greater emphasis on reasoning and problem-solving over memorization, so we encourage you to extend the course content into your own unique practice problems and design exercises to truly stretch the bounds of your understanding.

### Grading Process

For Midterm 1, we will be grading primarily on effort and engagement. For Midterm 2, as you build your interviewing muscle further, we will place a greater emphasis on technical reasoning and accuracy.

- **Preparation & engagement** (Primarily MT1): showing up prepared, working through the problem, and remaining in conversation.
- **Communication:** clear reasoning and verbal feedback throughout.
- **Technical reasoning** (Primarily MT2): your thinking across structures, tradeoffs, and runtime is sound and in line with the intended answer or approach for a given problem.

### Accommodations

If you have DRS accommodations, or you can't make any of the available interview slots and require a makeup exam, please contact the instructor at aelysha@uw.edu or create a private EdStem post as early as possible, and we'll arrange an alternative.

## Final Exam

This quarter's Final Exam will occur on Friday, August 14th from 1:10 - 2:10 PM in PCAR 395. This exam will be a cumulative, handwritten final intended to be completed within 55 minutes. The final is tentatively worth 30% of your grade, subject to flexibility by 10% as outlined in the syllabus.

### Policies

- On your desk, you may only have your Husky Card, water, snacks, notes, and writing utensils.
    - You must bring your Husky Card, or some form of ID, to ensure our staff can cross-check with our course roster.

- You are permitted exactly 2 pages of personal notes (front and back) on 8.5 x 11 or A4 paper. These may be handwritten or printed. You will be submitting this at the end of your exam with your responses.

- If you need to step out briefly for a break or to use the restroom, we will hold onto your exam until you return.

- If you arrive late to the exam, we are unable to provide you additional time.

- Partial credit will only be awarded for work written within this booklet.

- If you run out of room on a page, indicate where the answer continues. Try to avoid writing on the very edges of the pages: we scan your exams and edges often get cropped off.

- Please ensure that your handwriting is legible and avoid the use of cursive. If our staff is unable to decipher your response, this may impact your score.

- Do not discuss with other students in any format, digital or verbal, about your exam - both during our timing on the 14th and after - until grades are released.

- Do not utilize online resources, generative AI, notes, peer help, or other course materials during the exam outside of your 2 allotted cheat sheets.

- Referencing solutions from past internal final exams in this course is not permitted.

- We will compare responses across students and against online tools to check for potential academic misconduct.

- We will also cross-check your responses in comparison to your cheat sheets to check for potential academic misconduct.


### Question Types

The exam will be structured across the following 3 major question types: 

- Algorithmic Operations (Pages 2-3, 3 Main Questions)

    - This category will focus on basic tracing of common algorithms and key operations/methods for certain core data structures of this course. You will be given some example input or diagram, and asked to provide responses to various follow-up questions related to the results of a given method, traversal, etc. These will closely mimic exercise-based questions from section and in your homework.

- Code Analysis (Pages 4-10, 2 Main Questions)

    - This category will focus on interpreting several lines of code in Java provided to you in order to identify a bug. The bug could either be due to the loss of a line of code, or an existing line of code containing incorrect logic. You will be given a hint on which case it may be.

    - For the first question, you are guaranteed that this category will cover either Binary Search Trees or Ternary Search Trees. You will not need to debug Trie, AVL, or LLRB code. For this, all code is referenced from a source by Kevin Wayne on [GitHub](https://github.com/kevin-wayne/algs4).

    - For the second question, you are guaranteed that this category will cover either Iterative DFS, Recursive DFS, or Iterative BFS For this, all code is referenced from slides and documentation by Kevin Lin: [Graph Traversals](https://github.com/kevinlin1/huskymaps/wiki/Graph-Traversals).

    - Given that this will be a 'new' question type you are exposed to in this course, you can showcase your understanding of the code itself and your overall thought process to earn significant partial credit, in the case you cannot identify the bug. 

- Solution Design (Pages 11-13, 1 Main Question)

    - This category will focus on combining your knowledge for graph design decisions and graph algorithms, which you can discern based on keywords and key characteristics of a given problem. This will require you to brainstorm ways in which you may modify existing out-of-the box algorithms to suit the conditions of a specific problem.

### Study Preparation

- On August 9th, we provided you with general guiding questions per general topic/lecture that we encourage you all to have a complete understanding of. 

- On August 10th Evening, we will be providing Practice Exam 1 for you all to prepare that we will review together in class. Solutions will be released after Wednesday's lecture.

- On August 10th Evening, we will be releasing Homework 8, which aims to directly prepare you for the exam with exercise-based questions mapped to the 3 major categories. You will have until August 17th to complete this, and can see if you are incorrect on any response live. Given its length and difficulty during Week 8, accommodations will include: 

    - Extended Deadline

    - Autograding (see if you're incorrect)

    - Review of select questions in Section and Lecture

    - Earning a 75% or higher will allow you to earn a score of 100% overall.

- On August 11th Evening, we will be providing Practice Exam 2 for you all to prepare that your TAs will review with you in section. Solutions will be released after Thursday's section.

### Grading Process

Exams will be scanned and graded by our teaching team in Gradescope through Week 9 to ensure you all receive feedback and scores promptly.

### Accommodations

If you have DRS accommodations, or face illness/emergency on the date of our final, please contact the instructor at aelysha@uw.edu or create a private EdStem post as early as possible, and we'll arrange an alternative.