Module-1: Competitive Programming Beginner
Course
Course Materials :
Google Meet Video call link: https://meet.google.com/ckp-uqpv-peo
Classroom: https://classroom.google.com/c/NDk3MDEyMDQ2ODg1?cjc=oqb7j2e
Youtube Playlist: https://youtube.com/playlist?list=PLoa_roV 2ODg1?cjc=oqb7j2e
Class Assignment Contest Links :
hackerrank: https://www.hackerrank.com/cpbc-assignments-batch-1
Vjudge: https://vjudge.net/contest/510845
Classroom: https://classroom.google.com/c/NDk3MDEyMDQ2ODg1?cjc=oqb7j2e
Submit your Vjudge id and hackerrank id in the below form. Otherwise, your assignment won’t
be accepted :
https://forms.gle/8C3D5pXSRHviaQuBA
Class - 1: Introduction to Computer Programming and
Competitive Programming
Class Link: https://youtu.be/dNZkUu9eK_E
Slide Link:
https://docs.google.com/presentation/d/1lT3dfiaPvvNtmDRGMN2uF6OzFkAD7RLb6AvQc8jRuF
g/edit?usp=sharing
Discussed Topics :
1. Introduction to Computer Programming
2. Introduction to Competitive Programming
3. Introduction to Programming Contest
Class - 2: My Life story, Introduction to online judges and
Guideline for practice.
Class Link: https://youtu.be/VtZ1BV0L4Kk
Slide Link:
https://docs.google.com/presentation/d/1lT3dfiaPvvNtmDRGMN2uF6OzFkAD7RLb6AvQc8jRuF
g/edit?usp=sharing
Discussed Topics :
1. My Life story and motivation for doing competitive programming
2. Introduction to Online Judges
3. Guideline for Practice
Class - 3: Introduction to Codeforces Programming Contest
(Div-4, Div-3, Div-2, Edu, Div-1)
Class Link: https://youtu.be/S6bD5Snk3UE
Discussed Topics :
1. Introduction to Codeforces Contest
2. Div-4, Div-3, Div-2, Edu, Div-1
3. ICPC Style Ranklist, Codeforces Score RankList
4. What is codeforces rating? and how codeforces contests affect the rating.
Class - 4: Introduction to Different Famous Online and Onsite
Contests
Class Link: https://youtu.be/3YR2tEG2hLc
Slide Link:
https://docs.google.com/presentation/d/1lT3dfiaPvvNtmDRGMN2uF6OzFkAD7RLb6AvQc8jRuF
g/edit?usp=sharing
Discussed Topics :
1. Introduction to Onsite contest ( Divisional, National )
2. ICPC, NCPC, IUPC
3. Introduction to Online Contests
4. Google Codejam, Google Kick Start, Facebook hacker cup, Snack Down
5. Some Important links.
Class - 5: Write your first "Hello World" Program and solve your
first Online Judge Problem
Class Link: https://youtu.be/dMbvPqWYebc
Discussed Topics :
1. Write Your First Program “Hello World”
2. Solve Problem from BeeCrowd
3. Solve Easiest Problem of ACM ICPC Dhaka Regional Onsite Contest -2020
4. Variables and Data type ( int, long long, char )
All discussed online judge problems :
1. https://www.beecrowd.com.br/judge/en/problems/view/1000
2. https://algo.codemarshal.org/contests/diu_takeoff_fall_19/problems/A
3. https://algo.codemarshal.org/contests/icpc-dhaka-20/problems/K
Class tasks are given in the classroom.
Class - 6: Double, Float, bool, Taking Input (scanf), Operators (+,
-, * )
Class Link: https://youtu.be/kWfe0zOuR9c
Discussed Topics :
1. float and double data types
2. Taking input (int, long long, double, float, char)
3. Operators ( +, -, * )
All discussed online judge problems :
1. https://acm.timus.ru/problem.aspx?space=1&num=1000
2. https://www.beecrowd.com.br/judge/en/problems/view/1004
Class tasks are given in the classroom.
Class - 7: Fraction Operations and Modulus
Class Link: https://youtu.be/P9i7-hqrpDw
Discussed Topics :
1. Fraction Calculation
2. Modulus operation
3. Cyclic Pattern in Modulus
All discussed online judge problems :
1.
https://www.hackerrank.com/contests/cpbc-assignments-batch-1/challenges/class-6-a-task-1-a-
addition-subtraction-and-multiplication\
2. https://www.beecrowd.com.br/judge/en/problems/view/1006
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 8: +=, -=, *=, /=, %=, increment(++), decreament(--) and
bitwise operators OR(|), AND(&), XOR(^)
Class Link: https://youtu.be/6iUiqhNmzrw
Discussed Topics :
1. More operators (+=, -=, *=, /=, %= )
2. Increment, decrement
3. Pre increment / decreament
4. Post increment / decreament
5. Bitwise operators OR(|), AND(&), XOR(^)
6. Patterns in XOR
7. An interesting Google interview question with XOR
References :
1. https://www.programiz.com/c-programming/c-operators
2. https://www.tutorialspoint.com/cprogramming/c_operators.htm
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 9: Solve Last Five Year ACM ICPC Preliminary Contests
Easiest Problem and Precision Error.
Class Link: https://youtu.be/1ufnPRs3KQQ
Discussed Topics :
1. https://vjudge.net/contest/510845#problem/C
2. https://vjudge.net/contest/510845#problem/F
3. https://algo.codemarshal.org/contests/icpc-dhaka-20-preli/problems/J ( 2020 )
4. https://algo.codemarshal.org/contests/icpc-dhaka-19-preli/problems/I (2019 )
5. https://algo.codemarshal.org/contests/icpc-dhaka-preli-18/problems/A (2018)
6. https://algo.codemarshal.org/contests/icpc-dhaka-preli-2017/problems/F (2017)
7. https://algo.codemarshal.org/contests/icpc-dhaka-2016-preli/problems/A (2016)
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 10: if-else Condition
Class Link: https://youtu.be/nWtVBWBC5zc
Discussed Topics :
1. Condition and comparison
2. Get Grades using marks
3. Get match joining validity using weight
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 11: if-else Condition, How to think of the scenario not the
test case
Class Link: https://youtu.be/h-FFvB1grPs
Discussed Topics :
1.https://codeforces.com/problemset/problem/4/A
2. Think scenario not test case
3. https://atcoder.jp/contests/abc149/tasks/abc149_b
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 12: Loops
Class Link: https://youtu.be/NMcLHpj7WjA
Discussed Topics :
1. Loops
2. While loop
3. For loop
4. Do-while loop
5. Infinite loop
6. Relationship of variables between parent block and child block
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 13: Practice problems on Loops
Class Link: https://youtu.be/7B_v780IfGI
Discussed Topics :
1. How to handle test cases
2. Calculate int square root of n
3. Calculate the number of divisors of a number n
4. Fast discussed some loop problems from vjudge assignment contest
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 14: Practice problems on Loops
Class Link: https://youtu.be/yHWJ_cgwOdQ
Discussed Topics :
1. https://leetcode.com/problems/three-divisors/
2. https://codeforces.com/contest/1560/problem/A
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 15: Practice problems on Loops
Class Link: https://youtu.be/bHIu1LOFobQ
Discussed Topics :
1. https://atcoder.jp/contests/abc151/tasks/abc151_b
2. https://vjudge.net/contest/510845#problem/U
3. https://vjudge.net/contest/510845#problem/T
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 16: Introduction to Arrays
Class Link: https://youtu.be/pkkpynx8dNY
Discussed Topics :
1. Introduction to Arrays
2. Count the frequency of elements in an array
3. https://atcoder.jp/contests/abc235/tasks/abc235_b
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 17: Practice problems of Arrays
Class Link: https://youtu.be/g1aC8vIJwiw
Discussed Topics :
1.
https://www.hackerrank.com/contests/cpbc-assignments-batch-1/challenges/class-16-aa-task-1-
aa-count-the-frequency-i
2. https://atcoder.jp/contests/abc236/tasks/abc236_b
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 18: Introduction to String
Class Link: https://youtu.be/w_RLhyb-o80
Discussed Topics :
1. Introduction to strings
2. reverse string
3. check string is palindrome or not
4. Multi dimension array
5. 2D, 3D array
6. Grid (input and output)
7. https://atcoder.jp/contests/abc233/tasks/abc233_b
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 19: Practice Problems for 2D Array
Class Link: https://youtu.be/rvgdWR-Et2I
Discussed Topics :
1. https://vjudge.net/contest/510845#problem/AC
2. Convert char to digit
3. Convert digit to char
4. Indexing of char
5. https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_6_D
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 20: Introduction to Bruteforce
Class Link: https://youtu.be/uY76fp4dbVo
Discussed Topics :
1. Brute force
2. https://codeforces.com/problemset/problem/304/A
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 21: Introduction to Constructive and Practice Problem of
Bruteforce
Class Link: https://youtu.be/PPDrTZWvJts
Discussed Topics :
1. Practice Problem of Brute force
2. https://atcoder.jp/contests/abc234/tasks/abc234_b
3. Introduction to Constructive Algorithm
4. https://codeforces.com/problemset/problem/199/A
5. https://cses.fi/problemset/task/1070
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 22: Introduction to Greedy
Class Link: https://youtu.be/nK3rQ4F_b7M
Discussed Topics :
1. Introduction to Greedy
2. Solving the knapsack problem with Greedy
3. Using the 0-1knapsack Problem proved that we can’t solve it using Greedy
4. https://codeforces.com/contest/514/problem/A
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 23: Practice Problem to Greedy
Class Link: https://youtu.be/A5alszGmrjs
Discussed Topics :
1. https://codeforces.com/contest/1207/problem/A
2. https://cses.fi/problemset/task/1094
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 24: Time and Memory complexity analysis
Class Link: https://youtu.be/evfL4GLeNec
Discussed Topics :
1. Time complexity
2. Big-O notation
3. O(1) Constant time complexity
4. O(n) Linear time complexity
5. O(n^2)
6. O(n^3)
7. O(log(n))
8. Polynomial time complexity
9. Exponential time complexity
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 25: Introduction to Function
Class Link: https://youtu.be/ZaINdI2Y5TY
Discussed Topics :
1. Introduction to Function
2. Implement some important functions
3. swap, min, max
4. call by value
5. call by reference
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 26: Starting Program to C++
Class Link: https://youtu.be/cjLmnlAOCPk
Discussed Topics :
1. Implement pow() function
2. Implement reverse function
3. Introduction to C++
4. I/O (cin, cout)
5. #define
6. typedef
7. making cin cout faster
8. set precision
9. built in functions (swap(), max(), min(), sqrt(), cbrt(), ceil(), floor()
Class tasks are given in the classroom, vjudge and hackerrank.
Class - 27: Builtin functions of C/C++
Class Link: https://youtu.be/CSRit7ryHZM
Discussed Topics :
1. Reverse
2. Sort function
3. Increasing order / non-decreasing order
4. Decreasing order / non-increasing order
5. isupper(), islower(), toupper(), tolower(), isdigit()
6. strcat(), strcmp(), strcpy(), strlen()
7. __gcd(), lcm()
Class tasks are given in the classroom, vjudge and hackerrank.
Contest - 1:
Contest link: https://vjudge.net/contest/532626
Solve class link: https://youtu.be/4RRlL0EiZMk