A computer science portal for geeks




GATE 2015 Official Site

Topic wise solutions of previous year question papers:

Data Structures and Algorithm,   Database Management Systems,   Operating Systems, Computer Networks,   Automata TheoryC LanguageCompiler Design

Mock tests of previous year papers:

GATE-CS-2014-(Set-1),   GATE-CS-2014-(Set-2),  GATE-CS-2014-(Set-3)(65)GATE CS 2013GATE CS 2012GATE CS 2011, GATE CS 2010GATE-CS-2009GATE CS 2008, GATE-CS-2007, GATE-CS-2006, GATE-CS-2005, GATE-CS-2004, GATE-CS-2003,

Year wise solutions of previous year question papers:

2014, 2013, 2012,    2011,   2010,    20092008200720062005Older

Topic wise Mock Tests

Data Structures and Algorithms: Linked List,   Stack,   Queue,   Binary Trees,   Binary Search Trees,   Balanced Binary Search Trees,   Graph,   Hash,   Array,   Misc,   B and B+ Trees,   Heap,   Tree Traversals,   Analysis of Algorithms,   Sorting,   Divide and Conquer,   Greedy Algorithms,   Dynamic Programming,   Backtracking,   Misc,   NP Complete,   Searching,   Analysis of Algorithms (Recurrences),   Recursion,   Bit Algorithms,   Graph Traversals,   Graph Shortest Paths,   Graph Minimum Spanning Tree,

Operating Systems: Process Management,   Memory Management,   Input Output Systems

DBMS: ER and Relational Models,   Database Design (Normal Forms),   SQL,   Transactions and concurrency control,    File structures (sequential files, indexing, B and B+ trees),

Compiler Design: Lexical analysis   Parsing and Syntax directed translation,   Code Generation and Optimization

Computer Organization and Architecture: Digital Logic & Number representation(28),   Computer Organization and Architecture(33),

Computer Networks: Data Link Layer,   Network Layer,   Transport Layer,   Misc Topics in Computer Networks,   Application Layer,   Network Security,

Theory of Computation: Regular languages and finite automata,   Context free languages and Push-down automata,   Recursively enumerable sets and Turing machines,   Undecidability

Aptitude: Probability,   English,   General Aptitude

Engineering Mathematics: Set Theory & Algebra,   Linear Algebra,   Numerical Methods and Calculus,   Graph Theory,   Combinatorics,   Propositional and First Order Logic

Topic wise Reference Books/Material

1) Data Structures and Algorithms:

IITD video lectures on Data Structures And Algorithms

Algorithm Book by by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani

Introduction to Algorithms by Cormen, Thomas H.

Data Structures And Program Design In C by Kruse Robert L., Robert Kruse, Cl Tondo

2) Database Management System

Lecture Slides of Database System Concepts by Silberschatz, Korth and Sudarshan

Lecture Slides of Database Management Systems by Raghu Ramakrishnan and Johannes Gehrke

Lecture Handouts from university of pittsburgh

3) Computer Networks

Lecture Notes from Prof. Dheeraj Sanghi, IIT Kanpur

Lecture Slides of Computer Networking: A Top Down Approach Featuring the Internet by Kurose and Ross

Web Resources on Computer Networks by Andrew S. Tanenbaum.

4) Operating Systems

Operating Systems Notes from MIT

Operating Systems Lessons from VirginiaTech Univ.

Operating System Notes from Kent Univ.

Video Lectures by Prof. John Kubiatowicz, Berkeley

Lecture Slides of Operating System Concepts, 7th Edition by Silberschatz, Galvin, Gagne

5) Compiler Design

Dragon Book Lecture Notes

Lecture Notes by Leonidas Fegaras

Lecture Notes from Kent University

See the previous year questions papers here.

