Info 111 «Programmation Impérative»#

Vous trouverez sur ce site le matériel pédagogique et autres informations à propos du cours Programmation Impérative du portail de Licence 1 Mathématique Informatique et des Licences Doubles diplômes adossées à la Faculté des Sciences d’Orsay, Université Paris-Saclay. Avec le cours compagnon Introduction à l’Informatique, il fait suite au module Info 111, Introduction à l’informatique du premier semestre du précédent portail Math-Physique-Informatique.

Suivre ce cours sans être inscrit?

Vous souhaitez vous initier à la programmation, à C++, mais n’êtes pas inscrit dans l’une des formations ci-dessus? Qu’à cela ne tienne, vous êtes les bienvenus pour utiliser le matériel pédagogique ici présent, en autonomie. C’est un bien commun numérique.

Prérequis: une connexion internet et un navigateur web

Avertissement

  • Les instructions pratiques sont rédigées à l’attention de nos étudiants avec des séances hebdomadaires en présentiel. Elles demanderont probablement un peu d’interprétation pour les adapter à votre situation.

  • Le matériel pédagogique a été testé massivement pour un usage par nos étudiants. Peu pour un usage externe. Retours et commentaires bienvenus.

  • Il n’y a pas de délivrance de certification ou de diplôme.

Note

Comment s’y prendre

Rendez-vous sur la Case Départ et suivez les instructions.

  • Si vous êtes étudiant.e ou personnel d’une université ou autre institution du supérieur en France, vous pourrez utiliser le service JupyterHub@Paris-Saclay pour travailler sur les feuilles d’exercice interactives (authentification: Féderation Renater Éducation et Recherche). Sinon, vous pourrez utiliser le «service de secours» Binder, ou installer les logiciels concernés, ou autre.

  • Si vous êtes étudiant ou personnel de l’Université Paris-Saclay, vous pourrez déposer votre travail sur le service GitLab de Paris-Saclay et bénéficier de la correction automatique; dans ce cas, vous choisirez le groupe «AuditeurLibre». Dans le cas contraire, vous vous authentifierez comme anonyme sur le tableau de bord, et vous ignorerez les instructions à propos de «déposer».

Objectifs pédagogiques#

  • Donner un aperçu de ce qu’est l’informatique, en tant que science. Voir l’excellente conférence de François Élie, à lire ou écouter … et méditer …: Quelle école pour la société de l’information?

  • Concrètement, aborder les bases de la programmation impérative (variables, conditionnelles, boucles, fonctions, tests, documentation, tableaux, programmation modulaire).

  • Nourrir les étudiants qui programment depuis des années, tout en soutenant pas à pas ceux qui découvrent cette matière.

  • Donner des bases solides à tous, car tous seront amenés a côtoyer l’informatique sous une forme ou une autre, qu’ils se destinent à une carrière d’informaticien ou qu’ils aient besoin de traiter des informations ou automatiser des tâches dans leur métier.

Règles#

  • Les retardataires ne sont pas admis en amphi. Dura lex, sed lex.

  • En arrivant en TD, le cours est considéré comme appris. En particulier vous devez être capables de reproduire précisément les points clefs (ex.: syntaxe et la sémantique des instructions).

  • D’une semaine sur l’autre, les exercices de TD et TP (non marqués d’un trèfle) sont considérés comme faits et maîtrisés. Ce dernier point nécessite quelques heures de travail par semaine en dehors des séances de TD et TP; pour travailler sur ces derniers, voir comment accéder aux logiciels et au matériel pédagogique.

  • Documents autorisés au partiel et à l’examen: la fiche de résumé de syntaxe C++ (cf. feuille 3 du TD2), avec au dos toutes les notes personnelles manuscrites que vous souhaitez. Pour les étudiants inscrit en Français Langue Étrangère: un dictionnaire papier.

Recommandations pour travailler efficacement#

  • Parcourir à l’avance les notes de l’amphi à venir.

  • Venir systématiquement en amphi, être actif, prendre des notes.

  • Relire systématiquement les notes d’amphi le soir même.

  • Venir systématiquement en TD / TP, être actif, finir le maximum d’exercices pour en avoir moins à faire à la maison.

