Giter Site home page Giter Site logo

problem-solving-training's Introduction

Problem Solving Training

Problem Solving Training for computer science students.






Table of Contents

This level simply consists of 18 sheets, 6 sheets on URI Online Judge, 2 sheets on HackerRank Online Judge, 2 sheets on AtCoder Online Judge, 4 sheets on Codeforces Online Judge, and the last 4 sheets on HackerEarth Online Judge.

Prerequisite Knowledge

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

Level Timeline


The URI OJ sheets phase-1-1, phase-1-2, phase-1-3, phase-1-4, phase-1-5, phase-1-6 each sheet of them divided into 6 classes of problems (Beginner - Ad-Hoc - Strings - Data Structures - Mathematics - Geometry). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~175 problems.

phase-1-1 175 problems phase-1-2 175 problems
Beginner 45 problemsBeginner 45 problems
Ad-Hoc I 40 problemsAd-Hoc I 40 problems
Ad-Hoc II 35 problemsAd-Hoc II 35 problems
Strings 10 problemsStrings 10 problems
Data Structures15 problemsData Structures15 problems
Mathematics 25 problemsMathematics 25 problems
Geometry 5 problemsGeometry 5 problems
phase-1-3 175 problems phase-1-4 175 problems
Beginner 45 problemsBeginner 45 problems
Ad-Hoc I 40 problemsAd-Hoc I 40 problems
Ad-Hoc II 35 problemsAd-Hoc II 35 problems
Strings 10 problemsStrings 10 problems
Data Structures15 problemsData Structures15 problems
Mathematics 25 problemsMathematics 25 problems
Geometry 5 problemsGeometry 5 problems
phase-1-5 175 problems phase-1-6 165 problems
Beginner 45 problemsBeginner 35 problems
Ad-Hoc I 40 problemsAd-Hoc I 40 problems
Ad-Hoc II 35 problemsAd-Hoc II 35 problems
Strings 10 problemsStrings 10 problems
Data Structures15 problemsData Structures15 problems
Mathematics 25 problemsMathematics 25 problems
Geometry 5 problemsGeometry 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 70 problems phase-1-python 100 problems
Introduction 15 problemsIntroduction 5 problems
Conditionals and Loops 5 problemsBasic Data Types 20 problems
Arrays and Strings 10 problemsCollections 30 problems
Functions 5 problemsFunctions 10 problems
Standard Template Libraries 5 problemsStandard Libraries25 problems
Structs and Classes 30 problemsClasses 10 problems


The AtCoder OJ sheet phase-1-1, phase-1-2, These sheets focus on beginner contests (easy contests) each sheet contains ~90 problems.

phase-1-1 90 problems phase-1-2 90 problems
2016-2017 Beginner Contests20 problems2016-2017 Beginner Contests20 problems
2018-2019 Beginner Contests30 problems2018-2019 Beginner Contests30 problems
2020-2021 Beginner Contests40 problems2020-2021 Beginner Contests40 problems


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 Operator15 problems10 problems 5 problems 5 problems
Condition 15 problems15 problems20 problems20 problems
Loop 35 problems20 problems25 problems20 problems
String 35 problems30 problems30 problems30 problems
List / Array 60 problems35 problems35 problems30 problems


The HackerEarth OJ sheets phase-1-1, phase-1-2, phase-1-3, phase-1-basic-programming contain implementation problems and basic programming problems. These sheets were ordered based on difficulty. Each sheet contains ~100 problems. It's divided into 4 classes of problems (Input/Output - Bit Manipulation - Recursion - Operators).

phase-1-1 phase-1-2 phase-1-3 phase-1-basic-programming
100 problems 100 problems 100 problems 130 problems
Implementation25 problems25 problems25 problemsInput / Output 50 problems
Implementation25 problems25 problems25 problemsBit Manipulation70 problems
Implementation25 problems25 problems25 problemsRecursion 10 problems
Implementation25 problems25 problems25 problemsOperators 5 problems

Notes

  • 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, Spoj sheets, UVa 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, URI 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 27 sheets, 6 sheets on URI Online Judge, 2 sheets on HackerRank Online Judge, 2 sheets on AtCoder Online Judge, 7 sheets on Codeforces Online Judge, 6 sheets on LeetCode Online Judge, and the last 4 sheets on HackerEarth Online Judge.

Prerequisite Knowledge

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

Level Timeline


The URI OJ sheets phase-2-1, phase-2-2, phase-2-3, phase-2-4, phase-2-5, phase-2-6 each sheet of them divided into 7 classes of problems (Ad-Hoc - Strings - Data Structures - Mathematics - Graph - Paradigms - Geometry). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~160 problems.

