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
- 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
- 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
- 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