LINF1150 | Introduction à l'algorithmique et la programmation - 1ère partie |
|
[60h+45h]1+2q
|
Enseignant(s) :
Baudouin Le Charlier
|
Objectifs
Le but du cours est de faire prendre conscience aux étudiants, d'une part, que la programmation (et donc l'informatique) repose sur quelques concepts très simples et pratiquement immuables depuis la conception des ordinateurs par Von Neumann et, d'autre part, que c'est une activité basée essentiellement sur le raisonnement et la précision. Ce point de vue est totalement différent de la vue donnée par la presse et intégrée par l'homme de la rue selon laquelle l'informatique est un ensemble de techniques toujours changeantes et en perpétuelle révolution.
Il est très loin d'être évident que ces objectifs puissent être atteints étant donnée la vue de l'informatique " gadget " que possèdent les étudiants lors de leur arrivée à l'université. C'est pourquoi la meilleure façon d'organiser le cours est un problème ouvert : on cherche chaque année de meilleures approches pour motiver les étudiants sans abdiquer toute exigence de rigueur et de précision.
Cahier des charges
Le cours comporte quatre grandes parties qui sont chacune accompagnées d'exercices servant à assimiler les concepts et de travaux pratiques réalisés par groupes de deux étudiants servant à les mettre en pratique.
La première partie introduit l'algorithmique basée sur les notions d'objets et d'actions, les mécanismes de composition algorithmique, la décomposition de problèmes en sous-problèmes. Les méthodes de raisonnement associées à la construction des algorithmes (spécifications, assertions, invariants) sont introduites.
La seconde partie expose le mode de fonctionnement des ordinateurs et la structure du langage machine ainsi que les principes de représentation des données.
Le troisième partie explique les principes généraux de la structure des langages de programmation de haut niveau, illustrés au travers du langage Java. Le lien avec la structure sous-jacente des ordinateurs est explicité.
La quatrième partie est une première introduction aux principes de la programmation orientée objet incluant la structuration en classes et l'écriture d'interfaces graphiques.
Résumé
· Concepts de base : variable, expression, affectation ; structures de contrôle : composition séquentielle, alternative, et répétitive ; types simples de données ; tableaux, fichiers, enregistrements ; abstraction procédurale et mécanismes de passage de paramètres ; classes et instances ;? le cycle de vie d'un programme.
· Méthodes de construction systématique de programmes : modélisation et spécification du problème ; programmation descendante ; raisonnement inductif: induction sur le calcul, notion d'invariant ; démonstration informelle de validité du programme construit ; tests ; notion d'analyse de complexité ; eléments de style ; Application à la construction méthodique d'algorithmes type: recherches, tris, etc.
· Représentation des données : système binaire, entiers en complément à deux, nombres en virgule flottante, codage des caractères.
· Structure interne des ordinateurs : unité centrale, unités périphériques, langage machine, programmation en langage machine
· Langages de programmation : types de données primitifs, priorité des opérateurs, surcharge des noms
· Programmation orientée objet : classes définies par l'utilisateur, classes graphiques, programmation d'un interface graphique simple.
Autres informations du cahier des charges
pré-requis : Aucun
Evaluation : Tests et examen écrit individuels. Il y a trois épreuves qui comptent pour la cote finale du cours: les Travaux Pratiques (TPs), le Test de janvier et l'Examen (juin ou septembre de l'année en cours).
Support : Description accessible à http://www.info.ucl.ac.be/Licence.info/programme/LINF1150.html
Site web accessible à http://www.info.ucl.ac.be/notes_de_cours/LINF1150/
Encadrement : Un titulaire, deux assistants, deux étudiants-moniteurs
Le cours LINF1150 est mentionné dans les programmes suivants :
ECGE1/IN
|
Candidature en sciences économiques et de gestion (informatique)
|
| |
ESP3DS/EP
|
Diplôme d'études spécialisées en santé publique (recherche clinique)
|
| |
GELI2DC
|
Diplôme d'études complémentaires en ingénierie linguistique
|
| |
Valeurs ECTS de l'activité
ECGE10/IN
|
Candidature à durée réduite en sciences économiques et de gestion (informatique)
|
| |
ECGE11/IN
|
Première candidature en sciences économiques et de gestion (Informatique)
|
(12 ECTS)
|
Obligatoire
|
FSA12
|
Deuxième année du programme conduisant au grade de candidat ingénieur civil
|
| |
Valeur ECTS par défaut
|
(12 ECTS)
| |
|