Préparation à l’épreuve d’algorithmique sur machine
Concours Informatique — TP d’Algorithmique
Écoles Normales Supérieures — Session 2016
Cette épreuve a pour but d’évaluer la capacité du candidat à résoudre efficacement
un problème qui lui est posé. Il ne s’agit pas d’une épreuve d’algorithmique fonda-
mentale : le candidat n’est pas noté sur des algorithmes précis, mais sur ses choix en
terme d’implémentation (algorithmes, structures de données, etc.) et à leur utilisa-
tion effective.
Les candidats sont libres de choisir leur langage, parmi les suivants :
Caml Light
— OCaml
Python 2
Python 3
— C
— C++
— Pascal
— Java
— Scilab
Pour plus d’information sur l’environnement de développement, se référer à la fiche
dédiée. Celle-ci sera par ailleurs accessible au candidat le jour de l’épreuve.
Déroulement de l’épreuve
L’épreuve dure 4 heures et 10 minutes en tout, et se décompose en trois parties :
Installation (10 minutes) Il s’agit de se familiariser avec le poste de travail.
Pendant ces 10 minutes, le candidat est autorisé à poser des questions portant sur
l’environnement de travail. Il est fortement conseillé de profiter de ce moment pour
s’assurer que l’on sait écrire un programme dans le langage de son choix et le faire
tourner. Après ces 10 minutes, plus aucune question n’est autorisée.
Préparation sur machine (3 heures et 30 minutes) Le sujet est distribué au
début de cette durée, ainsi qu’une fiche réponse. Celle-ci est à remplir au fur et à
mesure que l’on progresse dans l’épreuve, et sera remise et l’examinateur à la fin de
cette préparation. Des feuilles be brouillons sont mises à la disposition du candidat,
qu’il pourra emporter avec lui pour la présentation orale. Il est fortement conseillé
au candidat d’y recopier ses algorithmes au propre, car il n’aura pas la possibilité de
consulter ou présenter son code lors de cette présentation.
Soutenance (20 minutes) Cette soutenance se déroule dans une autre salle, où le
candidat commence par remettre sa fiche réponse à l’examinateur. Ce dernier pourra
ensuite demander au candidat de présenter certains algorithmes qu’il a utilisé, de les
analyser, de commenter certains résultats, etc.
Important : il est interdit au candidat d’apporter et d’utiliser son propre matériel
(clavier, souris, clef USB, etc.) ou d’importer des données sur son ordinateur (fichiers
de configurations, bibliothèques, etc.), sous peine d’exclusion immédiate du concours.
Essayer l’environnement de développement chez soi
La préparation sur machine se fait sous Linux (Ubuntu). L’interface graphique utilisé
est XFCE. Afin de permettre aux candidats de se familiariser avec environnement,
il est possible de l’essayer en téléchargeant l’image disque disponible ici (1.9 Go). Le
nom d’utilisateur est tpalgo, et il n’y a pas de mot de passe.
À noter que le jour de l’épreuve, le candidat n’aura pas accès à internet.
Il existe plusieurs méthodes pour essayer l’environnement, dont trois sont présentées
ici : démarrer à partir d’un DVD, d’une clef USB, ou dans une machine virtuelle.
Live-CD Il s’agit de 1. graver le fichier iso sur un DVD vierge, puis de 2. démarrer
l’ordinateur à partir de ce DVD.
1. La plupart des navigateurs de fichiers proposent automatiquement de gra-
ver les images iso sur des CD/DVD quand on les « ouvre ». Sinon, l’option
apparaît dans le menu contextuel.
2. Pour démarrer à partir du DVD, il faut redémarrer l’ordinateur, puis indiquer
au BIOS de charger l’OS présent sur le DVD. Pour cela, il faut interrompre le
démarrage avant que l’OS par défaut ne soit chargé (le plus souvent lorsque
le logo du fabriquant est affiché), à l’aide d’une touche propre au fabricant.
Celle-ci s’affiche parfois, sans quoi il faut chercher la touche précise sur internet
ou essayer les touches F2,F9,F10,F12,Esc ou Del/Suppr (Option pour les
ordinateurs Apple). Il faut ensuite choisir de démarrer à partir du DVD.
Live-USB Le principe est le même que pour un Live-CD. Il est cependant plus
compliqué de « graver » l’image iso sur une clef USB ; il faut pour cela utiliser un
logiciel dédié, par exemple unetbootin, disponible ici.
Attention : les données présentes sur la clef USB seront effacées !
Le démarrage sur une clef USB se fait comme pour un Live-CD.
Machine virtuelle Il faut utiliser un logiciel de virtualisation tel que VirtualBox,
téléchargeable ici, et fournir l’iso comme image pour le lecteur CD/DVD de celle-ci.
Sous VirtualBox il faut d’abord créer une nouvelle machine virtuelle. Choisir une
architecture Linux/Ubuntu (64 bits) 1, lui allouer un maximum de RAM (4 Go de
préférence), et créer un disque dur virtuel sur lequel sauvegarder vos données.
Il faut ensuite ajouter l’iso dans Settings > Storage, sélectionner Controller:
IDE, l’icône Adds optical drive.,Choose disk, et ouvrir l’iso.
Fermer les options et démarrer la machine virtuelle.
Pour toute information concernant l’utilisation de l’environnement et des différents
langages, se référer à la fiche dédiée.
1. Il se peut que l’option 64 bits ne soit initialement pas proposée. Dans ce cas, il faut activer
la virtualisation au niveau du BIOS (à condition que le matériel le permette).
Environnement de développement sous xubuntu
Concours Informatique — TP d’Algorithmique
Écoles Normales Supérieures — Session 2016
Utilisateur : tpalgo Mot de passe : tpalgo
Attention : ne pas mettre les ordinateurs en veille !
Il est conseillé de placer tous ses fichiers dans le dossier personnel, qui s’ouvre par
défaut lorsque l’on ouvre un navigateur de fichiers et/ou un terminal.
La clef USB Pensez à faire des sauvegardes régulières sur celle-ci; en cas de panne
de votre machine, une machine de substitution vous sera attribuée, mais seules les
données présentes sur la clef USB pourront y être transférées.
Éditeurs de texte et terminal
Deux éditeurs de textes sont fournis par défaut, Gedit et Emacs, ainsi que deux
environnements dédiés, Pyzo (Python) et Scilab.
Tous sont accessibles dans Menu des applications > Développement.
Gedit C’est un éditeur de texte classique, à préférer si l’on ne connait pas Emacs.
Il faudra cependant lancer les programmes via un terminal : aucune fonctionnalité
n’est intégrée à l’éditeur.
Emacs Il est doté de plus de fonctionnalités, dont un mode interactif pour Caml
Light/OCaml (tuareg-mode), mais utilise des raccourcis claviers non-conventionnels.
Les combinaisons de touches sont rappelées dans les menus (C = Ctrl,M=Alt).
Quelques combinaisons usuelles :
Ctrl-w pour couper, Alt-w pour copier, Ctrl-y pour coller
Ctrl-x puis Ctrl-s pour sauvegarder
Le terminal On travaille dans un dossier courant, rappelé à gauche entre le « :»
et le « $» (~correspond au dossier personnel). Pour utiliser une commande, il suffit
de la taper, puis d’appuyer la touche Entrée. Quelques commandes utiles :
cd pour se déplacer entre les dossiers (modifie le dossier courant) :
cd dir pour entrer dans le dossier dir
cd .. pour remonter d’un dossier
cd tout seul pour revenir au dossier personnel
ls pour afficher les fichiers présent dans le dossier courant
Touche Haut pour ressaisir une commande précédemment exécutée
./fichier pour exécuter fichier (celui-ci doit être un exécutable)
... > fichier pour écrire le résultat de ... directement dans fichier
(exemple : python fichier.py > resultat.txt)
Ctrl-C pour interrompre un programme (utile en cas de boucle infinie)
Ctrl-D pour insérer un caractère EOF (permet de quitter le mode interactif)
Attention : pour copier-coller du contenu dans le terminal, Ctrl-C et Ctrl-V ne
fonctionnent pas : il faut utiliser les combinaisons Maj-Ctrl-C et Maj-Ctrl-V.
Caml Light — OCaml
Si vous souhaitez utiliser la bibliothèque num, il faut rajouter caml_all (Caml Light)
ou nums.cma (OCaml) directement après les commandes camllight ou ocaml.
Dans le terminal Pour interpréter l’intégralité du fichier fichier.ml, les com-
mandes à utiliser sont camllight < fichier.ml ou ocaml fichier.ml.
Il est possible de lancer Caml en mode interactif 1à l’aide des commandes camllight
ou ocaml seules. On peut les précéder de ledit (ledit camllight ou ledit ocaml)
afin de bénéficier des touches Gauche,Droite et Haut.
Emacs — tuareg-mode Le mode tuareg permet de faire du Caml en mode in-
teractif. Il utilise les raccourcis suivants :
Ctrl-c puis Ctrl-b pour interpréter tout le fichier
Ctrl-c puis Ctrl-r pour interpréter la partie surlignée
Ctrl-c puis Ctrl-e pour interpréter la commande où se situe le curseur.
La première fois, il faut confirmer (touche Entrée) le choix de l’interpréteur en bas
de l’écran : camllight (par défaut) ou ocaml (à taper à la place de camllight).
Aucune documentation n’est installée pour ces langages.
Python 2 — Python 3
Les bibliothèques numpy et scipy sont installées.
Pyzo Utilisez Ctrl-Entrée pour interpréter votre code. Le langage par défaut
est Python 3, mais on peut le remplacer par Python 2 dans Shell > Edit shell
configurations... en choisissant comme exécutable /usr/bin/python2.7.
Dans le terminal Pour interpréter l’intégralité du fichier fichier.py, les com-
mandes à utiliser sont python fichier.py (Python 2) ou python3 fichier.py
(Python 3). Il est aussi possible de lancer Python en mode interactif 1à l’aide des
commandes python ou python3.
Toutes les documentations sont installées.
C — C++ — Pascal — Java
Ces langages sont à compiler dans le terminal, à l’aide des commandes suivantes :
gcc fichier.c
g++ fichier.cpp
gpc fichier.pp
javac Class.java
Les trois premières commandes génèrent un exécutable a.out, qui doit être lancé
avec la commande ./a.out. Pour java, il faut utiliser java Class. Pour les projets
utilisant plusieurs fichiers, la commande make est disponible.
À l’exception des pages man (C/C++), aucune documentation n’est installée.
Scilab
Pensez à utiliser SciNotes pour sauvegarder votre travail ! Les résultats intermédiaires
n’étant pas affichés, utiliser disp() pour afficher les variables.
1. Attention : pensez à bien sauvegarder votre code !
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !