Anything above a 800 (it's on a 200-990-point scale) seems pretty good. It appears that quality single-volume preparation materials cannot be had at any price. Perhaps one ought be written?
(This second link is pretty dubiously-formed; YMMV. Go to the GRE page, click on Subject Info details, click on Computer Science --Dank 14:58, 30 July 2009 (UTC))
Books we're using for general preparation
- Software Systems and Methodology
- Peter Van Roy and Seif Haridi, Concepts, Techniques, and Models of Computer Programming. First edition, fourth printing.
- Harold Abelson and Gerald Jay Sussman, Structure and Interpretation of Computer Programs. Second edition, first printing, and online version.
- Computer Organization and Architecture
- Theory and Mathematical Background
- Thomas Cormen, Charles Leiserson and Ron Rivest, Introduction to Algorithms. First edition, 19th printing.
- Michael Sipser, Introduction to the Theory of Computation. First edition, first printing.
- Michael Garey and David Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness. First edition, 26th printing.
Further texts are listed in the applicable sections below.
- Donald Knuth, The Art of Computer Programming, Vol. 2: Seminumerical Algorithms. Third edition, first printing.
Outline taken from the ETS CS GRE page, 2009-07-30 1500 UTC)
|Area vocabulary listings follow each area in small, italicized, bolded text||References and Supplements|
|SOFTWARE SYSTEMS AND METHODOLOGY - 40%|
|Data structures and implementation techniques|
|Program control and structure|
|Iteration and recursion|
|Procedures, functions, methods, and exception handlers|
|Concurrency, communication, and synchronization|
|Programming languages and notation|
|Constructs for data organization and program control|
|Scope, binding, and parameter passing|
|Formal specifications and assertions
|Software development models, patterns, and tools|
|Compilers, interpreters, and run-time systems|
|Operating systems, including resource management and protection/security|
|Networking, Internet, and distributed systems
|System analysis and development tools|
|COMPUTER ORGANIZATION AND ARCHITECTURE - 15%|
|Digital logic design|
|Implementation of combinational and sequential circuits|
|Optimization and analysis|
|Processors and control units|
|Computer arithmetic and number representation signed magnitude, one's complement, two's complement, binary coded decimal, IEEE 754|
|Register and ALU organization|
|Data paths and control sequencing|
|Memories and their hierarchies|
|Performance, implementation, and management|
|Cache, main, and secondary storage|
|Virtual memory, paging, and segmentation|
|Networking and communications|
|Interconnect structures (e.g., buses, switches, routers)|
|I/O systems and protocols|
|Pipelining superscalar and out-of-order execution processors|
|Parallel and distributed architectures|
|THEORY AND MATHEMATICAL BACKGROUND - 40%|
|Algorithms and complexity|
|Exact and asymptotic analysis of specific algorithms Big-O (), Big-Theta (), Big-Omega (), Little-O (), Little-Omega ()||Asymptotic Notation and Recurrences lecture from MIT's 6.046J|
|Algorithmic design techniques (e.g. greedy, dynamic programming, divide and conquer)||Divide+Conquer, Dynamic Programming and Greedy algorithm lectures from MIT's 6.046J|
|Upper and lower bounds on the complexity of specific problems|
|Computational complexity, including NP-completeness|
|Automata and language theory|
|Models of computation (finite automata, Turing machines)|
|Formal languages and grammars (regular and context free)|
|Elementary combinatorics and graph theory connected, connectivity, directed (digraph), eccentricity, circumference, acyclic, path, weighted, subgraph, expander, hypergraph, multigraph, tournament, complete (), scorpion, set cover, vertex cover|
|Discrete probability, recurrence relations, and number theory|
|OTHER TOPICS - 5% "Example areas include..."|
|...and social issues.|