Syllabus: The syllabus for each level is mentioned below:
1. Basic Data Structures: Arrays, Strings, Stacks, Queues
2. Asymptotic analysis (Big-O notation) 3. Basic math operations (addition, subtraction, multiplication, division, exponentiation) 4. Sqrt(n) primality testing 5. Euclid’s GCD Algorithm 6. Basic Recursion 7. Greedy Algorithms 8. Basic Dynamic Programming 9. Naive string searching 10. O(n logn) Sorting 11. Binary Searching Learning Resources: 1. Asymptotic analysis (Big-O notation) a. Basic i. youtube.com - Time complexity of a computer program ii. youtube.com - Big-O notation in 5 minutes - The basics iii. youtube.com - Definition Of Big O Notation - Intro to Theoretical Computer Science iv. youtube.com - Algorithms Lecture 1 -- Introduction to asymptotic notations v. iarcs.org.in - Measuring the efficiency of algorithms vi. interactivepython.org - Particularly for Big-O notation b. Advanced . rob-bell.net - A beginner's guide to Big O notation i. youtube.com - Big O Notation, Gayle Laakman McDowell ii. web.mit.edu - Big O notation iii. youtube.com - Time and space complexity analysis of recursive programs - using factorial iv. A very nice tutorial with examples c. Practice Problems . You can see some problems with solutions here: Time complexity of an algorithm 2. Arrays . Resources . codechef.com - Data Structure Tutorial: Array i. cs.cmu.edu - Arrays ii. geeksforgeeks.org - Arrays Data Structure a. Practice Problems . codechef.com - LECANDY, editorial i. codechef.com - CNOTE, editorial ; ii. codechef.com - SALARY, editorial iii. codechef.com - CHN15A, editorial iv. codechef.com - RAINBOWA, editorial v. codechef.com - FRGTNLNG, editorial vi. codechef.com - COPS, editorial 3. Strings . Resources . tutorialspoint.com - C++ strings i. guru99.com - Java strings ii. docs.python.org - Python strings iii. tutorialspoint.com - Python strings iv. Many questions on the string: v. geeksforgeeks.org - String Data Structure a. Practice Problems . codechef.com - CSUB, editorial i. codechef.com - LAPIN, editorial 4. Stack and Queue . Resources . geeksforgeeks.org - Stack Data Structure i. geeksforgeeks.org - Introduction and Array Implementation ii. tutorialspoint.com - Data Structures Algorithms iii. cs.cmu.edu - Stacks iv. cs.cmu.edu - Stacks and Queues v. cs.cmu.edu - Stacks and Queues a. Practice Problems . spoj.com - JNEXT i. spoj.com - STPAR ii. spoj.com - ONP iii. codechef.com - COMPILER iv. spoj.com - MMASS v. spoj.com - HISTOGRA vi. codeforces.com - D. Maximum Xor Secondary vii. spoj.com - ANARC09A viii. codeforces.com - C. Minimal string ix. codeforces.com - B. Alternating Current x. codeforces.com - C. Longest Regular Bracket Sequence 5. Basic math operations (addition, subtraction, multiplication, division, exponentiation) . codechef.com - A tutorial on Fast Modulo Multiplication 6. Euclid’s GCD Algorithm . Resources . youtube.com - Mycodeschool video i. khanacademy.org - The Euclidean Algorithm ii. geeksforgeeks.org - Example program to find gcd in c++: 7. Prime Numbers, divisibility of numbers . Resources: . Only O(sqrt(n)) algorithm for finding whether a number is a prime, factorization of a number. i. Finding prime factors by taking the square root a. Practice Problems: . community.topcoder.com - DivisorInc i. community.topcoder.com - Prime Polynom ii. community.topcoder.com - Prime Anagrams iii. community.topcoder.com - Refactoring 8. Basic Recursion . Resources . topcoder.com - An Introduction to Recursion, Part 1 i. topcoder.com - An Introduction to Recursion: Part 2 ii. geeksforgeeks.org - Recursion ;(along with questions) iii. web.mit.edu - Recursion iv. csee.umbc.edu - Recursion ;(Examples with exercises) v. loveforprogramming.quora.com - Backtracking, Memoization & Dynamic Programming a. Practice Problems . codechef.com - NOKIA, editorial i. codechef.com - TRISQ, editorial ii. codechef.com - LFSTACK, editorial iii. codechef.com - FICE, editorial 9. Greedy Algorithms . Resources . iarcs.org.in - Greedy Algorithms i. iarcs.org.in - Greedy Algorithms ii. topcoder.com - Greedy Algorithms iii. Greedy Algorithms a. Practice Problems . codechef.com - TACHSTCK, editorial i. codechef.com - CIELRCPT, editorial ii. codechef.com - MAXDIFF, editorial iii. codechef.com - CHEFST, editorial iv. codechef.com - CAKEDOOM, editorial v. codechef.com - CLETAB, editorial vi. codechef.com - TADELIVE, editorial vii. codechef.com - MANYCHEF, editorial viii. codechef.com - MMPROD, editorial ix. codechef.com - CHEFTMA, editorial x. codechef.com - STICKS, editorial xi. spoj.com - BAISED xii. spoj.com - BALIFE xiii. spoj.com - GCJ101BB xiv. codechef.com - FGFS xv. codechef.com - KNPSK xvi. codechef.com - LEMUSIC xvii. spoj.com - ARRANGE xviii. spoj.com - FASHION 10. Dynamic programming (Basic DP) . Resources . medium.freecodecamp.org - Demystifying Dynamic Programming i. iarcs.org.in - Dynamic Programming - Tiling ii. topcoder.com - Dynamic Programming – From Novice to Advanced iii. illinois.edu - Dynamic Programming ;(Exercises are recommended) iv. codechef.com - Dynamic Programming v. geeksforgeeks.org - Dynamic Programming ;(Contains a lot of practice sessions) vi. MIT OCW (Contains some Advanced topics as well) i. Dynamic Programming I ii. Dynamic Programming II iii. Dynamic Programming III iv. Dynamic Programming IV a. Practice Problems . codechef.com - ALTARAY, editorial i. codechef.com - DELISH, editorial ii. codechef.com - DBOY, editorial iii. codechef.com - XORSUB, editorial iv. codechef.com - GRID, editorial v. codechef.com - TADELIVE, editorial vi. codechef.com - FROGV, editorial vii. codechef.com - MATRIX2, editorial viii. codechef.com - AMSGAME2, editorial ix. spoj.com - MDOLLS x. spoj.com - MSTICK xi. spoj.com - MCARDS xii. spoj.com - MIXTURES xiii. spoj.com - SAMER08D xiv. spoj.com - AIBOHP 11. Naive string searching . Resources . geeksforgeeks.org - Naive Pattern Searching 12. Sorting . khanacademy.org a. visualgo.net b. iarcs.org.in c. Merge sort . youtube.com - Merge sort algorithm i. Practice Problems codechef.com -MRGSRT d. Quick sort . youtube.com - Quicksort algorithm i. Practice Problems codechef.com -TSORT e. Counting sort . geeksforgeeks.org - Counting Sort i. Practice Problems . codechef.com - TACHSTCK, editorial i. codechef.com - STICKS, editorial 13. Binary Search . Resources . topcoder.com (Try solving problems of Simple and Moderate level as mentioned in the end of the link) i. codechef.com ii. usfca.edu iii. khanacademy.org a. Detailed Theoretical analysis . cmu.edu (A theoretical analysis) b. Problems . geeksforgeeks.org - Binary Search (Contains some solved problems) i. codechef.com - STRSUB, editorial ii. codechef.com - ASHIGIFT, editorial iii. codechef.com - STACKS, editorial iv. codechef.com - DIVSET, editorial v. codechef.com - LOWSUM, editorial vi. codechef.com - SNTEMPLE, editorial vii. codechef.com - SNAKEEAT, editorial viii. codechef.com - SCHEDULE, editorial ix. codechef.com - RIGHTTRI, editorial x. codechef.com - FORESTGA, editorial xi. codechef.com - CHEFHCK2,editorial xii. spoj.com - ABCDEF xiii. spoj.com - NOTATRI xiv. spoj.com - SCALE xv. spoj.com - SUMFOUR xvi. spoj.com - SUBSUMS xvii. spoj.com - ANARC05B xviii. spoj.com - RENT xix. spoj.com - PIE xx. spoj.com - MKUHAR xxi. spoj.com - SVADA xxii. spoj.com - SUBS Mock Test: 1. Test 1 - codechef.com/FLMOCK01 2. Test 2 - codechef.com/FLMOCK02 3. Test 3 - codechef.com/FLMOCK03 4. Test 4 - codechef.com/FLMOCK04