
C++ 201
High-Level Language | Text Based | Age 14-18 | 56 Lessons


C++ is an object-oriented programming (OOP) language that is viewed by many as the best language for creating large-scale applications. In C++ 201, programmers will learn the main concepts that is extensively used in competition.

.png)
Unit 01
7 Lessons
57 Challenges
1.Understand the concept of recursion and learn the Euclidean algorithm.
2.Review recursion and apply it to solve typical problems.
3.Learn the principle of curly braces omission and understand enumerated loops.
4.Learn different methods of enumeration and apply the enumeration concept to solve practical problems.
5.Study the concept of subsets and understand problems related to subset enumeration.
6.Learn about permutations and understand problems related to permutation enumeration.
.png)
Unit 02
7 Lessons
57 Challenges
1.Understand the greedy algorithm and use it to solve problems initially.
2.Learn about structures (structs) and use them for sorting.
3.Integrate the greedy algorithm and sorted structures to solve complex practical problems.
4.Learn about stack structures and their basic operations, and understand how to simulate a stack using arrays.
5.Learn about queue structures and their basic operations, and implement a simulation of a queue.
6.Get acquainted with the Standard Template Library (STL), and learn how to implement stacks and queues using STL.
.png)
Unit 03
7 Lessons
57 Challenges
1.Review greedy algorithms.
2.Get acquainted with the Difference and use it to solve practical problems.
3.Advance in learning about the Difference.
4.Learn about priority queues.
5.Study vectors and understand their usage.
6.Learn concepts, implementation, and operations related to linked list structures.
.png)
Unit 04
7 Lessons
60 Challenges
1.Learn about the adjacent interchange sorting method.
2.Study the concept and characteristics of dynamic programming, and apply it to solve practical problems.
3.Learn about 1D/1D dynamic programming.
4.Study the longest increasing subsequence and its optimization methods, and apply them preliminarily.
5.Learn about tree structures, and master the implementation of depth-first traversal.
6.Study the methods of depth-first search (DFS).
.png)
Unit 05
7 Lessons
55 Challenges
1.Learn about dynamic programming strategies with state representation, and master the method of defining problem state space and state transition equations.
2.Study 2D/0D dynamic programming strategies, and learn how to define problem states for two-dimensional state space.
3.Study 2D/1D dynamic programming, and master the method of constructing state transition equations in one-dimensional and two-dimensional state spaces.
4.Learn the principles and implementation of the merge sort algorithm, and grasp the core idea of its divide and conquer strategy.
5.Study the basic solutions and optimization strategies for the 0/1 knapsack problem, and master the application of dynamic programming in solving such problems.
6.Review the 0/1 knapsack problem, and gain a deeper understanding of the logic behind state transitions.
.png)
Unit 06
7 Lessons
56 Challenges
1.Learn the strategy of recording paths in charging problems and 0/1 knapsack problems, understanding the importance of recording decision paths in state transitions.
2.Study the dynamic programming solutions for grouped knapsack and complete knapsack problems, mastering the characteristics and state transition logic of different knapsack problems.
3.Learn how to determine suitable state design methods for different types of knapsack problems.
4.Master the dimensions and meanings of state representation, and construct effective state transition equations.
5.Study the principles and implementation of the quick sort algorithm, summarize the basic principles, time complexity, and applicable scenarios of various sorting algorithms.
6.Learn the solutions to the longest increasing subsequence problem and the delete number problem, mastering the application of these solutions in data preprocessing.
.png)
Unit 07
7 Lessons
51 Challenges
1.Learn the concept of multidimensional dynamic programming, master the construction of state space and the design of state transition equations in multidimensional dynamic programming.
2.Study the strategies of multidimensional dynamic programming, deepen understanding of managing high-dimensional state spaces and state transition logic through practice.
3.Learn prefix sum optimization, effectively calculate the number of inversions in a sequence.
4.Consolidate prefix sum optimization techniques, while mastering space optimization strategies in practical problems.
5.Review time complexity optimization techniques in dynamic programming, learn strategies for optimizing extreme values.
6.Master the application of extreme value optimization in practical problems.
.png)
Unit 08
7 Lessons
55 Challenges
1.Learn the traversal algorithms of binary trees, including the basic concepts and implementation methods of preorder, inorder, and postorder traversals. Understand the characteristics and application scenarios of each traversal method.
2.Master the techniques for converting prefix, infix, and postfix expressions, understand the computational logic of different expression forms.
3.Consolidate expression conversion skills, learn the use of two pointers.
4.Master the application of two pointers in practical problems such as sliding window and operation sequences.
5.Master the techniques of prime factorization and its application in mathematical problems.
6.Master the basics of congruence operation and the technique for solving modular inverse elements. Learn to effectively calculate inverse elements using Fermat's Little Theorem and recursive methods.