Syllabus des olympiades junior d’informatique


Introduction

Ce syllabus est un document officiel qui encadre les olympiades d'informatique - junior d’un point de vue scientifique, en déterminant les sujets les plus prioritaires pour la formation et l’évaluation.

Un candidat MOIJ sera amené le long du parcours à apprendre et pratiquer les algorithmes et techniques listées dans le document, il devra maîtriser tout le programme pour pouvoir participer aux olympiades nationales d’informatique MOI.

Cette version du Syllabus est en vigueur pour MOIJ 2022.

Auteurs et contacts

La version initiale du document a été publiée par Omar Salim Moussa, Adam Benali et Moncef Mhasni, membres du comité scientifique MOI.

Pour toute question ou suggestion merci de nous contacter sur l’adresse scicommittee@arena.moi

Concepts de langages de programmation

  • Organigramme de programmation
  • Un langage de programmation, de préférence C ou C++
  • Types de données
  • Variables
  • Entrée/Sortie
  • Opérateurs binaires
  • Structures de contrôle (conditions et boucles)
  • Tableaux et chaines de caractère
  • Fonctions
  • Structures
  • Complexité algorithmique
  • Bibliothèque standard
  • Interactivité

Mathématiques

Arithmétiques et géométrie
  • Propriétés basiques des entiers (signe, parité,divisibilité)
  • Arithmétique modulaire basique
  • Test de primalité basiques
  • Fractions, pourcentages
  • Triangle, rectangle, cercle and surfaces
  • Point, vecteur, coordonnées dans le plan
  • Théorème de Pythagore

Graphes

  • Représentation graphique
  • Types et propriétés de base (cycles, orientations, …)
  • Représentation en mémoire
  • Parcours de graphe
  • Plus court chemin

Autres

  • Dénombrement de base
  • Algèbre de bool et tableaux de vérité
  • Induction
  • Récursivité (Fibonacci)

Structures de données

  • STL stack, queue, priority queue
  • STL map, set, deque
  • Arbres binaires

Algorithmes

  • Tri a bulles, fonctions de tri STL
  • Recherche, dichotomie.
  • Diviser pour régner (quick sort)
  • Introduction aux algorithmes gloutons (greedy coin change)
  • Bases de programmation dynamique (Fibonacci revisited)