GithubHelp home page GithubHelp logo

messaging24 / problem-solving-training Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cs-mohamedayman/problem-solving-training

0.0 0.0 0.0 53.35 MB

Problem Solving Training for computer science students.

problem-solving-training's Introduction

Problem Solving Training

Problem Solving Training for computer science students.






Table of Contents

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.

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


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


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 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 Enums 5 problemsClasses 10 problems
Classes and Inheritance 15 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 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.

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


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 200 contests
Div3 Contests I 25 ContestsEducational Rounds I 25 ContestsGYM Contests 2 20 Contests
Div3 Contests II 25 ContestsEducational Rounds II 25 ContestsGYM Contests 3 I 25 Contests
Div3 Contests III25 ContestsEducational Rounds III25 ContestsGYM Contests 3 II 15 Contests
Div3 Contests IV 25 ContestsEducational Rounds IV 25 ContestsGYM Contests 3 III30 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 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


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

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

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


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 problems10 problems
Graph 10 problems10 problems10 problems10 problems
String 10 problems10 problems10 problems10 problems
Data Structure 20 problems20 problems20 problems20 problems
Mathematics 30 problems30 problems30 problems30 problems
Greedy 20 problems20 problems20 problems20 problems
Dynamic Programming 10 problems10 problems
phase-3-div3-contests phase-3-educational-contests phase-3-gym-contests
100 contests 100 contests 200 contests
Div3 Contests I 25 ContestsEducational Rounds I 25 ContestsGYM Contests 2 20 Contests
Div3 Contests II 25 ContestsEducational Rounds II 25 ContestsGYM Contests 3 I 25 Contests
Div3 Contests III25 ContestsEducational Rounds III25 ContestsGYM Contests 3 II 15 Contests
Div3 Contests IV 25 ContestsEducational Rounds IV 25 ContestsGYM Contests 3 III30 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 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, 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 problemsGraph Representation 35 problems
Basic Number Theory II 30 problemsBreadth First Search 35 problems
Primality Tests 30 problemsDepth First Search I 40 problems
Totient Function 10 problemsDepth First Search II 40 problems
Basics of Combinatorics 30 problemsDepth First Search III 40 problems
Inclusione-Exclusion 20 problemsShortest Path 50 problems
Basics of String Manipulation 40 problemsSpanning Tree & Biconnected Components30 problems
String Searching & Z Algorithm40 problemsMinimum Cost & Maximum Flow & Min-Cut 30 problems
phase-3-dynamic-programming 220 problems phase-3-advanced-data-structures 230 problems
Dynamic Programming I 50 problemsDisjoint Sets 30 problems
Dynamic Programming II 50 problemsTrie 20 problems
Dynamic Programming 2D I 45 problemsSegment Tree I 35 problems
Dynamic Programming 2D II45 problemsSegment Tree II 35 problems
DP and Bit Masking 30 problemsSegment Tree III 30 problems
DP and Bit Masking 30 problemsBinary Indexed Tree I 30 problems
Binary Indexed Tree II 30 problems
Suffix Tree & Suffix Array20 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 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

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

problem-solving-training's People

Contributors

cs-mohamedayman avatar

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.