Problem solving training for computer science students.
This level simply consists of 11 sheets, 4 sheets of them on Codeforces Online Judge, plus 4 sheets on HackerEarth Online Judge, and the last 3 sheets on HackerRank Online Judge.
The prerequisites for level 1 of this training are the basic knowledge for any programming language like (Variable Types - Basic Operators - Conditions - Loops - Functions - Lists - Strings).
- Python-Programming-Language Repository
- Cpp-Programming-Language Repository
Codeforces OJ sheets description
The Codeforces OJ sheets phase-1-1, phase-1-2, phase-1-3, phase-1-4 contain A-Div2 problems, and each sheet of them divided into 5 classes of problems (Basic Operators - Conditions - Loops - Lists - Strings). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems.
Codeforces OJ sheets (4 sheets)
Agenda of phase-1-1 (160 problems) 120 Hrs
Category | Problems |
---|---|
Basic Operator | 15 problems |
Condition | 15 problems |
Loop | 35 problems |
String | 35 problems |
List | 60 problems |
Agenda of phase-1-2 (115 problems) 80 Hrs
Category | Problems |
---|---|
Basic Operator | 10 problems |
Condition | 15 problems |
Loop | 20 problems |
String | 30 problems |
List | 35 problems |
Agenda of phase-1-3 (115 problems) 80 Hrs
Category | Problems |
---|---|
Basic Operator | 5 problems |
Condition | 20 problems |
Loop | 25 problems |
String | 30 problems |
List | 35 problems |
Agenda of phase-1-4 (105 problems) 80 Hrs
Category | Problems |
---|---|
Basic Operator | 5 problems |
Condition | 20 problems |
Loop | 20 problems |
String | 30 problems |
List | 30 problems |
HackerEarth OJ sheets description
The HackerEarth OJ sheets phase-1-1, phase-1-2, phase-1-3 contain implementation problems and basic programming problems. These sheets were ordered based on difficulty. Each sheet contains ~100 problems. For the last sheet phase-1-basic-programming that focus on the basic programming problems, It's divided into 4 classes of problems (Input/Output - Bit Manipulation - Recursion - Operators). Also, this sheet was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~130 problems.
HackerEarth OJ sheets (4 sheets)
Agenda of phase-1-1 (100 problems) 80 Hrs
Category | Problems |
---|---|
Implementation | 25 problems |
Implementation | 25 problems |
Implementation | 25 problems |
Implementation | 25 problems |
Agenda of phase-1-2 (100 problems) 80 Hrs
Category | Problems |
---|---|
Implementation | 25 problems |
Implementation | 25 problems |
Implementation | 25 problems |
Implementation | 25 problems |
Agenda of phase-1-3 (100 problems) 80 Hrs
Category | Problems |
---|---|
Implementation | 25 problems |
Implementation | 25 problems |
Implementation | 25 problems |
Implementation | 25 problems |
Agenda of phase-1-basic-programming (130 problems) 100 Hrs
Category | Problems |
---|---|
Input/Output | 50 problems |
Bit Manipulation | 70 problems |
Recursion | 10 problems |
Operators | 5 problems |
HackerRank OJ sheets description
The HackerRank OJ sheets phase-1-cpp This sheet focus on c/c++ basic problems, It's divided into 8 classes of problems (Introduction - Conditionals and Loops - Arrays and Strings - Functions - Standard Template Libraries - Structs and Enums - Classes and Inheritance - Misc). It was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~70 problems. phase-1-python This sheet focus on python basic problems, It's divided into 6 classes of problems (Introduction - Basic Data Types - Collections - Functions - Standard Libraries - Classes). It was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~100 problems. phase-1-functional-programming, It's divided into 6 classes of problems (Introduction - Recursion - Functional Structures - Memoization - Ad-Hoc - Misc). Also, this sheet was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~80 problems.
HackerRank OJ sheets (3 sheets)
Agenda of phase-1-cpp (70 problems) 80 Hrs
Category | Problems |
---|---|
Introduction | 15 problems |
Conditionals and Loops | 5 problems |
Arrays and Strings | 10 problems |
Functions | 5 problems |
Standard Template Libraries | 5 problems |
Structs and Enums | 5 problems |
Classes and Inheritance | 15 problems |
Misc | 10 problems |
Agenda of phase-1-python (100 problems) 80 Hrs
Category | Problems |
---|---|
Introduction | 5 problems |
Basic Data Types | 20 problems |
Collections | 30 problems |
Functions | 10 problems |
Standard Libraries | 25 problems |
Classes | 10 problems |
Agenda of phase-1-functional-programming (80 problems) 80 Hrs
Category | Problems |
---|---|
Introduction | 25 problems |
Recursion | 20 problems |
Functional Structures | 10 problems |
Memoization | 10 problems |
Ad-Hoc | 15 problems |
Misc | 5 problems |
- If the student has a target to compete in the programming competitions like ACM-ICPC or Google Code-jam or Google Kick-start or Facebook Hackercup, so it's recommended to start with Codeforces sheets and AtCoder sheets, but if (s)he has a target to practice on a specific topic or preparing for an interview, so it's recommended to start with HackerEarth sheets and HackerRank sheets and LeetCode sheets.
- On each one of these sheets has an excel sheet to record your effort and enhance your progress, The time estimate for level problems is between 30 min to 45 min for each problem, including reading time, thinking time, coding time, debugging time, and learning time.
This level simply consists of 16 sheets, 6 sheets of them on Codeforces Online Judge, 4 sheets of them on LeetCode Online Judge, plus 4 sheets on HackerEarth Online Judge, and the last 2 sheets on HackerRank Online Judge.
The prerequisites for level 2 of this training are the basic knowledge for Data Structures and Algorithms like (Linear Data Structures - Non-Linear Data Structures - Searching Algorithms - Sorting Algorithms).
- Data-Structures Repository
- Algorithms-Analysis-and-Design Repository
Codeforces OJ sheets description
The Codeforces OJ sheets phase-2-1, phase-2-2, phase-2-3, phase-2-4 contain B-Div2 problems, and each sheet of them divided into 5 classes of problems (Data Structure - Mathematics - String - Greedy - Brute Force). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems. For the last 2 sheets phase-2-div3-contests that focus on div3-contests (easy contests) and contains ~50 contests, and phase-2-educational-contests, that focus on educational-contests (medium contests) and contains ~100 contests.
Codeforces OJ sheets (6 sheets)
Agenda of phase-2-1 (120 problems) 100 Hrs
Category | Problems |
---|---|
Data Structure | 10 problems |
String | 40 problems |
Mathematics | 25 problems |
Greedy | 30 problems |
Brute Force | 15 problems |
Agenda of phase-2-2 (130 problems) 100 Hrs
Category | Problems |
---|---|
Data Structure | 20 problems |
String | 25 problems |
Mathematics | 35 problems |
Greedy | 35 problems |
Brute Force | 15 problems |
Agenda of phase-2-3 (105 problems) 100 Hrs
Category | Problems |
---|---|
Data Structure | 30 problems |
String | 5 problems |
Mathematics | 35 problems |
Greedy | 25 problems |
Brute Force | 10 problems |
Agenda of phase-2-4 (145 problems) 120 Hrs
Category | Problems |
---|---|
Data Structure | 30 problems |
String | 30 problems |
Mathematics | 40 problems |
Greedy | 30 problems |
Brute Force | 15 problems |
Agenda of phase-2-div3-contests (50 contests) 100 Hrs
Category | Problems |
---|---|
Codeforces Div3 Contests I | 25 contests |
Codeforces Div3 Contests II | 25 contests |
Agenda of phase-2-educational-contests (100 contests) 200 Hrs
Category | Problems |
---|---|
Educational Codeforces Rounds I | 25 contests |
Educational Codeforces Rounds II | 25 contests |
Educational Codeforces Rounds III | 25 contests |
Educational Codeforces Rounds IV | 25 contests |
LeetCode OJ sheets description
The LeetCode OJ sheets phase-2-1, phase-2-2, phase-2-3, phase-2-4 contain linear and non-linear data structures problems, and each sheet of them divided into 7 classes of problems (Array - LinkedList - Stack - Queue - Binary Tree - Heap Tree - HashTable). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~200 problems.
LeetCode OJ sheets (4 sheets)
Agenda of phase-2-1 (220 problems) 160 Hrs
Category | Problems |
---|---|
Array I | 40 problems |
Array II | 40 problems |
Array III | 40 problems |
Linked List | 10 problems |
Stack | 50 problems |
Queue and Dequeue | 40 problems |
Agenda of phase-2-2 (190 problems) 140 Hrs
Category | Problems |
---|---|
Array I | 50 problems |
Array II | 50 problems |
Array III | 50 problems |
Linked List | 30 problems |
Stack | 10 problems |
Agenda of phase-2-3 (210 problems) 160 Hrs
Category | Problems |
---|---|
Recursion | 30 problems |
Binary Tree | 30 problems |
Heap Tree | 30 problems |
Hash Table I | 40 problems |
Hash Table II | 40 problems |
Hash Table III | 40 problems |
Agenda of phase-2-4 (130 problems) 80 Hrs
Category | Problems |
---|---|
Binary Tree I | 30 problems |
Binary Tree II | 30 problems |
Binary Tree III | 30 problems |
Heap Tree | 30 problems |
Hash Table | 10 problems |
HackerEarth OJ sheets description
The HackerEarth OJ sheets phase-2-linear-data-structures, phase-2-non-linear-data-structures, phase-2-algorithms-searching, phase-2-algorithms-sorting, Each sheet contains linear and non-linear data structures problems, in addition to searching and sorting algorithms. These sheets were ordered based on the problem difficulty and each sheet contains ~100 problems.
HackerEarth OJ sheets (4 sheets)
Agenda of phase-2-linear-data-structures (110 problems) 80 Hrs
Category | Problems |
---|---|
Arrays 1D | 65 problems |
Arrays Multi-dimensional | 20 problems |
Stacks | 25 problems |
Queues | 5 problems |
Agenda of phase-2-non-linear-data-structures (90 problems) 80 Hrs
Category | Problems |
---|---|
Binary Tree | 10 problems |
Binary Search Tree | 10 problems |
Heaps / Priority Queues | 20 problems |
Hash Tables | 50 problems |
Agenda of phase-2-algorithms-searching (120 problems) 80 Hrs
Category | Problems |
---|---|
Linear Search | 15 problems |
Binary Search I | 50 problems |
Binary Search II | 50 problems |
Ternary Search | 5 problems |
Agenda of phase-2-algorithms-sorting (60 problems) 40 Hrs
Category | Problems |
---|---|
Bubble & Selection & Insertion | 15 problems |
Merge | 25 problems |
Quick & Count & Heap | 25 problems |
HackerRank OJ sheets description
The HackerRank OJ sheets phase-2-data-structures, phase-2-algorithms-basics, These sheets contain linear and non-linear data structures problems, and basic algorithms problems. Also, these sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~80 problems.
HackerRank OJ sheets (2 sheets)
Agenda of phase-2-data-structures (50 problems) 40 Hrs
Category | Problems |
---|---|
Arrays & Linked Lists | 20 problems |
Stacks & Queues | 10 problems |
Trees & Balanced Trees | 20 problems |
Agenda of phase-2-algorithms-basics (125 problems) 80 Hrs
Category | Problems |
---|---|
Warm-up | 10 problems |
Recursion | 10 problems |
Sorting | 15 problems |
Search | 25 problems |
Implementation | 65 problems |
- If the student has a target to compete in the programming competitions like ACM-ICPC or Google Code-jam or Google Kick-start or Facebook Hackercup, so it's recommended to start with Codeforces sheets and AtCoder sheets, but if (s)he has a target to practice on a specific topic or preparing for an interview, so it's recommended to start with HackerEarth sheets and HackerRank sheets and LeetCode sheets.
- On each one of these sheets has an excel sheet to record your effort and enhance your progress, The time estimate for level problems is between 30 min to 45 min for each problem, including reading time, thinking time, coding time, debugging time, and learning time.
This level simply consists of 20 sheets, 7 sheets of them on Codeforces Online Judge, 4 sheets of them on LeetCode Online Judge, plus 5 sheets on HackerEarth Online Judge, and the last 4 sheets on HackerRank Online Judge.
The prerequisites for level 3 of this training are the advanced knowledge for Data Structures and Algorithms like (Intermediate Data Structures - Divide and Conquer Algorithms - Graph Algorithms - Greedy Algorithms - Dynamic Programming - Mathematical Algorithms).
- Data-Structures Repository
- Algorithms-Analysis-and-Design Repository
- Advanced-Data-Structures Repository
- Advanced-Algorithms-Analysis-and-Design Repository
Codeforces OJ sheets description
The Codeforces OJ sheets phase-3-1, phase-3-2, phase-3-3, phase-3-4 contain C-Div2/A-Div1 problems, and each sheet of them divided into 7 classes of problems (Divide and Conquer - Graph - Data Structure - Mathematics - String - Greedy - Dynamic Programming). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems. For the last 3 sheets phase-3-div3-contests that focus on div3-contests (easy contests) and contains ~50 contests, and phase-3-educational-contests, that focus on educational-contests (medium contests) and contains ~100 contests. Finally phase-3-gym-contests that focus on gym-contests that contains ~150 contests.
Codeforces OJ sheets (7 sheets)
Agenda of phase-3-1 (100 problems) 80 Hrs
Category | Problems |
---|---|
Divide and Conquer | 10 problems |
Graph | 10 problems |
String | 10 problems |
Data Structure | 20 problems |
Mathematics | 30 problems |
Greedy | 20 problems |
Agenda of phase-3-2 (100 problems) 80 Hrs
Category | Problems |
---|---|
Divide and Conquer | 10 problems |
Graph | 10 problems |
String | 10 problems |
Data Structure | 20 problems |
Mathematics | 30 problems |
Greedy | 20 problems |
Agenda of phase-3-3 (100 problems) 80 Hrs
Category | Problems |
---|---|
Graph | 10 problems |
String | 10 problems |
Data Structure | 20 problems |
Mathematics | 30 problems |
Greedy | 20 problems |
Dynamic Programming | 10 problems |
Agenda of phase-3-4 (100 problems) 80 Hrs
Category | Problems |
---|---|
Graph | 10 problems |
String | 10 problems |
Data Structure | 20 problems |
Mathematics | 30 problems |
Greedy | 20 problems |
Dynamic Programming | 10 problems |
Agenda of phase-3-div3-contests (50 contests) 100 Hrs
Category | Problems |
---|---|
Codeforces Div3 Contests I | 25 contests |
Codeforces Div3 Contests II | 25 contests |
Agenda of phase-3-educational-contests (100 contests) 200 Hrs
Category | Problems |
---|---|
Educational Codeforces Rounds I | 25 contests |
Educational Codeforces Rounds II | 25 contests |
Educational Codeforces Rounds III | 25 contests |
Educational Codeforces Rounds IV | 25 contests |
Agenda of phase-3-gym-contests (130 contests) 400 Hrs
Category | Problems |
---|---|
Codeforces GYM Contests 2 | 20 contests |
Codeforces GYM Contests 3 I | 25 contests |
Codeforces GYM Contests 3 II | 15 contests |
Codeforces GYM Contests 3 III | 30 contests |
Codeforces GYM Contests 3 IV | 30 contests |
Codeforces GYM Contests 3 V | 30 contests |
LeetCode OJ sheets description
The LeetCode OJ sheets phase-3-1, phase-3-2, phase-3-3, phase-3-4 contain search algorithms, sorting algorithms, divide and conquer algorithms, greedy algorithms, graph algorithms, and dynamic programming problems, and each sheet of them divided into 6 classes of problems (Binary Search - Divide and Conquer - Sort - Greedy - Graph - Breadth First Search - Depth First Search - Backtracking - Dynamic Programming). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~200 problems.
LeetCode OJ sheets (4 sheets)
Agenda of phase-3-1 (180 problems) 100 Hrs
Category | Problems |
---|---|
Binary Search I | 30 problems |
Binary Search II | 30 problems |
Divide and Conquer | 20 problems |
Sort I | 40 problems |
Sort II | 40 problems |
Greedy | 20 problems |
Agenda of phase-3-2 (210 problems) 160 Hrs
Category | Problems |
---|---|
Binary Search | 30 problems |
Greedy I | 40 problems |
Greedy II | 40 problems |
Greedy III | 40 problems |
Graph I | 30 problems |
Graph II | 30 problems |
Agenda of phase-3-3 (210 problems) 160 Hrs
Category | Problems |
---|---|
Breadth First Search I | 25 problems |
Breadth First Search II | 25 problems |
Depth First Search I | 35 problems |
Depth First Search II | 35 problems |
Dynamic Programming I | 30 problems |
Dynamic Programming II | 30 problems |
Dynamic Programming III | 30 problems |
Agenda of phase-3-4 (200 problems) 160 Hrs
Category | Problems |
---|---|
Breadth First Search | 20 problems |
Depth First Search | 20 problems |
Backtracking I | 35 problems |
Backtracking II | 35 problems |
Dynamic Programming I | 30 problems |
Dynamic Programming II | 30 problems |
Dynamic Programming III | 30 problems |
HackerEarth OJ sheets description
The HackerEarth OJ sheets phase-3-mathematics, phase-3-greedy, phase-3-graph, phase-3-dynamic-programming, phase-3-advanced-data-structures, Each sheet contains graph, greedy, mathematics, and dynamic programming problems, in addition to advanced data structures. These sheets were ordered based on the problem difficulty and grouped by the problem type, each sheet contains ~110 problems.
HackerEarth OJ sheets (5 sheets)
Agenda of phase-3-mathematics (80 problems) 60 Hrs
Category | Problems |
---|---|
Basic Number Theory | 30 problems |
Primality Tests | 15 problems |
Totient Function | 5 problems |
Basics of Combinatorics | 20 problems |
Inclusione-Exclusion | 10 problems |
Agenda of phase-3-greedy (70 problems) 50 Hrs
Category | Problems |
---|---|
Greedy Algorithms I | 35 problems |
Greedy Algorithms II | 35 problems |
Agenda of phase-3-graph (175 problems) 160 Hrs
Category | Problems |
---|---|
Graph Representation | 25 problems |
Breadth First Search | 35 problems |
Depth First Search | 60 problems |
Shortest Path | 45 problems |
Minimum Spanning Tree | 10 problems |
Agenda of phase-3-dynamic-programming (110 problems) 80 Hrs
Category | Problems |
---|---|
Dynamic Programming | 50 problems |
Dynamic Programming 2 Dimensional | 45 problems |
Dynamic Programming and Bit Masking | 15 problems |
Agenda of phase-3-advanced-data-structures (140 problems) 100 Hrs
Category | Problems |
---|---|
Disjoint Sets | 30 problems |
Trie | 20 problems |
Segment Tree | 55 problems |
Binary Indexed Tree | 35 problems |
HackerRank OJ sheets description
The HackerRank OJ sheets phase-3-mathematics, phase-3-graph-greedy, phase-3-dynamic-programming, phase-3-data-structures, These sheets contain graph, greedy, mathematics, and dynamic programming problems, in addition to data structures. Also, these sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~70 problems.
HackerRank OJ sheets (4 sheets)
Agenda of phase-3-mathematics (115 problems) 80 Hrs
Category | Problems |
---|---|
Fundamentals | 20 problems |
Number Theory | 35 problems |
Combinatorics | 30 problems |
Algebra | 20 problems |
Linear Algebra Foundations | 10 problems |
Agenda of phase-3-graph-greedy (55 problems) 40 Hrs
Category | Problems |
---|---|
Graph Theory | 40 problems |
Greedy | 15 problems |
Agenda of phase-3-dynamic-programming (60 problems) 40 Hrs
Category | Problems |
---|---|
Bit Manipulation | 15 problems |
Dynamic Programming | 40 problems |
Constructive Algorithms | 5 problems |
Agenda of phase-3-data-structures (60 problems) 40 Hrs
Category | Problems |
---|---|
Heap & Disjoint Set & Trie | 10 problems |
Advanced | 25 problems |
Advanced | 25 problems |
- If the student has a target to compete in the programming competitions like ACM-ICPC or Google Code-jam or Google Kick-start or Facebook Hackercup, so it's recommended to start with Codeforces sheets and AtCoder sheets, but if (s)he has a target to practice on a specific topic or preparing for an interview, so it's recommended to start with HackerEarth sheets and HackerRank sheets and LeetCode sheets.
- On each one of these sheets has an excel sheet to record your effort and enhance your progress, The time estimate for level problems is between 30 min to 45 min for each problem, including reading time, thinking time, coding time, debugging time, and learning time.
- Grokking Algorithms: An illustrated guide for programmers and other curious people, Aditya Y. Bhargava
- Introduction to the Design and Analysis of Algorithms, Anany V. Levitin
- Introduction to Algorithms, Thomas H. Cormen
- Data Structures and Algorithms Annotated Reference, Granville Barnett and Luca Del Tongo
- Analysis of Algorithms An Active Learning Approach, Jeffrey J. McConnell
- Competitive Programming 3, Steven Halim
- Fundamental of Algorithms, Gilles Brassard and Paul Bartley
- The Algorithm Design Manual, Steven S. Skiena
- Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles, Narasimha Karumanchi