CSE 6040 - Exam Study Plans
Below are some thoughts and suggestions on studying for exams. This guide was written by TA's who have taken the class, combined with multiple semesters of student feedback on what worked and what didn't work for them.
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.
- 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)
- 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
- 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?)
- 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.