You are on page 1of 4

Foundation

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

You might also like