Université Lyon 1
Arqus
Accueil  >>  Algorithmique, programmation et structures de données
  • Unité d'enseignement : Algorithmique, programmation et structures de données
Nombre de crédits de l'UE : 6
Code APOGEE : INF2023L
    Responsabilité de l'UE :
PRONOST NICOLAS
 nicolas.pronostuniv-lyon1.fr
    Type d'enseignement
Nb heures *
Cours Magistraux (CM)
18 h
Travaux Dirigés (TD)
18 h
Travaux Pratiques (TP)
24 h

* Ces horaires sont donnés à titre indicatif.

    Pré-requis :
Il est recommandé d'avoir suivi l'UE LIFAPI de première année.

Les pré-requis pour cette UE sont les suivants :
  • Savoir écrire un algorithme simple en langage algorithmique
    • Manipuler des variables de type booléen, entier, réel, caractère
    • Manipuler des tableaux et chaînes de caractères
    • Connaître les structures de contrôle (tests, boucles, ...)
    • Savoir découper un programme en fonctions et procédures
    • Connaître les modes de passage des paramètres
    • Etre familier avec l’organisation de la mémoire
  • Savoir implémenter tout ceci dans le langage C/C++
    Compétences attestées (transversales, spécifiques) :
Les compétences, savoirs et savoirs-faire développés dans cette UE, avec leurs niveaux d'acquisition, sont les suivants :
  • Compétences :
    • Architecturer un logiciel complexe en définissant le modèle des données et la structure des composants à concevoir ou à utiliser (Notion)
    • Concevoir des algorithmes répondant à un cahier des charges, en choisissant les structures de données adéquates (Notion)
    • Programmer un logiciel implémentant une spécification fonctionnelle et technique (Notion)
    • Assurer la pertinence, la fiabilité et la qualité d’une solution algorithmique / logicielle (Notion)
  • Savoirs :
    • Identifier et manipuler les représentations des données en machine (Notion)
    • Utiliser les algorithmes classiques, les combiner pour résoudre des problèmes complexes (Notion)
    • Reproduire, décrire la chaîne d’interprétation ou de compilation et savoir interpréter/compiler une application avec les systèmes de build standards des langages standards (Notion)
  • Savoirs-faire :
    • Lire et analyser une spécification, en tirer une réalisation (Application)
    • Dérouler un algorithme (Application)
    • Résoudre un problème logiciel (erreur à la compilation, à l’exécution) (Application)
    • Identifier les données utiles au fonctionnement d’un logiciel (Notion)
    • Comprendre et exécuter un cahier des charges (Notion)
    • Utiliser des composants logiciels existants et les intégrer dans un développement (Notion)
    • Choisir de façon raisonnée la manière de stocker et d’exploiter les données persistantes d’un logiciel (Notion)
    • Intégrer les problématiques de tests, de robustesse, de qualité et de sécurité dans l’architecture d’un logiciel (Notion)
    • Structurer et modéliser le code d’un logiciel pour en faciliter la maintenance et en améliorer la qualité, en utilisant des standards du domaine comme l’UML (Notion)
    • Analyser et décomposer une tâche pour concevoir un algorithme (Notion)
    • Choisir une structure de données pertinente (Notion)
    • Concevoir un algorithme itératif ou récursif adapté à une structure de données (Notion)
    • Lire et analyser une spécification, en tirer une réalisation (Notion)
    • Évaluer la complexité algorithmique d’une solution / d’un algorithme proposé (Notion)
    • Évaluer en pratique les performances d’une solution (Notion)
    • Utiliser les outils de diagnostic (debug à l'exécution, diagnostic mémoire, évaluation de performance) (Notion)
    Programme de l'UE / Thématiques abordées :

Le programme de l'UE est le suivant :

  • Manipulation des principales structures de données utilisées en informatique
    • Types primitifs: entier, réels, caractères, booléens, pointeurs
    • Types agrégés: tableaux et structures
    • Gestion des entrées-sorties: standard et fichier
    • Structures dynamiques: tableaux, piles, files, listes, arbres, fichiers
  • Introduction à la programmation orientée objet
    • Membre, spécificateur d’accès, surcharge d’opérateur
    • Type de données abstrait et programmation modulaire
  • Algorithmique
    • Algorithmes de tri (sélection, insertion, fusion)
    • Introduction à la notion de complexité algorithmique
    Parcours / Spécialité / Filière / Option utilisant cette UE :
SELECT MEN_ID, `MEN_DIP_ABREVIATION`, `MEN_TITLE`, `PAR_TITLE`, `PAR_ID` FROM parcours INNER JOIN ue_parcours ON PAR_ID_FK=PAR_ID INNER JOIN mention ON MEN_ID = PAR_MENTION_FK WHERE PAR_ACTIVATE = 0 AND UE_ID_FK='25557' ORDER BY `MEN_DIP_ABREVIATION`, `MEN_TITLE`, `PAR_TITLE`