# CS GRE

From dankwiki

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?

- ETS Practice Booklet (PDF), from the Computer Science Exam page

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

## Subject Material

This was taken from the ETS CS GRE page, 2009-07-30 1500 UTC.

### SOFTWARE SYSTEMS AND METHODOLOGY — 40%

- Data organization
- Data types
- 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
- Expression evaluation

- Software engineering
- Formal specifications and assertions
- Verification techniques
- Software development models, patterns, and tools

- Systems
- Compilers, interpreters, and run-time systems
- Operating systems, including resource management and protection/security
- Networking, Internet, and distributed systems
- Databases
- 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
- Computer arithmetic and number representation
- 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
- Synchronization

- High-performance architectures
- 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
- Algorithmic design techniques (e.g. greedy, dynamic programming, divide and conquer)
- 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)
- Decidability

- Discrete structures
- Mathematical logic
- Elementary combinatorics and graph theory
- Discrete probability, recurrence relations, and number theory

### OTHER TOPICS — 5%

Example areas include numerical analysis, artificial intelligence, computer graphics, cryptography, security, and social issues.

## Books used to prepare

- Software Systems and Methodology
- Peter Van Roy and Seif Haridi,
*Concepts, Techniques, and Models of Computer Programming, 1st Edition* - Harold Abelson and Gerald Jay Sussman,
*Structure and Interpretation of Computer Programs, 2nd Edition*

- Peter Van Roy and Seif Haridi,
- Computer Organization and Architecture
- John Hennessy and David Patterson,
*Computer Architecture: A Quantitative Approach, 4th Edition*

- John Hennessy and David Patterson,
- Theory and Mathematical Background
- Thomas Cormen, Charles Leiserson and Ron Rivest,
*Introduction to Algorithms, 1st Edition* - Michael Sipser,
*Introduction to the Theory of Computation, 1st Edition*

- Thomas Cormen, Charles Leiserson and Ron Rivest,