We will be adding more reference books/material soon.

  • gate aspirant

    plzz provide the solution for gate 2013 also

  • roshni mishra

    For Detail syllabus of gate visit GATE Exam Syllabus 2014

  • Somya Jain

    Please send some code re factoring codes example in c or suggest some site for the same.

    /* Paste your code here (You may delete these lines if not writing code) */
  • RM

    Thanks a lot for compiling such useful information at one place.

  • Aruna


    // A structure to represent a Point in 2D plane
    struct Point
    int x, y;

    /* Following two functions are needed for library function qsort().
    Refer: */

    // Needed to sort array of points according to X coordinate
    int compareX(const void* a, const void* b)
    Point *p1 = (Point *)a, *p2 = (Point *)b;
    return (p1->x – p2->x);
    // Needed to sort array of points according to Y coordinate
    int compareY(const void* a, const void* b)
    Point *p1 = (Point *)a, *p2 = (Point *)b;
    return (p1->y – p2->y);

    // A utility function to find the distance between two points
    float dist(Point p1, Point p2)
    return sqrt( (p1.x – p2.x)*(p1.x – p2.x) +
    (p1.y – p2.y)*(p1.y – p2.y)

    // A Brute Force method to return the smallest distance between two points
    // in P[] of size n
    float bruteForce(Point P[], int n)
    float min = FLT_MAX;
    for (int i = 0; i < n; ++i)
    for (int j = i+1; j < n; ++j)
    if (dist(P[i], P[j]) < min)
    min = dist(P[i], P[j]);
    return min;

    // A utility function to find minimum of two float values
    float min(float x, float y)
    return (x < y)? x : y;

    // A utility function to find the distance beween the closest points of
    // strip of given size. All points in strip[] are sorted accordint to
    // y coordinate. They all have an upper bound on minimum distance as d.
    // Note that this method seems to be a O(n^2) method, but it's a O(n)
    // method as the inner loop runs at most 6 times
    float stripClosest(Point strip[], int size, float d)
    float min = d; // Initialize the minimum distance as d

    qsort(strip, size, sizeof(Point), compareY);

    // Pick all points one by one and try the next points till the difference
    // between y coordinates is smaller than d.
    // This is a proven fact that this loop runs at most 6 times
    for (int i = 0; i < size; ++i)
    for (int j = i+1; j < size && (strip[j].y – strip[i].y) < min; ++j)
    if (dist(strip[i],strip[j]) < min)
    min = dist(strip[i], strip[j]);

    return min;

    // A recursive function to find the smallest distance. The array P contains
    // all points sorted according to x coordinate
    float closestUtil(Point P[], int n)
    // If there are 2 or 3 points, then use brute force
    if (n <= 3)
    return bruteForce(P, n);

    // Find the middle point
    int mid = n/2;
    Point midPoint = P[mid];

    // Consider the vertical line passing through the middle point
    // calculate the smallest distance dl on left of middle point and
    // dr on right side
    float dl = closestUtil(P, mid);
    float dr = closestUtil(P + mid, n-mid);

    // Find the smaller of two distances
    float d = min(dl, dr);

    // Build an array strip[] that contains points close (closer than d)
    // to the line passing through the middle point
    Point strip[n];
    int j = 0;
    for (int i = 0; i < n; i++)
    if (abs(P[i].x – midPoint.x) < d)
    strip[j] = P[i], j++;

    // Find the closest points in strip. Return the minimum of d and closest
    // distance is strip[]
    return min(d, stripClosest(strip, j, d) );

    // The main functin that finds the smallest distance
    // This method mainly uses closestUtil()
    float closest(Point P[], int n)
    qsort(P, n, sizeof(Point), compareX);

    // Use recursive function closestUtil() to find the smallest distance
    return closestUtil(P, n);

    // Driver program to test above functions
    int main()
    Point P[] = {{2, 3}, {12, 30}, {40, 50}, {5, 1}, {12, 10}, {3, 4}};
    int n = sizeof(P) / sizeof(P[0]);
    printf("The smallest distance is %f ", closest(P, n));
    return 0;

  • ankush gupta
    From which site can i practice for a page table numerical question
  • shashank
  • harish

    please add some links for Discrete mathematics

  • harish

    helpful for gate prep