Advanced Search
 Colleges
 Exams
 Courses
Indian Computing Olympiad 2023 Syllabus
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.
Table of Contents
 Indian Computing Olympiad Highlights
 Indian Computing Olympiad Syllabus
 Important Guidelines for Indian Computing Olympiad
 Indian Computing Olympiad Preparation
Top Olympiads in India 

HBCSE Olympiad 
SOF Olympiad Exams 
ASSET Olympiad 
NTSE 
Hummingbird Olympiad 
Indian Computing Olympiad 2023 Highlights
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 
Prerequisites 

Official Website  www.iarcs.org.in 
Indian Computing Olympiad 2023 Syllabus
The candidates must be familiar with the syllabus of the Indian Computing Olympiad to have a better understanding exam structure.
Download the Indian Computing Olympiad (ICO) syllabus from the link provided below.
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 floatingpoint 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:
 Firstorder 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
 Inclusionexclusion 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/Hamilton path/cycle, and handshaking lemma)
 Directed graphs (indegree, outdegree, 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 selfloops
 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 SpragueGrundy 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 & problemsolving, fundamental data structures, and recursion.
Fundamental Programming Constructs (for abstract machines)
 Basic syntax and semantics of a higherlevel 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 ProblemSolving
The candidates taking the ICO exam should focus on these topics under the section of Algorithms and ProblemSolving:
 Problemsolving strategies (understand–plan–do–check, separation of concerns, generalization, specialization, case distinction, working backward, etc.)
 The role of algorithms in the problemsolving 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)
 Linked structures
 Implementation strategies for graphs and trees
 Strategies for choosing the right data structure
 Elementary use of real numbers in numerically stable tasks. The floatingpoint 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
 Nontrivial calculations on floatingpoint numbers and manipulating precision errors
Regarding floatingpoint numbers, there are wellknown 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 floatingpoint 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)
 Divideandconquer strategies
 Implementation of recursion
 Recursive backtracking
Algorithms and Complexity (AL)
Algorithms are fundamental to computer science and software engineering. The realworld 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 worstcase 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
 Bruteforce algorithms (exhaustive search)
 Greedy algorithms
 Divideandconquer
 Backtracking (recursive and nonrecursive)
 Branchandbound
 Dynamic programming, heuristics, and finding good features for machine learning tasks
 Discrete approximation algorithms and randomized algorithms
 Clustering algorithms (kmeans and knearest 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, reversal, 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) worstcase sorting algorithms (heapsort and mergesort)
 Traversals of ordered trees (pre, in, and postorder)
 Depth and breadthfirst traversals
 Applications of the depthfirst traversal tree, such as topological ordering and Euler paths/cycles
 Finding connected components and transitive closures
 Shortestpath algorithms (Dijkstra, BellmanFord, and FloydWarshall)
 Minimum spanning tree (Jarn ÌÄ±kPrim 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)
 Netcentric computing (or cloud computing) (NC)
 Programming languages (PL)
 Humancomputer 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
 Componentbased 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 problemsolving 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.
Indian Computing Olympiad Preparation
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 focusfor 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 conceptfor 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.
 Tobedefined (TBD): This can be used but needs to be defined explicitly.
 Tobeavoided (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.
Other Related Olympiads in India  

Indian Talent Olympiad  Olympiad CSC 
HMIT Exam  Indian School Talent Search Exam (ISTSE) 
UNICUS Olympiad  National Talent Search Examination (NTSE) 
List of other popular Olympiads are given below:
Note: Get the complete list of Olympiad Exams conducted in India. For any questions/queries related to this Olympiad, do comment in the comment section, as given below.