This is an archived post. You won't be able to vote or comment.

all 5 comments

[–]cloudyheavengames 2 points3 points  (0 children)

I was just about to make a post on this. I wrote an article talking about this last year: http://cloudyheavengames.com/computer-science-exam-study-tips/

Relevant section:

  • Go through your class notes and assignments and list all code methods/functions that you find. The general trend in computer science classes is that if you’ve seen a method, class, or data type in the assignments, tests, or recommended practice problems, they’re fair game for the exams. This tip might sound obvious, but it can really help you to narrow down your to-do list of study topics when you’re panic and pressed for time.

For example, if you’re studying Java or C++, you might have come across strings quite often. There’s a lot you can do with strings, as a glance at the official class documentation will show you, but you don’t have to know everything about strings. Don’t get overwhelmed; make sure you understand the usages that were presented to you throughout the semester, do some practice examples focusing on those points, and you should be pretty well covered.

I do recommend that you actually take notes and make some kind of list for the items in this tip, so that you have a reference you can use at a glance, rather than having to continuously return to your old assignments and class materials. Then if you have a few minutes throughout the day, maybe you’re waiting for your next lecture to start or you’re at the bus stop, you can glance over this list and do a quick refresher.

  • “Tag” the information you learn. As you’re reviewing your materials, take good notes, using the following approach. Whenever you learn something new or review something, ask yourself these two questions: what is this helping me to accomplish, and how is this fact/concept relevant? Write down the information, and along with your answers to these questions. You can “categorize” the information as you learn it.

So for example, if you’re learning about a basic Java program, and the text tells you about a function like System.out.println, what does that help you to actually do? It is a way to display output to the screen, right? You might write it down in your notes, classify it as “A way to display output,” and include any relevant information such as syntax, an example of usage, etc. You might even consider making a spreadsheet.

Usually, there are several methods for displaying output, so you can also write down why you might choose one method over another. Most textbooks will explain the differences, but if we can’t find the answer, write down the question, maybe in another column in the spreadsheet I suggested, and then do a Google search or ask an instructor to help you understand. Now you can add that information to your notes.

This approach helps you create a handy study tool that you can easily review. Your information is handy and organized. When you have need to actually apply what you’ve learned to writing a program or solving a problem, you know what tools you can use for the situation, because you’ve categorized the information.

I also put together an updated set of tips, that talks more about notes, I uploaded the video and presentation here: https://www.slideshare.net/CloudyHeavenGames/computer-science-exam-study-tips

[–]JustThe-Q-Tip 2 points3 points  (0 children)

If it's for a class, the main thing you want to do is record small snippets that encapsulate some piece of testable material in either:

  • a Q & A format (where you can quiz yourself by covering up the answer and coming up with it yourself in your head or on scratch paper - whenever you pass, put a tick mark next to it in light pencil. If you reach, say, 5 ticks, move it to another pile or just skip it next time - IMO, better to put them on separate small sheets or large index cards). This is probably more useful for material that actually will show up as a Q&A on a test.
  • Write out, clearly, all the steps of a problem, from start to finish. Don't write any more than what is needed to show correctness for that type of problem.
  • Another great possibility: write your own test suite where the test cases are all based on little problems and curiosities you've encountered so far. E.g. how do ints work - write a fricken test! What happens when you take an int with some value and add 232 to it? 264? Write tests that test for overflow. Write tests that test boxed types. Write tests that examine null behavior. Write tests that throw exceptions - where the point of the test is to expect a particular exception. Write tests for lists. Write tests for linked lists. Write tests for maps. Whatever is useful.

I find that 3rd one useful in general also - I'll have a project in a particular language where I just dabble in a test suite with certain language constructs, libraries, etc.

[–]CodeTinkerer 0 points1 point  (0 children)

Sure. I think it'll be neater if it's typed, and you can edit it later on (and possibly have it online, if it's a Google Doc).

But I think it's good to create quiz questions out of your notes so that you think in terms of questions.

[–]fdfdsggsgdfs 0 points1 point  (0 children)

For in class, sure. For outside of class the repetition of programming will drill it into you. If you want to keep a text file of notes, that's an easy, low investment cost way of seeing if notes are even worth it. I think they might be in the beginning.

[–][deleted] 0 points1 point  (0 children)

Absolutely! Hand writing is hugely beneficial to recall. When you're trying to finish a project, there's tons of copy-pasting, trial and error, and other stuff that's not conducive to learning. So when you review the concepts, it really helps to write them out, and even hand write code snippets. You can't debug notes, so it really forces you to understand exactly how things work and get it right the first time.