Entraînement au concours ACM-ICPC



Documents pareils
Logiciel Libre Cours 3 Fondements: Génie Logiciel

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

L informatique en BCPST

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Qu est-ce que la programmation?

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Évaluation et implémentation des langages

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Cours 1 : La compilation

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

alg - Classes, instances, objets [oo] Exercices résolus


Rappels sur les suites - Algorithme

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

Chapitre VI- La validation de la composition.

FAQ - ETUDIANTS. Nous avons rassemblé ici les questions les plus fréquemment posées par les candidats.

Annexe : La Programmation Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Panorama des solutions analytiques existantes

Règlement du concours 2015 «NOS LECTEURS ONT DU TALENT»

Conventions d écriture et outils de mise au point

UE C avancé cours 1: introduction et révisions

GUIDE D UTILISATION DU LOGICIEL DE TELE-EXPERTISE BOGOU

Chapitre 1 Qu est-ce qu une expression régulière?

LICENCE : INFORMATIQUE GENERALE

Cahier des charges - Refonte du site internet rennes.fr

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Introduction à l informatique en BCPST

Master Poly Trader. Manuel d utilisateur. Group IV Benoît Perroud Marius Erni Lionel Matthey David Wenger Lotfi Hussami

Chapitre I Notions de base et outils de travail

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Initiation. àl algorithmique et à la programmation. en C

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

IMO - Informatique, modélisation et optimisation

Tutoriel QSOS. Version /02/2013

Mon Guide illustré Mon : Créer mon compte Remplir mon Formulaire

Guide d utilisation OGGI. Gestionnaire d incidents à l usage des clients. Date de rédaction : 04/02/2013. Version : 1.0.

Projet Active Object

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Convention N 2013/P1/MMSH/015

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Manuel d utilisation du web mail Zimbra 7.1

FICHE N 8 Photodiversité, d une banque d images à un portail d activités en ligne Anne-Marie Michaud, académie de Versailles

UE Programmation Impérative Licence 2ème Année

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

C++ - Classes, instances, objets [oo] Exercices résolus

CUEEP Département Mathématiques E 821 : Problèmes du premier degré 1/27

Quelques éléments de compilation en C et makefiles

Feuille TD n 1 Exercices d algorithmique éléments de correction

Tp 1 correction. Structures de données (IF2)

1 LA MESSAGERIE ELECTRONIQUE 2 MESSAGERIE : BOITES ET SYMBOLES. 1.1 Comment fonctionne-t-elle? 2.1 Les BOÎTES ou dossiers

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

MANUEL D UTILISATION LIVRET DE L ENSEIGNANT

Programmation Objet - Cours II

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

Kit Demande de Bourse Etude Erasmus

MODULE 2 : L échange et le partage de fichiers numériques

1. QU'EST CE QUE LE TABLEAU DE BORD D UN PROJET?

Algorithmique et Programmation, IMA

Modalités d application de l article L du CSP après la parution du décret du 25 mars 2007

Marché à Procédure adaptée. Tierce maintenance applicative pour le portail web

MODALITES DE SELECTION 2011

Manuel d utilisation de la messagerie.

Transformation IT de l entreprise CLOUD ET AGILITÉ AVEC L APPROCHE PAAS

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

LES TOUT PREMIERS PAS

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Cours d initiation à la programmation en C++ Johann Cuenin

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Spécifications, Développement et Promotion. Ricco RAKOTOMALALA Université Lumière Lyon 2 Laboratoire ERIC

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Guide plateforme FOAD ESJ Lille

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Manuel d utilisation de l outil collaboratif

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Élaborer une production dans un contexte collaboratif. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Plateforme de capture et d analyse de sites Web AspirWeb

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

Règlement du jeu télévisé «JEUX DE NUIT»

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Programmation par les Objets en Java

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Notice explicative Mediway - MonDossierMedical.ch

Exemples de différenciations pédagogiques en classe. Elémentaires Collèges. Ordinaires & ASH

LES DOSSIERS DOCUMENTAIRES ELECTRONIQUES. Clotilde VAISSAIRE CV CONSEIL SARL

Bonnes pratiques de l'ocde pour la gestion des sinistres d assurance

Licence ODbL (Open Database Licence) - IdéesLibres.org

