Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
formations:licences:licence_enseignements_descriptifs [2022/11/08 16:36] – supprimer les descriptifs des cours du L1 qui sont maintenant ailleurs treinen | formations:licences:licence_enseignements_descriptifs [2023/03/10 15:57] (Version actuelle) – [Outils Logiques (OL4)] mitsou | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Descriptifs des cours de licence ====== | + | ====== Descriptifs des cours de licence |
+ | |||
====== Semestre 3 ====== | ====== Semestre 3 ====== | ||
Ligne 84: | Ligne 86: | ||
===== Outils Logiques (OL4) ===== | ===== Outils Logiques (OL4) ===== | ||
+ | === Objectifs === | ||
+ | Ce cours est une introduction à la logique et notamment au calcul propositionnel, | ||
- | Ce cours est une introduction à la logique | + | === Résumé === |
+ | Syntaxe, sémantique | ||
===== Mathématiques 4 (MI4) ===== | ===== Mathématiques 4 (MI4) ===== | ||
Ligne 93: | Ligne 98: | ||
Probabilités discrètes (variables aléatoires à valeurs dans un ensemble fini ou dénombrable, | Probabilités discrètes (variables aléatoires à valeurs dans un ensemble fini ou dénombrable, | ||
- | |||
- | ====== Semestre 5 ====== | ||
- | |||
- | |||
- | ===== Algorithmique (AL5) ===== | ||
- | |||
- | === Contenu === | ||
- | |||
- | Algorithmique des graphes : parcours de graphes, composantes (fortement) connexes, extensions linéaires, plus courts chemins, arbres couvrants minimaux, flots… | ||
- | |||
- | ===== Mathématiques discrètes (MD5) ===== | ||
- | |||
- | === Objectif === | ||
- | |||
- | Savoir démontrer des résultats mathématiques sur des objets manipulés en informatique, | ||
- | |||
- | === Contenu === | ||
- | |||
- | * Techniques de démonstration de base: dénombrements élémentaires, | ||
- | * Graphes réguliers, connexes, acycliques, bipartis; suite de degrés d'un graphe; graphes eulériens, graphes hamiltoniens. | ||
- | * Probabilités discrètes. | ||
- | * Méthodes probabilistes sur les graphes. | ||
- | |||
- | |||
- | ===== Programmation fonctionnelle (PF5) ===== | ||
- | |||
- | === Objectif === | ||
- | L' | ||
- | programmation fonctionnelle à travers le langage OCaml. | ||
- | |||
- | === Détails === | ||
- | Types de base (int, float, bool, char), fonctions, déclaration des valeurs; listes; types algébriques: | ||
- | |||
- | |||
- | ===== Logique (LO5) ===== | ||
- | |||
- | === Objectif === | ||
- | |||
- | L' | ||
- | des problèmes et les résoudre ensuite à l'aide de logiciels comme les | ||
- | solveurs SAT et les solveurs SMT. Cela demande une bonne familiarité | ||
- | avec les formules logiques, leur sémantique, | ||
- | exemple à l'aide de mises sous formes normales, ainsi qu'une | ||
- | compréhension des principes de base de ces solveurs. | ||
- | |||
- | Des implémentations en Java ou en OCaml (qui est introduit en cours | ||
- | programmation fonctionnelle PF5) de la plupart des constructions du | ||
- | cours sont soit fournies soit réalisées en exercice. | ||
- | |||
- | Le cours introduit des notions qui seront approfondies entre autres | ||
- | dans les cours de bases de données (BD6), | ||
- | calculabilité et complexité, | ||
- | preuves assistées par ordinateur, sémantique des langages de | ||
- | programmation, | ||
- | spécification. | ||
- | |||
- | === Contenu === | ||
- | |||
- | Le cours revisite la logique propositionnelle vue en cours d' | ||
- | * Logique propositionnelle : | ||
- | |||
- | * Logique du premier ordre : syntaxe et sémantique. Formes normales, skolémisation. Théories logiques, interprétations normales, élimination des quantificateurs. Modélisation, | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Systèmes d' | ||
- | |||
- | |||
- | Le but de ce cours est d' | ||
- | et de maîtriser les mécanismes de base d'un système de type unix/linux | ||
- | (fichiers, processus et mémoire). Une partie du cours porte sur les | ||
- | structures de données et les algorithmes utilisés par unix, une autre | ||
- | sur la programmation bas niveau (C POSIX). | ||
- | ===== Compléments en programmation orientée objet (CPOO) ===== | ||
- | |||
- | === Objectifs === | ||
- | * Explorer les concepts de la POO au travers du langage Java. | ||
- | * Découvrir et comprendre les bonnes pratiques associées, pour une programmation fiable, efficace, évolutive et pérenne. | ||
- | |||
- | === Pré-requis === | ||
- | * Savoir programmer des algorithmes et structures de données simples (n' | ||
- | * Avoir déjà programmé en Java. | ||
- | |||
- | === Contenu === | ||
- | * discussions sur la pertinence des différents concepts pour différentes situations, assorties de conseils d' | ||
- | * approfondissement des mécanismes vus en L2, notamment les plus " | ||
- | * sujets nouveaux : immuabilité, | ||
- | |||
- | |||
- | |||
- | ====== Semestre 6 ====== | ||
- | |||
- | ===== Bases de Données (BD6) ===== | ||
- | |||
- | === Compétences visées === | ||
- | |||
- | Comprendre les grandes lignes du modèle relationnel et de sa structuration en trois niveaux : conceptuel, logique et physique. Maîtriser la modélisation conceptuelle des données, ainsi que l' | ||
- | |||
- | === Résumé === | ||
- | |||
- | Bases de données relationnelles. Modèle conceptuel des données. Contraintes d' | ||
- | |||
- | |||
- | ===== Conduite de Projet (Cproj, 2019-2020 uniquement) ===== | ||
- | |||
- | === Introduction au génie logiciel === | ||
- | * cycle de vie d'un logiciel | ||
- | * les processus de développement logiciel | ||
- | * conception et architecture d'un logiciel | ||
- | * implémentation et qualité du code | ||
- | * tests du logiciel | ||
- | |||
- | === Méthodes du génie logiciel === | ||
- | * édition de code source | ||
- | * gestion de versions | ||
- | * chaîne de compilation et automatisation | ||
- | * édition de liens et bibliothèques logicielles | ||
- | * développement piloté par les tests | ||
- | |||
- | === Projet de développement logiciel en équipe tout au long du semestre === | ||
- | * langage de programmation : C | ||
- | * outils : emacs, git, gcc, gdb, make, check | ||
- | |||
- | |||
- | ===== Grammaires et Analyse Syntaxique (GAS6) ===== | ||
- | |||
- | === Compétences visées === | ||
- | |||
- | Les grammaires algébriques sont utilisées en informatique pour définir | ||
- | une syntaxe structurée, | ||
- | programmation avec des constructions imbriquées comme des | ||
- | conditionnelles, | ||
- | module enseigne les grammaires algébriques d' | ||
- | pratique : comprendre et pouvoir écrire des grammaires, constructions | ||
- | d' | ||
- | (technique LR1), utilisation d'un générateur d' | ||
- | moderne (menhir), interaction avec l' | ||
- | d'un arbre de syntaxe abstraite. Pendant les dernières semaines, les | ||
- | aspects fondamentaux des grammaires seront étudiés, comme leur relation | ||
- | avec les automates à pile, et les limites d' | ||
- | grammaires. | ||
- | |||
- | === Pré-requis === | ||
- | * module Automates et Analyse Lexicale (AAL3): expressions rationnelles, | ||
- | * programmation en OCaml au niveau du cours PF5 | ||
- | ===== Programmation Réseaux (PR6) ===== | ||
- | |||
- | === Objectif === | ||
- | Apprendre à développer des programmes échangeant des données à travers un réseau. | ||
- | === Résumé === | ||
- | Ce cours présente les paradigmes principaux de la communication par | ||
- | socket dans un réseau. Il introduit les bibliothèques de fonctions | ||
- | permettant de communiquer par flux (TCP) et par paquet (UDP) et propose | ||
- | différentes séries de travaux pratiques ainsi qu'un projet afin de | ||
- | maîtriser leur utilisation. | ||
- | |||
- | |||
- | ===== Introduction au Génie Logiciel (IGL6, option) ===== | ||
- | |||
- | === Compétences visées === | ||
- | * Formaliser les grandes phases du développement logiciel et leur intégration dans quelques processus de développement. | ||
- | * Être initié à l' | ||
- | * Distinguer spécification fonctionnelle, | ||
- | * Maîtriser quelques architectures modulaires classiques. | ||
- | * Appliquer les outils et méthodes modernes du développement logiciel introduits en conduite de projet. | ||
- | * Systématiser l' | ||
- | * Connaitre plusieurs méthodes agiles (Scrum, XP) et développer un regard critique qui permet de choisir la méthode la plus adaptée au cas pas cas | ||
- | * Utiliser des bibliothèques externes et être sensibilisé à la problématique des dépendances logicielles. | ||
- | * Être sensibilisé à des concepts du génie logiciel comme la dette technique, la sûreté, la sécurité, etc. | ||
- | |||
- | |||
- | |||
- | ===== Langages de script (LS6, option) ===== | ||
- | |||
- | === Objectif === | ||
- | L' | ||
- | |||
- | === Détails === | ||
- | Ce cours/TP introduit et approfondit le langage de programmation Python. | ||
- | Les concepts importants de Python sont présentés et mis en pratique: | ||
- | listes, dictionnaires, | ||
- | du système d' | ||
- | Le langage de script bash est également abordé. | ||
- | |||
- | |||
- | ===== Machines virtuelles (MV6, option) ===== | ||
- | |||
- | === Objectif === | ||
- | |||
- | Ce cours introduit aux principes des machines virtuelles exécutant du code-octet (comme Ocamlrun ou JVM) et présente les bases de la compilation d’un langage de haut niveau en code-octet. Ce cours s' | ||
- | |||
- | === Détails === | ||
- | |||
- | Machines à piles; codage/ | ||
- | |||
- | === Pré-requis === | ||
- | |||
- | Les TP utiliseront le langage OCAML, le cours de programmation fonctionnelle au S5 est donc un pré-requis essentiel. Ce cours introduit aux principes des machines virtuelles exécutant du code-octet (comme Ocamlrun ou JVM) et présente les bases de la compilation d'un langage de haut niveau en code-octet. | ||
- | |||
- | |||
- | ===== Programmation Efficace (PE6, option) ===== | ||
- | |||
- | === Objectif === | ||
- | |||
- | Le but de ce cours est d' | ||
- | |||
- | === Déroulement === | ||
- | |||
- | Le cours comportera deux parties, une partie plus théorique où l'on abordera des questions de complexité et d' | ||
- | |||
- | === Pré-requis === | ||
- | |||
- | * Maitrise d'un langage de Programmation (Java, Python ou C) | ||
- | * Algorithmique | ||
- | * Implémentation de structures de données | ||
- | * Un peu de probabilités | ||
- | |||
- | |||
- | ===== Programmation Web (PW6, option) ===== | ||
- | |||
- | === Objectifs === | ||
- | |||
- | L' | ||
- | méthodologies courantes pour le développement d' | ||
- | coté serveur. | ||
- | |||
- | === Contenu === | ||
- | |||
- | Ce cours démarre avec une révision des langages HTML et CSS pour la description | ||
- | de pages Web. Ensuite une petite révision du langage PHP et des systèmes de | ||
- | bases de données permet d' | ||
- | Le cours se concentre ensuite sur les " | ||
- | et sur les serveurs node.js, ainsi que ajax pour la communication | ||
- | client-serveur. | ||
- | Enfin le cours aborde la programmation côté client pour dynamiser les pages Web : Javascript et la librairie Jquery, ainsi que les librairies côté client pour simplifier la programmation CSS (e.g. Bootstrap). | ||
- | |||
- | === Pré-requis === | ||
- | |||
- | Connaissance minimale des langages HTML, CSS, PHP et SQL pour l' | ||
- | |||
- | |||
- | ===== Sécurité informatique (SI6, option) ===== | ||
- | |||
- | === Contenu === | ||
- | Ce cours développe les fondations de la sécurité du logiciel. Nous étudierons les principales vulnérabilités logiciels ainsi que les attaques qui les exploitent (tel que les dépassements de tampon, les injections SQL ou les détournements de session). Nous aborderons également quelques mécanismes de défense permettant d' | ||