Difference between revisions of "CS GRE"
From dankwiki
(Created page with '* [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') 

(90 intermediate revisions by the same user not shown)  
Line 1:  Line 1:  
Anything above a 800 (it's on a 200~900point (the top end changes from year to year, wtf) scale) seems pretty good. It appears that quality singlevolume preparation materials cannot be had at any price. Perhaps one ought be written?  
* '''We took the exam 20091010. I don't see myself updating this page much further.''' ([[User:DankDank]] 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  
(This second link is pretty dubiouslyformed; YMMV. Go to the GRE page, click on Subject Info details, click on Computer Science ''[[User:DankDank]] 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 GRElike problems] from Christopher Scaffidi  
==Books we're using for general preparation==  
* Software Systems and Methodology  
**'''CTMCP''': Peter Van Roy and Seif Haridi, ''[http://www.amazon.com/ConceptsTechniquesModelsComputerProgramming/dp/0262220695 Concepts, Techniques, and Models of Computer Programming]''. First edition, fourth printing.  
**'''SICP''': Harold Abelson and Gerald Jay Sussman, ''[http://www.amazon.com/StructureInterpretationComputerProgramsEngineering/dp/0262011530 Structure and Interpretation of Computer Programs]''. Second edition, first printing, and [http://mitpress.mit.edu/sicp/fulltext/book/book.html online version].  
* Computer Organization and Architecture  
**'''H&P2, H&P4''': John Hennessy and David Patterson, ''[http://www.amazon.com/ComputerArchitectureQuantitativeApproach4th/dp/0123704901 Computer Architecture: A Quantitative Approach]''. Second and fourth editions (first printing each).  
**'''WARD''': Stephen Ward and Robert Halstead, ''[http://www.amazon.com/ComputationStructuresElectricalEngineeringComputer/dp/0262231395 Computation Structures]''. First edition, first printing.  
* Theory and Mathematical Background  
**'''CLR''': Thomas Cormen, Charles Leiserson and Ron Rivest, ''[http://www.amazon.com/IntroductionAlgorithmsSecondThomasCormen/dp/0262032937 Introduction to Algorithms]''. First edition, 19th printing.  
**'''SIPSER''': Michael Sipser, ''[http://www.amazon.com/IntroductionTheoryComputationMichaelSipser/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.  
==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==  
Outline taken from the ETS CS GRE page (20090730 1500 UTC)  
{ border="1" width="100%"  
  
! align="left"<small>''Area vocabulary listings follow each area in small, italicized, bolded text''</small>  
! References and Supplements  
  
colspan=2'''SOFTWARE SYSTEMS AND METHODOLOGY  40%'''  
  
colspan=2'''Data Organization'''  
  
 Data types  
  
  
 Data structures and implementation techniques  
  
  
colspan=2'''Program control and structure'''  
  
Iteration and recursion  
  
  
Procedures, functions, methods, and exception handlers  
  
  
Concurrency, communication, and synchronization  
  
  
colspan=2'''[[Programming Language TheoryProgramming languages]] and notation'''  
  
Constructs for data organization and program control  
  
  
Scope, binding, and parameter passing  
  
  
Expression evaluation  
  
  
colspan=2'''Software engineering'''  
  
Formal specifications and assertions  
*Dijkstra: ''[http://www.amazon.com/DisciplineProgrammingPrenticeHallAutomaticComputation/dp/013215871X A Discipline of Programming]''  
  
  
Verification techniques  
*Berg, Boebert, Franta, Moher: ''[http://www.amazon.com/MethodsVerificationSpecificationPrenticeHallSoftware/dp/0133288072/ Formal Methods of Program Verification and Specification]''  
  
  
Software development models, patterns, and tools  
  
  
colspan=2'''Systems'''  
  
[[Compiler DesignCompilers]], interpreters, and runtime systems  
*Muchnick: ''[http://www.amazon.com/AdvancedCompilerDesignImplementationMuchnick/dp/1558603204 Advanced Compiler Design and Implementation]''  
*Allen, Kennedy: ''[http://www.amazon.com/OptimizingCompilersModernArchitecturesDependencebased/dp/1558602860 Optimizing Compilers for Modern Architectures]''  
  
  
Operating systems, including resource management and protection/security  
  
  
Networking, Internet, and distributed systems  
*LeonGarcia, Widjaja: ''[http://www.amazon.com/CommunicationNetworksAlbertoLeonGarcia/dp/007246352X Communication Networks]''  
  
  
Databases  
  
  
System analysis and development tools  
  
  
  
colspan=2'''COMPUTER ORGANIZATION AND [[ArchitectureARCHITECTURE]]  15%'''  
  
colspan=2 '''Digital logic design'''  
  
 Implementation of combinational and sequential circuits  
  
  
 Optimization and analysis  
  
  
colspan=2 '''Processors and control units'''  
  
 Instruction sets <small>'''''general vs specialpurpose registers, condition word, loadstore vs registermemory 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 <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  
 '''H&P4''' Appx F (Vector processors)  
  
 Data paths and control sequencing  
  
  
colspan=2 '''[[Architecture#Memory_HierarchiesMemories and their hierarchies]]'''  
  
 Performance, implementation, and management  
  
  
 Cache, main, and secondary storage  
 '''H&P4''' Chapter 5.2, Appx C.13  
  
 Virtual memory, paging, and segmentation  
 '''H&P4''' Chapter 5, Appx C.4  
  
colspan=2 '''Networking and communications'''  
  
 Interconnect structures (e.g., buses, switches, routers)  
 '''H&P4''' Appx E  
  
 I/O systems and protocols  
 '''H&P4''' Chapter 6  
  
 Synchronization  
  
  
colspan=2 '''Highperformance architectures'''  
  
 Pipelining superscalar and outoforder execution processors  
 '''H&P4''' Appx A  
  
 Parallel and distributed architectures  
'''H&P4''' Chapter 4  
  
colspan=2'''[[TheoryTHEORY]] AND MATHEMATICAL BACKGROUND  40%'''  
  
colspan=2 '''Algorithms and complexity'''  
  
 Exact and asymptotic analysis of specific algorithms <small>'''''BigO (<math>O(f())</math>), BigTheta (<math>\Theta(f())</math>), BigOmega (<math>\Omega(f())</math>), LittleO (<math>o(f()))</math>), LittleOmega (<math>\omega(f())</math>)'''''</small>  
 [http://academicearth.org/lectures/asymptoticnotationandrecurrences Asymptotic Notation and Recurrences] lecture from MIT's [http://ocw.mit.edu/OcwWeb/ElectricalEngineeringandComputerScience/6046JFall2005/CourseHome/index.htm 6.046J]  
  
 Algorithmic design techniques (e.g. greedy, dynamic programming, divide and conquer)  
 [http://academicearth.org/lectures/divideandconquer Divide+Conquer], [http://academicearth.org/lectures/dynamicprogrammingleiserson Dynamic Programming] and [http://academicearth.org/lectures/greedyalgorithmsandgraphs Greedy algorithm] lectures from MIT's [http://ocw.mit.edu/OcwWeb/ElectricalEngineeringandComputerScience/6046JFall2005/CourseHome/index.htm 6.046J]  
  
 Upper and lower bounds on the complexity of specific problems  
  
  
 Computational complexity, including NPcompleteness  
* Garey and Johnson, ''[http://www.amazon.com/ComputersIntractabilityNPCompletenessMathematicalSciences/dp/0716710455 Computers and Intractability: A Guide to the Theory of NPCompleteness]''  
 '''SIPSER''' 7, 8  
  
colspan=2 '''[[Automata]] and [[Theory#Formal_Languageslanguage theory]]'''  
  
 Models of computation (finite automata, Turing machines)  
* Hopcroft and Ullman, ''[http://www.amazon.com/IntroductionAutomataTheoryLanguagesComputation/dp/0201441241 Introduction to Automata Theory, Languages and Computation]''  
 '''SIPSER''' 1, 3  
  
 Formal languages and grammars (regular and context free)  
* Gurari, ''[http://www.cse.ohiostate.edu/~gurari/theorybk/theorybk.html An Introduction to the Theory of Computation]''  
 '''SIPSER''' 2  
  
 Decidability  
 '''SIPSER''' 4, 5, 6.2, 6.3  
  
colspan=2 '''Discrete structures'''  
  
 Mathematical logic  
  
  
 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>  
  
  
 Discrete probability, recurrence relations, and number theory  
  
  
colspan=2'''OTHER TOPICS  5%''' "Example areas include..."  
  
Numerical analysis  
  
  
Artificial intelligence  
  
  
Computer graphics  
  
  
Cryptography  
  
  
Security  
  
  
...and social issues.  
  
  
}  
[[Category: CS GRE Prep]] 
Latest revision as of 14:34, 29 January 2013
Anything above a 800 (it's on a 200~900point (the top end changes from year to year, wtf) scale) seems pretty good. It appears that quality singlevolume preparation materials cannot be had at any price. Perhaps one ought be written?
 We took the exam 20091010. I don't see myself updating this page much further. (Dank 02:53, 12 November 2009 (UTC))
 ETS Practice Booklet (PDF), from the Computer Science Exam page
(This second link is pretty dubiouslyformed; YMMV. Go to the GRE page, click on Subject Info details, click on Computer Science Dank 14:58, 30 July 2009 (UTC))
 UCB notes from 2001
 GT notes from 2006
 100 shareware CS GRElike problems from Christopher Scaffidi
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
 H&P2, H&P4: John Hennessy and David Patterson, Computer Architecture: A Quantitative Approach. Second and fourth editions (first printing each).
 WARD: Stephen Ward and Robert Halstead, Computation Structures. First edition, first printing.
 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.
 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.
Online courseware
 The Stanford Engineering Everywhere project at the Stanford School of Engineering
 MIT's OpenCourseware project at the Open Courseware Consortium
Subject Material
Outline taken from the ETS CS GRE page (20090730 1500 UTC)
Area vocabulary listings follow each area in small, italicized, bolded text  References and Supplements 

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 runtime 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 general vs specialpurpose registers, condition word, loadstore vs registermemory 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 B, Appx J 
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  H&P4 Appx I 
Register and ALU organization  H&P4 Appx F (Vector processors) 
Data paths and control sequencing  
Memories and their hierarchies  
Performance, implementation, and management  
Cache, main, and secondary storage  H&P4 Chapter 5.2, Appx C.13 
Virtual memory, paging, and segmentation  H&P4 Chapter 5, Appx C.4 
Networking and communications  
Interconnect structures (e.g., buses, switches, routers)  H&P4 Appx E 
I/O systems and protocols  H&P4 Chapter 6 
Synchronization  
Highperformance architectures  
Pipelining superscalar and outoforder execution processors  H&P4 Appx A 
Parallel and distributed architectures  H&P4 Chapter 4 
THEORY AND MATHEMATICAL BACKGROUND  40%  
Algorithms and complexity  
Exact and asymptotic analysis of specific algorithms BigO (), BigTheta (), BigOmega (), LittleO (), LittleOmega ()  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 NPcompleteness

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 
Discrete structures  
Mathematical logic  
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..."  
Numerical analysis  
Artificial intelligence  
Computer graphics  
Cryptography  
Security  
...and social issues. 