Skip to content

Latest commit

 

History

History
470 lines (334 loc) · 27.1 KB

README.md

File metadata and controls

470 lines (334 loc) · 27.1 KB

Problem-Solving-Training

Problem solving training for computer science students.

This level simply consists of eight sheets, three sheets of them on Codeforces Online Judge, plus four sheets on HackerEarth Online Judge, and the last sheet on HackerRank Online Judge.

Prerequisites

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).

Related Repositories

Codeforces OJ sheets

The Codeforces OJ sheets phase-1-1, phase-1-2, phase-1-3 contain A-Div2 problems, and each sheet of them divided into 5 classes of problems (Basic Operators - Conditions - Loops - Lists - Strings). These sheets were sorted based on difficulty and grouped by the type of problems as mentioned. Finally, each sheet contains ~100 problems.

Codeforces OJ sheets (3 sheets)

Agenda of phase-1-1 (100 problems) 80H

Category Problems
Basic Operator 5 problems
Condition 10 problems
Loop 20 problems
String 20 problems
List 40 problems

Agenda of phase-1-2 (100 problems) 80H

Category Problems
Basic Operator 5 problems
Condition 10 problems
Loop 20 problems
String 20 problems
List 40 problems

Agenda of phase-1-3 (100 problems) 80H

Category Problems
Basic Operator 5 problems
Condition 10 problems
Loop 20 problems
String 20 problems
List 40 problems

HackerEarth OJ sheets

The HackerEarth OJ sheets phase-1-1, phase-1-2, phase-1-3 contain implementation problems and basic programming problems. These sheets were sorted 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 sorted based on difficulty and grouped by the type of problems as mentioned. Finally, this sheet contains ~130 problems.

HackerEarth OJ sheets (4 sheets)

Agenda of phase-1-1 (100 problems) 80H

Category Problems
Implementation 25 problems
Implementation 25 problems
Implementation 25 problems
Implementation 25 problems

Agenda of phase-1-2 (100 problems) 80H

Category Problems
Implementation 25 problems
Implementation 25 problems
Implementation 25 problems
Implementation 25 problems

Agenda of phase-1-3 (100 problems) 80H

Category Problems
Implementation 25 problems
Implementation 25 problems
Implementation 25 problems
Implementation 25 problems

Agenda of phase-1-basic-programming (130 problems) 100H

Category Problems
Input/Output 50 problems
Bit Manipulation 70 problems
Recursion 10 problems
Operators 5 problems

HackerRank OJ sheets

The HackerRank OJ sheet phase-1-functional-programming, It's divided into 6 classes of problems (Introduction - Recursion - Functional Structures - Memoization - Ad-Hoc - Misc). Also, this sheet was sorted based on difficulty and grouped by the type of problems as mentioned. Finally, this sheet contains ~80 problems.

HackerRank OJ sheets (1 sheet)

Agenda of phase-1-functional-programming (80 problems) 80H

Category Problems
Introduction 25 problems
Recursion 20 problems
Functional Structures 10 problems
Memoization 10 problems
Ad-Hoc 15 problems
Misc 5 problems

Notes

  • If the student has a target to compete in the programming competitions like ACM-ICPC or Google Codejam or Google Kick-start or Facebook Hackercup, so it's recommended to start with Codeforces 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 and HackerRank 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 one, including reading time, thinking time, coding time, debugging time, and learning time.

This level simply consists of ten sheets, four sheets of them on Codeforces Online Judge, plus four sheets on HackerEarth Online Judge, and the last two sheets on HackerRank Online Judge.

Prerequisites

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).

Related Repositories

Codeforces OJ sheets

The Codeforces OJ sheets phase-2-1, phase-2-2, phase-2-3 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 sorted based on difficulty and grouped by the type of problems as mentioned. Finally, each sheet contains ~90 problems. For the last sheet phase-2-gym-contests that focus on gym-contests, It's divided into 3 classes of contests, that contains ~100 contests.

Codeforces OJ sheets (4 sheets)

Agenda of phase-2-1 (90 problems) 80H

Category Problems
Data Structure 15 problems
String 15 problems
Mathematics 25 problems
Greedy 25 problems
Brute Force 10 problems

Agenda of phase-2-2 (90 problems) 80H

Category Problems
Data Structure 15 problems
String 15 problems
Mathematics 25 problems
Greedy 25 problems
Brute Force 10 problems

