Professeurs : Annick Dupont; Bernard Frank; Grégory Seront; Olivier Legrand; Stéphanie Ferneeuw;
Nombre d'heures : 72
Période :Semestre 1
Type de cours : cours magistral + exercices pratiques
Apprendre aux étudiants à résoudre un problème par voie informatique, en choisissant adéquatement la façon de représenter les données inhérentes au problème ;
en construisant un algorithme, c'est-à-dire une séquence de manipulations de ces données en vue de la production d'un résultat; en agençant le tout selon les principes de la programmation structurée et/ou dans un contexte orienté objet.
/
Notions de base : Programme, input, output, variable, ... les sous-programmes: procédures, fonctions, méthodes; Les alternatives; Les booléens et les expressions booléennes; Les répétitives; les caractères et les chaînes de caractères; Objets et classes; les tableaux à une dimension; algorithmes classiques sur les tables: Insertion, recherche séquentielle, recherche dichotomique; algorithmes de tri: tri par insertion, par extraction, bubble-sort, tri de Shell, quick-sort, tri-fusion; fichiers séquentiels; tableaux à plusieurs dimensions; la récursivité; les listes linéaires; listes en table et listes chaînées; deux cas particuliers : Piles, Files; les arbres binaires; les comportements asymptotiques des algorithmes.
Le cours théorique présente les outils nécessaires, tant du point de vue de la représentation des données que de celui des algorithmes eux-mêmes.
Cette présentation est illustrée de nombreux exemples, petits ou moyens.
Les exercices partent toujours de l'énoncé d'un problème, exprimé en français; les étudiants doivent le comprendre, puis choisir la représentation des données et enfin élaborer l'algorithme dans un langage de description des algorithmes (pseudo-code ou macro-code) et/ou dans un langage de programmation (Java).
Une ou plusieurs fois durant l'année, un projet plus important est soumis aux étudiants. Ceux-ci le réalisent par équipes de deux et remettent un dossier complet qui intervient dans l'évaluation de fin d'année.
/
L'examen de janvier et l'examen de juin sont écrits ou sur ordinateur. Un problème est soumis aux étudiants. Ils doivent en fournir une solution informatique présentée sous forme de pseudo-code ou dans le langage de programmation qui a illustré le cours. Des questions ou sous-questions complémentaires peuvent s'y ajouter. En outre, en juin, ils doivent pouvoir reproduire et adapter un des algorithmes-types vus au cours.