Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Prepare
This sections lists out the syllabus, the learning resources and Mock Tests to help you prepare for
the Certification Test. The resources that we list here are references that we have collected over
the internet and some of them from our own website. While we do recommend these resources
based on the inputs of our user community, we do not claim that these are the most authoritative
Learning Resources about any topic. Please feel free to find out what suits best to you.
We have also prepared a Mock Test for each level. A Mock Test is an open assessment contest
that will help you assess yourself for the certification exam after you are ready with the topics. For
each level we have different Mock Tests. These contests will run forever. We strongly recommend
you to solve these problems in same duration of time as the duration of the exam before you take
the exam.
Candidates can expect problems from the following topics to come in the exam.
Foundation
Syllabus:
The syllabus for each level is mentioned below:
Learning Resources:
1. Asymptotic analysis (Big-O notation)
1. Basic
2. Advanced
3. Practice Problems
1. You can see some problems with solutions here: Time complexity of an algorithm
2. Arrays
1. Resources
2. Practice Problems
3. Strings
1. Resources
2. Practice Problems
1. Resources
2. Practice Problems
1. spoj.com - JNEXT
2. spoj.com - STPAR
3. spoj.com - ONP
4. spoj.com - COMPILER
5. spoj.com - MMASS
6. spoj.com - HISTOGRA
7. codeforces.com - D. Maximum Xor Secondary
8. spoj.com - ANARC09A
9. codeforces.com - C. Minimal string
10. codeforces.com - B. Alternating Current
11. codeforces.com - C. Longest Regular Bracket Sequence
1. Resources
1. Resources:
1. Only O(sqrt(n)) algorithm for finding whether a number is a prime, factorization of a number.
2. Finding prime factors by taking the square root
2. Practice Problems:
1. community.topcoder.com - DivisorInc
2. community.topcoder.com - Prime Polynom
3. community.topcoder.com - Prime Anagrams
4. community.topcoder.com - Refactoring
8. Basic Recursion
1. Resources
2. Practice Problems
9. Greedy Algorithms
1. Resources
Prepare
2. Practice Problems
1. codechef.com - ALTARAY, editorial
2. codechef.com - DELISH, editorial
3. codechef.com - DBOY, editorial
4. codechef.com - XORSUB, editorial
5. codechef.com - GRID, editorial
6. codechef.com - TADELIVE, editorial
7. codechef.com - FROGV, editorial
8. codechef.com - MATRIX2, editorial
9. codechef.com - AMSGAME2, editorial
10. spoj.com - MDOLLS
11. spoj.com - MSTICK
12. spoj.com - MCARDS
13. spoj.com - MIXTURES
14. spoj.com - SAMER08D
15. spoj.com - AIBOHP
1. Resources
12. Sorting
1. khanacademy.org
2. visualgo.net
3. iarcs.org.in
4. Merge sort
5. Quick sort
6. Counting sort
1. Resources
1. topcoder.com (Try solving problems of Simple and Moderate level as mentioned in the end
of the link)
2. codechef.com
3. usfca.edu
4. khanacademy.org
3. Problems
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
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:
Learning Resources:
1. Heaps (priority queue)
1. Resources
1. cs.cmu.edu
2. eecs.wsu.edu
3. geeksforgeeks.org
4. visualgo.net
5. iarcs.org.in
2. Practice Problems
1. Resources
1. topcoder.com
2. harvard.edu
3. ucdavis.edu
4. visualgo.net
2. Practice Problems
1. Resources
1. wcipeg.com
2. topcoder.com
3. kartikkukreja.wordpress.com
4. visualgo.net
5. iarcs.org.in
2. Practice Problems
1. spoj.com - GSS1
2. spoj.com - GSS2
3. codeforces.com - Classic Segment Tree (Expert Level)
4. spoj.com - IOPC1207
5. spoj.com - ORDERSET
6. spoj.com - HELPR2D2
7. spoj.com - ANDROUND
8. spoj.com - HEAPULM
9. spoj.com - NICEDAY
10. spoj.com - YODANESS
11. spoj.com - DQUERY
12. spoj.com - KQUERY
13. spoj.com - FREQUENT
14. spoj.com - GSS3
15. spoj.com - GSS4
16. spoj.com - GSS5
17. spoj.com - KGSS
18. spoj.com - HELPR2D2
19. spoj.com - BRCKTS
20. spoj.com - CTRICK
21. spoj.com - MATSUM
22 j RATING
22. spoj.com - RATING
23. spoj.com - RRSCHED
24. spoj.com - SUPPER
25. spoj.com - ORDERS
26. codechef.com - LEBOBBLE
27. codechef.com - QUERY
28. spoj.com - TEMPLEQ
29. spoj.com - DISUBSTR
30. spoj.com - QTREE
31. spoj.com - QTREE2
32. spoj.com - QTREE3
33. spoj.com - QTREE4
34. spoj.com - QTREE5
1. Resources
1. topcoder.com
2. iarcs.org.in
3. visualgo.net
2. Practice 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.
1. spoj.com - INVCNT
2. spoj.com - TRIPINV
5. Trees (traversals)
1. Resources
1. slideshare.net
2. iarcs.org.in
3. berkeley.edu
2. Practice Problems
1. spoj.com - TREEORD
1. Resources
1. topcoder.com
7. Depth First Search, Breadth First Search (Finding connected components and transitive
closures)
1. Resources
2. Practice Problems
1. Resources
2. Practice Problems
1. Resources
2. Practice Problem
1. community.topcoder.com - PeopleYouMayKnow
2. codeforces.com - D. Robot Control
3. spoj.com - ARBITRAG - Arbitrage ;(Floyd Warshall)
4. community.topcoder.com - NetworkSecurity ;(Floyd Warshall)
1. Resources
2. Practice Problem
1. spoj.com - MST
2. spoj.com - NITTROAD
3. spoj.com - BLINNET
4. spoj.com - CSTREET
5. spoj.com - HIGHWAYS
6. spoj.com - IITWPC4I
7. codechef.com - MSTQS, editorial
8. codechef.com - CHEFGAME, editorial
9. codechef.com - GALACTIK, editorial
10. codechef.com - GOOGOL03, editorial
11. spoj.com - KOICOST
1. Resources
2. Practice Problem
1. uva.onlinejudge.org - Network
2. icpcarchive.ecs.baylor.edu - Building Bridges
3. uva.onlinejudge.org - Tourist Guide
4. acm.tju.edu.cn - Network
5. spoj.com - EC_P - Critical Edges
6. spoj.com - SUBMERGE - Submerging Islands
7. spoj.com - POLQUERY - Police Query
8. codeforces.com - A. Cutting Figure
1. Resources
2. Practice Problem
1. spoj.com - ANTTT
2. spoj.com - CAPCITY
3. spoj.com - SUBMERGE
4. codechef.com - MCO16405, editorial
5. spoj.com - BOTTOM
6. spoj.com - BREAK
6. spoj.com BREAK
7. community.topcoder.com - Marble Collection Game
1. Resources
2. Practice Problem
1. spoj.com - TOPOSORT ;
2. codeforces.com - C. Fox And Names ;
3. codechef.com - RRDAG, editorial
4. spoj.com - RPLA
5. codechef.com - CL16BF (topological sort with dp), editorial
6. spoj.com - MAKETREE
1. Resources
2. Practice Problem
1. spoj.com - WORDS1
2. codechef.com - CHEFPASS, editorial
3. codechef.com - TOURISTS, editorial
4. codeforces.com - D. New Year Santa Network
5. B. Strongly Connected City
6. codechef.com - PEOPLOVE
7. codeforces.com - D. Tanya and Password
8. codeforces.com - E. One-Way Reform
9. spoj.com - GCPC11C
10. spoj.com - MAKETREE
1. Resources
1. Resources
1. Resources
2. Practice Problem
18. Advanced Dynamic Programming problems (excluding the dp optimizations which are added in
expert level, Please go through the basic DP resources and problems mentioned in foundation level
resource.)
1. Resources
1. Resources:
2. Practice Problems
1. spoj.com - TDKPRIME
2. spoj.com - TDPRIMES
3. spoj.com - ODDDIV ;(sieve + binary search)
4. spoj.com - NDIVPHI ;O(N) prime testing algorithm)
5. spoj.com - DIV ;(divisor sieve)
6. codechef.com - LEVY, editorial
7. codechef.com - PRETNUM, editorial
8. codechef.com - KPRIME, editorial
9. codechef.com - DIVMAC, editorial (segment tree with sieve)
10. codechef.com - PPERM, editorial ;(a bit advanced sieve application)
Mock Test:
1. Test 1 - codechef.com/ALMOCK01
2. Test 2 - codechef.com/ALMOCK02
3. Test 3 - codechef.com/ALMOCK03
4. Test 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:
1. Treaps
2. Persistent Data Structures
3. HLD
4. Centroid Decomposition
5. Computational Geometry
6. Fast Fourier Transforms
7. Game Theory
8. Gaussian Elimination
9. Dynamic Programming Optimizations
10. Advanced String algorithms (Tries, KMP, Aho-Corasik, Suffix arrays, Suffix trees)
11. Flows (Max-Flow, Min Cost Max Flow)
Learning Resources:
1. Coming Soon
Mock Test:
1. Coming Soon
Note: These links have been curated to help in preparation for the exams, and also to help the community in general. But if you
own some of the material linked to, and you wouldn’t like them to be here, please contact us, and we will remove it.
About CodeChef About Directi CEO's Corner C-Programming Programming Languages Contact Us
© 2009 Directi Group. All Rights Reserved. CodeChef uses SPOJ © by Sphere Research Labs
In order to report copyright violations of any kind, send in an email to copyright@codechef.com The time now is: 03:28:53 AM
Your IP: 14.139.226.10
FAQ's