Indian Computing Olympiad syllabus is available on the official website. The syllabus is available in pdf format so that students can download the syllabus easily. The pdf contains all the important subjects for which the IARCS board conducts the ICO exam. Check out the complete syllabus for all the classes participating in the Indian Computing Olympiad 2023.

NTSE

The candidates must be familiar with the syllabus of the Indian Computing Olympiad to have a better understanding exam structure.

Below are the highlights of the Indian Computing Olympiad 2023.

 Partculars About Name Indian Computing Olympiad (ICO) Negative marking No negative marking Programming language to be known Algorithms, C++, JAVA Pre-requisites School-level mathematics Basic understanding of algorithms Official Website www.iarcs.org.in

The candidates must be familiar with the syllabus of the Indian Computing Olympiad to have a better understanding exam structure.

The syllabus for IOC 2023 is mentioned below in pointers.

ICO Mathematics Syllabus

Mathematics is a subject that needs constant practice and understanding. Students need to know the syllabus and should practice sample papers before going for the exam.

Given below is the syllabus covered under the Indian Computing Olympiad mathematics section.

Arithmetics and Geometry

Given below are the topics candidates need to focus on in the section under Arithmetics and Geometry:

• Integers, operations (including exponentiation), and comparison
• Basic properties of integers (sign, parity, and divisibility)
• Basic modular arithmetic: addition, subtraction, and multiplication
• Prime numbers
• Fractions and percentages
• Line, line segment, angle, triangle, rectangle, square, and circle
• The point, vector, and coordinates in the plane
• Polygon (vertex, side/edge, simple, convex, inside, and area)
• Euclidean distances
• Pythagorean theorem
• Additional topics from number theory
• Geometry in 3D or higher dimensional spaces
• Analyzing and increasing the precision of floating-point computations
• Modular division and inverse elements
• Complex numbers
• General conics (parabolas, hyperbolas, and ellipses)
• Trigonometric functions

Discrete Structures (DS)

Topics covered under the discrete structures are functions, relations, sets, basic logic, proof techniques, basics of counting, and graphs & trees.

Functions, Relations, and Sets

These are the areas or topics that students need to focus on in the section under Functions, Relations and Sets:

• Functions (surjections, injections, inverses, and composition)
• Relations (reflexivity, symmetry, transitivity, equivalent relations, total/linear order relations, and lexicographic order)
• Sets (inclusion/exclusion, complements, cartesian products, and power sets)
• Cardinality and countability (of infinite sets)

Basic Logic

Listed below are the topics under the section of Basic Logic that students should focus on:

• First-order logic
• Logical connectives (including their basic properties)
• Truth tables
• Universal and existential quantification (note: statements should avoid definitions with nested quantifiers whenever possible)
• Modus ponens and modus tollens
• Normal forms
• Validity
• Limitations of predicate logic

Proof Techniques

The topics that need to be focused on by the candidates under the Proof Techniques section are:

• Notions of implication, converse, inverse, contrapositive, negation, and contradiction
• Direct proofs, proofs by counterexample, contraposition, and contradiction
• Mathematical induction
• Strong induction (also known as complete induction)
• Recursive mathematical definitions (including mutually recursive definitions)

Basics of Counting

The basic of countings section includes these many topics that should be focused on:

• Counting arguments (sum & product rule, arithmetic & geometric progressions, and Fibonacci numbers)
• Permutations and combinations (basic definitions)
• Factorial function and binomial coefficients
• Inclusion-exclusion principle
• Pigeonhole principle
• Pascal's identity and binomial theorem
• Solving of recurrence relations
• Burnside lemma

Graphs and Trees

The graphs and trees topics that are required to be focused on by the candidates are listed below:

• Trees & their basic properties and rooted trees
• Undirected graphs (degree, path, cycle, connectedness, Euler/Hamil-ton path/cycle, and handshaking lemma)
• Directed graphs (in-degree, out-degree, directed path/cycle, and Euler/Hamilton path/cycle)
• Spanning trees
• Traversal strategies
• Decorated graphs with edge/node labels, weights, and colours
• Multigraphs and graphs with self-loops
• Bipartite graphs
• Planar graphs
• Hypergraphs
• Specific graph classes such as perfect graphs
• Structural parameters such as treewidth and expansion
• Planarity testing
• Finding separators for planar graphs

Other Areas in Mathematics

Listed below are some areas in Mathematics that should be revised by the candidates taking the exam:

