8,434

edits

From dankwiki

→Subject Material

(60 intermediate revisions by the same user not shown) | |||

Line 1: | Line 1: | ||

Anything above a 800 (it's on a 200- | Anything above a 800 (it's on a 200-~900-point (the top end changes from year to year, wtf) scale) seems pretty good. It appears that quality single-volume preparation materials cannot be had at any price. Perhaps one ought be written? | ||

* '''We took the exam 2009-10-10. I don't see myself updating this page much further.''' ([[User:Dank|Dank]] 02:53, 12 November 2009 (UTC)) | |||

* [http://ftp.ets.org/pub/gre/CompSci.pdf ETS Practice Booklet (PDF)], from the [http://www.ets.org/portal/site/ets/menuitem.1488512ecfd5b8849a77b13bc3921509/?vgnextoid=e9952d3631df4010VgnVCM10000022f95190RCRD&vgnextchannel=6ef946f1674f4010VgnVCM10000022f95190RCRD Computer Science Exam] page | * [http://ftp.ets.org/pub/gre/CompSci.pdf ETS Practice Booklet (PDF)], from the [http://www.ets.org/portal/site/ets/menuitem.1488512ecfd5b8849a77b13bc3921509/?vgnextoid=e9952d3631df4010VgnVCM10000022f95190RCRD&vgnextchannel=6ef946f1674f4010VgnVCM10000022f95190RCRD 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 [[User:Dank|Dank]] 14:58, 30 July 2009 (UTC)) | (This second link is pretty dubiously-formed; YMMV. Go to the GRE page, click on Subject Info details, click on Computer Science ''--[[User:Dank|Dank]] 14:58, 30 July 2009 (UTC)'') | ||

* [http://hkn.eecs.berkeley.edu/student/csgrereviewnotes.shtml UCB notes] from 2001 | * [http://hkn.eecs.berkeley.edu/student/csgrereviewnotes.shtml UCB notes] from 2001 | ||

* [http://www.cc.gatech.edu/~howardz/micellaneous/gre_cs_sub/ GT notes] from 2006 | * [http://www.cc.gatech.edu/~howardz/micellaneous/gre_cs_sub/ GT notes] from 2006 | ||

* [http://sites.google.com/site/titaniumbits/ 100 shareware CS GRE-like problems] from Christopher Scaffidi | * [http://sites.google.com/site/titaniumbits/ 100 shareware CS GRE-like problems] from Christopher Scaffidi | ||

==Books | ==Books we're using for general preparation== | ||

* Software Systems and Methodology | * Software Systems and Methodology | ||

**Peter Van Roy and Seif Haridi, ''[http://www.amazon.com/Concepts-Techniques-Models-Computer-Programming/dp/0262220695 Concepts, Techniques, and Models of Computer Programming]''. First edition, fourth printing. | **'''CTMCP''': Peter Van Roy and Seif Haridi, ''[http://www.amazon.com/Concepts-Techniques-Models-Computer-Programming/dp/0262220695 Concepts, Techniques, and Models of Computer Programming]''. First edition, fourth printing. | ||

**Harold Abelson and Gerald Jay Sussman, ''[http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262011530 Structure and Interpretation of Computer Programs]''. Second edition. | **'''SICP''': Harold Abelson and Gerald Jay Sussman, ''[http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262011530 Structure and Interpretation of Computer Programs]''. Second edition, first printing, and [http://mitpress.mit.edu/sicp/full-text/book/book.html online version]. | ||

* Computer Organization and Architecture | * Computer Organization and Architecture | ||

**John Hennessy and David Patterson, ''[http://www.amazon.com/Computer-Architecture-Quantitative-Approach-4th/dp/0123704901 Computer Architecture: A Quantitative Approach]''. Second and fourth editions (first printing each). | **'''H&P2, H&P4''': John Hennessy and David Patterson, ''[http://www.amazon.com/Computer-Architecture-Quantitative-Approach-4th/dp/0123704901 Computer Architecture: A Quantitative Approach]''. Second and fourth editions (first printing each). | ||

**Stephen Ward and Robert Halstead, ''[http://www.amazon.com/Computation-Structures-Electrical-Engineering-Computer/dp/0262231395 Computation Structures]''. First edition, first printing. | **'''WARD''': Stephen Ward and Robert Halstead, ''[http://www.amazon.com/Computation-Structures-Electrical-Engineering-Computer/dp/0262231395 Computation Structures]''. First edition, first printing. | ||

* Theory and Mathematical Background | * Theory and Mathematical Background | ||

**Thomas Cormen, Charles Leiserson and Ron Rivest, ''[http://www.amazon.com/Introduction-Algorithms-Second-Thomas-Cormen/dp/0262032937 Introduction to Algorithms]''. First edition, 19th printing. | **'''CLR''': Thomas Cormen, Charles Leiserson and Ron Rivest, ''[http://www.amazon.com/Introduction-Algorithms-Second-Thomas-Cormen/dp/0262032937 Introduction to Algorithms]''. First edition, 19th printing. | ||

**Michael Sipser, ''[http://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/053494728X Introduction to the Theory of Computation]''. First edition, first printing. | **'''SIPSER''': Michael Sipser, ''[http://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/053494728X Introduction to the Theory of Computation]''. First edition, first printing. | ||

** | **'''KNUTH2''': Donald Knuth, ''[http://www.amazon.com/gp/product/0201896842 The Art of Computer Programming, Vol. 2: Seminumerical Algorithms]''. Third edition, first printing. | ||

Further texts are listed in the applicable sections below. | Further texts are listed in the applicable sections below. | ||

==Online courseware== | |||

* The [http://see.stanford.edu/ Stanford Engineering Everywhere] project at the Stanford School of Engineering | |||

* MIT's [http://ocw.mit.edu/OcwWeb/web/home/home/index.htm OpenCourseware] project at the Open Courseware Consortium | |||

==Subject Material== | ==Subject Material== | ||

{| border="1" | Outline taken from the ETS CS GRE page (2009-07-30 1500 UTC) | ||

{| border="1" width="100%" | |||

|- | |- | ||

! | ! align="left"|<small>''Area vocabulary listings follow each area in small, italicized, bolded text''</small> | ||

! References | ! References and Supplements | ||

|- | |- | ||

|colspan=2|'''SOFTWARE SYSTEMS AND METHODOLOGY - 40%''' | |colspan=2|'''SOFTWARE SYSTEMS AND METHODOLOGY - 40%''' | ||

Line 45: | Line 52: | ||

| | | | ||

|- | |- | ||

|colspan=2|'''Programming languages and notation''' | |colspan=2|'''[[Programming Language Theory|Programming languages]] and notation''' | ||

|- | |- | ||

|Constructs for data organization and program control | |Constructs for data organization and program control | ||

Line 58: | Line 65: | ||

|colspan=2|'''Software engineering''' | |colspan=2|'''Software engineering''' | ||

|- | |- | ||

|Formal specifications and assertions | |Formal specifications and assertions | ||

*Dijkstra: ''[http://www.amazon.com/Discipline-Programming-Prentice-Hall-Automatic-Computation/dp/013215871X A Discipline of Programming]'' | |||

| | | | ||

|- | |- | ||

|Verification techniques | |Verification techniques | ||

*Berg, Boebert, Franta, Moher: ''[http://www.amazon.com/Methods-Verification-Specification-Prentice-Hall-Software/dp/0133288072/ Formal Methods of Program Verification and Specification]'' | |||

| | | | ||

|- | |- | ||

Line 70: | Line 79: | ||

|- | |- | ||

|[[Compiler Design|Compilers]], interpreters, and run-time systems | |[[Compiler Design|Compilers]], interpreters, and run-time systems | ||

*Muchnick: ''[http://www.amazon.com/Advanced-Compiler-Design-Implementation-Muchnick/dp/1558603204 Advanced Compiler Design and Implementation]'' | |||

*Allen, Kennedy: ''[http://www.amazon.com/Optimizing-Compilers-Modern-Architectures-Dependence-based/dp/1558602860 Optimizing Compilers for Modern Architectures]'' | |||

| | | | ||

|- | |- | ||

Line 76: | Line 87: | ||

|- | |- | ||

|Networking, Internet, and distributed systems | |Networking, Internet, and distributed systems | ||

*Leon-Garcia, Widjaja: ''[http://www.amazon.com/Communication-Networks-Alberto-Leon-Garcia/dp/007246352X Communication Networks]'' | |||

| | | | ||

|- | |- | ||

Line 97: | Line 109: | ||

|colspan=2| '''Processors and control units''' | |colspan=2| '''Processors and control units''' | ||

|- | |- | ||

| Instruction sets | | Instruction sets <small>'''''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'''''</small> | ||

| | | '''H&P4''' 1.3, Appx B, Appx J | ||

|- | |- | ||

| Computer arithmetic and number representation | | Computer arithmetic and number representation <small>'''''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'''''</small> | ||

| | | '''H&P4''' Appx I | ||

|- | |- | ||

| Register and ALU organization | | Register and ALU organization | ||

| | | '''H&P4''' Appx F (Vector processors) | ||

|- | |- | ||

| Data paths and control sequencing | | Data paths and control sequencing | ||

| | | | ||

|- | |- | ||

|colspan=2| '''Memories and their hierarchies''' | |colspan=2| '''[[Architecture#Memory_Hierarchies|Memories and their hierarchies]]''' | ||

|- | |- | ||

| Performance, implementation, and management | | Performance, implementation, and management | ||

Line 115: | Line 127: | ||

|- | |- | ||

| Cache, main, and secondary storage | | Cache, main, and secondary storage | ||

| | | '''H&P4''' Chapter 5.2, Appx C.1-3 | ||

|- | |- | ||

| Virtual memory, paging, and segmentation | | Virtual memory, paging, and segmentation | ||

| | | '''H&P4''' Chapter 5, Appx C.4 | ||

|- | |- | ||

|colspan=2| '''Networking and communications''' | |colspan=2| '''Networking and communications''' | ||

|- | |- | ||

| Interconnect structures (e.g., buses, switches, routers) | | Interconnect structures (e.g., buses, switches, routers) | ||

| | | '''H&P4''' Appx E | ||

|- | |- | ||

| I/O systems and protocols | | I/O systems and protocols | ||

| | | '''H&P4''' Chapter 6 | ||

|- | |- | ||

| Synchronization | | Synchronization | ||

Line 134: | Line 146: | ||

|- | |- | ||

| Pipelining superscalar and out-of-order execution processors | | Pipelining superscalar and out-of-order execution processors | ||

| | | '''H&P4''' Appx A | ||

|- | |- | ||

| Parallel and distributed architectures | | Parallel and distributed architectures | ||

| | |'''H&P4''' Chapter 4 | ||

|- | |- | ||

|colspan=2|'''THEORY AND MATHEMATICAL BACKGROUND - 40%''' | |colspan=2|'''[[Theory|THEORY]] AND MATHEMATICAL BACKGROUND - 40%''' | ||

|- | |- | ||

|colspan=2| '''Algorithms and complexity''' | |colspan=2| '''Algorithms and complexity''' | ||

|- | |- | ||

| Exact and asymptotic analysis of specific algorithms | | Exact and asymptotic analysis of specific algorithms <small>'''''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>)'''''</small> | ||

| | | [http://academicearth.org/lectures/asymptotic-notation-and-recurrences Asymptotic Notation and Recurrences] lecture from MIT's [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm 6.046J] | ||

|- | |- | ||

| Algorithmic design techniques (e.g. greedy, dynamic programming, divide and conquer) | | Algorithmic design techniques (e.g. greedy, dynamic programming, divide and conquer) | ||

| | | [http://academicearth.org/lectures/divide-and-conquer- Divide+Conquer], [http://academicearth.org/lectures/dynamic-programming-leiserson Dynamic Programming] and [http://academicearth.org/lectures/greedy-algorithms-and-graphs Greedy algorithm] lectures from MIT's [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm 6.046J] | ||

|- | |- | ||

| Upper and lower bounds on the complexity of specific problems | | Upper and lower bounds on the complexity of specific problems | ||

Line 153: | Line 165: | ||

|- | |- | ||

| Computational complexity, including NP-completeness | | Computational complexity, including NP-completeness | ||

| | * Garey and Johnson, ''[http://www.amazon.com/Computers-Intractability-NP-Completeness-Mathematical-Sciences/dp/0716710455 Computers and Intractability: A Guide to the Theory of NP-Completeness]'' | ||

| '''SIPSER''' 7, 8 | |||

|- | |- | ||

|colspan=2| '''Automata and language theory''' | |colspan=2| '''[[Automata]] and [[Theory#Formal_Languages|language theory]]''' | ||

|- | |- | ||

| Models of computation (finite automata, Turing machines) | | Models of computation (finite automata, Turing machines) | ||

| | * Hopcroft and Ullman, ''[http://www.amazon.com/Introduction-Automata-Theory-Languages-Computation/dp/0201441241 Introduction to Automata Theory, Languages and Computation]'' | ||

| '''SIPSER''' 1, 3 | |||

|- | |- | ||

| Formal languages and grammars (regular and context free) | | Formal languages and grammars (regular and context free) | ||

| | * Gurari, ''[http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html An Introduction to the Theory of Computation]'' | ||

| '''SIPSER''' 2 | |||

|- | |- | ||

| Decidability | | Decidability | ||

| | | '''SIPSER''' 4, 5, 6.2, 6.3 | ||

|- | |- | ||

|colspan=2| '''Discrete structures''' | |colspan=2| '''Discrete structures''' | ||

Line 171: | Line 186: | ||

| | | | ||

|- | |- | ||

| Elementary combinatorics and graph theory | | Elementary combinatorics and graph theory <small>'''''connected, connectivity, directed (digraph), eccentricity, circumference, acyclic, path, weighted, subgraph, expander, hypergraph, multigraph, tournament, complete (<math>K_n</math>), scorpion, set cover, vertex cover'''''</small> | ||

| | | | ||

|- | |- | ||

Line 198: | Line 213: | ||

|- | |- | ||

|} | |} | ||

[[Category: CS GRE Prep]] |