UCL - Etudes

English version

Formations
Premier cycle
Second cycle
Troisième cycle
Certificats (programmes non académiques)
Passerelles
Formation continue
Facultés et entités
Cadre académique
Réforme de Bologne
Accès aux études
Organisation des études
Lexique
Calendrier académique
Règlement des études et examens
Charte pédagogique
Renseignements généraux
Recherche
Simple
Détaillée
Par cours

Introduction à l'algorithmique et programmation [SINF1150]
[60h+60h exercices] 12 crédits

English version

Version imprimable

Cette activité se déroule pendant toute l'année

Enseignant(s):

Baudouin Le Charlier

Langue d'enseignement :

français

Niveau :

Premier cycle

>> Objectifs (en termes de compétences)
>> Objet de l'activité (principaux thèmes à aborder)
>> Résumé : Contenu et Méthodes
>> Autres informations (Pré-requis, Evaluation, Support, ...)
>> Autres crédits de l'activité dans les programmes

Objectifs (en termes de compétences)

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.

Objet de l'activité (principaux thèmes à aborder)

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é : Contenu et Méthodes

- 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 (Pré-requis, Evaluation, Support, ...)

- Pré-requis : Aucun

-Remarque:
Site Web du cours: http://www.icampus.ucl.ac.be/SINF1150/

Autres crédits de l'activité dans les programmes

SINF12BA

Deuxième année d'études de bachelier en sciences informatiques

(12 crédits)



Ce site a été conçu en collaboration avec ADCP, ADEF, CIO et SGSI
Responsable : Jean-Louis Marchand - Contact : secretaire@fsa.ucl.ac.be
Dernière mise à jour :02/08/2006