• Geometry in three or more dimensions
• Linear algebra, including (but not limited to): matrix multiplication, exponentiation, inversion, and Gaussian elimination–Fast Fourier transform
• Calculus
• Theory of combinatorial games, e.g., NIM game amd Sprague-Grundy theory
• Statistics

ICO Computing Science Syllabus

Given below is the syllabus for covered under the Indian Computing Olympiad computer science section.

Programming Fundamentals (PF)

Topics covered under the discrete structures are fundamental programming constructs (for abstract machines), algorithms & problem-solving, fundamental data structures, and recursion.

Fundamental Programming Constructs (for abstract machines)

• Basic syntax and semantics of a higher-level language (at least one of the specific languages available at an IOC, as announced in the competition rules for that IOC)
• Variables, types, expressions, and assignment
• Simple I/O, conditional, and iterative control structures
• Functions and parameter passing
• Structured decomposition

Algorithms and Problem-Solving

The candidates taking the ICO exam should focus on these topics under the section of Algorithms and Problem-Solving:

• Problem-solving strategies (understand–plan–do–check, separation of concerns, generalization, specialization, case distinction, working backward, etc.)
• The role of algorithms in the problem-solving process
• Implementation strategies for algorithms
• Debugging strategies
• The concept and properties of algorithms (correctness and efficiency)

Fundamental Data Structures

Students need to focus on the topics of Fundamental Data Structure for taking the ICO exam:

• Primitive types (boolean, signed/unsigned integer, and character)
• Arrays (including multicolumn dimensional arrays)
• Strings and string processing
• Static and stack allocation (elementary automatic memory management)
• Implementation strategies for graphs and trees
• Strategies for choosing the right data structure
• Elementary use of real numbers in numerically stable tasks. The floating-point representation of real numbers and the existence of precision issues.
• Pointers and references
• Data representation in memory, heap allocation, runtime storage management, and using fractions to perform exact calculations
• Non-trivial calculations on floating-point numbers and manipulating precision errors

Regarding floating-point numbers, there are well-known reasons why they should be, in general, avoided at the IOC. However, the currently used interface removes some of those issues. In particular, it should now be safe to use floating-point numbers in some types of tasks, e.g., to compute some Euclidean distances and return the smallest one.

Recursion

Listed below are the recursion topics to be covered in the ICO exam:

• The concept of recursion
• Recursive mathematical functions
• Simple recursive procedures (including mutual recursion)
• Divide-and-conquer strategies
• Implementation of recursion
• Recursive backtracking

Algorithms and Complexity (AL)

Algorithms are fundamental to computer science and software engineering. The real-world performance of any software system depends on the algorithms, the suitability, and the efficiency of the various layers of implementation.

Good algorithm design is, therefore, crucial for the performance of all software systems. Moreover, the study of algorithms provides insight into the intrinsic nature of the problem as well as possible solution techniques independent of programming language, programming paradigm, computer hardware, or any other implementation aspect.

Basic Algorithmic Analysis

Students should focus on these topics under the category of Basic Algorithm Analysis:

• Algorithm specification, precondition, postcondition, correctness, and invariants
• Asymptotic analysis of upper complexity bounds (informally if possible)
• Big O notation
• Standard complexity classes: constant, logarithmic, linear, O(N log N), quadratic, cubic, and exponential
• Time and space tradeoffs in algorithms
• Empirical performance measurements
• Identifying differences among best, average, and worst-case behaviors
• Little o, Omega, and theta notation
• Tuning parameters to reduce running time, memory consumption, or other measures of performance
• Asymptotic analysis of average complexity bounds
• Using recurrence relations to analyze recursive algorithms

Algorithmic Strategies

The candidates are required to learn the topics listed below under the category of Algorithmic Strategies:

• Simple loop design strategies
• Brute-force algorithms (exhaustive search)
• Greedy algorithms
• Divide-and-conquer
• Backtracking (recursive and non-recursive)
• Branch-and-bound
• Dynamic programming, heuristics, and finding good features for machine learning tasks
• Discrete approximation algorithms and randomized algorithms
• Clustering algorithms (k-means and k-nearest neighbor)
• Minimizing multivariate functions using numerical approaches

Algorithms

The students are required to learn the following topics under the category of Algorithms:

• Simple algorithms involving integers: radix conversion, Euclid's algorithm, primality test by O (√n) trial division, Sieve of Eratosthenes, factorization (by trial division or achieve), and efficient exponentiation
• Simple operations on arbitrary precision integers (addition, subtraction, and simple multiplication)
• Simple array manipulation (filling, shifting, rotating, rever-sal, resizing, minimum/maximum, prefix sums, histogram, and bucket sort)
• Simple string algorithms (e.g., naive substring search) 3p sequential processing/search and binary search
• Quicksort and quickselect to find the smallest element
• O (N log N) worst-case sorting algorithms (heapsort and mergesort)
• Traversals of ordered trees (pre-, in-, and post-order)
• Applications of the depth-first traversal tree, such as topological ordering and Euler paths/cycles
• Finding connected components and transitive closures
• Shortest-path algorithms (Dijkstra, Bellman-Ford, and Floyd-Warshall)
• Minimum spanning tree (Jarn ÌÄ±k-Prim and Kruskal algorithms)
• O(VE) time algorithm for computing maximum bipartite matching. By connectivity in undirected graphs (bridges, articulation points).
• Connectivity in directed graphs (strongly connected components)
• Basics of combinatorial game theory, winning and losing positions, and minimax algorithm for optimal game playing
• Maximum flow and flow/cut duality theorem.
• Optimization problems that are easiest to analyze using matroid theory
• Problems based on matroid intersection (except for bipartite matching)
• Lexicographical BFS, maximum adjacency search, and their properties
• Distributed algorithms
• Basic computability

Other Areas in Computing Science

Listed below are some of the areas that are to be focussed in computer science:

• Architecture and organization (AR)
• Operating systems (OS)
• Net-centric computing (or cloud computing) (NC)
• Programming languages (PL)
• Human-computer interaction (HC)
• Graphics and visual computing (GV)
• Intelligent systems (IS)
• Information management (IM)
• Social and professional issues (SP)
• Computational science (CN)

Other Important Topics for ICO

The ICO exam covers a vast range of topics from different disciplines. As a result, some subjects may be difficult to clear, but some may be very easy.

Given below are some other important topics covered under the Indian Computing Olympiad.

• Software engineering (SE)
• Software design
• Using APIs
• Software tools and environments
• Software processes
• Software requirements and specification
• Software validation
• Software evolution
• Software project management
• Component-based computing
• Software reliability
• Specialized systems development

Important Guidelines for Indian Computing Olympiad

There are several reasons for imposing restrictions on concepts, terminology, and notations in ICO competition tasks.

Given below are the instructions and guidelines to be followed by the Indian Computing Olympiad.

• The ICO competition is not intended to test knowledge, and it assesses algorithmic problem-solving skills. Many contestants have not yet completed secondary education. Therefore, the ICO organizers cannot assume that contestants have much prior knowledge of concepts, terminology, and notation in algorithmic problems (or any other area, for that matter).
• ICO contestants come from all over the world and have diverse educational backgrounds. The organizers should aim at formulations that are understandable by all contestants.
• Concepts, terminology, and notations used in computing science are fraught with complications. CS professionals have learned to cope with many years of training. For example, the concept of a graph is rather vague as such. It requires many additional details to make precise what is meant. A CS professional can often infer these details from subtle clues in the context. It cannot be expected from an average ICO contestant.

During the preparations for ICO competitions, candidates should prioritize the appropriateness of concepts, terminology, and notations used in competition tasks that have been discussed and decided. It is because it has often led to changes in task descriptions.

Let us first clarify what we mean by concept, terminology, and notation.

• Concepts refer to a general idea with a specific focus-for instance, the concept of a number and incidence (in geometry). Often, a concept is not atomic but a composite of (simpler) concepts.
• 'Terminology' refers to the typical words used in connection with a concept-for instance, the elements of a set, appointed online.
• 'Notation' refers to the typical (mathematical) symbols used in connection with a concept. For instance, {0,1,2} denotes the set consisting of the three numbers 0,1, and 2.
• We distinguish three classes in the usability classification. In order of increasing restrictiveness, these are
• Basic knowledge (BK): can be used without further definition.
• To-be-defined (TBD): This can be used but needs to be defined explicitly.
• To-be-avoided (TBA): cannot be used.

Note that, for a given concept, the related terminology and notations may end up in different classes. The classification presented here was obtained as a combination of,

• Personal experiences gathered during meetings at past ICOs.
• Personal experiences from teaching and organizing programming contests.
• Analysis of task descriptions of past ICO competitions.
• Discussions with various members of the ICO community.
HMIT Exam Indian School Talent Search Exam (ISTSE)
UNICUS Olympiad National Talent Search Examination (NTSE)

List of other popular Olympiads are given below: