CSE 6040 - Exam Prep

This will give you some insight into the role of exams in the class as well as suggest preparation tips. For rules and rules FAQ, please go directly to those pages.

Exam Intent & Key Considerations

Knowing the exam philosophy may not be directly useful to you, but hopefully it should provide some peace of mind. We put a great amount of effort into the exam process and continuously work to improve it.

  • Exams are designed to test your mastery of the concepts introduced in the course material. You will be asked to apply your skills on a new problem which may require using functions/methods not covered in the notebooks. Don't worry, we will point you in the direction may provide examples.
  • Exams account for 50% of your total grade. The homeworks account for the remaining 50%. Assuming you complete all of the required homework, you need to score an average of 60% on the exams to get an overall grade of "B", or only 20% to "pass" the course. (You can do the math yourself for the other grade outcomes.) The difficulty of the exams reflects this weighting.
  • The exam exercises are independent, and are not ordered in terms of difficulty. Feel free to solve the exercises in any order. The point values indicate our estimation of the relative difficulty of the exercises.
  • You may not have to complete all exercises on the exam in order to score 100%. We will post a "cutoff" for achieving 100%. Ex: there may be 18 possible points but the scoring cap is 15 points, meaning that your score will be X/15 with a cap of 100%
  • The time limit, exercise point values, and 100% cutoff are determined by our internal testing. These are revealed a few hours before the exam is released. The exam is in development/testing until very close to the release date, so this information is not available earlier.
  • The time limits include a small cushion of time for technical issues, so please review the Release Notes and Rules page before each exam so you know how to quickly begin troubleshooting.
  • SUBMIT AFTER COMPLETING EACH EXERCISE! Points are not locked in until they're submitted and the autograder awards points. This takes minimal time so there is no reason to not do this.

Exam Preparation


Recommended Review Plan

If you do not have much time for preparation, try to do at least the following.

Two practice problems like a notebook

Review as much of the following materials as you have time for. If you have time for some but not all of it, select the items that you think would be most useful to you. For example, if you struggled with a specific notebook, review that notebook and the corresponding office hour recording. If you struggle with general coding, review the Skills office hours.

Tier 1 (directly useful):

  • Notebook solutions (yours + instructor)
  • Practice midterm problem solutions (+ videos if applicable)
  • Office Hour recordings
  • Programming Skills Office Hour recordings

Tier 2 (useful in some cases):

  • Any reference sites for specific concepts (ex: specific geeksforgeeks pages, regex101, etc.)
  • Piazza posts from other students + Instructor responses

Know your Strengths & Weaknesses

The most important thing you can do with regard to timed exams is to know your strengths and weaknesses. Consider what you struggle with in the homeworks and apply that to taking an exam.

*Also if you have exam anxiety, prepare for that as well. *

Recommended minimum review plan

If you do not have much time for preparation, try to do at least the following.

Do two practice problems like a notebook

  • Choose two practice problems, preferable from a more recent exam and preferable with a topic or concept that was more difficult for you than others.

Do one practice problem like an exam

This step is surprisingly effective, and something I would not consider skipping over unless you have near 0 time to prepare for the exam. This not only get you some practice for a limited time setting, but also helps stress-test your skills and figure out what you actually need to work on.

  1. Pick one of the Tier 1 or Tier 2 practice exam problems (don't look at them ahead of time, definitely don't look at the solutions)
  2. Setup your computer + environment the same way it'll be setup when you take the exam. That means one monitor (external screen instead?) and all other tech
  3. Consider taking it at roughly the same time if possible (remember how we used to do SAT study tests early in the morning just like the real SAT?)
  4. Prepare the resources you will use during the exam the same way.

Purpose: This helps you identify what concepts you struggled with, and what skills (see Exam Skills section) you may struggle with. You might be inclinced to sit there and solve the questions fully, but you need at least a few practice runs of taking it the exam way, which means solving as many exercises as you can in a specific time window.

Don't get demoralized: After your first run you may get a bit demoralized but please don't! This is a new experience for many people, and something you will get better at through this class and eventually through job interviews and other real-world situations.

Exam Skills


This section is maybe a little less tangible than the others, but we believe this should still be generally applicable.

General Problem Flow

Read and Understand the problem

Read the explanation of the problem, pick out the important parts and identify the inputs/outputs. This skill cannot be undervalued--you will always have to use this skill, and this will help you immensely on the exam.

Break down the problem

Take the problem and break it down into steps to start working on. Even if the steps are spelled out for you in the exam, you still need to map it out for yourself and figure out how to solveit.

Convert problem steps into pseudocode

Think of this as writing a problem into functional steps in English. For example, if you are asked to clean a dataset with temperature data, one of your steps might be "convert Fahrenheit to Celsius with one decimal point". You can do a search on this term for more details and examples.

Convert pseudocode into Python

Use your pseudocode to code your solution. This step may sound like the hardest, but if you logically split the problem and wrote good pseudocode, it shouldn't be that difficult. You can do a search on this too, like for the previous example you can google "Python convert Fahrenheit to Celsius", followed by "Python round column data to one decimal point".


Other skills

*These skills are almost as important as the general problem-solving skills

Googling

You've probably done it a lot by now, but this skill is definitely useful. Here are some suggestions you can try depending on what you're looking for.

  • Put "Python" in the search to make it more likely that you'll see Python-related answers
  • If you're referencing one of the major packages, include that package name "Pandas " or "Numpy "
  • Do a broader search if your precise search isn't yielding good results (weak example: "Python rounding column data" vs. "Python round temperature column data to one decimal point")
  • Learn to sift through the results. Some people like geeksforgeeks, some prefer stackoverflow, others like using the documentation. There is no 'best' resource, but you should be familiar with the ones you like. Example: I learned a while ago to take note of the Stackoverflow post date, as posts from 10+ years ago are helpful but I may have to look for the updated syntax

Test Day Prep

I know a lot of people are busy so it's unlikely that you'll be able to do all of this beforehand, so just look at the suggestions and pick and choose your priorities.

Prepare your materials (1+ days before)

  • Download your notebooks and instructor solutions ahead of time. Pick a place to keep them locally so you can look at them quickly
  • Organize your browser bookmarks folder (various useful sites you've been to, specfic piazza posts that were helpful)
  • Bookmark 'tools': PythonTutor site, Regex101, any other sites like that

Test Day

  • Set up your technology (monitor, webcam, keyboard and mouse)
  • Open & organize the resources you want to use (notes, things organized in browser tabs, etc.)
  • You may want to have your exam in one browser window with your resources in a second. You don’t want to lose time searching for your exam in a browser with fifteen open tabs.
  • Make sure you know where every resource you may want is. You do not want to have to go to Canvas/edX to download something, you should have this all stored locally ahead of time.
  • Tell your roommate/housemate/kids, etc. that you are taking an exam and should not be disturbed
  • Move your mobile phone and other devices to another room or at least out of reach.
  • Get everything you need to be comfortable for a 3-4.5 hour test. It's better to have this close and easy to grab so you don't have to break your concentration to go find it. This includes things like:
    • Drinks and snacks
    • Sweatshirt

Taking the exam

  • Before you get proctoring setup, make sure you're fully ready to start (see Test Day steps above). Once you're ready, take a deep breath and get started. Expect 5-10 minutes to get proctoring started. When you're in Vocareum and start the exam, your timer will start.
  • As you read through the exam, go quickly but don't speed through it and miss crucial info. Keep in mind we wrote everything from scratch for this specific exam. Background information may help you better understand the problem, but don't dwell on anything.

Pro-tips

  • Your state of mind is often more important than sitting there and coding 100% of the time. Take a 2-5 minute break if needed
  • An exam time limit of X hours doesn't mean you will code for X hours. The time accounts for time to breakdown the problem, understand it, and develop and debug the solution
  • Follow your proven approach: there is no need to get fancy on the exam
  • Ugly code and beautiful code both get the same number of points, as long as they pass the autograder
  • Don't overthink things, we're not trying to trick you. Problems may have many steps, but none are attempting to mislead you
  • Don't get stuck on one exercise. Even if you spend 20 minutes on it and can't get it to pass, move on to another one and then come back later.
    • You don't want to accidently spend 45 minutes on an exercise and still not get it at the end when you could have completed the next problem and earned those points.
  • The order of questions is not based on difficulty; skip around if needed. No need to do a 3pt question if you only need 1pt to hit the scoring cap and there's a 1pt question you haven't solved yet.
  • Use the provided debugging info. See the Tier 1 practice exam problem for examples
  • A single incorrect character in a column title is considered wrong and may not be obvious to you. Check the simple things first, like a missing Return statement in a function. Don't automatically assume your error was more substantial.
Updated: 2024-01-08