C++ GESP Examination Guide

1. What is GESP?

GESP, short for Grade Examination of Software Programming, is a certification for software programming skills. It is initiated and hosted by the China Computer Federation (CCF) and is aimed at evaluating programming skills among youth (primarily at the primary and secondary school levels).

  • Organizer: China Computer Federation (CCF). This is the most authoritative and influential academic institution and professional organization in the field of computer science in China, and the certifications it issues have high credibility.

  • Target Audience: primarily aimed at students aged 8-15.

  • Core Objective: Aimed at enhancing the computer science literacy and programming skills of young people, laying a foundation for their future learning and career development, and building a bridge to higher-level informatics competitions (such as NOI).

2. Core Features of GESP

  1. Authoritative Endorsement: Hosted by CCF, its authority is widely recognized in the industry, and the certificate holds high value.

  2. Comprehensive Language Coverage: Covers four languages including visual programming (Scratch/Python) and code programming (C++/Python), catering to different age groups and student backgrounds.

  • Scratch -> Python -> C++ is a classic learning and progression path from easy to difficult.

  • Progressive Level Design:

    • The examination is divided into 8 levels, with increasing difficulty.

    • Students can register for levels according to their abilities, and skipping levels is not allowed (there is a mechanism for skipping in specific cases, but usually requires excellent performance), ensuring the solidity of the knowledge system.

  • Connection with Competition Systems: This is one of the most significant advantages of GESP.

    • Passing GESP Level 8 will provide an opportunity to be exempt from the first round of certification for CSP-J/S (Informatics Olympiad League), directly obtaining qualification for the second round. This offers an important “shortcut” for students aspiring to participate in informatics competitions.

    3. Examination Structure and Content (Taking C++ as an Example)

    The GESP examination is entirely computer-based, with a uniform format.

    • Question Types and Quantity:

      • Multiple Choice Questions: A total of 20 questions, each worth 2 points, totaling 40 points. Mainly assesses theoretical knowledge of programming concepts, syntax, basic data structures, and simple algorithms.

      • Programming Questions: A total of 4 questions, each worth 15 points, totaling 60 points. Students are required to write complete C++ programs in a programming environment to solve problems, focusing on practical programming skills and algorithm application abilities.

    • Examination Duration: 90 minutes (1.5 hours).

    • Scoring Method:

      • Total score is 100 points.

      • Passing Criteria: Total score ≥ 60 points, and multiple choice score ≥ 20 points, programming score ≥ 40 points. Both individual scores must meet the criteria, otherwise, passing the total score does not count as passing.

    • Level Ability Requirements:

      • Levels 1-4: Mainly assesses basic syntax and structured programming, such as variables, loops, branches, arrays, functions, etc.

      • Levels 5-6: Begins to involve simple algorithms and data structures, such as simple sorting, recursion, structures, simple string processing, etc.

      • Levels 7-8: Assesses core algorithms and data structures, such as complex recursion, search (depth-first DFS, breadth-first BFS), dynamic programming, stacks, queues, binary trees, etc., with content approaching the entry requirements of CSP-J/S.

    4. Why Participate in the GESP Examination?

    1. Scientific Assessment, Testing Results: Provides an authoritative and objective stage assessment for students’ programming learning, helping to identify gaps.

    2. Learning through Examination, Clarifying Goals: The leveled examination syllabus provides students with a clear learning roadmap, motivating them to continue improving.

    3. Support for Further Education, Enriching Resumes: A high-level GESP certificate is a strong proof of students’ programming and logical thinking abilities, holding significant reference value in the selection of technology-specialized students during transitions from primary to secondary school.

    4. Competition Shortcut, Direct Access to Semi-Finals: As mentioned earlier, passing Level 8 allows direct access to the second round of CSP-J/S, saving a lot of time and effort on the path to informatics competitions.

    5. Cultivating Literacy, Facing the Future: Systematic learning of programming and algorithms can effectively train students’ computational thinking, logical thinking, and problem-solving abilities.

    GESP Official Website:https://gesp.ccf.org.cn/C++ GESP Examination GuideC++ GESP Examination ScheduleEvery March, June, September, and December, four times a year.C++ GESP Examination Syllabus

    Level Knowledge Content (C++) Knowledge Objectives
    Level 1 Computer Basics and Programming Environment, History of Computers, Definition and Use of Variables, Basic Data Types (Integer, Float, Character, Boolean), Control Statement Structures (Sequential, Loop, Selection), Basic Operations (Arithmetic, Relational, Logical), Input and Output Statements Master simple program structures of sequential, loop, and branch, can use integrated development environment for programming and debugging, and complete single-function program design through learning basic programming knowledge
    Level 2 Computer Storage and Networking, Characteristics of Programming Languages, Concept and Description of Flowcharts, ASCII Encoding, Data Type Conversion, Multi-layer Branch/Loop Structures, Common Mathematical Functions (Absolute Value, Square Root, Max, Min) Master basic program design, can use simple mathematical functions. Can independently complete more comprehensive cases involving branch statements, loop statements, and can use nested branch and loop structures.
    Level 3 Data Encoding (Original Code, Inverse Code, Complement Code), Base Conversion (Binary, Octal, Decimal, Hexadecimal), Bitwise Operations (AND (&), OR (|), NOT (~), XOR (^), Left Shift (<<), Right Shift (>>)),Concept and Description of Algorithms (Natural Language, Flowchart, Pseudocode), Basic Applications of C++ One-Dimensional Arrays; Basic Applications of Python Lists, Dictionaries, Tuples, Sets, Built-in Functions, and List Comprehensions, Strings and Their Functions, Algorithms: Enumeration Method, Algorithms: Simulation Method Master knowledge of data encoding, base conversion, bitwise operations, and the use of one-dimensional arrays, strings, and functions, can independently use simulation and enumeration methods to solve corresponding algorithm problems.
    Level 4 Definition and Calling of Functions, Formal and Actual Parameters, Concept and Basic Applications of C++ Pointer Types, Concept of Function Parameter Passing (C++ Value Passing, Reference Passing, Pointer Passing; Python Value Passing, Reference Passing), C++ Structures, Basic Applications of C++ Two-Dimensional Arrays and Multi-Dimensional Arrays; Nesting of Python Composite Data Types, Algorithms: Recursion, Algorithms: Sorting Concepts and Stability, Algorithms: Sorting Algorithms (Bubble Sort, Insertion Sort, Selection Sort), Estimation of Simple Algorithm Complexity (Including Polynomial, Exponential Complexity), File Redirection and File Read/Write Operations, Exception Handling Master the definition, calling, and methods of function parameter passing; master the usage skills of two-dimensional and multi-dimensional arrays; master the use of common sorting algorithms, file reading/writing, and exception handling. Able to solve problems related to recursion.
    Level 5 Elementary Number Theory (C++) Array Simulation of High-Precision Addition, Subtraction, Multiplication, Division, Single Linked List, Double Linked List, Circular Linked List, Euclidean Algorithm, Sieve of Eratosthenes and Linear Sieve, Unique Factorization TheoremBinary Search/Binary Answer (also known as Binary Enumeration Method), Greedy Algorithm, Divide and Conquer Algorithm (Merge Sort and Quick Sort), Recursion, Estimation of Algorithm Complexity (Including Polynomial, Exponential, Logarithmic Complexity) Master elementary number theory, knowledge of linear tables, the ideas of binary method, divide and conquer method, greedy method, and complete specified function programs. Master high-precision operations simulated by arrays in C++.
    Level 6 Definition, Construction, and Traversal of Trees, Huffman Trees, Complete Binary Trees, Binary Search Trees, Huffman Coding, Gray Coding, Depth-First Search Algorithm, Breadth-First Search Algorithm (also known as Breadth-First Search Algorithm), Search Algorithms for Binary Trees, Simple Dynamic Programming (One-Dimensional Dynamic Programming, Simple Knapsack Problem), Object-Oriented Concepts, Class Creation, Stacks, Queues, Circular Queues Master basic knowledge of trees, can distinguish different trees, and traverse according to different search algorithms, master simple linear dynamic programming and simple knapsack problems.
    Level 7 Common Functions of Mathematical Libraries (Trigonometric, Logarithmic, Exponential), Complex Dynamic Programming (Two-Dimensional Dynamic Programming, Dynamic Programming Optimization), Definition and Traversal of Graphs, Graph Theory Algorithms, Hash Tables Master the definition of graphs and related traversal algorithms, can use knowledge of two-dimensional dynamic programming and dynamic programming optimization to complete complex dynamic programming algorithms
    Level 8 Principles of Counting, Permutations and Combinations, Pascal’s Triangle, Doubling Method, Algebra and Plane Geometry, Time and Space Efficiency Analysis of Algorithms, Algorithm Optimization Master basic knowledge in combinatorial mathematics, can complete corresponding algorithm optimization through analysis of time and space efficiency of algorithms.

    Leave a Comment