Ce site web est une traduction de l'original anglais : Retour à l'original

Entraînement et préparation


Cette page propose des conseils de préparation et du matériel d'entraînement pour l'International Computer Science Competition. Pour être bien préparé à la compétition et tirer le meilleur parti de l'expérience à travers les trois rounds, nous t'encourageons à :

  1. Comprendre le format de la compétition
    Réviser la structure de chaque round, des tests de concepts généraux aux défis algorithmiques détaillés.
  2. Maîtriser les sujets fondamentaux
    Se concentrer sur les concepts fondamentaux de l'informatique tels que : les algorithmes et structures de données, la théorie de l'optimisation, la théorie de l'information, le machine learning, l'analyse numérique, la cryptographie et l'architecture informatique.
  3. Pratiquer la résolution de problèmes
    Résoudre un large éventail de problèmes théoriques et algorithmiques sur papier et par programmation pour gagner en flexibilité et en confiance.
  4. Apprendre de ses erreurs
    Analyser soigneusement les mauvaises réponses pour combler les lacunes de connaissances.
  5. Utiliser toutes les ressources
    Profiter des manuels, des articles d'autres compétitions et des plateformes de codage en ligne.
  6. Se préparer à la lecture technique
    Développer la capacité à comprendre des descriptions de problèmes complexes et des articles académiques.
  7. Simuler des rounds chronométrés
    S'entraîner à résoudre des problèmes dans des limites de temps strictes pour améliorer la rapidité et la précision.
  8. Étudier avec d'autres
    Collaborer avec des pairs, des mentors, ou rejoindre des groupes d'étude pour la motivation et la perspective.
  9. Profiter du défi
    Aborde l'ICSC comme un voyage amusant et enrichissant dans la profondeur de l'informatique !

Concepts CS


L'International Computer Science Competition n'est pas une simple compétition de codage : elle met l'accent sur la compréhension des concepts fondamentaux de l'informatique. Le succès à l'ICSC repose sur la capacité à raisonner face aux problèmes et à saisir les bases de divers sujets. Bien que le codage soit un outil précieux pour exprimer des solutions, la véritable réussite provient d'une solide compréhension conceptuelle et d'un esprit critique.

Les participants seront confrontés à des problèmes couvrant un large éventail de domaines, notamment les algorithmes et les structures de données, la théorie de l'optimisation, la théorie de l'information, le machine learning, l'analyse numérique, la cryptographie et l'architecture informatique. C'est un spectre très large, et nous n'attendons pas des participants qu'ils soient familiers avec tous les domaines. Les problèmes incluront des informations de soutien si nécessaire. Cependant, se familiariser avec les idées fondamentales de ces domaines peut être bénéfique.

Livres recommandés

  • Thomas H. Cormen et al. (2009). Introduction to Algorithms. MIT Press. Voir
  • Michael Sipser (2012). Introduction to the Theory of Computation. Cengage Learning. Voir
  • David C. Lay (2011). Linear Algebra and Its Applications. Pearson. Voir
  • Stuart Russell et Peter Norvig (2020). Artificial Intelligence: A Modern Approach. Pearson. Voir
  • Ian Goodfellow, Yoshua Bengio, et Aaron Courville (2016). Deep Learning. MIT Press. Voir
  • Daniel Jurafsky et James H. Martin (2023). Speech and Language Processing. Pearson. Voir
  • Simon Singh (1999). The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography. Anchor. Voir
  • Charles Petzold (2000). Code: The Hidden Language of Computer Hardware and Software. Microsoft Press. Voir
DTM reverse input

Exemple : Une machine de Turing déterministe qui inverse une séquence d'entrée.

Programmation


Bien qu'une base théorique solide soit essentielle, les compétences pratiques en programmation sont également importantes pour réussir à l'ICSC. Les participants doivent être capables d'implémenter des algorithmes de manière précise et efficace.

Une structure de code propre, la maîtrise du débogage, la capacité à lire et à implémenter du pseudo-code, ainsi que des techniques d'optimisation efficaces peuvent influencer considérablement la performance.

Logiciels

Divers outils sont disponibles pour soutenir la programmation, communément appelés environnements de développement intégrés (IDE). Tu peux trouver des suggestions d'IDE et des informations sur la façon de commencer à coder sur notre page de ressources :



Livres recommandés

Livres d'introduction en Python, Java et C++ qui aident les étudiants à acquérir des compétences fondamentales en programmation et à développer de bonnes habitudes de résolution de problèmes :

  • Luciano Ramalho (2015). Fluent Python: Clear, Concise, and Effective Programming (Python). O’Reilly Media. Voir
  • Cay S. Horstmann (2019). Big Java: Early Objects (Java). Wiley. Voir
  • Allen B. Downey (2012). Think Like a Programmer (C++). No Starch Press. Voir
  • Donald E. Knuth (1968–). The Art of Computer Programming (Agnostic). Addison-Wesley. Voir

icsc_training
UTF-8 Entraînement ICSC

Années précédentes


Tu trouveras ci-dessous les anciens énoncés de problèmes et les solutions des éditions précédentes de l'ICSC. Utilise-les pour t'entraîner et te faire une idée du format et du niveau de difficulté.

Édition 2025

Round Feuille de problèmes Skeleton Code Solution
Qualification Round Problèmes Solutions
Pre-Final Round
Ancien format à faire à la maison
Problèmes Solutions
Final Round Problèmes N/A Solutions

Matériel d'entraînement supplémentaire


Tu cherches plus d'entraînement ? Nous fournissons des exemples de problèmes pour une introduction rapide au style et à la difficulté de l'ICSC, ainsi que des squelettes de code pour t'aider à démarrer.


Autres compétitions

Nous avons compilé une liste d'autres compétitions et défis qui présentent des similitudes avec les problèmes de l'ICSC. Ces ressources peuvent être une partie précieuse de ta préparation :

  • Raspberry Pi Foundation UK Bebras. Pathfinders/Elite problems et plus. Voir
  • American Computer Science League ACSL. Junior et Senior Division. Voir
  • Seminole State College IPC. Voir
  • Eric Wastl Advent of Code. Voir
  • Wolfram Research Wolfram Challenges. Voir