Log In Sign Up

Full Curriculum - Algorithms in 60 Days

Complete Curriculum #

Welcome to the comprehensive curriculum for Algorithms in 60 Days. This structured learning path will take you from basic algorithmic concepts to advanced problem-solving techniques used in competitive programming and technical interviews.

Learning Path Overview #

Our 60-day journey is divided into modules that build upon each other, ensuring you develop a solid foundation before tackling more complex topics:

Module 1: Fundamentals (Days 1-10) #

  • Introduction to algorithms and time complexity
  • Basic data structures: Arrays, Strings
  • Linked Lists and their applications

Module 2: Core Data Structures (Days 11-20) #

  • Stacks and Queues
  • Trees: Binary Trees, BST
  • Graphs: Fundamentals and traversal algorithms

Module 3: Advanced Algorithms (Days 21-30) #

  • Shortest Path Algorithms
  • Sorting techniques
  • Dynamic Programming introduction

Module 4: Dynamic Programming (Days 31-40) #

  • Classic DP problems
  • Optimization techniques
  • Greedy Algorithms

Module 5: Graph Algorithms (Days 41-50) #

  • Advanced graph algorithms
  • Minimum spanning trees
  • Backtracking problems

Module 6: Specialized Topics (Days 51-60) #

  • Bit manipulation
  • String algorithms
  • Competitive programming techniques

Daily Curriculum #

Below is the detailed day-by-day breakdown of topics:

Week 1-2: Getting Started #

DayTopicDifficulty
1Introduction to AlgorithmsBeginner
2Algorithmic Thinking and PseudocodeBeginner
3Introduction to Time ComplexityBeginner
4Introduction to ArraysBeginner
5Multi-dimensional Arrays and SortingBeginner
6Advanced Sorting: Insertion & MergeBeginner-Intermediate
7Introduction to Linked ListsBeginner-Intermediate
8Singly Linked ListsBeginner-Intermediate
9Doubly Linked ListsIntermediate
10Advanced Linked List OperationsIntermediate

Week 3-4: Core Data Structures #

DayTopicDifficulty
11StacksBeginner-Intermediate
12QueuesBeginner-Intermediate
13Trees IntroductionIntermediate
14Binary TreesIntermediate
15Binary Search TreesIntermediate
16Tree TraversalsIntermediate
17HeapsIntermediate
18Graphs IntroductionIntermediate
19Graph RepresentationsIntermediate
20Graph TraversalsIntermediate-Advanced

Week 5-6: Advanced Algorithms #

DayTopicDifficulty
21Shortest Path AlgorithmsIntermediate-Advanced
22Minimum Spanning TreesIntermediate-Advanced
23Hash TablesIntermediate
24SetsIntermediate
25Binary SearchIntermediate
26QuicksortIntermediate-Advanced
27MergesortIntermediate
28HeapsortIntermediate-Advanced
29Sorting Algorithm ComparisonIntermediate
30Dynamic Programming IntroductionAdvanced

Week 7-8: Dynamic Programming #

DayTopicDifficulty
31Fibonacci and DPIntermediate-Advanced
32Longest Common SubsequenceAdvanced
33Knapsack ProblemAdvanced
34Matrix Chain MultiplicationAdvanced
35Longest Increasing SubsequenceAdvanced
36Edit DistanceAdvanced
37Coin Change ProblemAdvanced
38Rod CuttingAdvanced
39Palindrome PartitioningAdvanced
40Greedy Algorithms IntroductionIntermediate-Advanced

Week 9-10: Graph Algorithms #

DayTopicDifficulty
41Activity SelectionIntermediate-Advanced
42Huffman CodingAdvanced
43Dijkstra’s AlgorithmAdvanced
44Prim’s AlgorithmAdvanced
45Kruskal’s AlgorithmAdvanced
46Floyd-Warshall AlgorithmAdvanced
47Bellman-Ford AlgorithmAdvanced
48Backtracking IntroductionAdvanced
49N-Queens ProblemAdvanced
50Sudoku SolverAdvanced

Week 11-12: Specialized Topics #

DayTopicDifficulty
51Hamiltonian CycleAdvanced
52Graph ColoringAdvanced
53Bit Manipulation TechniquesAdvanced
54Power SetAdvanced
55Counting BitsAdvanced
56String Algorithms: KMPAdvanced
57Rabin-Karp AlgorithmAdvanced
58TriesAdvanced
59Advanced Tree StructuresAdvanced
60Competitive Programming TechniquesAdvanced

How to Use This Curriculum #

  1. Follow the Order: The topics are arranged in a specific sequence to build upon previous knowledge.
  2. Practice Daily: Aim to complete one topic per day, spending time on both theory and practice.
  3. Complete the Exercises: Each lesson includes exercises and problems to reinforce your learning.
  4. Review Regularly: Schedule review sessions to revisit challenging concepts.
  5. Join the Community: Discuss problems and solutions with fellow learners in our community.

Resources #

In addition to the daily lessons, we provide these supplementary resources:

  • Code Repository: All example code is available on GitHub
  • Visualizations: Interactive visualizations for complex algorithms
  • Problem Sets: Additional practice problems for each topic
  • Reference Sheets: Downloadable cheat sheets for quick reference

Ready to begin your journey to algorithmic mastery? Start with Day 1: Introduction to Algorithms or jump to a specific topic that interests you!