Hello Everyone,
Here is the study material (Software) that you can follow to prepare for the upcoming placement/intern
session. Manage your time well and try to get the most out of it.
Data Structure and Algorithms -
Topics:
Array, Linked List, Doubly Linked List, Strings, STL and how they are
implemented internally, Stack, Queue.
STL Containers - Vectors, Map , Set , Unordered_Map.
Hash and Hash Table
Heap
Tree
1. Binary tree
2. BST
3. BFS vs DFS of Binary Tree
4. Traversals :- Inorder , Preorder , Postorder , Level Order
5. Construct tree if two traversal are given
6. Find distance between two nodes of binary tree.
7. Check if tree is height balanced or not.
8. Diameter of a binary tree
9. Print all the nodes at distance K from a given node.
10. Construct BST for a given preorder/postorder traversal.
11. Sorted array to balanced BST
12. Minimum depth of a binary tree.
13. Maximum path sum in a binary tree
14. Print a tree in zigzag order.
15. Finding Lowest Common Ancestor in a BST
- Graph
1. BFS & DFS ( Vector implementation )
2. Check if a given graph is tree or not.
3. No of connected components
4. Detect Cycle in a graph
5. Shortest path between two vertices, Dijkstra(Using multiset or priority Queue)
6. Shortest Path Algorithms :- Dijkstra , Bellman Ford , Floyd Warshall , Johnson Algorithm .
7. Topological Sorting
8. Minimum Spanning Tree (MST) - by Prim's and Kruskal
- Dynamic Programming
1. Longest Common Subsequence (LCS) Yes
2. Longest Increasing Subsequence (LIS)
3. Coin Change Yes
4. Longest/Shortest path in a matrix.
5
5. Subset sum problem. Yes
6. Knapsack problem. ( Important ) Yes
7. Rod cutting Yes
- String Searching
1. KMP Algorithm
2. Z Algorithm
3. String hashing
- Miscellaneous
1. Space and Time Complexity
2. [Link]
3. Sieve of Eratosthenes
4. Merge Sort , Quick Sort (Important)
5. Binary Search ( Important for coding round)
6. Two Pointer Concept
7. [Link]
railwaybus-station/
8. [Link]
9. System Design from [Link] (Important for some companies)
Websites and Links:
1. [Link] ( Try to cover all important data structures )
2. [Link] ( Very Important )
3. [Link] ( For better understanding of algorithm )
4. [Link]
with-the-standard-template-library-part-1/ ( Both Part 1 and Part 2 )
Source:-
1) [Link]
6
C-
1. Control statements, functions and pointers
2. Memory Management
3. [Link]
4. Geeks quiz . ( For output question )
OOPs- ( Note :- Any OOPS language ( Java / C++ / Python etc ) and OOPS Concepts )
1. Abstraction, Encapsulation, Polymorphism and Inheritance.
2. Objects, Constructor, Destructor, References
3. Initializer List
4. Virtual Functions, Virtual Table and Virtual Pointer
5. Exception Handling
6. 'this' Pointer
7. static, volatile, friend, const Keywords
Books and Links:
1. Thinking in C++, Bruce Eckel - Vol I, Java the complete Reference
2. Refer Geeks
Operating System -
1. Process Management -
● Scheduling Algorithms - Preemptive, Non- Preemptive, SJF, FCFS, Round Robin
● Deadlock prevention, avoidance, detection and recovery
● User level threads and kernel level threads
● Concurrency control, Mutual Exclusion and Synchronization
● Mutex, semaphores and monitors ( Important )
● Context switching
● Implementation of Threads
● Producer - Consumer Problem, Readers-Writers Problem, Dining Philosophers Problem
2. Memory Management - ( Important )
● Paging, Segmentation, Fragmentation
● Cache memory
● Virtual Memory
● Page faults, swapping, Thrashing
● LRU and implementation
3. File Management -
● File organization and access
● Index pointers
● Hard links, Soft links
Books and Material -
1. Operating Systems, William Stallings
2. Operating System Concepts, Peter Baer Galvin
3. Nptel Lectures by P.K Biswas
4. [Link]
5. [Link]
6
Networking -
1. Fundamentals of OSI protocol stack and TCP/IP stack
2. Network Layer & Transport Layer in detail
3. Basic Networking Devices
([Link]
4. Subnetting problems
5. DHCP, ARP(in detail)
6. MAC Addresses ,CSMA/CD
7. IPv4 vs IPv6
8. Forwarding and Routing Algorithms.
9. TCP, UDP differences and use-cases.
10. Domain Name Server (DNS)
11. Network Cache & Web Cookies.
12. Traceroute, ICMP, ping
13. IEEE 802.11 & 802.3 (detailed working).
14. Circuit Switching & Packet Switching.
15. Mail server (SMTP,POP3,IMAP).
16. Socket Programming in C
Tip- Learning to create a chat server in C will be highly beneficial !
Books and Material:
1. Computer Networking, Kurose and Ross
2. Stanford Networking Lectures
3. Google!
Aptitude and Reasoning -
1. Practice of basic Maths
2. Aptitude section on geeks
3. [Link]
4. [Link]
DBMS
1. Data Abstraction and Data Independence !!
2. ER Model !!
3. Keys in Relational Model (Candidate, Super, Primary, Alternate and Foreign)
4. Normal Forms
5. Lossless Join Decomposition
6. Transactions and Concurrency Control
7. ACID Properties
8. Conflict Serializability
9. View Serializability
10. Recoverability of Schedules
11. Indexing ,B,B+ trees basics
12. Practice of writing queries [Link]
Source
1. [Link]
v=wez3fXrjBAE&list=PLmXKhU9FNesR1rSES7oLdJaNFgmuj0SYV (This is sufficent
for basic DBMS)
6
2. [Link]
3.‘Database Management Systems’ by Raghu Ramakrishnan
Read different interview experiences on [Link] as well
as on TPO Placement Portal . Interview Experiences will help you a [Link] should have at least one good
project in any of the topics mentioned in areas of interest (Android development, Machine
Learning,Software Development,Web Development etc).
Note:- Beginners should try to have a firm grasp on DS and [Link] first round of most
companies is coding round( 2 coding questions and few mcqs) .You can practice companies based questions
on interviewbit or leetcode.
Here is the drive link for the material -
[Link]
usp=sharing
Start Preparing and Brace Yourself !!