Genral instructions
Best website for learning Programming [Link]
Ideas for project – udacity, coursera, udeamy
Attempt nptel course for placement( Choose 8/12 weel
course for credit transfer and placement view)
First learn the whole concept then try to implicate for
practices to do online courses.
What are the algorithms required to solve
all problems (using C++) in any competitive
coding contest?
Mathematics:
(a)Number Theory
1. Prime Number Generation (Sieve, Segmented Sieve)
2. Euler Totient Theorem
3. Fermat’s Theorem
4. HCF & LCM (Euclid)
5. Linear Diophantine Equations (Extended Euclid)
6. Modulus Arithmetic (addition, multiplication ,subtraction, modular Inverse)
7. Cycle Finding (Floyd Algo and Brent Algo)
8. Integer Factorization (Trial Division , Pollard Rho method)
9. Lucas Theorem (Simple & Advance)
10. Chinese Remainder Theorem
11. Wilson Theorem
12. Miller - Rabin Primality Testing
13. Perfect Numbers
14. Goldbach Conjecture
(b)Probability
1. Basic Probability and Conditional Probability
2. Random Variables
3. Probability Generating Functions
4. Expectation
5. Probability Distribution [Binomial, Poisson, Normal,Bernoulli]
(c)Counting
1. Pigeonhole principle
2. Inclusion Exclusion
3. Special Numbers [Stirling,Fibonacci,Catalan, Eulerian, Harmonic, Bernoulli]
4. Polya Counting
5. Burnside lemma
(d)Permutation Cycles
(e)Linear Algebra
1. Addition And Subtraction Of Matrices
2. Multiplication ( Strassen's algorithm ), Logarithmic exponentiation
3. Matrix Transformations [ Transpose, Rotation Of Matrix, Representing
Linear Transformations Using Matrix ]
4. Determinant , Rank and Inverse Of Matrix [ Gaussian Elimination , Gauss
Jordan Elimination]
5. Solving System Of Linear Equations
6. Matrix Exponentiation To Solve Recurrences
7. Eigenvalues And Eigen vector
8. Roots of a polynomial [ Prime factorization of a polynomial, Integer roots of
a polynomial]
9. Lagrange Interpolation
(e)Game Theory
1. Basic Concepts & Nim Game [Grundy Theorem , Grundy Number]
2. Hackenbush
(f)Group Theory
1. Burnside Lemma
2. Polya's Theorem
Graphs:
(a)Graph Representation
1. Adjacency Matrix
2. Adjacency List
3. Incidence Matrix
4. Edge List
(b)Graph Types
1. Directed
2. Undirected
3. Weighted
4. Unweighted
5. Planar
6. Hamilton
7. Euler
8. Special Graphs
(c)DFS & It’s Application
1. Cycle Detection
2. Articulation Points
3. Bridges
4. Strongly Connected Component
5. Connected Component
6. Path Finding
7. Solving Maze
8. Biconnectivity in Graph
9. Topological Sorting
10. Bipartite Checking
11. Planarity Testing
12. Flood-fill algorithm
(d)BFS & It’s Application
1. Shortest Path (No. Of Edges)
2. Bipartite Checking
3. Connected Components
(d)Minimum Spanning Tree
1. Prim’s Algorithm
2. Kruskal Algorithm
(d)Single Source Shortest-Path
1. Dijkstra
2. Bellman Ford
(e)All pair Shortest Path
1. Floyd Warshall’s Algorithm
(f)Euler Tour
(g)Flow
1. Ford-Fulkerson [PFS,DFS,BFS]
2. Dinic's Algorithm
3. Min Cost - Max Flow [Successive Shortest Path Algo,Cycle Cancelling
Algorithm]
4. Max Weighted BPM [Kuhn Munkres algorithm/Hungarian Method]
5. Stoer Wagner Min-Cut Algo
6. Hop-Kraft BPM
7. Edmond Blossom Shrinking Algorithm
(h)Other Important Topics On Graphs
1. 2-SAT,
2. LCA
3. Maximum Cardinality Matching
4. Application Flow
5. Min Path Cover Over Dag
6. Independent Edge Disjoint Path
7. Minimum Vertex Cover
8. Maximum Independent Set
Data Structures:
1. Arrays
2. Linked List
3. Trees (Binary Tree And Binary Search Tree)
4. Stacks
5. Queues
6. Heap
7. Hash Tables
8. Disjoint-Set Data Structures
9. Trie
10. Segment Tree
11. Binary Index Tree
12. Treap
Searching And Sorting:
1. Linear Search
2. BInary Search
3. Ternary Search
4. Selection Sort
5. Bubble Sort
6. Insertion Sort
7. Merge Sort
8. Quick Sort
9. Quick Select
10. Heap Sort
11. Radix Sort
12. Counting Sort
Greedy:
Classical Problems of Greedy & Concept
example : Fractional Knapsack
Dynamic Programming Classical Problems
1. Edit Distance
2. Egg Dropping Puzzle
3. Integer Knapsack
4. Largest Independent Set
5. Longest Biotonic Subsequence
6. Longest Common Subsequence
7. Longest Common Substring
8. Longest Increasing Subsequence
9. Longest Palindromic Subsequence
10. Longest Palindromic Substring
11. Longest Substring Without Repeating Character
12. Matrix Chain Multiplication
13. Max Size Square Submatrix With One
14. Maximum Length Chain Pairs
15. Maximum Sum Increasing Subsequence
16. Optimal Binary Search Tree
17. Palindrome Partition Problem
18. Set Partition Problem
19. Subset Sum
20. Word Wrap Problem
Dynamic Programming Advanced Techniques
1. DP + Tree
2. DP + Bit Masking
3. DP + Binary Search
4. DP + Graph
5. DP + Matrix Exponentiation
6. DP + Probability Space
7. DP + Crack Recurrence
Divide & Conquer
Classical Problems & Concepts
1. Merge Sort
2. Closest Pair Points
Other Algorithm Design Techniques :
1. BackTracking
2. Man In Middle
3. Newton-Raphson to reach the fixed point
4. Brute Force
5. Constructive Algo
6. Sliding Window
7. Pancake Sorting
C- Programming
C Overview
Data Types
Operators and Expressions
Formatting Input/Output
Decision Making
Logic Building
Arrays and Pointers
Character Arrays and Strings
Functions
Recursion
Structures and Unions
Sorting
Searching
File Handling
C++
C++ Overview
Data Types
Loops
Operators and Expressions
Formatting Input/Output
Decision Making
Logic Building
Pointers
Arrays
Character Arrays and Strings
Functions
Recursion
Structures
Object Oriented Concepts inC++
Inheritance
Abstract Classes
Virtual Function
Standard TemplateLibrary(STLs)
File Handling
Take the following 2 courses:
Data structures and algorithms(2 months)(use c++/java)
Discrete mathematics(1 months)(mathetical induction,
linear algebra)
Helpful for interview preparations
Skip ireelment data structures
Data structure and algorithms
Pointers
Structures
Arrays and Pointers
Linked List
Stacks
Queues
Trees
Heap
Graphs
Recursion
Algorithms Overview
Time and Space Complexity
Sorting Algorithms
Searching Algorithms
Divide and Conquer
Greedy Algorithm
BackTracking
Dynamic Programming
String Matching
Java
Introduction to Java
Java Fundamentals
Control Statements
Logic Building
Arrays
OOOPs Concepts
Inheritance
Encapsulation
Polymorphism
Abstraction
Strings
Exception Handling
Generics
Collections
Multithreading
File Handling
Python
Python Overview
Logic building
Loops and conditional statements
Data Structures in Python
Operators and Expressions
Input/Output
Arrays
Strings
Functions and OOPs
Recursion
Time complexity
Searching
Sorting
Aptitude
Number system &Divisibility
HCF & LCM
Series & Progression
Time, Speed & Distance
Time & Work
Percentages
Permutation &Combination
Profit & Loss
Probablity
Geometry
Mixtures & Allegations
Logarithms
Sentence Completion
Reading Comprehension
Para jumbles
Synonyms
Antonyms
Data Sufficiency
Deductive Logic
Number series
Analogy
Cryptarithmetic
Web development
Our first task would be to learn Django.
What is it? It is a Python based web development
framework.
Why learn it? Django is in high demand among
Indian startups these days. Also, it is easy to learn.
Head straight to this link — Django Girls Tutorial
Build a photo gallery app — take a hash tag from the
user and use TwitterAPI to gather images of that
hash tag in a photo gallery. This might be
helpful: amangoeliitb/Photo-Gallery-Web-
Application
A simple banking application — try making both a
customer and an employee account.
A student dashboard that shows the performance of
student.
make a Github account. Github is a ‘social network’ for
programmers. People upload their source codes on Github.
There is also something called as ‘git’, which is a version
management system. Take this short course on git — How to
Use Version Control in Git & GitHub | Udacity. By the way,
git is worth learning because you can put it on your resume!
Android app development.
Make simple application like time management,life
tracker,habbit tracker.
In this semester, you should get serious about your internship.
AngelList is an excellent platform where startups are looking for
intern
Search for other internship portals. Be active on LinkedIn.
Start preparing for interviews.
To prepare for interviews, use the following 3
excellent sources:
Cracking the coding Interview — this book is the bible
for programming interviews
Coding Interview Questions — This is a brilliant
platform to hone your interview skills.
Coding Interview Questions — This is a brilliant platform
to hone your interview skills.
Databases — in your Django web app, you would
have used SQLite/MySQL/Postgres as your
database. A database is a special kind of data
structure that stores data in hard disk. Some
companies like to ask databases related questions
to the candidates. Being a non CS student, of course
you aren’t expected to do a formal databases
course (if you can, then that’s a big plus though!).
Search for databases interview questions to get a
basic idea of what is asked. I guess I will leave this
point open ended because by this time, you would
have become smart enough to figure this out
yourself :)
Operating systems — pretty much the same applies
here as well. Doing a quick Google search for
operating systems interview questions will give you
enough practice problems which will be fine for
most interviews.
If you are interested, you should take up online courses on
databases and OS:
DBMS
Introduction to DBMS
Entity Relationship Model
Enhanced Entity Relationship Model
Relational Model
SQL
Relational Database Design
Storage and File Structure
Transaction Management
OPERATING SYSTEM
Introduction to Operating System
Process Concepts
Threads
Process Scheduling
Process Synchronization
Deadlocks
Memory Management
Virtual Memory Management
File System and Secondary Storage
Machine learning
That was about internships. Besides the internship, you should
try taking up some miscellaneous courses like:
Machine Learning — Machine Learning — Stanford
University | Coursera
Intro to Machine Learning Course | Udacity
Cryptography — Applied Cryptography and
Encryption Class Online | Udacity
A website called caggle(dataset) project.
These courses should help you put 2 more projects on your
resume and also expand your CS knowledge. No doubt they will
also open up more internship domains for you:
Data/ML engineer intern
Security engineer intern
Data structures and algorithms — the standard
bread and butter of CS
Probability — school level prob/stats questions.
These should be easy for you
Databases and Operating systems — we are yet to
talk about this
Now let us talk about databases and operating systems (OS):
and InterviewBit should be the one place where you should
spend your maximum time.