Useful Links for online learning programming 1- www.edx.org/ 2- www.coursera.org 3- www.udacity.com 4- www.edraak.org 5- www.class.stanford.edu 6- www.venture-lab.org 7- www.education. 10gen.com 8- www.openhpi.de 9- www.ocw.mit.edu 10- www.khanacademy.org 11- www.oli.cmu.edu 12- www.oyc.yale.edu 13- www.webcast.berkeley.edu 14- https://lnkd.in/dknxV4W 15- www.see.stanford.edu 16- www.ck12.org 17- www.udemy.com 18- www.code.org 19- www.codecademy.com
The syllabus for each level is mentioned below:
Basic Data Structures: Arrays, Strings, Stacks, QueuesAsymptotic analysis (Big-O notation)Basic math operations (addition, subtraction, multiplication, division, exponentiation)Sqrt(n) primality testingEuclid’s GCD AlgorithmBasic RecursionGreedy AlgorithmsBasic Dynamic ProgrammingNaive string searchingO(n logn) SortingBinary Searching
Learning Resources:
Asymptotic analysis (Big-O notation)Basicyoutube.com - Time complexity of a computer programyoutube.com - Big-O notation in 5 minutes - The basicsyoutube.com - Definition Of Big O Notation - Intro to Theoretical Computer Scienceyoutube.com - Algorithms Lecture 1 -- Introduction to asymptotic notationsiarcs.org.in - Measuring the efficiency of algorithmsinteractivepython.org - Particularly for Big-O notationAdvancedrob-bell.net - A beginner's guide to Big O notationyoutube.com - Big O Notation, Gayle Laakman McDowellweb.mit.edu - Big O notationyoutube.com - Time and space complexity analysis of recursive programs - using factorialA very nice tutorial with examplesPractice ProblemsCheck some MCQs on space and time complexity here.You can see some problems with solutions here: Time complexity of an algorithmArraysResourcescodechef.com - Data Structure Tutorial: Arraycs.cmu.edu - Arraysgeeksforgeeks.org - Arrays Data StructurePractice Problemscodechef.com - LECANDY, editorialcodechef.com - CNOTE, editorial ;codechef.com - SALARY, editorialcodechef.com - CHN15A, editorialcodechef.com - RAINBOWA, editorialcodechef.com - FRGTNLNG, editorialcodechef.com - COPS, editorialStringsResourcestutorialspoint.com - C++ stringsguru99.com - Java stringsdocs.python.org - Python stringstutorialspoint.com - Python stringsMany questions on the string:geeksforgeeks.org - String Data StructurePractice Problemscodechef.com - CSUB, editorialcodechef.com - LAPIN, editorialStack and QueueResourcesgeeksforgeeks.org - Stack Data Structuregeeksforgeeks.org - Introduction and Array Implementationtutorialspoint.com - Data Structures Algorithmscs.cmu.edu - Stackscs.cmu.edu - Stacks and Queuescs.cmu.edu - Stacks and QueuesPractice Problemsspoj.com - JNEXTspoj.com - STPARspoj.com - ONPcodechef.com - COMPILERspoj.com - MMASSspoj.com - HISTOGRAcodeforces.com - D. Maximum Xor Secondaryspoj.com - ANARC09Acodeforces.com - C. Minimal stringcodeforces.com - B. Alternating Currentcodeforces.com - C. Longest Regular Bracket SequenceBasic math operations (addition, subtraction, multiplication, division, exponentiation)codechef.com - A tutorial on Fast Modulo MultiplicationEuclid’s GCD AlgorithmResourcesyoutube.com - Mycodeschool videokhanacademy.org - The Euclidean Algorithmgeeksforgeeks.org - Example program to find gcd in c++:Prime Numbers, divisibility of numbersResources:Only O(sqrt(n)) algorithm for finding whether a number is a prime, factorization of a number.Finding prime factors by taking the square rootPractice Problems:community.topcoder.com - DivisorInccommunity.topcoder.com - Prime Polynomcommunity.topcoder.com - Prime Anagramscommunity.topcoder.com - RefactoringBasic RecursionResourcestopcoder.com - An Introduction to Recursion, Part 1topcoder.com - An Introduction to Recursion: Part 2geeksforgeeks.org - Recursion ;(along with questions)web.mit.edu - Recursioncsee.umbc.edu - Recursion ;(Examples with exercises)loveforprogramming.quora.com - Backtracking, Memoization & Dynamic ProgrammingPractice Problemscodechef.com - NOKIA, editorialcodechef.com - TRISQ, editorialcodechef.com - LFSTACK, editorialcodechef.com - FICE, editorialGreedy AlgorithmsResourcesiarcs.org.in - Greedy Algorithmsiarcs.org.in - Greedy Algorithmstopcoder.com - Greedy AlgorithmsGreedy AlgorithmsPractice Problemscodechef.com - TACHSTCK, editorialcodechef.com - CIELRCPT, editorialcodechef.com - MAXDIFF, editorialcodechef.com - CHEFST, editorialcodechef.com - CAKEDOOM, editorialcodechef.com - CLETAB, editorialcodechef.com - TADELIVE, editorialcodechef.com - MANYCHEF, editorialcodechef.com - MMPROD, editorialcodechef.com - CHEFTMA, editorialcodechef.com - STICKS, editorialspoj.com - BAISEDspoj.com - BALIFEspoj.com - GCJ101BBcodechef.com - FGFScodechef.com - KNPSKcodechef.com - LEMUSICspoj.com - ARRANGEspoj.com - FASHIONDynamic programming (Basic DP)Resourcesmedium.freecodecamp.org - Demystifying Dynamic Programmingiarcs.org.in - Dynamic Programming - Tilingtopcoder.com - Dynamic Programming – From Novice to Advancedillinois.edu - Dynamic Programming ;(Exercises are recommended)codechef.com - Dynamic Programminggeeksforgeeks.org - Dynamic Programming ;(Contains a lot of practice sessions)MIT OCW (Contains some Advanced topics as well)Dynamic Programming IDynamic Programming IIDynamic Programming IIIDynamic Programming IVPractice Problemscodechef.com - ALTARAY, editorialcodechef.com - DELISH, editorialcodechef.com - DBOY, editorialcodechef.com - XORSUB, editorialcodechef.com - GRID, editorialcodechef.com - TADELIVE, editorialcodechef.com - FROGV, editorialcodechef.com - MATRIX2, editorialcodechef.com - AMSGAME2, editorialspoj.com - MDOLLSspoj.com - MSTICKspoj.com - MCARDSspoj.com - MIXTURESspoj.com - SAMER08Dspoj.com - AIBOHPNaive string searchingResourcesgeeksforgeeks.org - Naive Pattern SearchingSortingkhanacademy.orgvisualgo.netiarcs.org.inMerge sortyoutube.com - Merge sort algorithmPractice Problems codechef.com -MRGSRTQuick sortyoutube.com - Quicksort algorithmPractice Problems codechef.com -TSORTCounting sortgeeksforgeeks.org - Counting SortPractice Problemscodechef.com - TACHSTCK, editorialcodechef.com - STICKS, editorialBinary SearchResourcestopcoder.com (Try solving problems of Simple and Moderate level as mentioned in the end of the link)codechef.comusfca.edukhanacademy.orgDetailed Theoretical analysiscmu.edu (A theoretical analysis)Problemsgeeksforgeeks.org - Binary Search(Contains some solved problems)codechef.com - STRSUB, editorialcodechef.com - ASHIGIFT, editorialcodechef.com - STACKS, editorialcodechef.com - DIVSET, editorialcodechef.com - LOWSUM, editorialcodechef.com - SNTEMPLE, editorialcodechef.com - SNAKEEAT, editorialcodechef.com - SCHEDULE,editorialcodechef.com - RIGHTTRI, editorialcodechef.com - FORESTGA, editorialcodechef.com - CHEFHCK2,editorialspoj.com - ABCDEFspoj.com - NOTATRIspoj.com - SCALEspoj.com - SUMFOURspoj.com - SUBSUMSspoj.com - ANARC05Bspoj.com - RENTspoj.com - PIEspoj.com - MKUHARspoj.com - SVADAspoj.com - SUBS
Mock Test:
Test 1 - codechef.com/FLMOCK01Test 2 - codechef.com/FLMOCK02Test 3 - codechef.com/FLMOCK03Test 4 - codechef.com/FLMOCK04
Advanced
This level is intended to test that the candidate has a very good grasp of algorithms and data structures, and can solve most problems that arise in practice. Candidates can expect problems from the following topics to come in the exam.
Syllabus:
Everything in the Foundation Level, along with:
Heaps (priority queue)Disjoint Set UnionSegment TreesBinary Index Tree (Fenwick tree)Trees (traversals, tree dynamic programming)Finding Lowest Common Ancestors (O(log N) solution where N is number of nodes).Graph Algorithms:Finding connected components and transitive closures.Shortest-path algorithms (Dijkstra, Bellman-Ford, Floyd-Warshall)Minimum spanning tree (Prim and Kruskal algorithms)Biconnectivity in undirected graphs (bridges, articulation points)Strongly connected components in directed graphsTopological SortingEuler path, tour/cycle.Modular arithmetic including division, inverseAmortized AnalysisDivide and ConquerAdvanced Dynamic Programming problems (excluding the dp optimizations which are added in expert level)Sieve of Eratosthenes
Learning Resources:
Heaps (priority queue)Resourcescs.cmu.edueecs.wsu.edugeeksforgeeks.orgvisualgo.netiarcs.org.inPractice Problemscodechef.com - IPCTRAIN, editorialcodechef.com - ANUMLA, editorialcodechef.com - KSUBSUM, editorialcodechef.com - RRATING, editorialcodechef.com - TSECJ05, editorialspoj.com - WEIRDFNcodechef.com - CAPIMOVE, editorialspoj.com - RMID2spoj.com - LAZYPROGspoj.com - EXPEDIacm.timus.rubaylor.edu - Maze Checking and Visualizationcodechef.com - MOSTDIST, editorialDisjoint Set UnionResourcestopcoder.comharvard.eduucdavis.eduvisualgo.netPractice Problemscodechef.com - GALACTIK, editorialcodechef.com - DISHOWN, editorialcodechef.com - JABO, editorialcodechef.com - PARITREE, editorialcodechef.com - FILLMTR, editorialB. Mike and FeetD. Quantity of Stringscodechef.com - SETELE, editorialcodechef.com - MAZE, editorialcodechef.com - MAGICSTR, editorialcodechef.com - MTRWY, editorialcodechef.com - BIGOF01, editorialcodechef.com - FIRESC, editorialSegment TreesResourceswcipeg.comtopcoder.comkartikkukreja.wordpress.comvisualgo.netiarcs.org.inPractice Problemsspoj.com - GSS1spoj.com - GSS2codeforces.com - Classic Segment Tree (Expert Level)spoj.com - IOPC1207spoj.com - ORDERSETspoj.com - HELPR2D2spoj.com - ANDROUNDspoj.com - HEAPULMspoj.com - NICEDAYspoj.com - YODANESSspoj.com - DQUERYspoj.com - KQUERYspoj.com - FREQUENTspoj.com - GSS3spoj.com - GSS4spoj.com - GSS5spoj.com - KGSSspoj.com - HELPR2D2spoj.com - BRCKTSspoj.com - CTRICKspoj.com - MATSUMspoj.com - RATINGspoj.com - RRSCHEDspoj.com - SUPPERspoj.com - ORDERScodechef.com - LEBOBBLEcodechef.com - QUERYspoj.com - TEMPLEQspoj.com - DISUBSTRspoj.com - QTREEspoj.com - QTREE2spoj.com - QTREE3spoj.com - QTREE4spoj.com - QTREE5Problems on segment tree with lazy propagationspoj.com - HORRIBLE (must do basic lazy propagation problem)spoj.com - LITE (a nice lazy propagation problem)spoj.com - MULTQ3 (another nice lazy propagation problem)codechef.com - CHEFDcodechef.com - FUNAGP (a difficult lazy propagation problem.)RPAR (a difficult and nice lazy propagation)codechef.com - ADDMULspoj.com - SEGSQRSS (a difficult lazy propagation problem)spoj.com - KGSScodeforces.com - C. Circular RMQcodeforces.com - E. Lucky Queries (must do hard problem on lazy propagation)codeforces.com - E. A Simple Taskcodeforces.com - C. DZY Loves Fibonacci Numbers (important problem to do, introduces some nice properties over lazy propagation)codeforces.com - D. The Child and Sequencecodeforces.com - E. Lucky ArrayBinary Index Tree (Fenwick tree)Resourcestopcoder.comiarcs.org.invisualgo.netPractice Problems: Please solve the problems mentioned in the above segment tree practice problems section. Note that usually, it's difficult to do range updates in binary indexed trees. Mostly, it is used for for range query and point update. However, you can check the following article for checking how some simple specific kind of range updates can be peformed on binary indexed tree (http://petr-mitrichev.blogspot.in/2013/05/fenwick-tree-range-updates.html). Note that range updates on BIT is not a part of the syllabus.spoj.com - INVCNTspoj.com - TRIPINVTrees (traversals)Resourcesslideshare.netiarcs.org.inberkeley.eduPractice Problemsspoj.com - TREEORDFinding Lowest Common Ancestors (O(log N) solution where N is number of nodes)Resourcestopcoder.comDepth First Search, Breadth First Search (Finding connected components and transitive closures)Resourcesgeeksforgeeks.org - Connected Components in an undirected graphgeeksforgeeks.org - Transitive closure of a graphgeeksforgeeks.org - Depth First Traversal or DFS for a Graphiarcs.org.in - Basic Graph Algorithmsvisualgo.net - Graph Traversalharvard.edu - Breadth-First SearchPractice Problemscodechef.com - FIRESC, editorialspoj.com - BUGLIFEspoj.com - CAM5spoj.com - GCPC11Jspoj.com - KFSTBspoj.com - PT07Yspoj.com - PT07Zspoj.com - LABYR1spoj.com - PARADOXspoj.com - PPATH ;(must do bfs problem)spoj.com - ELEVTRBL (bfs)spoj.com - QUEEN (bfs)spoj.com - SSORT ;(cycles in a graph)spoj.com - ROBOTGRI ;(bfs)Shortest-path algorithms (Dijkstra, Bellman-Ford, Floyd-Warshall)Resourcesgeeksforgeeks.org - Dijkstra’s shortest path algorithmIarcs.org.in - Shortest pathsVisualgo.net - Single-Source Shortest Paths (SSSP)Practice Problemscodechef.com - DIGJUMP, editorialcodechef.com - AMR14B, editorialcodechef.com - INSQ15_F, editorialcodechef.com - SPSHORT, editorial (slightly difficult dijkstra's problem.)codechef.com - RIVPILE, editorialspoj.com - SHPATHspoj.com - TRAFFICNspoj.com - SAMER08Aspoj.com - MICEMAZEspoj.com - TRVCOSTcodechef.com - PAIRCLST, editorialBellman Ford AlgorithmResourcesgeeksforgeeks.org - Dynamic Programming - Bellman–Ford Algorithmcompprog.wordpress.com - ;One Source Shortest Path - Bellman-Ford AlgorithmPractice Problemcommunity.topcoder.com - PeopleYouMayKnowcodeforces.com - D. Robot Controlspoj.com - ARBITRAG - Arbitrage ;(Floyd Warshall)community.topcoder.com - NetworkSecurity ;(Floyd Warshall)Minimum spanning tree (Prim and Kruskal algorithms)Resourcesalgs4.cs.princeton.edu - Minimum Spanning Treesiarcs.org.in - Spanning treesvisualgo.net - Spanning TreePractice Problemspoj.com - MSTspoj.com - NITTROADspoj.com - BLINNETspoj.com - CSTREETspoj.com - HIGHWAYSspoj.com - IITWPC4Icodechef.com - MSTQS, editorialcodechef.com - CHEFGAME, editorialcodechef.com - GALACTIK, editorialcodechef.com - GOOGOL03, editorialspoj.com - KOICOSTBiconnectivity in undirected graphs (bridges, articulation points)Resourcese-maxx-eng.appspot.com - Finding Bridges in a Graphiarcs.org.in - Articulation Pointspisces.ck.tp.edu.tw - Articulation PointsPractice Problemuva.onlinejudge.org - Networkicpcarchive.ecs.baylor.edu - Building Bridgesuva.onlinejudge.org - Tourist Guideacm.tju.edu.cn - Networkspoj.com - EC_P - Critical Edgesspoj.com - SUBMERGE - Submerging Islandsspoj.com - POLQUERY - Police Querycodeforces.com - A. Cutting FigureStrongly connected components in directed graphsResourcesiarcs.org.in - Strongly connected componentstheory.stanford.edu - Strongly Connected ComponentsPractice Problemspoj.com - ANTTTspoj.com - CAPCITYspoj.com - SUBMERGEcodechef.com - MCO16405, editorialspoj.com - BOTTOMspoj.com - BREAKcommunity.topcoder.com - Marble Collection GameTopological SortingResourcesgeeksforgeeks.org - Topological SortingPractice Problemspoj.com - TOPOSORT ;codeforces.com - C. Fox And Names ;codechef.com - RRDAG, editorialspoj.com - RPLAcodechef.com - CL16BF(topological sort with dp), editorialspoj.com - MAKETREEEuler path, tour/cycle.Resourcesmath.ku.edu - Euler Paths and Euler CircuitsPractice Problemspoj.com - WORDS1codechef.com - CHEFPASS, editorialcodechef.com - TOURISTS, editorialcodeforces.com - D. New Year Santa NetworkB. Strongly Connected Citycodechef.com - PEOPLOVEcodeforces.com - D. Tanya and Passwordcodeforces.com - E. One-Way Reformspoj.com - GCPC11Cspoj.com - MAKETREEModular arithmetic including division, inverseResourcescodechef.com - Fast Modulo Multiplication (Exponential Squaring)codechef.com - Best known algos for calculating nCr % M ;(only for expert level)Amortized AnalysisResourcesocw.mit.edu - Amortized Analysiswikipedia.org - Amortized Analysisiiitdm.ac.in - Amortized AnalysisDivide and ConquerResourcescs.cmu.edu - Divide-and-Conquer and Recurrencesgeeksforgeeks.org - Divide-and-ConquerPractice Problemcodechef.com - MRGSRT, editorialspoj.com - HISTOGRAcodechef.com - TASTYD, editorialcodechef.com - RESTPERM, editorialcodechef.com - ACM14KP1, editorialAdvanced Dynamic Programmingproblems (excluding the dp optimizations which are added in expert level, Please go through the basic DP resources and problems mentioned in foundation level resource.)Resourcesapps.topcoder.com - Commonly used DP state domainsapps.topcoder.com - Introducing Dynamic Programmingapps.topcoder.com - Optimizing DP solutioncodeforces.com - DP over Subsets and PathsProblems for Advanced DPspoj.com - HIST2 ;(dp bitmask)spoj.com - LAZYCOWS ;(dp bitmask)spoj.com - TRSTAGE ;(dp bitmask)spoj.com - MARTIANspoj.com - SQRBRspoj.com - ACMAKERspoj.com - AEROLITEspoj.com - BACKPACKspoj.com - COURIERspoj.com - DPspoj.com - EDISTspoj.com - KRECTspoj.com - GNY07Hspoj.com - LISAspoj.com - MINUSspoj.com - NAJKRACIspoj.com - PHIDIASspoj.com - PIGBANKspoj.com - PT07Xspoj.com - VOCVspoj.com - TOURISTspoj.com - MKBUDGETspoj.com - MMAXPERspoj.com - ANARC07Gspoj.com - MENUspoj.com - RENT ;(dp with segment tree/BIT)spoj.com - INCSEQ ;(dp with segment tree/BIT)spoj.com - INCDSEQ ;(dp with segment tree/BIT)You can solve some advanced problems fromcodeforces.com - Dynamic Programming TypeSieve of EratosthenesResources:codechef.com - Sieve MethodsPractice Problemsspoj.com - TDKPRIMEspoj.com - TDPRIMESspoj.com - ODDDIV ;(sieve + binary search)spoj.com - NDIVPHI ;O(N) prime testing algorithm)spoj.com - DIV ;(divisor sieve)codechef.com - LEVY, editorialcodechef.com - PRETNUM, editorialcodechef.com - KPRIME, editorialcodechef.com - DIVMAC, editorial(segment tree with sieve)codechef.com - PPERM, editorial ;(a bit advanced sieve application)GeneralStanford Algoriths 1Stanford Algoriths 2
Mock Test:
Test 1 - codechef.com/ALMOCK01Test 2 - codechef.com/ALMOCK02Test 3 - codechef.com/ALMOCK03Test 4 - codechef.com/ALMOCK04
Expert
This level is intended to test that the candidate is an expert in algorithms and data structures, and has a deep understanding of the topics. Candidates can expect problems from the following topics to come in the exam.
Syllabus:
The syllabus for Expert Level is open-ended. Everything in Advanced Level will be included, along with:
TreapsPersistent Data StructuresHLDCentroid DecompositionComputational GeometryFast Fourier TransformsGame TheoryGaussian EliminationDynamic Programming OptimizationsAdvanced String algorithms (Tries, KMP, Aho-Corasik, Suffix arrays, Suffix trees)Flows (Max-Flow, Min Cost Max Flow)
OutDates:
If you want a curated list of materials to learn from Link :- https://drive.google.com/drive/mobile/folders/0B6RiB8cVZQhmTDZvN0JadGtScGs/0ByWO0aO1eI_MN1BEd3VNRUZENkU?sort=13&direction=a
http://www.analyticscertificate.com/Blockchain-ML/
http://www.hongkiat.com/blog/cheatsheet-infographic-software-developers/
go here to find more than 500 Gb worth of books and videos
https://medium.mybridge.co/machine-learning-top-10-open-source-projects-v-feb-2018-d1d39062bd20