L’informatique pour tous Présentation 1. L’informatique aux concours ⊲ Concours Mines Ponts L’épreuve d’Informatique Pour Tous durera 1h30. Elle s’adressera aux filières MP, PC et PSI. ⊲ Concours CCP Filière MP La nouvelle matière IPT est évaluée dans les épreuves de Sciences Industrielles ou d’Informatique, de Physique et de Mathématiques, en veillant à ne pas favoriser les candidats ayant choisi l’option « Informatique » par rapport à ceux qui ont suivi l’option « Sciences Industrielles » • En mathématiques, jusqu’à un quart d’une des épreuves écrites de mathématiques sera consacré à l’évaluation de l’IPT à travers des questions intégrées dans le problème. • En Physique-Chimie, le quart d’une des deux épreuves écrites sera consacré à l’évaluation de l’IPT à travers des questions intégrées dans le problème. • Option Sciences Industrielles, Le quart de l’épreuve écrite sera consacré à l’évaluation de l’IPT à travers des questions intégrées dans le problème. • Option Informatique, Le quart de l’épreuve écrite sera consacré à l’évaluation de l’IPT à travers des questions intégrées dans le problème. Filière PC Épreuve de modélisation de systèmes physiques et/ou chimiques (Coefficient 8 – Durée 4 heures) Cette épreuve permettra d’évaluer le degré de maîtrise des capacités acquises au travers de l’enseignement IPT. Elle contribue aussi à l’évaluation de capacités relevant des programmes de physique et de chimie, par l’analyse de problèmes concrets et leur mise en équation dont la résolution nécessitera l’utilisation de méthodes numériques. Filière PSI Épreuve d’Informatique (Coefficient 3 – Durée 3 heures) L’épreuve permettra d’évaluer la capacité des candidats à traduire un problème issu d’un domaine disciplinaire quelconque pour être traité par ordinateur. Elle s’appuie sur le programme d’IPT des deux années de CPGE, algorithmique, programmation, représentation des données et outils numériques. Cette épreuve nécessitera de pouvoir lire et écrire des programmes ou modules en Python ou Scilab ainsi que de pouvoir concevoir et consulter une base de données relationnelle avec des requêtes SQL. http://docs.dichotomies.fr/2014/informatique/cours/presentation-ipt/ Denis Pinsard – Mis à jour le lundi 06 octobre 2014 [HYP146] 2. Objectifs de l’IPT ⊲ Le langage Python L’objectif est d’aquérir les compétences permettant d’écrire de petits programmes Python afin de répondre à des problématiques qui peuvent être, ou bien internes à la science informatique, ou bien le plus souvent provenir des autres sciences que vous étudiez. Compétences à développer : • Maîtriser les concepts de base du langage Python. • Connaître un ensemble minimal de fonctions usuelles, issues de la bibliothèque standard de Python ou bien des bibliothèques Numpy, Matplotlib et Scipy. • Utiliser efficacement les outils logiciels pour coder et mettre au point un programme Python (éditeur de texte, console interactive, aide en ligne, ...) • Savoir rechercher des informations sur l’internet pour résoudre les difficultés qui se présentent. L’aisance acquise dans la manipulation du langage Python vous fournit un outil précieux pour apprendre et expérimenter les notions que vous étudiez dans les autres sciences. Afin d’être efficace dans votre travail, n’hésitez pas à utiliser Python dès que l’occasion se présente. Vous pouvez par exemple utiliser la console IPython comme calculatrice scientifique. ⊲ La science informatique À travers l’usage du langage Python, nous étudierons un certain nombre de concepts de la science informatique. • Formalisation de la notion d’algorithme. • Étude de quelques algorithmes de tri. • Notion d’invariant de boucle et de preuve de correction d’algorithme. • Notion de complexité en temps et en espace d’un algorithme. • Notions de pile et de récursivité. • Base de données et langage SQL (révision). ⊲ Applications aux autres sciences Dans l’esprit des concours, les notions étudiées en IPT seront le plus possible contextualisées dans des applications mathématiques, de physique, de chimie et de sciences de l’ingénieur. Profitez aussi de ces TP pour consolider vos connaisances dans ces domaines. http://docs.dichotomies.fr/2014/informatique/cours/presentation-ipt/ Denis Pinsard – Mis à jour le lundi 06 octobre 2014 [HYP146] Page 2 3. Méthode de travail ⊲ L’horaire Votre horaire en IPT est composé : • d’une heure de cours par semaine, en classe entière ; • de deux heures de TP par quinzaine, en groupe, en salle informatique. ⊲ Les travaux pratiques Afin d’être efficace, il vous faut préparer les TP avant la séance en salle informatique. Les TP seront souvent trop long pour être traités complètement pendant les deux heures. Il vous appartiendra alors de les terminer chez vous, afin d’en retirer le plein profit. ⊲ L’apprentissage de Python Un langage de programmation comme Python s’apprend par la pratique. Je vous conseille fortement d’ installer un environnement Python 1 chez vous équivalent à celui du lycée et de prendre l’habitude de l’utiliser aussi bien dans le cadre de l’IPT que dans votre étude des autres matières scientifiques. La pratique est indispensable mais ne suffit pas. Il est également utile d’étudier des cours pour structurer les connaissances éparses acquises par l’expérience. Vous trouverez ci-dessous quelques références utiles pour votre apprentissage de Python. À vous de sélectionner celles qui vous conviennent le mieux. ⊲ Project Euler Project Euler 2 est un site qui propose une série de problèmes mathématiques conçus pour être résolus à l’aide d’un programme. Les problèmes sont progressifs et conçus avec beaucoup de soins. Il faut en général allier les mathématiques et l’algorithmique pour obtenir un programme qui donne la solution en un temps raisonnable. C’est une excellente façon d’apprendre à la fois Python, les mathématiques et l’algorithmique. On peut lire en note de bas de page du site : Please do not contact Project Euler if you are unable to solve a particular problem. If you can’t solve it, then you can’t solve it! Autrement dit, pas de bras, pas de chocolat. Si vous ambitionnez de devenir Eulerien, vous pouvez me donner votre Friend Key ; je serais heureux de suivre votre progression. Attention tout de même à ne pas devenir accro ! 1. http://forum.dichotomies.fr/viewtopic.php?id=5 2. https://projecteuler.net/ http://docs.dichotomies.fr/2014/informatique/cours/presentation-ipt/ Denis Pinsard – Mis à jour le lundi 06 octobre 2014 [HYP146] Page 3 4. Ressources ⊲ Le site Dichotomies.fr Vous trouverez sur le site http://docs.dichotomies.fr, le cours, les exercices et les TP que vous réalisez en classe. Le forum http://forum.dichotomies.fr est à votre disposition pour poser des questions et échanger entre vous. N’hésitez pas à l’utiliser, en particulier pour avancer sur les TP lorsque vous êtes bloqués. Ce forum est visible par tous mais seul les étudiants du lycée peuvent y déposer des messages. Pour être vu comme étudiant du lycée, vous devez respecter la procédure suivante lors de votre inscription sur le forum : i. Lors de votre inscription, choisissez comme nom d’utilisateur Prénom Nom. ii. Valider le formulaire d’inscription puis consulter votre courriel. Vous devez recevoir un message vous indiquant votre mot de passe. iii. Connectez-vous sur le forum avec vos identifiants. Allez dans le menu Profil et le sous-menu Personnel. iv. Remplissez le champ Nom avec Prénom Nom et le champ Titre de l’utilisateur avec votre classe (ex: ISN, MP2, PCET). v. Patientez 24 heures pour obtenir les droits d’écriture sur le forum. ⊲ Openclassrooms Le site Openclassrooms 3 , ancien site du zéro, propose un cours 4 bien fait pour débuter l’apprentissage de Python. ⊲ Le livre de Gérard Swinnen Ce livre 5 a été conçu pour les élèves de l’enseignement secondaire belge. C’est un livre agréable à lire et très complet. Il comporte de nombreux exemples et exercices. La programmation d’interface graphique y occupe une place de choix. Ce livre est distribué sous une licence libre (GNU Free Documentation License). Cela signifie qu’il est autorisé de copier, de modifier et de redistribuer ces pages tout à fait librement, pour autant qu’on respecte les règles de la licence. ⊲ Plongez au coeur de Python Encore une ressource 6 très intéressante pour s’autoformer ou rechercher des informations. Il s’agit d’une traduction du site original 7 en anglais. Supposons par exemple que vous souhaitez avoir une bonne vision de la façon dont on manipule les listes en Python. Vous prendrez alors un peu de temps pour étudier la section 3.2 Présentation des listes. ⊲ Le site officiel Après avoir appris les base de Python il arrive très régulièrement que l’on oublie la façon de faire telle ou telle chose. On peut aussi vouloir approfondir toutes les 3. 4. 5. 6. 7. http://fr.openclassrooms.com/ http://fr.openclassrooms.com/informatique/cours/langage-python http://docs.dichotomies.frpython-swinnen.pdf http://docs.dichotomies.frplonger-dans-python.pdf http://www.diveintopython.net/toc/index.html http://docs.dichotomies.fr/2014/informatique/cours/presentation-ipt/ Denis Pinsard – Mis à jour le lundi 06 octobre 2014 [HYP146] Page 4 options offertes par une certaine fonction. Les meilleures sources d’information sont alors les sites officiels : Python https://docs.python.org/2/ Numpy http://www.numpy.org/ Matplotlib http://matplotlib.org/ Scipy http://docs.scipy.org/doc/scipy/reference/ Toute cette documentation est bien entendue en anglais. La langue de l’informatique est l’anglais. Il faut s’y faire et on s’y fait très vite. Pour Python proprement dit, les sections qui vous seront le plus utiles sont : • le tutoriel 8 ; • et la bibliothèque de référence 9 . Supposons que vous rencontriez dans un programme la méthode append et que vous ne sachiez pas (ou plus) son effet. Vous saisirez alors dans votre moteur de recherche les deux mots « python append » et vous choisirez parmi les réponses celle qui envoie vers le site docs.python.org. Si nécessaire, recherchez le mot append dans la page. 8. https://docs.python.org/2/tutorial/ 9. https://docs.python.org/2/library/ http://docs.dichotomies.fr/2014/informatique/cours/presentation-ipt/ Denis Pinsard – Mis à jour le lundi 06 octobre 2014 [HYP146] Page 5