Site de l'Université | English version
Année académique 2014-2015Données en date du : 12/05/2015
INFO0946-1  Introduction à la programmation

Durée :  30h Th, 16h Pr, 10h Labo.
Nombre de crédits :  
Bachelier en sciences informatiques6
Nom du professeur :  Benoît Donnet
Langue(s) du cours :  
Langue française
Organisation et évaluation :  
Enseignement au premier quadrimestre, examen en janvier
Contenus du cours :  
Le cours alterne entre les aspects propres au langage C et les aspects algorithmiques. Les thèmes abordés sont les suivants: syntaxe et sémantique de base du langage C, algorithmes simples (parcours linéaire d'un tableau, opération mathématique cumulative, recherche dichotomique, introduction aux problèmes de tri), découpe en sous-problèmes, introduction à la méthodologie de développement (analyse du problème, invariant, fonction de terminaison), analyse d'un algorithme (complexité), structure de données de base (enregistrement, tableau, chaîne de caractères, fichiers), modularité d'un programme (fonction/procédure, variable globale), documentation du code par spécifications (programmation défensive), pointeurs et allocation dynamique de mémoire. La structure du cours est la suivante:
  • Introduction
  • Chapitre 1: Bloc, Variables, Instructions Simples
  • Chapitre 2: Structures de Contrôle
  • Chapitre 3: Méthodologie de Développement
  • Chapitre 4: Structures de Données
  • Chapitre 5: Modularité du Code
  • Chapitre 6: Les Pointeurs
  • Chapitre 7: Allocation Dynamique
Acquis d'apprentissage (objectifs d'apprentissage) du cours :  
L'objectif de ce cours est d'introduire, auprès des étudiants, les principes de base de l'informatique et, en particulier, les principes de base de la programmation.
La conception d'un algorithme correct et efficace sera mise en avant, en particulier dans le cadre d'une méthodologie stricte. A savoir, découpe d'un problème d'une certaine taille en sous-problèmes plus simples à résoudre, construction par invariant et documentation du code à l'aide de spécifications. Le langage de programmation étudié est le C.
A la fin du cours, l'étudiant devra être capable d'analyser un problème de taille moyenne, de proposer des structures de données, de découper le problème en sous-problèmes et de résoudre, en C, chaque problème de manière efficace. Il sera en outre à même d'évaluer les performances de sa solution.
L'étudiant sera aussi à même d'utiliser les bases de la ligne de commande sous Linux.
Prérequis et corequis / Modules de cours optionnels recommandés :  
Aucun pré-réquis en informatique ou programmation.
Néanmoins, le cours suppose une bonne connaissance du français (parlé et écrit).
Activités d'apprentissage prévues et méthodes d'enseignement :  
En plus du cours théorique, des séances d'exercices (i.e., séance de répétitions) sur papier sont organisées de manière presque hebdomadaire. Chaque séance d'exercices dure 2h. Chaque étudiant disposera de 8 séances d'exercices durant le quadrimestre. Les séances d'exercices sont obligatoires.  La liste des exercices à préparer pour chaque séance est donnée en début de quadrimestre.  Préparer ces exercices à la maison est obligatoire.
En outre, des séances (obligatoires) de laboratoire (i.e., exercices sur machine dans le laboratoire d'algorithmique) de 2h sont aussi organisées durant le quadrimestre. Chaque étudiant disposera de 5 séances de laboratoire.
 
Enfin, les étudiants ont aussi la possibilité d'acquérir, durant le quadrimestre, des compétences transvesales.  En particulier, une formation d'introduction à la ligne de commande et à l'environnement Linux sera proposée aux étudiants.
Mode d'enseignement (présentiel ; enseignement à distance) :  
Le cours théorique se donne au 1er quadrimestre, en présentiel.
Le cours théorique se construit autour d'exemples et de petits exercices. L'auditoire est amené à participer activement au cours
Les étudiants sont aussi amenés à prendre des notes complémentaires.
Lectures recommandées ou obligatoires et notes de cours :  
Les notes du cours sont composées essentiellement de transparents (slides). Une version imprimée des slides (2/page) est disponible, dès la rentrée, à la Centrale des Cours. Une version électronique des slides est aussi disponible sur la page web du cours. Les étudiants sont supposés disposer au plus vite d'une version des slides. Un syllabus d'exercices est disponible auprès de la Centrale des Cours. Une version électronique est aussi disponible sur la page web du cours. Chaque étudiant est supposé disposer du syllabus d'exercices dès la première séance de répétitions ou de laboratoire.  Chaque étudiant est supposé disposer du syllabus d'exercices dès la première séance de répétition (typiquement, dès fin septembre)
Aucun livre n'est obligatoire dans ce cours. Cependant, l'étudiant désireux de disposer d'un support écrit additionnel peut se référer aux ouvrages suivants (ils ont servi pour l'élaboration du cours):
  • Claude Delannoy. "Programmer en Langage C". Editions Eyrolles. 2010 (5ème édition)
  • Rémy Malgouyres, Rita Zrour, Fabien Feschet. "Initiation à l'Algorithmique et à la Programmation en C". Editions Dunod. 2011 (2ème édition).
  • Yves Granjon. "Algorithmes en Pascale et en Langage C". Editions Dunod. 2004 (2ème édition).