Agenda of phase-2-3 (100 problems) 80H

Category Problems
Data Structure 30 problems
String 15 problems
Mathematics 30 problems
Greedy 25 problems
Brute Force 10 problems

Agenda of phase-2-gym-contests (100 contests) 200H

Category Problems
Educational Codeforces Rounds 80 contests
Codeforces GYM Contests 1 5 contests
Codeforces GYM Contests 2 15 contests

HackerEarth OJ sheets

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 sorted based on difficulty and each sheet contains ~100 problems.

HackerEarth OJ sheets (4 sheets)

Agenda of phase-2-linear-data-structures (110 problems) 80H

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) 80H

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) 80H

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) 40H

Category Problems
Bubble & Selection & Insertion 15 problems
Merge 25 problems
Quick & Count & Heap 25 problems

HackerRank OJ sheets

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 sorted based on difficulty and grouped by the type of problems as mentioned. Finally, each sheet contains ~120 problems.

HackerRank OJ sheets (2 sheets)

Agenda of phase-2-data-structures (50 problems) 40H

Category Problems
Arrays & Linked Lists 20 problems
Stacks & Queues 10 problems
Trees & Balanced Trees 20 problems

Agenda of phase-2-algorithms-basics (125 problems) 80H

Category Problems
Warm-up 10 problems
Recursion 10 problems
Sorting 15 problems
Search 25 problems
Implementation 65 problems

Notes

  • If the student has a target to compete in the programming competitions like ACM-ICPC or Google Codejam or Google Kick-start or Facebook Hackercup, so it's recommended to start with Codeforces 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 and HackerRank 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 one, including reading time, thinking time, coding time, debugging time, and learning time.

This level simply consists of fourteen sheets, five sheets of them on Codeforces Online Judge, plus five sheets on HackerEarth Online Judge, and the last four sheets on HackerRank Online Judge.

Prerequisites

The prerequisites for level 3 of this training are the advanced knowledge for Data Structures and Algorithms like (Advanced Data Structures - Divide and Conquer Algorithms - Graph Algorithms - Greedy Algorithms - Dynamic Programming - Mathematical Algorithms).

Related Repositories

Codeforces OJ sheets

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 sorted based on difficulty and grouped by the type of problems as mentioned. Finally, each sheet contains ~100 problems. For the last sheet phase-3-gym-contests that focus on gym-contests, It's divided into 5 classes of contests, that contains ~130 contests.

Codeforces OJ sheets (5 sheets)

Agenda of phase-3-1 (100 problems) 80H

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) 80H

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) 80H

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) 80H

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-gym-contests (130 contests) 400H

Category Problems
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

HackerEarth OJ sheets

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 sorted based on difficulty and each sheet contains ~110 problems.

HackerEarth OJ sheets (5 sheets)

Agenda of phase-3-mathematics (80 problems) 60H

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) 50H

Category Problems
Greedy Algorithms I 35 problems
Greedy Algorithms II 35 problems

Agenda of phase-3-graph (175 problems) 160H

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) 80H

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) 90H

Category Problems
Disjoint Sets 30 problems
Trie 20 problems
Segment Tree 55 problems
Binary Indexed Tree 35 problems

HackerRank OJ sheets

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 sorted based on difficulty and grouped by the type of problems as mentioned. Finally, each sheet contains ~50 problems.

HackerRank OJ sheets (4 sheets)

Agenda of phase-3-mathematics (115 problems) 80H

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) 40H

Category Problems
Graph Theory 40 problems
Greedy 15 problems

Agenda of phase-3-dynamic-programming (60 problems) 40H

Category Problems
Bit Manipulation 15 problems
Dynamic Programming 40 problems
Constructive Algorithms 5 problems

Agenda of phase-3-data-structures (60 problems) 40H

Category Problems
Heap & Disjoint Set & Trie 10 problems
Advanced 25 problems
Advanced 25 problems

Notes

  • If the student has a target to compete in the programming competitions like ACM-ICPC or Google Codejam or Google Kick-start or Facebook Hackercup, so it's recommended to start with Codeforces 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 and HackerRank 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 one, including reading time, thinking time, coding time, debugging time, and learning time.

Textbooks

  • 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
  • Grokking Algorithms: An illustrated guide for programmers and other curious people, Aditya Y. Bhargava
  • 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