Problem Solving Training for computer science students.
This level simply consists of 10 sheets, 4 sheets of them on Codeforces Online Judge, plus 4 sheets on HackerEarth Online Judge, and the last 2 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/Arrays - Strings).
Related Training: Programming Languages Training Repository
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/Arrays - Strings). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems.
phase-1-1 | phase-1-2 | phase-1-3 | phase-1-4 | |
---|---|---|---|---|
160 problems | 115 problems | 115 problems | 105 problems | |
Basic Operator | 15 problems | 10 problems | 5 problems | 5 problems |
Condition | 15 problems | 15 problems | 20 problems | 20 problems |
Loop | 35 problems | 20 problems | 25 problems | 20 problems |
String | 35 problems | 30 problems | 30 problems | 30 problems |
List / Array | 60 problems | 35 problems | 35 problems | 30 problems |
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.
phase-1-1 | phase-1-2 | phase-1-3 | phase-1-basic-programming | ||
---|---|---|---|---|---|
100 problems | 100 problems | 100 problems | 130 problems | ||
Implementation | 25 problems | 25 problems | 25 problems | Input / Output | 50 problems |
Implementation | 25 problems | 25 problems | 25 problems | Bit Manipulation | 70 problems |
Implementation | 25 problems | 25 problems | 25 problems | Recursion | 10 problems |
Implementation | 25 problems | 25 problems | 25 problems | Operators | 5 problems |
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-cpp | 60 problems | phase-1-python | 100 problems |
---|---|---|---|
Introduction | 15 problems | Introduction | 5 problems |
Conditionals and Loops | 5 problems | Basic Data Types | 20 problems |
Arrays and Strings | 10 problems | Collections | 30 problems |
Functions | 5 problems | Functions | 10 problems |
Standard Template Libraries | 5 problems | Standard Libraries | 25 problems |
Structs and Enums | 5 problems | Classes | 10 problems |
Classes and Inheritance | 15 problems |
- If the student has a target to compete in the programming competitions like ACM-ICPC or Google CodeJam or Google KickStart or Facebook Hackercup or TopCoder Open TCO, so it's recommended to start with Codeforces sheets, TopCoder 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, HackerRank sheets, AlgoExpert 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 19 sheets, 7 sheets of them on Codeforces Online Judge, 6 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 Analysis like (Linear Data Structures - Non-Linear Data Structures - Searching Algorithms - Sorting Algorithms - Divide and Conquer).
Related Training: Data Structures and Algorithms Analysis Training Repository
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 ~100 contests, and phase-2-educational-contests, that focus on educational-contests (medium contests) and contains ~100 contests. Finally phase-2-gym-contests that focus on gym-contests that contains ~200 contests.
phase-2-1 | phase-2-2 | phase-2-3 | phase-2-4 | |
---|---|---|---|---|
120 problems | 130 problems | 105 problems | 145 problems | |
Data Structure | 10 problems | 20 problems | 30 problems | 30 problems |
String | 40 problems | 25 problems | 5 problems | 30 problems |
Mathematics | 25 problems | 35 problems | 35 problems | 40 problems |
Greedy | 30 problems | 35 problems | 25 problems | 30 problems |
Brute Force | 15 problems | 15 problems | 10 problems | 15 problems |
phase-2-div3-contests | phase-2-educational-contests | phase-2-gym-contests | |||
---|---|---|---|---|---|
100 contests | 100 contests | 200 contests | |||
Div3 Contests I | 25 Contests | Educational Rounds I | 25 Contests | GYM Contests 2 | 20 Contests |
Div3 Contests II | 25 Contests | Educational Rounds II | 25 Contests | GYM Contests 3 I | 25 Contests |
Div3 Contests III | 25 Contests | Educational Rounds III | 25 Contests | GYM Contests 3 II | 15 Contests |
Div3 Contests IV | 25 Contests | Educational Rounds IV | 25 Contests | GYM Contests 3 III | 30 Contests |
GYM Contests 3 IV | 30 Contests | ||||
GYM Contests 3 V | 30 Contests |
The LeetCode OJ sheets phase-2-1, phase-2-2, phase-2-3, phase-2-4, phase-2-5, phase-2-6 contain linear and non-linear data structures problems, searching and sorting algorithms, and each sheet of them divided into 6 classes of problems (Array - LinkedList - Stack - Queue - Binary Tree - Heap Tree - HashTable) in addition to (Binary Search - Sorting - Divide and Conquer - Greedy - Bit Manipulation). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~200 problems.
phase-2-1 | 200 problems | phase-2-2 | 210 problems |
---|---|---|---|
Array I | 40 problems | Array I | 50 problems |
Array II | 40 problems | Array II | 50 problems |
Array III | 40 problems | Array III | 50 problems |
Linked List | 10 problems | Linked List | 30 problems |
Stack | 50 problems | Stack | 10 problems |
Queue and Dequeue | 20 problems | Queue and Dequeue | 20 problems |
phase-2-3 | 170 problems | phase-2-4 | 180 problems |
Recursion | 30 problems | Binary Tree I | 30 problems |
Binary Tree | 30 problems | Binary Tree II | 30 problems |
Heap Tree | 30 problems | Binary Tree III | 30 problems |
Hash Table I | 30 problems | Heap Tree | 30 problems |
Hash Table II | 30 problems | Hash Table I | 30 problems |
Hash Table III | 20 problems | Hash Table II | 30 problems |
phase-2-5 | 190 problems | phase-2-6 | 200 problems |
Binary Search I | 35 problems | Binary Search | 30 problems |
Binary Search II | 35 problems | Greedy I | 40 problems |
Divide and Conquer | 20 problems | Greedy II | 40 problems |
Sorting I | 40 problems | Greedy III | 40 problems |
Sorting II | 40 problems | Bit Manipulation I | 25 problems |
Greedy | 20 problems | Bit Manipulation II | 25 problems |
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.
phase-2-linear-data-structures | 110 problems | phase-2-non-linear-data-structures | 90 problems |
---|---|---|---|
Arrays 1D | 65 problems | Binary Tree | 10 problems |
Arrays Multi-dimensional | 20 problems | Binary Search Tree | 10 problems |
Stacks | 25 problems | Heaps / Priority Queues | 20 problems |
Queues | 5 problems | Hash Tables | 50 problems |
phase-2-algorithms-searching | 120 problems | phase-2-algorithms-sorting | 140 problems |
Linear Search | 15 problems | Bubble & Selection & Insertion & Merge | 40 problems |
Binary Search I | 50 problems | Quick & Count & Heap | 20 problems |
Binary Search II | 50 problems | Greedy Algorithms I | 40 problems |
Ternary Search | 5 problems | Greedy Algorithms II | 40 problems |
The HackerRank OJ sheets phase-2-data-structures, phase-2-algorithms-basics, These sheets contain linear and non-linear data structures problems plus advanced 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 ~120 problems.
phase-2-data-structures | 120 problems | phase-2-algorithms-basics | 120 problems |
---|---|---|---|
Arrays & Linked Lists | 20 problems | Warm-up & Recursion | 20 problems |
Stacks & Queues | 10 problems | Sorting | 15 problems |
Trees & Balanced Trees | 25 problems | Search | 25 problems |
Heap & Disjoint Set & Trie | 10 problems | Implementation I | 30 problems |
Advanced | 50 problems | Implementation II | 30 problems |
- If the student has a target to compete in the programming competitions like ACM-ICPC or Google CodeJam or Google KickStart or Facebook Hackercup or TopCoder Open TCO, so it's recommended to start with Codeforces sheets, TopCoder 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, HackerRank sheets, AlgoExpert 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 19 sheets, 7 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 4 sheets on HackerRank Online Judge.
The prerequisites for level 3 of this training are the advanced knowledge for Data Structures and Algorithms Analysis like (Disjoint Sets - Trie - Segment Tree - Binary Indexed Tree - Divide and Conquer - Graph Algorithms - Greedy Algorithms - Dynamic Programming - Mathematical Algorithms).
Related Training: Advanced Data Structures and Algorithms Analysis Training Repository
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 ~100 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 ~200 contests.
phase-3-1 | phase-3-2 | phase-3-3 | phase-3-4 | |
100 problems | 100 problems | 100 problems | 100 problems | |
---|---|---|---|---|
Divide and Conquer | 10 problems | 10 problems | ||
Graph | 10 problems | 10 problems | 10 problems | 10 problems |
String | 10 problems | 10 problems | 10 problems | 10 problems |
Data Structure | 20 problems | 20 problems | 20 problems | 20 problems |
Mathematics | 30 problems | 30 problems | 30 problems | 30 problems |
Greedy | 20 problems | 20 problems | 20 problems | 20 problems |
Dynamic Programming | 10 problems | 10 problems |
phase-3-div3-contests | phase-3-educational-contests | phase-3-gym-contests | |||
---|---|---|---|---|---|
100 contests | 100 contests | 200 contests | |||
Div3 Contests I | 25 Contests | Educational Rounds I | 25 Contests | GYM Contests 2 | 20 Contests |
Div3 Contests II | 25 Contests | Educational Rounds II | 25 Contests | GYM Contests 3 I | 25 Contests |
Div3 Contests III | 25 Contests | Educational Rounds III | 25 Contests | GYM Contests 3 II | 15 Contests |
Div3 Contests IV | 25 Contests | Educational Rounds IV | 25 Contests | GYM Contests 3 III | 30 Contests |
GYM Contests 3 IV | 30 Contests | ||||
GYM Contests 3 V | 30 Contests |
The LeetCode OJ sheets phase-3-1, phase-3-2, phase-3-3, phase-3-4 contain graph algorithms, mathematical algorithms, number theory, string algorithms, and dynamic programming problems, in addition to advanced data structures, 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.
phase-3-1 | 180 problems | phase-3-2 | 210 problems |
---|---|---|---|
Backtracking | 35 problems | Backtracking | 35 problems |
Breadth First Search I | 25 problems | Breadth First Search | 20 problems |
Breadth First Search II | 25 problems | Depth First Search | 20 problems |
Depth First Search I | 35 problems | Graph I | 30 problems |
Depth First Search II | 35 problems | Graph II | 30 problems |
Dynamic Programming | 50 problems | Dynamic Programming | 30 problems |
phase-3-3 | 160 problems | phase-3-4 | 160 problems |
Union Find & Binary Indexed Tree & Trie | 30 problems | Segment Tree & Suffix Array & Geometry | 30 problems |
Math I | 30 problems | Math I | 30 problems |
Math II | 30 problems | Math II | 30 problems |
String | 50 problems | String | 50 problems |
Dynamic Programming | 50 problems | Dynamic Programming | 50 problems |
The HackerEarth OJ sheets phase-3-mathematics-strings, phase-3-graph, phase-3-dynamic-programming, phase-3-advanced-data-structures, Each sheet contains string, graph, greedy, mathematics, number theory, 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 ~250 problems.
phase-3-mathematics-strings | 230 problems | phase-3-graph | 300 problems |
---|---|---|---|
Basic Number Theory I | 30 problems | Graph Representation | 35 problems |
Basic Number Theory II | 30 problems | Breadth First Search | 35 problems |
Primality Tests | 30 problems | Depth First Search I | 40 problems |
Totient Function | 10 problems | Depth First Search II | 40 problems |
Basics of Combinatorics | 30 problems | Depth First Search III | 40 problems |
Inclusione-Exclusion | 20 problems | Shortest Path | 50 problems |
Basics of String Manipulation | 40 problems | Spanning Tree & Biconnected Components | 30 problems |
String Searching & Z Algorithm | 40 problems | Minimum Cost & Maximum Flow & Min-Cut | 30 problems |
phase-3-dynamic-programming | 220 problems | phase-3-advanced-data-structures | 230 problems |
Dynamic Programming I | 50 problems | Disjoint Sets | 30 problems |
Dynamic Programming II | 50 problems | Trie | 20 problems |
Dynamic Programming 2D I | 45 problems | Segment Tree I | 35 problems |
Dynamic Programming 2D II | 45 problems | Segment Tree II | 35 problems |
DP and Bit Masking | 30 problems | Segment Tree III | 30 problems |
DP and Bit Masking | 30 problems | Binary Indexed Tree I | 30 problems |
Binary Indexed Tree II | 30 problems | ||
Suffix Tree & Suffix Array | 20 problems |
The HackerRank OJ sheets phase-3-mathematics-1, phase-3-mathematics-2, phase-3-graph-string, phase-3-dynamic-programming, These sheets contain string, number theory, algebra, graph, greedy, mathematics, bit manipulation, and dynamic programming problems. Also, these sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~130 problems.
phase-3-mathematics-1 | 120 problems | phase-3-mathematics-2 | 120 problems |
---|---|---|---|
Fundamentals | 10 problems | Fundamentals | 10 problems |
Number Theory | 35 problems | Number Theory | 35 problems |
Combinatorics | 25 problems | Combinatorics | 25 problems |
Algebra | 25 problems | Algebra | 25 problems |
Geometry | 30 problems | Probability | 25 problems |
phase-3-graph-string | 130 problems | phase-3-dynamic-programming | 140 problems |
Graph Theory I | 30 problems | Bit Manipulation | 30 problems |
Graph Theory II | 30 problems | Dynamic Programming I | 40 problems |
Greedy | 25 problems | Dynamic Programming II | 30 problems |
Strings I | 20 problems | Dynamic Programming III | 30 problems |
Strings II | 20 problems | Constructive Algorithms | 10 problems |
- If the student has a target to compete in the programming competitions like ACM-ICPC or Google CodeJam or Google KickStart or Facebook Hackercup or TopCoder Open TCO, so it's recommended to start with Codeforces sheets, TopCoder 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, HackerRank sheets, AlgoExpert 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.