I'm having an exam in data structures and algorithms next week. I am always working on perfecting my study technique, so I'm going to share with you the techniques I'm using for this exam.
Note that these techniques don't work for all courses. There isn't a be-all, end-all way to study for an exam -- you need to figure out what approach works best for each individual course. With this said, you can try these tips and tricks to see if they work for you in your courses.
Summarize the course
The first thing I did when starting to study for the exam was to summarize the entire course. Well, not exactly the entire course, only the things that I felt was necessary to know about. This is a great technique, for a couple of reasons:
- When you summarize something with your own words you are more likely to remember it.
- If you can summarize something with your own words in a simple way, you probably know enough about it to pass the exam.
- If you stumble upon something you can't summarize with your own words, you know what you need to study up on.
- When finished, you have an awesome source for when you need to check up on something.
- You can use this document in the future when you need to refresh your knowledge about the course.
Our teacher gave us an entire list of areas that he felt was necessary for us to know about, so this gave me a good source of what to include in the summary. If your teacher isn't as friendly and helpful as mine (and I know most of them aren't), you'll just have to trust your gut and summarize the areas that you feel are necessary.
Don't try to cram all the information about everything into the summary. Then it won't be a summary anymore! Also, the skill of knowing what you need to learn and what you don't is a precious thing to have when processing information, not only in school.
Discuss the course material with a friend (or girlfriend!)
Another thing I did was to discuss the course material with my girlfriend (who I am lucky enough to be in the same class as). We took turns asking questions about the course material and helped each other explain concepts.
This is a great thing to do after having summarized the course. Maybe your friend found something important that you overlooked, or maybe you didn't have that good knowledge about something you thought you knew everything about after all.
When asking each other questions, try to ask questions where you need to think for yourself. Sure, it can be good to be able to recite textbook definitions and examples, but you learn more when actually thinking and applying concepts yourself. Things like: "Why is the time complexity for search in a binary tree O(log(n))?", "What can BFS for graphs be used for?", "What is the difference between DFS in trees and graphs?".
Do old exams
This is probably the best thing you can do for any course, and I always regret not starting with it earlier in the course. Doing old exams is a great way of discovering what you do and don't know about the course, and it also gives you a hunch about how the real exam is going to be like.
When doing old exams, there are a couple of tricks you can incorporate. What I usually start with is to actually print the exams. It is great to have the exam on paper instead of reading it from your computer, and you'll see just why in just a bit.
Don't look at the correct answers until after finishing the entire exam. This is something that I think most others do wrong. It is very tempting to look up the correct answer directly when you are done with a problem, but I find it much more rewarding to finish all exercises first. I believe this makes you work harder on the exercise. When looking at the correct answers directly it is very easy to just scribble down an "okay" answer instead of giving it your all. It is easy to fall into a mindset of "I know how to solve this exercise, so I don't have to do it fully right now. I'll just give it my full attention if it comes on the exam.", and this is not something you want.
(With this in mind though, it can sometimes be better to actually look up the correct answer for each exercise before continuing to the next one. Not doing it is great for when you have okay knowledge about the course, and are able to solve most exercises. Hovewer, if you struggle with every exercise I find that it is often better to look up the answers right away. You just have to feel for yourself what you get the most out of.)
When doing the exercises, write down any remarks or questions you have directly on the exam. I prefer to do it with red ink, but that's just my personal preference. When you are done with the exam you can go back and read through your questions. This is an effective way to remember what you had trouble with when doing the exam.
When you are finished with all the exercises, go through your answers, compare them to the correct answers and give yourself points. The main reason for doing this is so that you get a feeling for what grade your current knowledge will result in. This is a great way of evaluating how good it will go on the exam!
Summarize things that you feel unsecure about
After doing an old exam you probably found some things that you didn't know as well as you thought (or didn't know anything about at all!). Before starting to work on the next exam, take some time to summarize these things. I usually do it on a separate piece of paper, as it makes it easier for me to remember them. I also draw sketches in order to even better remember them.
Instead of doing it on a piece of paper, you can also do this in a digital document. Maybe in the summary that you wrote before. Actually, I think I am going to try this when studying for my next exam.
Keep an updated todo list
This is my last tip, and it's probably the one I like the most. It is easy to be overwhelmed with everything you feel the need to do when studying for an exam, so I always write down all my tasks in a todo list. This makes it way easier to get a grasp on what you need to do, and it keeps you from sitting around wondering what to do next. Just pick the next item on the list!
When starting to study for an exam, this list usually only consists of a couple of items for me. One item for summarizing the course, and one for each old exam that is available. I then continuously fill the list with new tasks when I think of them. It could example be to write code for a specific algorithm, summarize a specific area more thoroughly, etc.
I usually don't get around to ticking off all the items on the list, but that doesn't really matter. The important thing is to always have a next task to grab!
That's the main techniques I use when studying for an exam. I am constantly on the lookout for better, more streamlined techniques, so if you have any feel free to contact me!
See you later.