phase-2-1 160 problems phase-2-2 160 problems
Ad-Hoc 25 problemsAd-Hoc 25 problems
Strings 15 problemsStrings 15 problems
Data Structures15 problemsData Structures15 problems
Mathematics 20 problemsMathematics 20 problems
Graph 40 problemsGraph 40 problems
Paradigms 35 problemsParadigms 35 problems
Geometry 10 problemsGeometry 10 problems
phase-2-3 160 problems phase-2-4 160 problems
Ad-Hoc 25 problemsAd-Hoc 25 problems
Strings 15 problemsStrings 15 problems
Data Structures15 problemsData Structures15 problems
Mathematics 20 problemsMathematics 20 problems
Graph 40 problemsGraph 40 problems
Paradigms 35 problemsParadigms 35 problems
Geometry 10 problemsGeometry 10 problems
phase-2-5 125 problems phase-2-6 125 problems
Ad-Hoc 15 problemsAd-Hoc 15 problems
Strings 10 problemsStrings 10 problems
Data Structures10 problemsData Structures10 problems
Mathematics 10 problemsMathematics 10 problems
Graph 50 problemsGraph 50 problems
Paradigms 25 problemsParadigms 25 problems
Geometry 5 problemsGeometry 5 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 problemsWarm-up & Recursion20 problems
Stacks & Queues 10 problemsSorting 15 problems
Trees & Balanced Trees 25 problemsSearch 25 problems
Heap & Disjoint Set & Trie10 problemsImplementation I 30 problems
Advanced 50 problemsImplementation II 30 problems


The AtCoder OJ sheet phase-2-1, phase-2-2, These sheets focus on beginner contests (easy contests) each sheet contains ~90 problems.

phase-2-1 90 problems phase-2-2 90 problems
2016-2017 Beginner Contests20 problems2016-2017 Beginner Contests20 problems
2018-2019 Beginner Contests30 problems2018-2019 Beginner Contests30 problems
2020-2021 Beginner Contests40 problems2020-2021 Beginner Contests40 problems


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 Structure10 problems20 problems30 problems30 problems
String 40 problems25 problems 5 problems30 problems
Mathematics 25 problems35 problems35 problems40 problems
Greedy 30 problems35 problems25 problems30 problems
Brute Force 15 problems15 problems10 problems15 problems
phase-2-div3-contests phase-2-educational-contests phase-2-gym-contests
100 contests 100 contests 225 contests
Div3 Contests I 20 ContestsEducational Rounds I 20 ContestsGYM Contests 2 25 Contests
Div3 Contests II 20 ContestsEducational Rounds II 20 ContestsGYM Contests 3 I 50 Contests
Div3 Contests III20 ContestsEducational Rounds III20 ContestsGYM Contests 3 II 50 Contests
Div3 Contests IV 20 ContestsEducational Rounds IV 20 ContestsGYM Contests 3 III50 Contests
Div3 Contests V 20 ContestsEducational Rounds V 20 ContestsGYM Contests 3 IV 50 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 problemsArray I 50 problems
Array II 40 problemsArray II 50 problems
Array III 40 problemsArray III 50 problems
Linked List 10 problemsLinked List 30 problems
Stack 50 problemsStack 10 problems
Queue and Dequeue20 problemsQueue and Dequeue20 problems
phase-2-3 170 problems phase-2-4 180 problems
Recursion 30 problemsBinary Tree I 30 problems
Binary Tree 30 problemsBinary Tree II 30 problems
Heap Tree 30 problemsBinary Tree III30 problems
Hash Table I 30 problemsHeap Tree 30 problems
Hash Table II 30 problemsHash Table I 30 problems
Hash Table III20 problemsHash Table II 30 problems
phase-2-5 190 problems phase-2-6 200 problems
Binary Search I 35 problemsBinary Search 30 problems
Binary Search II 35 problemsGreedy I 40 problems
Divide and Conquer20 problemsGreedy II 40 problems
Sorting I 40 problemsGreedy III 40 problems
Sorting II 40 problemsBit Manipulation I 25 problems
Greedy 20 problemsBit Manipulation II25 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 problemsBinary Tree 10 problems
Arrays Multi-dimensional20 problemsBinary Search Tree 10 problems
Stacks 25 problemsHeaps / Priority Queues20 problems
Queues 5 problemsHash Tables 50 problems
phase-2-algorithms-searching 120 problems phase-2-algorithms-sorting 140 problems
Linear Search 15 problemsBubble & Selection & Insertion & Merge40 problems
Binary Search I 50 problemsQuick & Count & Heap 20 problems
Binary Search II50 problemsGreedy Algorithms I 40 problems
Ternary Search 5 problemsGreedy Algorithms II 40 problems

Notes

  • 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, Spoj sheets, UVa 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, URI 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 26 sheets, 4 sheets on HackerRank Online Judge, 7 sheets on Codeforces Online Judge, 3 sheets on AtCoder Online Judge, 4 sheets on LeetCode Online Judge, and the last 8 sheets on HackerEarth Online Judge.

Prerequisite Knowledge

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

Level Timeline


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 problemsFundamentals 10 problems
Number Theory35 problemsNumber Theory35 problems
Combinatorics25 problemsCombinatorics25 problems
Algebra 25 problemsAlgebra 25 problems
Geometry 30 problemsProbability 25 problems
phase-3-graph-string 130 problems phase-3-dynamic-programming 140 problems
Graph Theory I 30 problemsBit Manipulation 30 problems
Graph Theory II30 problemsDynamic Programming I 40 problems
Greedy 25 problemsDynamic Programming II 30 problems
Strings I 20 problemsDynamic Programming III30 problems
Strings II 20 problemsConstructive Algorithms10 problems


