High School Curriculum for Mathematics and Computer Science Specialization



  1. Algorithms

    • Algorithm concept, characteristics
    • Data, variables, expressions, operations
    • Basic structures: linear, alternative, repetitive
    • Algorithm description, pseudocode representation

  2. Basic Elements of a Programming Language (Pascal or C, optional)

    • Language vocabulary
    • Constants, identifiers
    • Data type concept. Arithmetic, logical, relational operators
    • Defining data types
    • Variables. Variable declaration
    • Program structure. Comments
    • Expressions. Assignment statement
    • Data input/output
    • Control structures: compound statement, alternative and repetitive structures

  3. Predefined Subprograms

    • Subprograms. Parameter passing mechanisms
    • Predefined procedures and functions

  4. Structured Data Types

    • Array type
    • Character string type: operators, predefined procedures and functions for reading, displaying, concatenation, search, extraction, insertion, deletion
    • Record type

  5. Text Files

    • Text files. Access types
    • Predefined procedures and functions for text files

  6. Elementary Algorithms

    • Problems involving digits of a number
    • Divisibility. Prime numbers. Euclid's algorithm
    • Fibonacci sequence
    • Finding minimum/maximum
    • Sorting methods: bubble sort, selection sort
    • Merge sort
    • Search methods: sequential search, binary search
    • Analysis of algorithm complexity considering execution efficiency criteria and memory usage

  7. User-Defined Subprograms

    • Procedures and functions: declaration and invocation, formal parameters and actual parameters, value parameters, reference parameters, global variables and local variables, scope
    • Modular design of problem solving

  8. Recursion

    • Recursive procedures and functions

  9. Backtracking Method

    • Generation problems

  10. Generation of Combinatorial Elements

    • Permutations, arrangements, combinations
    • Cartesian product, subsets

  11. Graphs

    • Undirected graphs: terminology (node/vertex, edge, adjacency, incidence, degree, path, elementary path, cycle, elementary cycle, length, subgraph, partial graph), properties (connected, connected component, complete graph), memory representation methods (adjacency matrix, adjacency list)
    • Trees: terminology (node, edge, root, descendant, direct descendant/child, ancestor, direct ancestor/parent, siblings, leaf node), memory representation methods (adjacency matrix, parent array)

Accessibility Options

Color Contrast

Text Size

Text Spacing

Reading Aids