Codechef Certified Data Structure & Algorithms Programme (Ccdsap)
Codechef Certified Data Structure & Algorithms Programme (Ccdsap)
Overview
Forgot Password
Updates
PRACTICE COMPETE DISCUSS COMMUNITY HELP ABOUT
Levels
Enroll
Foundation
Advanced
Registration Closes on 22nd June 2018
Expert
Examination
Prepare
FAQ
Contact Us
New
Be a Representative
Dashboard
We have put up the best preparation resources that we found on the internet together for everyone to learn
from them. These are handpicked resources that we found over the last few years, mostly recommended by
the community and vetted by our admins. We believe that this is a gold mine of information and is available
for free to anyone who wants to learn data structures and algorithms even if she does now want to give the
exam.
For those who are still finding the material difficult, we are also conducting summer workshops in a couple
of cities - Hyderabad and Bangalore . There are many more workshops coming up, and you can stay up-
to-date with the schedule through our social media or mailing lists.
We will be conducting many more such workshops across the country. If your college is willing to do this
and there are more than 50 students wanting to take it up, you can ask your faculty/college management to
send us an email to [email protected] .
Or if you want to host/organise it in your city, you can also get in touch with us.
This section 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 the 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:
Details a. Basic
Examination b. Advanced
c. Practice Problems
2. Arrays
a. Resources
b. Practice Problems
3. Strings
a. Resources
b. Practice Problems
a. Resources
b. Practice Problems
Overview
i. spoj.com - JNEXT
Updates
ii. spoj.com - STPAR
Advanced
ix. codeforces.com - C. Minimal string
x. codeforces.com - B. Alternating Current
Expert
xi. codeforces.com - C. Longest Regular Bracket Sequence
Examination
5. Basic math operations (addition, subtraction, multiplication, division, exponentiation)
FAQ
a. codechef.com - A tutorial on Fast Modulo Multiplication
Contact Us
6. Euclid’s GCD Algorithm
New
Be a Representative
a. Resources
Dashboard i. youtube.com - Mycodeschool video
ii. khanacademy.org - The Euclidean Algorithm
iii. geeksforgeeks.org - Example program to find gcd in c++:
a. Resources:
b. Practice Problems:
i. community.topcoder.com - DivisorInc
ii. community.topcoder.com - Prime Polynom
iii. community.topcoder.com - Prime Anagrams
iv. community.topcoder.com - Refactoring
8. Basic Recursion
a. Resources
b. Practice Problems
9. Greedy Algorithms
a. Resources
b. Practice Problems
a. Resources
Dashboard
i. medium.freecodecamp.org - Demystifying Dynamic Programming
ii. iarcs.org.in - Dynamic Programming - Tiling
iii. topcoder.com - Dynamic Programming – From Novice to Advanced
iv. illinois.edu - Dynamic Programming ;(Exercises are recommended)
v. codechef.com - Dynamic Programming
vi. geeksforgeeks.org - Dynamic Programming ;(Contains a lot of practice sessions)
vii. MIT OCW (Contains some Advanced topics as well)
i. Dynamic Programming I
ii. Dynamic Programming II
iii. Dynamic Programming III
iv. Dynamic Programming IV
b. Practice Problems
a. Resources
12. Sorting
a. khanacademy.org
b. visualgo.net
c. iarcs.org.in
d. Merge sort
a. Resources
Examination
i. topcoder.com (Try solving problems of Simple and Moderate level as mentioned in the
FAQ end of the link)
c. 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:
Overview
Everything in the Foundation Level, along with:
Updates
1. Heaps (priority queue)
Levels
2. Disjoint Set Union
Learning Resources:
a. Resources
i. cs.cmu.edu
ii. eecs.wsu.edu
iii. geeksforgeeks.org
iv. visualgo.net
v. iarcs.org.in
b. Practice Problems
a. Resources
i. topcoder.com
ii. harvard.edu
iii. ucdavis.edu
iv. visualgo.net
b. Practice Problems
Expert
3. Segment Trees
Examination a. Resources
i. wcipeg.com
FAQ
ii. topcoder.com
Contact Us
iii. kartikkukreja.wordpress.com
New
Be a Representative
iv. visualgo.net
Dashboard v. iarcs.org.in
b. Practice Problems
i. spoj.com - GSS1
ii. spoj.com - GSS2
iii. codeforces.com - Classic Segment Tree (Expert Level)
iv. spoj.com - IOPC1207
v. spoj.com - ORDERSET
vi. spoj.com - HELPR2D2
vii. spoj.com - ANDROUND
viii. spoj.com - HEAPULM
ix. spoj.com - NICEDAY
x. spoj.com - YODANESS
xi. spoj.com - DQUERY
xii. spoj.com - KQUERY
xiii. spoj.com - FREQUENT
xiv. spoj.com - GSS3
xv. spoj.com - GSS4
xvi. spoj.com - GSS5
xvii. spoj.com - KGSS
xviii. spoj.com - HELPR2D2
xix. spoj.com - BRCKTS
xx. spoj.com - CTRICK
xxi. spoj.com - MATSUM
xxii. spoj.com - RATING
xxiii. spoj.com - RRSCHED
xxiv. spoj.com - SUPPER
xxv. spoj.com - ORDERS
xxvi. codechef.com - LEBOBBLE
xxvii. codechef.com - QUERY
xxviii. spoj.com - TEMPLEQ
xxix. spoj.com - DISUBSTR
xxx. spoj.com - QTREE
xxxi. spoj.com - QTREE2
xxxii. spoj.com - QTREE3
xxxiii. spoj.com - QTREE4
xxxiv. spoj.com - QTREE5
Foundation
xi. codeforces.com - E. Lucky Queries (must do hard problem on lazy propagation)
xii. codeforces.com - E. A Simple Task
Advanced
xiii. codeforces.com - C. DZY Loves Fibonacci Numbers (important problem to do,
Expert
introduces some nice properties over lazy propagation)
Examination xiv. codeforces.com - D. The Child and Sequence
xv. codeforces.com - E. Lucky Array
FAQ
Contact Us 4. Binary Index Tree (Fenwick tree)
i. topcoder.com
Dashboard
ii. iarcs.org.in
iii. visualgo.net
b. 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.
i. spoj.com - INVCNT
ii. spoj.com - TRIPINV
5. Trees (traversals)
a. Resources
i. slideshare.net
ii. iarcs.org.in
iii. berkeley.edu
b. Practice Problems
i. spoj.com - TREEORD
a. Resources
i. topcoder.com
7. Depth First Search, Breadth First Search (Finding connected components and transitive
closures)
a. Resources
b. Practice Problems
Updates
x. spoj.com - PPATH ;(must do bfs problem)
xi. spoj.com - ELEVTRBL (bfs)
Levels
xii. spoj.com - QUEEN (bfs)
a. Resources
Foundation
Advanced
i. geeksforgeeks.org - Dijkstra’s shortest path algorithm
ii. Iarcs.org.in - Shortest paths
Expert
iii. Visualgo.net - Single-Source Shortest Paths (SSSP)
Examination
b. Practice Problems
FAQ i. codechef.com - DIGJUMP, editorial
Contact Us ii. codechef.com - AMR14B, editorial
New
Be a Representative iii. codechef.com - INSQ15_F, editorial
iv. codechef.com - SPSHORT, editorial (slightly difficult dijkstra's problem.)
Dashboard
v. codechef.com - RIVPILE, editorial
vi. spoj.com - SHPATH
vii. spoj.com - TRAFFICN
viii. spoj.com - SAMER08A
ix. spoj.com - MICEMAZE
x. spoj.com - TRVCOST
xi. codechef.com - PAIRCLST, editorial
a. Resources
b. Practice Problem
i. community.topcoder.com - PeopleYouMayKnow
ii. codeforces.com - D. Robot Control
iii. spoj.com - ARBITRAG - Arbitrage ;(Floyd Warshall)
iv. community.topcoder.com - NetworkSecurity ;(Floyd Warshall)
a. Resources
b. Practice Problem
i. spoj.com - MST
ii. spoj.com - NITTROAD
iii. spoj.com - BLINNET
iv. spoj.com - CSTREET
v. spoj.com - HIGHWAYS
vi. spoj.com - IITWPC4I
vii. codechef.com - MSTQS, editorial
viii. codechef.com - CHEFGAME, editorial
ix. codechef.com - GALACTIK, editorial
x. codechef.com - GOOGOL03, editorial
xi. spoj.com - KOICOST
a. Resources
i. spoj.com - ANTTT
Dashboard
ii. spoj.com - CAPCITY
iii. spoj.com - SUBMERGE
iv. codechef.com - MCO16405, editorial
v. spoj.com - BOTTOM
vi. spoj.com - BREAK
vii. community.topcoder.com - Marble Collection Game
a. Resources
b. Practice Problem
i. spoj.com - TOPOSORT ;
ii. codeforces.com - C. Fox And Names ;
iii. codechef.com - RRDAG, editorial
iv. spoj.com - RPLA
v. codechef.com - CL16BF (topological sort with dp), editorial
vi. spoj.com - MAKETREE
a. Resources
b. Practice Problem
i. spoj.com - WORDS1
ii. codechef.com - CHEFPASS, editorial
iii. codechef.com - TOURISTS, editorial
iv. codeforces.com - D. New Year Santa Network
v. B. Strongly Connected City
vi. codechef.com - PEOPLOVE
vii. codeforces.com - D. Tanya and Password
viii. codeforces.com - E. One-Way Reform
ix. spoj.com - GCPC11C
x. spoj.com - MAKETREE
a. Resources
a. Resources
i. ocw.mit.edu - Amortized Analysis
a. Resources
Details
i. cs.cmu.edu - Divide-and-Conquer and Recurrences
Schedule ii. geeksforgeeks.org - Divide-and-Conquer
Prepare
b. Practice Problem
Foundation
i. codechef.com - MRGSRT, editorial
Advanced
ii. spoj.com - HISTOGRA
Expert iii. codechef.com - TASTYD, editorial
a. Resources
Dashboard
i. apps.topcoder.com - Commonly used DP state domains
ii. apps.topcoder.com - Introducing Dynamic Programming
iii. apps.topcoder.com - Optimizing DP solution
iv. codeforces.com - DP over Subsets and Paths
a. Resources:
b. Practice Problems
Overview
i. spoj.com - TDKPRIME
Updates
ii. spoj.com - TDPRIMES
Levels iii. spoj.com - ODDDIV ;(sieve + binary search)
iv. spoj.com - NDIVPHI ;O(N) prime testing algorithm)
Details
v. spoj.com - DIV ;(divisor sieve)
Schedule vi. codechef.com - LEVY, editorial
Prepare vii. codechef.com - PRETNUM, editorial
a. Stanford Algoriths 1
FAQ
b. Stanford Algoriths 2
Contact Us
New
Be a Representative Mock Test:
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:
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.
Overview CodeChef is a non-commercial competitive programming community
Updates
About CodeChef About Directi CEO's Corner C-Programming Programming Languages Contact Us
© 2009Levels
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 [email protected] The time now is: 11:03:35 AM
Your IP: 42.111.10.15
Details
CodeChef - A Platform for Aspiring Programmers
CodeChef was created as a platform to help programmers make it big in the world of algorithms, computer programming and programming contests. At CodeChef we work hard to
revive Schedule
the geek in you by hosting a programming contest at the start of the month and another smaller programming challenge in the middle of the month. We also aim to have
training sessions and discussions related to algorithms, binary search, technicalities like array size and the likes. Apart from providing a platform for programming competitions,
Prepare
CodeChef also has various algorithm tutorials and forum discussions to help those who are new to the world of computer programming.
PracticeFoundation
Section - A Place to hone your 'Computer Programming Skills'
Try your hand at one of our many practice problems and submit your solution in a language of your choice. Our programming contest judge accepts solutions in over 35+
Advanced
programming languages. Preparing for coding contests were never this much fun! Receive points, and move up through the CodeChef ranks. Use our practice section to better
prepare yourself
Expert for the multiple programming challenges that take place through-out the month on CodeChef.
Compete - Monthly Programming Contests and Cook-offs
Here is
Examination
where you can show off your computer programming skills. Take part in our 10 day long monthly coding contest and the shorter format Cook-off coding contest. Put
yourself up for recognition and win great prizes. Our programming contests have prizes worth up to INR 20,000 (for Indian Community), $700 (for Global Community) and lots more
CodeChef goodies up for grabs.
FAQ
Contact Us
Programming Tools Practice Problems Initiatives
Online
BeIDE
a Representative Easy
New Go for Gold Terms of Service
FAQ's