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
- CTMCP: Peter Van Roy and Seif Haridi, Concepts, Techniques, and Models of Computer Programming. First edition, fourth printing.
- SICP: 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
- CLR: Thomas Cormen, Charles Leiserson and Ron Rivest, Introduction to Algorithms. First edition, 19th printing.
- SIPSER: Michael Sipser, Introduction to the Theory of Computation. First edition, first printing.
- CINP: Michael Garey and David Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness. First edition, 26th printing.
- KNUTH2: Donald Knuth, The Art of Computer Programming, Vol. 2: Seminumerical Algorithms. Third edition, first printing.
Further texts are listed in the applicable sections below.
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|
|Instruction sets general- vs special-purpose registers, condition word, load-store vs register-memory architectures, addressing alignment, register vs immediate vs displacement vs indexed etc addressing, instruction sizes, control flow instructions, opcode expansion, reduced vs complex sets||H&P4 1.3, Appx A|
|Computer arithmetic and number representation signed magnitude, one's complement, signed zeros, two's complement, binary coded decimal, IEEE 754, biased representation, denormalization, positive and negative infinity, NaN, nearest rounding, directed rounding, overflow, underflow, carry indicator, arbitrary precision|
|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 (<math>O(f())</math>), Big-Theta (<math>\Theta(f())</math>), Big-Omega (<math>\Omega(f())</math>), Little-O (<math>o(f()))</math>), Little-Omega (<math>\omega(f())</math>)||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||SIPSER 7, 8|
|Automata and language theory|
|Models of computation (finite automata, Turing machines)||SIPSER 1, 3|
|Formal languages and grammars (regular and context free)||SIPSER 2|
|Decidability||SIPSER 4, 5, 6.2, 6.3|
|Elementary combinatorics and graph theory connected, connectivity, directed (digraph), eccentricity, circumference, acyclic, path, weighted, subgraph, expander, hypergraph, multigraph, tournament, complete (<math>K_n</math>), scorpion, set cover, vertex cover|
|Discrete probability, recurrence relations, and number theory|
|OTHER TOPICS - 5% "Example areas include..."|
|...and social issues.|