Modalités d'évaluation et critères :  
Les étudiants sont évalués de trois façons:
  • Mini-Session. Une interrogation écrite a lieu le 29 octobre, de 8h30 à 10h30. Typiquement, l'interrogation porte sur l'Introduction et les chapitres 1 à 3 du cours (la matière sur laquelle porte la mini-session pourra être revue en fonction de la matière qui aura été abordée au cours). Cette mini-session est obligatoire (tout qui ne la présente pas sans justificatif se verra attribuer la note de 0/20) et dure 2h. La note de l'interrogation intervient pour 10% dans la note finale (i.e., 2/20) de janvier.
  • QCMs. Afin de nous assurer que chaque étudiant travaille un minimum au jour le jour, 5 séances de répétition (24/09, 15/10, 12/11, 26/11, 17/12) commenceront par une rapide interrogation (10 min) sous la forme d'un Questionnaire à Choix Multiples (QCMs). L'objectif d'un tel QCM est de s'assurer que l'étudiant a revu son cours avant d'aborder la séance de répétition. L'ensemble des QCMs intervient pour 10% dans la note finale (i.e., 2/20) de janvier
  • Examen. L'examen est écrit et, bien entendu, obligatoire. Il aura lieu en janvier. Il se fait à cours fermé et dure, généralement, 4 heures. La note de l'examen intervient pour 80% de la note finale (i.e., 16/20) de janvier
Attention, en cas d'échec (<10/20) à la mini-session, l'étudiant devra suivre obligatoirement des séances de rémédiation qui auront lieu le vendredi après-midi. Les modalités de ces séances seront expliquées après la mini-session. En cas d'échec en janvier, l'étudiant peut représenter l'examen en seconde session.  Dans ce cas, les notes de la mini-session et/ou des QCMs interviendront dans la note finale uniquement si elles sont à l'avantage de l'étudiant.
Stage(s) :  
Remarques organisationnelles :  
Un page web décrivant en détail le cours est disponible: http://www.montefiore.ulg.ac.be/~bdonnet/info0946/index.html
Contacts :  
Professeur: Benoit Donnet (mailto:benoit.donnet@ulg.ac.be(benoit.donnet@ulg.ac.be) -- Bureau 1.15 (B28) Assistant: Simon Liénardy)

Notes en ligne :  
Page web du cours
Page web du cours



Accueil

Bacheliers, masters, masters complémentaires et agrégations

Formations continues

Doctorat

Recherche par enseignant

Recherche par cours

Administration de l'Enseignement et des Etudiants - Responsable de l'information : Monique Marcourt, Direction générale à l'Enseignement et à la Formation - Réalisation SEGI