année académique
2023-2024

Titulaire(s) du cours

Thierry MASSART (Coordonnateur)

Crédits ECTS

10

Langue(s) d'enseignement

français

Contenu du cours

  1. Initiation à la programmation de base avec le langage Python :
    - Notions de valeur, variable, expression, instruction, fonction, exception, classes et objet
  2. Analyse du fonctionnement et de propriétés de codes Python :
    - Notion de diagramme d’état
    - Mécanisme de fonctionnement de codes Python
    - Évaluation de l’efficacité d’un programme (complexité et notion de grand O)
    - Formalisation de l’état d’un programme sous forme logique
  3. Algorithmique de base
    - Algorithmes de recherche et de tri
    - Algorithmes récursifs
  4. Manipulation simple de structures de données :
    - Vecteur et tableaux à plusieurs dimensions, listes, dictionnaires, ensembles, fichiers, arbres, graphes, …
  5. Résolution de problèmes via des programmes Python
    - Petits problèmes mathématiques
    - Liés à des structures de données
    - Jeux,
    - …
  6. Introduction aux langages de programmation
    - Notions de syntaxe, sémantique, typage, interpréteur, compilateur, runtime, paradigmes  
    - Bref historique

Objectifs (et/ou acquis d'apprentissages spécifiques)

A l’issue de l’enseignement l’étudiant doit être capable de :

  1. démontrer une bonne compréhension des concepts de base de Python ainsi que lire, comprendre, expliquer le fonctionnement et analyser l’efficacité de programmes existants
  2. analyser un problème simple et proposer une solution informatique pour le résoudre et la mettre en œuvre en Python
  3. réaliser des programmes Python corrects et bien structurés
  4. identifier les cas de test pour valider ces programmes
  5. exprimer formellement, en formalisme logique, les fonctionnalités attendues d’un programme informatique
  6. utiliser des outils informatiques de support à la programmation; exploiter la documentation technique
  7. décrire les notions de bases liées au langage (syntaxe, sémantique, type, interpréteur, compilateur, runtime, paradigmes , …)

Pour les six premiers objectifs de la liste précédente, il est demandé un apprentissage en profondeur, en étant en particulier capable de concevoir et d’analyser des programmes qui résolvent des problèmes originaux.  Le dernier objectif requiert une compréhension et une capacité d’expliquer les concepts.

    Pré-requis et Co-requis

    Cours ayant celui-ci comme pré-requis

    Méthodes d'enseignement et activités d'apprentissages

    L’apprentissage de la programmation Python de base, qui constitue la première partie des quatre premiers objectifs, se fait par apprentissage hybride.  L’élève doit s’inscrire et réaliser le MOOC (Massive Open Online Course) « Apprendre à coder avec Python » sur la plateforme FUN-MOOC.  Ce MOOC est un enseignement complet en ligne d’initiation à la programmation Python. Chaque matière est abordée par l’exemple, formalisée, son application est illustrée et ensuite l’écriture individuelle de codes Python résolvant de petits problèmes, et auto-évalués par notre environnement, est demandée. Un suivi de l’apprentissage de chaque étudiant est réalisé par prise de rapports d’avancement périodiques, demandes de réalisation de projets de programmation, ainsi qu’au cours ex-cathedra, séances de séminaires et de travaux pratiques.

    L’apprentissage plus en profondeur des premiers objectifs ainsi que des autres objectifs se fait lors des séances de cours ex-cathedra, des séminaires et travaux pratiques. 

    L'accent est mis sur le travail autonome . 

    Contribution au profil d'enseignement

    Si vous avez suivi avec fruit le cours, vous aurez améliorer les compétences suivantes :

    • L’apprentissage autonome : vous serez dans une dynamique d’apprentissage autonome et permanent dans ce domaine en constante et rapide évolution qu’est l’informatique ; vous pouvez vous adapter tout au long de votre carrière aux technologies nouvelles. Par exemple, vous apprendrez, en vous référant aux manuels.

    • La résolution de problèmes : vous aurez la capacité d’analyser des besoins, de structurer l’information, de concevoir, modéliser et implémenter des solutions pertinentes et efficaces ; de façon plus globale on vous demandera dans les cours d’informatique d’acquérir la “pensée informatique” (“computational thinking”) en étant capable de faire des abstractions adéquates pour un problème, et d’allier la théorie à la pratique avec l’ordinateur comme support;

    • La communication : vous pourrez comprendre les problèmes posés, et expliquer les solutions proposées ; vous pourrez utiliser la communication scientifique et technique (formalismes mathématiques).

    Références, bibliographie et lectures recommandées

    - MOOC "Apprendre à coder avec Python" sur fun-mooc.fr 
    - Programmation - INFO-F-101, T. Massart,  Presses Universitaires de Bruxelles, 2022-2023 (2 syllabi du cours)
    - Livre Apprendre à programmer avec Python 3, de Gérard Swinnen (vendu aux PUB)

    Support(s) de cours

    • Université virtuelle
    • Syllabus

    Autres renseignements

    Contacts

    M. Thierry MASSART (Campus Plaine, bâtiment NO, 2N8 113) thierry.massart@ulb.be

    Campus

    Plaine

    Evaluation

    Méthode(s) d'évaluation

    • Travail personnel
    • Examen écrit
    • Projet

    Travail personnel

    Examen écrit

    Projet

    Examen écrit avec questions ouvertes théoriques et pratiques (programmes à réaliser). Note d'année sur les projets personnels et le suivi au MOOC "Apprendre à coder avec Python"

    Construction de la note (en ce compris, la pondération des notes partielles)

    • Projets_et_Annee = Projet(s) d'année + rapports d'avancement au MOOC
    • Test_Novembre = test fin octobre ou début novembre sur la matière déjà vue (0/20 si absent)
    • Examen_Janvier = Examen de janvier
    • Examen_Mai = Examen de mai / juin
    • Examen_Aout = Examen d'août / septembre
    • Janvier = (4/20 . Projets_et_Annee + 16/20 . Interro_Janvier)
    • Final_Janvier =
      • si Test_Novembre > Janvier : (5/20 . Test_Novembre + 15/20 Janvier)
      • sinon : (Janvier)
    • Final_Mai =
      • si l'étudiant est présent: (4/20 . Projets_et_Annee + 16/20 . Examen_Mai)
      • sinon : (Final_Janvier)
    • Final_Aout =
      • si l'étudiant est présent: 4/20 . Projets_et_Annee + 16/20 . Examen_Aout
      • sinon : il est mis Absent 
    • Attention, la note d'année et les projets comptent pour toutes les sessions et aucun rattrapage n'est possible !!!!

    Langue(s) d'évaluation

    • français

    Programmes