Algorithmique et Programmation

Ce cours constitue une introduction à partir de zero à la programmation et à l’algorithmique. L’objectif ici n’est pas de faire de vous des programmeurs aguerris, mais simplement de vous donner suffisamment d’aisance pour que vous puissiez utiliser l’outil informatique efficacement quelle que soit votre discipline scientifique. Vous trouverez l’ensemble des transparents de ce cours sous Dokeos, dans les différentes unités d’enseignement. Il s’agit d’un cours s’étalant sur les trois ans de votre licence et pour lequel nous ferons des ponts avec les autres disciplines scientifiques qui font partie de votre cursus. Le langage C a été choisi comme langage de base pour son coté universel et parce qu’il permet de se frotter à des problématiques intéressantes d’un point de vue pédagogique telles que la gestion de la mémoire.

Vous trouverez ci-dessous un bref résumé du programme dans son état actuel. Attention, ce programme est en constante évolution.

UE S1.2 – Nombres

  • Découvrir l’environnement Unix
  • Découvrir la notion d’algorithme
  • Découvrir les structures de base (conditions, itération, fonctions, variables, …)
  • Écrire; compiler, exécuter de premiers programmes en langage C

UE S2.1 – Lumière

  • Entrées/sorties (fichiers, …)
  • Récursivité
  • Introduction aux pointeurs
  • Algorithme de tri

UE S3.1 – Transmission de l’information

  • Révisions complètes de la syntaxe du C
  • Analyse d’un jeu de données et classification (effectifs des quartiles, déciles, …)
  • Tris d’un tableau
  • Pointeurs et allocation dynamique de mémoire
  • Listes chaînées et arbres
  • Programmation du test du Chi-2
  • Devoir à la maison : compression de texte selon l’algorithme d’Huffman

UE S4.3 – Populations

  • Découverte de l’interface graphique (via la SDL)
  • Programmation d’un jeu de la vie prenant en entrée un fichier pour la configuration initiale
  • Définition et mise à l’écrit des structures de données, des algorithmes, des formats de fichier en entrée

UE S4.1 – Synthèse et propriétés des substances naturelles

  • Renforcement des acquis
  • Représentation graphique de molécules en 2D
  • Algorithmes de clustering (classification k-means) en interaction avec la bio-ingénierie

UE 5.2 Informatique – Analyse de données (à venir)

Au 5e semestre, les étudiants auront à mettre en pratique les compétences qu’ils ont acquises en informatique afin de découvrir les techniques d’analyse de données basées sur la statistique multivariée. Outre leur intérêt dans de nombreuses disciplines scientifiques, ces techniques permettent de renforcer les compétences relatives à la représentation des données complexes (multiples dimensions, de types hétérogènes) et l’algorithmique, tout en constituant une application des notions d’algèbre telles que les bases, les projections ou la diagonalisation.

UE 5.I4   Mathématiques appliquées et Informatique (à venir)

Il s’agit d’une unité d’enseignement mixte entre mathématiques et informatique. La partie pratique de cette unité d’enseignement se déroulera en salle de TP et permettra aux étudiants de découvrir la théorie des graphes et son lien avec l’algèbre linéaire. Les étudiants auront à étudier des algorithmes simples tels que les algorithmes de calcul de plus court chemins dans un graphe sous leur forme matricielle puis à le programmer.

UE 6.1 Informatique – Système (à venir)

L’enseignement d’informatique commun à tous les étudiants au 6e semestre portera sur les aspects liés au système d’exploitation. Dans l’approche et dans l’étendue des connaissances à acquérir, il ne s’agit pas d’un cours de systèmes destiné à former de futurs informaticiens, mais d’un cours visant à faire comprendre le fonctionnement interne d’un système et des facteurs influençant la performance d’un système informatique. Une attention toute particulière sera portée aux ordres de grandeur (vitesse de la mémoire par rapport au stockage, utilisation du processeur, …). L’enseignement se basera sur les connaissances acquises en programmation et se déroulera en salle de TP.

UE 6.I7   Informatique- Interface homme-machine et synthèse (à venir)

Dans le parcours IMPI, l’enseignement de l’informatique se conclura par la conception d’une interface homme machine. Au delà de l’interface en elle-même et de son aspect visuel, cet enseignement sera l’occasion de se familiariser avec la notion d’événements et de réaction (callback). En fonction du temps disponible, on pourra aborder les questions d’ergonomie.

L’enseignement se conclura par la réalisation d’un programme faisant la synthèse des différents enseignements de L3 (gestion mémoire, entrées/sorties, communications, interface homme machine, …) dont le sujet sera déterminé par l’enseignant. Il pourra par exemple s’agir d’un petit jeu communicant de telle sorte à ce que les étudiants puissent organiser un tournoi entre leurs réalisations.