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 [2021/02/04 10:46] – modification externe 127.0.0.1 | 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 1 ====== | ||
- | ===== Initiation à la programmation 1 (IP1) ===== | ||
- | |||
- | === Objectifs === | ||
- | Savoir écrire un programme simple dans un langage de programmation de haut niveau. | ||
- | === Résumé === | ||
- | Premiers éléments de programmation et d’algorithmique. Notion d’algorithme. Langages de programmation, | ||
- | |||
- | |||
- | ===== Introduction aux systèmes d’exploitation (IS1) ===== | ||
- | |||
- | === Objectifs === | ||
- | Connaissance des fonctions d’un système d’exploitation. Savoir utiliser efficacement un système Unix. | ||
- | === Résumé === | ||
- | Étude des différentes fonctions d’un système d’exploitation et familiarisation avec l’environnement et l’utilisation des systèmes de la famille Unix : système de gestion de fichiers, processus, liens entre processus et fichiers, les commandes de base (locales et réseau), le concept de filtre, notion de script. | ||
- | |||
- | |||
- | ===== Principe de fonctionnement des machines binaires (PF1) ===== | ||
- | |||
- | === Objectifs === | ||
- | Comprendre un certain nombre des principes généraux du traitement de données par des machines binaires. | ||
- | === Résumé === | ||
- | Principes de base du fonctionnement des ordinateurs ; Organisation générale d’un ordinateur, représentation binaire, mode d’adressage, | ||
- | |||
- | |||
- | ===== Mathématiques 1 (MI1) ===== | ||
- | |||
- | === Résumé === | ||
- | |||
- | * Calculus : manipulation d' | ||
- | * Fonctions (fonctions usuelles : fonctions trigonométriques, | ||
- | * Géométrie affine (points et vecteurs, équations paramétriques de droites, de plan, repères; résolution de systèmes, pivot de Gauss) | ||
- | * Suites (suites récurrentes, | ||
- | |||
- | ===== Prépro 1 (PP1) ===== | ||
- | |||
- | |||
- | |||
- | ====== Semestre 2 ====== | ||
- | |||
- | ===== Initiation à la programmation 2 (IP2) ===== | ||
- | === Objectifs === | ||
- | Apprendre à concevoir et à manipuler des structures de données. Introduction à la récursivité sur les données, et sur le contrôle. Etude approfondie des listes chaînées. | ||
- | === Résumé === | ||
- | La première partie du cours concerne la modélisation avec une introduction aux objets : encapsulation des données, liaisons un peu plus complexes (lorsque les objets ont des références croisées), notion d' | ||
- | |||
- | Nous étudions ensuite de manière plus approfondie les structures récursives linéaires (listes chaînées, piles, files) ainsi que les bases de la programmation récursive. | ||
- | |||
- | Développement d’algorithmes simples de parcours d' | ||
- | |||
- | ===== Concepts informatiques (CI2) ===== | ||
- | === Objectifs === | ||
- | Comprendre et maîtriser un certain nombre de mécanismes et concepts fondamentaux propres aux traitements informatiques. | ||
- | === Résumé === | ||
- | Présentation de concepts fondamentaux de l’informatique : mécanismes liés aux échanges d’information entre fonctions, références, | ||
- | |||
- | |||
- | ===== Internet et outils (IO2) ===== | ||
- | === Objectifs === | ||
- | Acquérir la maîtrise des standards du Web tels que HTML et CSS et le modèle client / serveur. Apprendre un des langages les plus utilisés pour le développement serveur (e.g. PHP); connaître les rudiments de la manipulation et de l' | ||
- | === Résumé === | ||
- | Principes généraux des réseaux et d’Internet. Introduction au protocole HTTP. HTML. CSS. Introduction au PHP. Introduction aux bases de données et à un système simple de gestion de bases de donnée (e.g. MySQL). | ||
- | |||
- | |||
- | |||
- | ===== Mathématiques 2 (MI2) ===== | ||
- | |||
- | === Résumé === | ||
- | |||
- | Arithmétique élémentaire (division euclidienne, | ||
====== Semestre 3 ====== | ====== Semestre 3 ====== | ||
Ligne 156: | 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 166: | Ligne 99: | ||
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 est une introduction à la sécurité informatique. | ||
- | Il comporte une partie sur la cryptographie symétrique | ||
- | dans laquelle des algorithmes d' | ||
- | de chiffrement symétriques (PRF, AES, DES) seront étudiés | ||
- | et programmés. | ||
- | La deuxième partie concerne les vulnérabilités des logiciels | ||
- | permettant de corrompre leur fonctionnement normal et quelques | ||
- | moyens pour prévenir ou atténuer ces attaques (analyse et test | ||
- | de programmes). | ||
- | === Pré-requis === | ||
- | Mathématiques du premier cycle (notamment notions d' | ||
- | et de calcul des probabilités); | ||
- | de données, complexité asymptotique); | ||
- | notions en programmation C, Java et Python; notions en système Linux; | ||
- | notions en architecture des ordinateurs (CI2); | ||
- | notions en outils internet (IO2). |