Exam Preparation

As the scores on the first exam were, on average, lower than one might hope, I decided to prepare some suggestions for how to study and learn in this course. These should particularly help on the exams but should also help on the projects, as well as potentially being applicable to other courses.

Come to class.
As discussed at the beginning of the semester and again before the exam, you will be expected to learn the union (not the intersection) of the material covered in class and in the assigned readings from the textbooks. This means that if you miss class, you should find a way to make up the material that you missed. You can do this by getting notes from classmates and discussing the material with them as well as by attending office hours. However, while both of these activities are recommended in their own right (see below), you would be better off if you attended class in addition to, rather than instead of, working with classmates and attending office hours.
Read the books.
Again, since you are expected to learn the union (not the intersection) of the material covered in class and in the assigned readings from the textbooks, you should actually read the textbooks. Just because the exams are open book does not mean that you can put off looking between their covers until the actual exam period. You need to be thoroughly familiar with the concepts contained in the books before the exam period and only rely the books during the exam for looking up minor details.
Read the books, come to class, then read the books again.
Don't wait until the night before the exam to start reading the books. You should read the assigned portions of the books before the class period during which they will be covered (as discussed in the class syllabus). Then most of the class will be a clarification of what you have already read, with a minimum of new material that can be flagged for careful study later. You can also note which parts of the reading materials are still unclear to you during the class and re-read those sections of the books after class. Looking at the material in the book, in class, and in the book again will help to clarify it and reinforce it so that you remember it later.
Come to office hours.
If you are unclear about material you have read or heard about in class, come to office hours. Office hours aren't just for asking questions about assignments that you are currently working on (although they are for that too) or for discussing points after you have lost them on the last exam (they are for this too); they are for helping you to learn the material, including asking about readings or discussions that you just don't clearly understand yet.
Write short programs.
One of the best ways to learn material on your own is to try it. When we cover environment variables in class, write a little 10 line piece of code that attempts to read in environment variables and modify them. When we cover forking, write a little 10 line piece of code that forks off a child or two or three. Try these things out. See what they are doing. See if you can predict what will happen if you change this or that in your code. Try out some of the small code examples from the books. These can help you learn directly or at least let you discover things that you should come ask about in office hours.
Get notes from classmates and discuss the material with classmates.
Don't imagine that you have to learn all of the material on your own. If you borrow notes from a classmate, try to read through them and see what your classmate thought was important. Try to see if you understood things the way he or she did. Talk to him or her about the things we discussed in class or that you read in your textbooks. These can help you learn directly or at least let you discover things that you should come ask about in office hours.
Get started on projects early.
The projects will reflect the material just covered and will give you another way to get familiar with that material before the exam, if you start on them early. If you wait until after the exam, then you have missed out on that learning experience before the exam period.
Don't waste time on the exams.
If you read a question and can't figure out the answer, including by looking things up in the book, don't just copy down a portion of the textbook. (This was not uncommon on the first exam. For example, people would read question 1A, then write down a bit of text from one of the books on "multiprogramming" without really addressing the question.) This is likely to earn you exactly zero points on that question and take considerably longer than just leaving it blank.

If you have your own study or learning method suggestions for your classmates, please email them to me and I'll add them to the class web pages.