| INFO0946-1 | |||||
| Introduction à la programmation | |||||
|
Durée :
|
|||||
| 30h Th, 20h Pr, 10h Labo. | |||||
|
Nombre de crédits :
|
|||||
|
|||||
|
Nom du professeur :
|
|||||
| Benoît Donnet | |||||
|
Langue(s) du cours :
|
|||||
| Langue française | |||||
|
Organisation et évaluation :
|
|||||
| Enseignement au premier quadrimestre, examen en janvier | |||||
|
Unités d'enseignement prérequises et corequises :
|
|||||
| Les unités prérequises ou corequises sont présentées au sein de chaque programme | |||||
|
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:
|
|||||
|
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 (notamment pour gérer son code source, le compiler et l'exécuter). |
|||||
|
Savoirs et compétences prérequis :
|
|||||
| 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 13 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 transversales. 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 (les slides ne sont pas auto-suffisants). |
|||||
|
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 (PDF) 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 (PDF) 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 la deuxième semaine de cours). A noter que la liste des exercices à préparer pour chaque séance est disponible sur la page Web du cours
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):
|
|||||
|
Modalités d'évaluation et critères :
|
|||||
Les étudiants sont évalués de trois façons:
|
|||||
|
Stage(s) :
|
|||||
|
Remarques organisationnelles :
|
|||||
| Le cours se donne au 1er quadrimestre.
Le Professeur et l'Assistant organise, chaque séance, des permanences (les détails et les procédures de contact sont indiquées sur la page Web du cours, rubrique « Contact »). Dans tous les cas, il est toujours possible de les joindre à un autre moment (mais avec une prise de rendez-vous, par email, préalable). |
|||||
|
Contacts :
|
|||||
| Professeur: Benoit Donnet (benoit.donnet@ulg.ac.be) -- Bureau 1.15 (B28) Assistant: Simon Liénardy (simon.lienardy@ulg.ac.be) -- Bureau R.83a (B28) | |||||
|
Notes en ligne :
|
|||||
![]() | Site Web du cours Le site Web du cours est important car il regroupe les diverses informations de contact, les notes de cours, l'agenda du cours et un exemple d'examen. |
||||