Pour s’amuser, et aller plus loin#

  • Coding Game propose de très nombreux exercices de tous niveaux en français sous la forme de jeux vidéos dans de nombreux langages de programmation (incluant C++, python, …). Sont proposés régulièrement des défis à l’ensemble de la communauté, souvent sponsorisés par des grands groupes informatiques. Très ludique et très pédagogique, c’est pour tout le monde.

  • Code combat Vous avez aimé laby? Le même principe mais cette fois vous êtes un aventurier en quête de donjons et de trésors…

  • France IOI: Cours en ligne de programmation et d’algorithmique en Français et nombreux langages de programmation. Cette association propose aussi de participer à de nombreux concours.

  • Untrusted Un petit jeu dans lequel pour gagner, vous devez tricher! En anglais et en Javascript (ressemble beaucoup au C++).

  • Google Code Jam sont des défis de programmation proposés par Google quelque fois l’an. Si vous ne vous sentez pas de vous jeter à l’eau directement (mais on vous y encourage), vous pouvez toujours vous entrainer sur les annales qui sont fournies. Les problèmes sont donnés avec un temps de recherche qui est celui accordé au participant, souvent entre 1 et 3 heures. Ce sont en général des problèmes algorithmiques classiques qui nécessitent une certaine aisance: plus pour les étudiants à l’aise vers la fin du semestre. (En anglais)

  • Core War est un très vieux jeu (1984) qui se joue à plusieurs. Chacun programme un processus dans un petit bout de mémoire, l’objectif est de rester le dernier en vie… Pour les amoureux de jeux rétros, de langage machine et de lunettes à double foyer.

  • Vous aimez les défis et les longues suites de chiffres. Vous aimez rentrer dans le fond des choses et donner des réponses élégantes à des problèmes complexes… Ne cherchez pas plus loin, projet Euler est fait pour vous! Pour les étudiants expérimentés qui n’ont pas peur de vouloir progresser. (En anglais)

  • Game Shell Un jeux pour apprendre le shell.

Me contacter#

Documents#

  • Compilation des notes de cours (version pour impression)

  • Les exemples de programmes vus en cours (disponibles aussi sous forme d”archive)

  • Sujet de l’examen mi-semestre 2022-2023, corrigé

  • Sujet de l’examen mi-semestre 2021-2022, corrigé

  • Sujet de l’examen mi-semestre 2020-2021, corrigé

  • Sujet d’examen 2022-2023, corrigé

  • Sujet d’examen 2021-2022, corrigé

  • Sujet d’examen 2020-2021, corrigé

Projet#

Informations pratiques#

Quelques références#

À propos des documents#

Les documents de ce cours sont distribuées sous licence libre Creative Commons Paternité – Partage dans les mêmes conditions 3.0 France (CC BY-SA 3.0 FR).

L’auteur principal en est Nicolas M. Thiéry. Les chargés de TD ont contribué fortement aux sujets de TD, TP, et projet: Rachid Gherbi, Simon Clavière, Weijia Wang, Vincent Berthier, Weiya Chen, Adrien Chan-Hon-Tong, Ignace Kangni Kueviakoe, Hui Ding, Aladin Virmaux, Asma Gharsallaoui, Viviane Pons, Adeline Pierrot, Jean-Baptiste Priez, Ataulfo Anton, Herilalaina Rakotoarison, Fabrice Lebeau, Hayet Brabra, Abdallah Benzine, Sara Meftah, Oumaima El Joubari, Alba Málaga, Teo Sanchez, Hugo Mlodecki, Sabine Marduel, Robin Pelle, Abbass Madi, Houssem E. Hachmaoui, Virgile Robles, Abdallah Benzine, Balthazar Charles, Hussein Chaabane, Jouhayna Harmouch, Daniel Tamayo, Lucas Greaux, Thibaut Houdy, Nicolas Bitar, Thomas Soullard, Capucine Nghiem, Sylvie Delaët, Samuel Lelièvre, …

De nombreuses illustrations sont reprises de Wikipedia.

Les sources sont disponibles sur notre dépôt git public, sauf les sujets de projet et d’examen qui sont sur un dépôt privé. Contactez-moi si vous souhaitez y accéder pour les reprendre pour d’autres cours.

Valid HTML 4.0!{width= »88 » height= »31 »}