[net.college] Computer Science GREs

mwolf@yale-com.UUCP (Anne G. Wolf) (09/20/83)

Thank-you to everyone who advised me about how to prepare
for the Computer Science advanced GREs.
There were so many responses that I cannot thank you individually,
but I really appreciate your help and good wishes.  (I'll need all
the help and luck I can get.)

In answer to the many people who asked, I'm not sure where to apply.
I'm still gathering information.  Any information or opinions about
PHD programs in Artificial Intelligence, Cognitive Science, Human Factors,
or Information Science (or Computer Science programs which emphasize those
fields) would be appreciated.  I'll forward that information by mail
on request.

My own knowledge about the GRE is that it is better to take the advanced
exam on a different day than the math/verbal/analytical exam.
I practiced A LOT for the general GRE (I mean hundreds of problems,) and
it helped.

I present a summary of the computer GRE information here, I omit the sender's
name  for brevity.  I apologize to anyone whose thoughts I have mangled by
quoting them out of context.  I have kept the complete letters including the
sender's names, for those who request them by mail.

1) Don't prepare

    I don't believe it's worthwhile to try to prepare for the exam.

    The only preparation I did for the CSci GRE was my undergraduate studies
    at UC Berkeley.  This turned out to be more than adequate.

2) Read the test-booklet sent to people who have registered for the exam.

    I didn't prepare for them at all except to answer the questions
    in the sample test booklet that the GRE people sent.

    The GRE test booklet for the computer science test was characteristic
    of the actual exams so it will help you decide what topics you need to
    brush up on.

3) Read other books

    If you didn't have them in courses, read everything by Dijkstra, Aho,
    Hopcroft, Ullmann, any permutation thereof, and any other theoretical
    things you can find.

    Reread your Knuth, your Aho and Ullman, and possibly a couple of
    Wirth's texts. Away you'll fly.

4)Test-taking strategies

    Keep in mind that all the questions are all multiple
    choice (GREs are graded by machine), so they can't ask you to
    write any programs or prove any theorems. I think the best way
    to prepare is to make sure you get plenty of sleep, get a good
    breakfast before the exam (When I took GREs they started fairly
    early in the morning) and don't be nervous.

    Warning:  Be sure to read the questions and choices carefully.  They are
    often set up so that if you simply react to the "key words", you choose
    the wrong alternative.

    Another thing that I should really emphasize is that you shouldn't spend
    more than about 5 minutes on any problem (your average has to be about
    2 1/2)

    Answer what you know for sure, and then go back over the
    ones that you think you have a good answer for.  I believe that the
    advanced tests count off for bad guesses.  Play the odds game -- if you
    can eliminate 50% of the wrong answers, then pick one of the remaining
    answers.
     
5) Dry run

    The ACM self-evaluation procedures might be a good dry run.

6) Subjects to review

Remember, they are trying to test you for a broad range of concepts, rather
than finicky details (though the test does include a few questions where
finicky details may be needed).  You are expected to be familiar with basic
concepts of the various areas of computer science, and basic techniques of
programming, logic design, system design, etc.

The actual test was pretty heavy on FSMs, grammars and machine
representation of numbers.  The language questions were pretty dopey -
basically the "what does this program print out" sort of thing.  Some
terminology questions were simply impossible because we'd never been
taught the stuff (there's no general CS course here for CS majors).

...compiler or analysis of algorithms classes [helped].

I have heard through people who took the exam that the theoretical
side of cs was stressed- wierdo set theory, computability, turing
machines, etc. General, formal theory of computation stuff.

Not supposed to say anything about specific questions,
but I will say this: it is *heavy* on *theory*...
...Don't forget your switching theory (as the various ways to
construct flip-flops from gates and other sequential circuits), or
funny binary codes (did you ever hear of any codes based on 9?)

1. Data Structures  2. Boolean Algebra  3.  Computer Architecture
3. Language Theory  4. Complexity Theory  5.  Some Graphics and Compiler stuff.

One trick is that you should have in cashe memory all of the base 2 powers
up to about 2^10. I.e. 2^8 = 256, 2^10 = 1024 etc.. and that 2^10 ~= 10^3.
This is because you get asked questions like in the example book they give
you with the floating point register.  You know, approximately what is the
largest number represented by this register.

You will find an understanding of digital logic hardware (T flipflops,
registers) helpful.

A little of the basics from a compiler theory course (i.e. regular expressions),
a little bit of circuit reading ("NAND? Let's see, is that the little curved
arrow with the circle, or...?_"), and a lot of things that asked if you knew
what it meant to work with floating-point systems, [simple] logic system,
and several languages.

The thing that I recall the best was that there was a lot of Formal Language
theory on the exam I took (you know, type 0, 1, 2, 3 grammers, Finite state
automata etc.) and at that time I was in the middle of a Language theory
course so I had just learned all that stuff and knew it real well.
I remember that there was also some digital design and some architecture
questions

mark@cbosgd.UUCP (09/21/83)

One other tip - if you have a question you have no idea on, or
have narrowed it down to 2 or 3 answers and have to randomly
pick one, CHOOSE "B".  If you go through a typical multiple
choice test and sum up the various correct answers, you'll be
amazed how "B" is the most common answer.  The second most common
is C, and the least common is E.  (I can't remember if A or D is
more common, but I'd guess A.)

The reason for this is simple: put yourself in the place of the
person writing the test question.  You tend to write down the
correct answer and then try to dream up reasonable wrong answers.
You don't want to favor A, so you try to write down some others.
But you can't bring yourself to put it off too long while you're
trying to dream up more answers, so you settle for B or C.

They could solve this by randomizing the answers, but this would
mess up "E: none of the above" so I've never seen it done.

There is a penalty for guessing, but it's 1/4 point for a wrong
guess and you get 1 point for the right answer, so random guessing
should have zero effect.  Choosing B will probably have a slight
positive effect.  THIS IS NO SUBSTITUTE FOR KNOWING THE MATERIAL.
It is best reserved for filling in blank spots before turning in
the test.

jlw@ariel.UUCP (J.WOOD) (09/24/83)

What Mark says about the randomness or lack thereof in
GREs and SATs etc is a lot of bunk.  The tests are
very carefully set up and screened for this.  As credentials
I will add that my wife is an employee of ETS, which
under contract to the CEEB, produces all these tests.
She has had assignments at times where she has had to
pre-screen potential test questions.  Not only does
a screener have to find the correct answer, she also has
to positively disprove all the other answers.
The examples I am thinking of are for a test in logic.



					Joseph L. Wood, III
					AT&T Information Systems
					Laboratories, Holmdel
					(201) 834-3759
					ariel!jlw