The AtCoder OJ sheet phase-3-1, phase-3-2, phase-3-grand-contests, These sheets focus on Regular + Grand contests (medium contests) and contains ~60 contests

phase-3-1 70 problems phase-3-2 70 problems phase-3-grand-contests 55 contests
2016-2017 Regular Contests30 problems2016-2017 Regular Contests30 problems2016-2017 Grand Contests 20 contests
2018-2019 Regular Contests15 problems2018-2019 Regular Contests15 problems2018-2019 Grand Contests 20 contests
2020-2021 Regular Contests25 problems2020-2021 Regular Contests25 problems2020-2021 Grand Contests 15 contests


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 - Math and Number Theory - String - Greedy and Brute Force - 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
120 problems 120 problems 120 problems 130 problems
Divide and Conquer 10 problems10 problems10 problems15 problems
Graph 15 problems10 problems10 problems10 problems
String 15 problems10 problems10 problems10 problems
Data Structure 20 problems20 problems20 problems20 problems
Math and Number Theory30 problems30 problems30 problems30 problems
Greedy and Brute Force25 problems20 problems20 problems20 problems
Dynamic Programming 10 problems10 problems10 problems10 problems
phase-3-div3-contests phase-3-educational-contests phase-3-gym-contests
100 contests 100 contests 225 contests
Div3 Contests I 20 ContestsEducational Rounds I 20 ContestsGYM Contests 2 25 Contests
Div3 Contests II 20 ContestsEducational Rounds II 20 ContestsGYM Contests 3 I 50 Contests
Div3 Contests III20 ContestsEducational Rounds III20 ContestsGYM Contests 3 II 50 Contests
Div3 Contests IV 20 ContestsEducational Rounds IV 20 ContestsGYM Contests 3 III50 Contests
Div3 Contests V 20 ContestsEducational Rounds V 20 ContestsGYM Contests 3 IV 50 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 ~180 problems.

phase-3-1 180 problems phase-3-2 210 problems
Backtracking 35 problemsBacktracking 35 problems
Breadth First Search I 25 problemsBreadth First Search20 problems
Breadth First Search II25 problemsDepth First Search 20 problems
Depth First Search I 35 problemsGraph I 30 problems
Depth First Search II 35 problemsGraph II 30 problems
Dynamic Programming 50 problemsDynamic Programming 30 problems
phase-3-3 160 problems phase-3-4 160 problems
Union Find & Binary Indexed Tree & Trie30 problemsSegment Tree & Suffix Array & Geometry30 problems
Math I 30 problemsMath I 30 problems
Math II 30 problemsMath II 30 problems
String 50 problemsString 50 problems
Dynamic Programming 50 problemsDynamic Programming 50 problems


The HackerEarth OJ sheets phase-3-mathematics-strings-1, phase-3-mathematics-strings-2, phase-3-graph-1, phase-3-graph-2, phase-3-dynamic-programming-1, phase-3-dynamic-programming-2, phase-3-advanced-data-structures-1, phase-3-advanced-data-structures-2, 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 ~120 problems.

phase-3-mathematics-strings-1 110 problems phase-3-mathematics-strings-2 110 problems
Basic Number Theory 30 problemsBasic Number Theory 30 problems
Primality Tests 30 problemsBasics of Combinatorics 30 problems
Totient Function 10 problemsInclusione-Exclusion 20 problems
Basics of String Manipulation40 problemsString Searching & Z Algorithm35 problems
phase-3-graph-1 150 problems phase-3-graph-2 150 problems
Graph Representation 35 problemsDepth First Search III 40 problems
Breadth First Search 35 problemsShortest Path 50 problems
Depth First Search I 40 problemsSpanning Tree & Biconnected Components30 problems
Depth First Search II40 problemsMinimum Cost & Maximum Flow & Min-Cut 30 problems
phase-3-dynamic-programming-1 110 problems phase-3-dynamic-programming-2 120 problems
Dynamic Programming I 25 problemsDynamic Programming I 25 problems
Dynamic Programming II 25 problemsDynamic Programming II 25 problems
Dynamic Programming 2D I 25 problemsDynamic Programming 2D I 25 problems
Dynamic Programming 2D II25 problemsDynamic Programming 2D II25 problems
DP and Bit Masking 10 problemsDP and Bit Masking 10 problems
phase-3-advanced-data-structures-1 120 problems phase-3-advanced-data-structures-2 110 problems
Disjoint Sets 30 problemsSegment Tree 30 problems
Trie 20 problemsBinary Indexed Tree I 30 problems
Segment Tree I 35 problemsBinary Indexed Tree II 30 problems
Segment Tree II35 problemsSuffix Tree & Suffix Array20 problems

Notes

  • 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, Spoj sheets, UVa 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, URI 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.

problem-solving-training's People

Contributors

cs-mohamedayman avatar

Forkers

khaledekramy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.