Flexible Identity. authentification multi-facteurs. authentification sans token. Version 1.0. Copyright Orange Business Services mai 2014.

Il est fondé entre les adhérents aux présents statuts une association régie par la Loi 1901, ayant pour titre :...

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Transcription:

Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16

Plan Présentation Stratégies de base Page 2 / 16

Qu est-ce que c est? ACM-ICPC : International Collegiate Programming Contest de l ACM ACM : Association for Computing Machinery, principale société savante en informatique ; organise des conférences, délivre des prix, publie des journaux, etc. Collegiate : les candidats (étudiants) sont organisés en équipe (de 3 membres) qui viennent tous de la même université International : équipes du monde entier, compétition en deux phases (régionale et mondiale) Concours prestigieux, auquel participent un très grand nombre d universités et écoles. Première participation de Télécom ParisTech l an dernier. http://tinyurl.com/mc3k9s4 Page 3 / 16

Phases du concours 2 (ou parfois 3 voire 4) équipes de 3 candidats par école ou université ; à Télécom, sélection interne en fin de P4 Compétition régionale (Southwestern Europe : ouest de l Autriche, Espagne, France, Italie, Portugal, Suisse) en novembre (week-end), inscription en septembre La meilleure équipe (ou parfois les deux meilleurs équipes) de chaque région participent à la finale mondiale en juin juillet de l année suivante Télécom prend en charge les frais d inscription, d hébergement, de transport Les participants doivent être inscrits pédagogiquement à Télécom au moment du concours régional. La plupart des 3 e année au moment de la compétition interne donc non éligibles :-(. Limites (peu contraignantes) d âge et années après bac. Page 4 / 16

Règles du concours Temps limité (en général, 5 heures) Un nombre de problèmes de programmation fixé à résoudre (en général, une dizaine) Un seul ordinateur par équipe! Langages de programmation : C, C++ ou Java, version des compilateurs utilisées mentionnée Pas d accès à Internet! Accès aux documentations des langages (JavaDoc, doc STL) Seul matériel autorisé : antisèche de 25 pages imprimées A4 (en trois exemplaires) par équipe cf http://swerc.dsic.upv.es/rules.php http://icpc.baylor.edu/worldfinals/rules http://icpc.baylor.edu/worldfinals/programming-environment Page 5 / 16

Format des problèmes Description en anglais d un problème concret à résoudre Format des entrées fournies et sortie à produire documenté Exemple d entrée et de sortie correspondante fournie Le programme à implémenter prend sur son entrée standard (stdin, cin, System.in) une instance du problème et doit produire sur sa sortie standard (stdout, cout, System.out) la sortie correspondante Page 6 / 16

Soumettre un programme Entrée(s) sur lequel le programme sera testé gardée(s) secrète(s) Interface (Web ou ligne de commande) automatique d évaluation Soumission du code source du programme Compilation, édition de liens, exécution sur le serveur de test Temps d exécution et mémoire disponible limitées (e.g., quelques secondes, quelques méga-octets ou dizaine de méga-octets), contraintes parfois explicites, parfois non Notification quasi-instantanée de si la soumission est correcte ou non De tels serveurs librement disponibles pour s entraîner : https://icpcarchive.ecs.baylor.edu/, http://uva.onlinejudge.org/ Page 7 / 16

Score Critère le plus important : nombre de problèmes résolus dans la durée du concours Si égalité : somme, pour chaque problème résolu, du temps écoulé entre le début du concours et la soumission correcte. Pénalité de 20 minutes par soumission incorrecte (uniquement sur les problèmes finalement résolus) cf. http://swerc.dsic.upv.es/resultados/public/index.html Page 8 / 16

Plan Présentation Stratégies de base Page 9 / 16

Choix du langage Choix le plus courant : C/C++ impératif avec usage des collections de la STL Java impératif : possible, mais souvent moins rapide à écrire, et moins efficace à l exécution. Bibliothèque standard plus riche C pur : pas d intérêt C++ ou Java purement orienté objet (classes, héritage, interfaces, polymorphisme, etc.) : probablement pas assez de temps pour produire quelque chose d utile dans le temps imparti mais les exceptions existent! Page 10 / 16

Style de développement Le but n est pas de produire du code réutilisable mais du code qui marche, et vite On oublie les principes de base de développement logiciel : commentaires, séparation du code en fichiers, organisation en classes multiples, héritage, accesseurs, etc. Mais on reste raisonnable : conserver des noms de variable explicites, une indentation correcte, une séparation en fonctions pour les parties les plus indépendantes... sinon relecture impossible même pendant la durée du concours Utiliser l éditeur ou IDE (parmi ceux disponibles) avec lequel vous êtes le plus efficace, ne pas perdre de temps avec ça Compiler souvent, pour éviter les erreurs de compilation incompréhensibles, et tester petit à petit Mais, au final, l algorithmique et les structures de données utilisées sont plus importantes que le code lui-même... Page 11 / 16

Que mettre dans l antisèche? Rappel des algorithmes et des structures de données classiques : parcours de graphe, tri, arbres de recherche, hachage, programmation dynamique, automates, etc. Résumé ultra-condensé d un livre de cours d algorithmique. Rappel de résultats mathématiques utiles : arithmétique, méthodes de résolution d équations, etc. Mini-référence du langage et de sa bibliothèque Mini-référence de l éditeur ou IDE Page 12 / 16

Choisir les problèmes Pas d ordre particulier dans la présentation des problèmes d un sujet Regarder rapidement tous les sujets pour identifier les plus faciles (et les plus difficiles) Surveiller les sujets traités par les autres équipes (si connus) pour repérer les plus faciles Paralléliser entre équipiers (voir plus loin) Page 13 / 16

Traiter un problème Identifier si le problème peut se ramener à un algorithme classique ou à l utilisation d une structure de donnée classique Rédiger les grandes lignes du pseudo-code Ne pas bloquer trop longtemps, éventuellement passer à un autre Coder Tester sur l exemple donné Tester sur d autres exemples marcher sur un exemple n est souvent pas suffisant Compromis entre soumettre tout de suite (et risquer 20 minutes de pénalité) et attendre d avoir mieux testé Page 14 / 16

Stratégie d équipe Plusieurs stratégies possibles : Un code sur l ordinateur, un résout les problèmes sur pseudo-code, le troisième fait l interface Partage équitable des problèmes entre les trois équipiers, une fois l ordinateur disponible, un de ceux ayant fini d élaborer le pseudo-code s y met N importe où entre les deux Utiliser au mieux les compétences de chacun : même un non programmeur peut être utile dans une équipe Ne jamais être inactif : relecture du code au fur et à mesure qu il est tapé, correction du code imprimé (si possible), réflexion sur d autres problèmes, rédaction de pseudo-code voire de fragments de code sur papier Page 15 / 16

Optimisation du score Critère le plus important : nombre de problèmes résolus. Paralléliser au maximum! Traiter en priorité les problèmes faciles 10 minutes de test pour débuguer, c est dix minutes de gagnées par rapport à une soumission ratée pénalisée On n apprend rien d autre d une soumission que Correct/Incorrect. Beaucoup moins utile pour tester un programme que des tests en local On ne perd rien à faire des soumissions désespérées sur les problèmes non encore résolus dans les dernières minutes... pas de pénalité dans ce cas Si public, surveiller ce qu ont fait les autres équipes Page 16 / 16

Contexte public } avec modifications Par le téléchargement ou la consultation de ce document, l utilisateur accepte la licence d utilisation qui y est attachée, telle que détaillée dans les dispositions suivantes, et s engage à la respecter intégralement. La licence confère à l utilisateur un droit d usage sur le document consulté ou téléchargé, totalement ou en partie, dans les conditions définies ci-après et à l exclusion expresse de toute utilisation commerciale. Le droit d usage défini par la licence autorise un usage à destination de tout public qui comprend : le droit de reproduire tout ou partie du document sur support informatique ou papier, le droit de diffuser tout ou partie du document au public sur support papier ou informatique, y compris par la mise à la disposition du public sur un réseau numérique, le droit de modifier la forme ou la présentation du document, le droit d intégrer tout ou partie du document dans un document composite et de le diffuser dans ce nouveau document, à condition que : L auteur soit informé. Les mentions relatives à la source du document et/ou à son auteur doivent être conservées dans leur intégralité. Le droit d usage défini par la licence est personnel et non exclusif. Tout autre usage que ceux prévus par la licence est soumis à autorisation préalable et expresse de l auteur : sitepedago@telecom-paristech.fr Page 17 / 16