Licence d'informatique

Liste chronologique des étapes d’admission
Etape
Obtention du baccalauréat
Modalités
Dossier via une plateforme Web (Parcours Sup, e-candidat, mon master, site web organisme de formation)
Lieu
dans les locaux du centre de formation
Bloc de compétences
Libellé descriptif du bloc
Mathématiques pour l'informatique
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Informatique
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Méthodologie
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Langues
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Enseignements d'ouverture
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Option
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Informatique fondamentale
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Libellé descriptif du bloc
Projet
Peut être suivi de manière indépendante sous réserve d’avoir les compétences pré-requises
Non
Qualification associée inscrite au RNCP ou Répertoire spécifique
Non
Ce bloc est
Niveau de diplôme minimum pour accéder à l’action via une VAPP
Nombre minimum d’année(s) d’expérience continue
5.00
Caractéristiques de l’action
Publics ciblés
Bachelier en poursuite d'étude
Etudiant en poursuite d'études
Etudiant en réorientation
Métier(s) ciblé(s)
Description détaillée
Niveau de diplôme minimum requis
Bac général ou DAEU, Bac Pro / Niveau 4
Diplôme délivré
Licence
Déroulement de l’action
Type(s) de parcours concerné(s)
Licence / Bachelor+ Master / Mastère
Modalité(s)
Durée globale
3.00
Unité
Année(s)
En Alternance
Non
Unité
Mois
Raison sociale
Université de Strasbourg
Points de contact
Zone(s) géographique(s) gérée(s) par le contact pour l'action
Alsace : Bas-Rhin (67)
Fonction
Responsable du suivi des apprenants
Civilité
Madame
Prénom
Alice
Nom
AGOSTINI
Téléphone
03 68 85 01 92
Contact interne de l’organisme pour les processus de gestion du Numéric’Emploi
On
Zone(s) géographique(s) gérée(s) par le contact pour l'action
Alsace : Bas-Rhin (67)
Fonction
Responsable Admission des stagiaires / étudiants
Responsable du suivi des apprenants
Civilité
Madame
Prénom
Scolarité
Nom
UFR de mathématique et d'informatique
Téléphone
+33 (0)3 68 85 01 23
Contact interne de l’organisme pour les processus de gestion du Numéric’Emploi
Off
Affichage média(s) de contact dans le répertoire
Zone(s) géographique(s) gérée(s) par le contact pour l'action
Alsace : Bas-Rhin (67)
Fonction
Responsable Relations avec les Entreprises (pour stage/alternance)
Civilité
Monsieur
Prénom
Stéphane
Nom
CATELOIN
Téléphone
+33 (0)3 68 85 02 42
Contact interne de l’organisme pour les processus de gestion du Numéric’Emploi
Off
Affichage média(s) de contact dans le répertoire
Bloc de compétence
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Mathématiques élémentaires
Thème(s) abordé(s) dans le module
Ce cours a pour but de (re)voir et approfondir les connaissances de mathématiques du lycée (spécialité mathématique en première et terminale).

- Ensemble de nombres basiques. Intervalles de R. Opérations sur ces ensembles, quantificateurs.
- Fonctions élémentaires : exp., log., trigonométriques, leurs représentations graphiques, et leurs propriétés algébriques et application à la résolution d’équations faisant intervenir ces fonctions.
- Calcul littéral sur les fonctions polynomiales et rationnelles (division euclidienne, factorisation, décomposition en éléments simples)
- Nombres complexes : forme algébrique et forme exponentielle; module, argument ; exponentielle complexe ; interprétation géométrique ; puissances complexes ; linéarisation de polynômes trigonométriques, racines de 1, résolution d’équations complexes ; étude de transformations complexes du plan du type (z -> az+b)
- Suites récurrentes affines d’ordre 1 (arithmético-géométriques) et linéaire d’ordre 2.
- Fonctions composées, réciproques, leurs dérivées (approche calculatoire).
- Géométrie analytique du plan et de l’espace : coordonnées cartésiennes, équations de droites et plans, calcul vectoriel (rappels de produit scalaire, projections ; produit vectoriel), droites, cercles, plans, sphères, leurs intersections.
Titre du module
Algèbre 1
Thème(s) abordé(s) dans le module
Ce cours introduit au calcul matriciel et l'arithmétique des entiers.

- Calcul matriciel et systèmes linéaires :
°Calcul matriciel : matrices échelonnées, pivot de Gauss, inversibilité.
°Résolution de systèmes linéaires.
°Déterminant.

- Arithmétique dans Z :
°division euclidienne ; diviseurs communs à deux entiers, pgcd, ppcm ; lemme de Gauss ; théorème de Bézout ; algorithme d’Euclide de calcul de pgcd ;
°nombres premiers ; existence et unicité de la décomposition en produit de facteurs premiers ;
°congruences : additions et multiplications ; systèmes de congruences, théorème chinois ; petit théorème de Fermat
Titre du module
Analyse 1
Thème(s) abordé(s) dans le module
Ce cours vise à développer les premières connaissances en analyse (fonctions classiques, limites, études de fonctions, intégration, équations différentielles).

- Fonctions usuelles : hyperboliques (cosh, sinh, tanh) et fonctions trigonométriques réciproques (arcsin, arccos, arctan))
- Calcul de limites (opérations arithmétiques, croissances comparées, taux d’accroissement, introduction des notions d’équivalence et négligeabilité)
- Étude complète de fonctions (variations, convexité, asymptotes…)
- Calcul de primitives : fonctions élémentaires, changement de variable, intégration par parties. Cas des fonctions de type fractions rationnelles, polynômes trigonométriques, polynômes et fractions rationnelles exponentiels.
- Équations différentielles linéaires d’ordre 1 et 2 à coefficients constants avec et sans second membre :
°On se contente ici de traiter les cas suivants :
— y′(x) + a(x)y(x) = b(x) pour des fonctions usuelles a et b données (variation de la constante)
— ay′′(x) + by′(x) + cy(x) = u(x) pour des constantes a, b, c données, et une fonction u de la forme (polynôme) x (exponentielle).
Cours / Topos en synchrone (heures)
111.00
Nom du bloc de compétence
10323
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Algorithmique et programmation 1
Thème(s) abordé(s) dans le module
Cette UE est un premier contact avec la programmation informatique. Elle commence par introduire les types de données élémentaires, les constantes, les variables, les expressions, et les structures de contrôle (conditionnelles et boucles). Puis sont étudiés les fonctions et les types de données composées (n-uplets et listes). Cette UE introduit également la notion d'algorithme, commune à tous les langages informatiques ; algorithmes itératifs et récursifs permettant de créer, interroger, trier, traiter différents types de données. Les bases de la méthodologie de résolution de problèmes sont présentées : analyse et représentation d'un problème, décomposition fonctionnelle, les notions de pré-condition et post-condition et élaboration de jeux de tests. Enfin, les bases de l’analyse de la complexité des algorithmes est abordée, en particulier à travers différents algorithmes de tri (tri à bulles, tri par insertion, tri fusion). Le langage pour cet enseignement est le python.
Titre du module
Bases de l'architecture informatique
Thème(s) abordé(s) dans le module
Cette UE présente les principes de base du fonctionnement des systèmes informatiques, de la représentation de l'information jusqu'à son traitement automatisé. Le codage des différents types d'information (entiers naturels, entiers relatifs, réels, caractères, etc.) dans un format adapté à leur traitement informatique (arithmétique et traitements associés) y est présenté. L'architecture des ordinateurs (architecture de Von Neumann, unité de traitement, mémoire, entrées/sorties) et son fonctionnement (instructions, cycle d'exécution, utilisation des adresses mémoire) y sont également étudiés. Cette UE fait le lien entre architecture matérielle et programmation à bas niveau (en langage machine et en langage d'assemblage). Les notions les plus importantes à connaître concernant le langage d'assemblage y sont présentés : jeu d'instruction, format des instructions, "label" ou étiquette, registre, les différents modes d'adressage : immédiat, relatif, direct, indirect).
Cours / Topos en synchrone (heures)
46.00
Travaux dirigés en synchrone (heures)
10.00
Travaux pratiques en groupe en synchrone (heures)
34.00
Nom du bloc de compétence
10335
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Kit de survie pour les étudiants de mathématique et d'informatique
Thème(s) abordé(s) dans le module
Cet enseignement vise à donner aux étudiants une culture, des méthodes et des outils de travail pour étudier les mathématiques et l'informatique à l’Université.

Les principaux thèmes étudiés sont :
- Les méthodes de travail spécifiques aux études universitaires
- Les stratégies et méthodes pour l'apprentissage d'un cours, la résolution d'exercices et de problèmes
- L’histoire et les origines de l'informatique des premiers outils de comptage aux ordinateurs modernes
- Une culture informatique de base : composant d’un ordinateur, typologie des langages, outils de programmation, …
- Les principaux métiers et principales tendances en informatique
- L’utilisation du langage LaTeX pour la rédaction de rapports
- Manipulation de fichiers de de dossiers (navigation dans l'arborescence, création/édition/suppression)
- Gestion des droits utilisateurs
- Gestion des processus
- Principales commandes shell
- Gestion des redirection de sortie et d'entré de processus
- Création de variable et de script shell
Titre du module
Introduction au langage formel et à la démonstration
Thème(s) abordé(s) dans le module
Ce cours est une introduction au langage mathématique et à la démonstration.

Qu’est-ce qu’une démonstration mathématique ? Et pourquoi faire des démonstrations ?

Contenu :
- Langage mathématique: statut des énoncés mathématiques et vocabulaire (axiome, lemme, théorème, corollaire, conjecture, prémisse, conclusion, hypothèse, contraposée, réciproque, condition nécessaire, suffisante, conjonction, disjonction), notion de variable libre ou liée, connecteurs logiques et quantificateurs, règles de permutation des quantificateurs, quantificateurs relativisés (∀ x ∈ R, P(x)), expression formelle de l’unicité, négation d’une formule quantifiée.
- Rédaction d’une démonstration, règles logiques, y compris raisonnement par l’absurde, raisonnement par cas.
- Vocabulaire ensembliste: l’ensemble des x tels que…, union, intersection, complémentaire, paire, nuplet, produit cartésien.
- Fonctions: image directe, image inverse, injectivité, surjectivité, bijectivité.

- Relations: relation d’équivalence, relation d’ordre, classe d’équivalence, quotient.
- Propriétés fondamentales de N. Principe de récurrence.
Cours / Topos en synchrone (heures)
34.00
Travaux pratiques en groupe en synchrone (heures)
19.00
Nom du bloc de compétence
10340
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Anglais ou allemand
Thème(s) abordé(s) dans le module
Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
La liste complète des enseignements est disponible sur le site de la faculté des Langues.
Travaux dirigés en synchrone (heures)
20.00
Nom du bloc de compétence
10345
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Algèbre 2
Thème(s) abordé(s) dans le module
Cet enseignement vise à donner aux étudiants une introduction à l’algèbre et à la manipulation de structures algébriques en étudiant de manière détaillé l’exemple de l’algèbre linéaire.

- Espaces vectoriels. Applications linéaires. Lien avec matrices. Changement de base.
- Espaces vectoriels sur un corps (exemples K = Q, R, C). Exemples : K^n, K[X], espaces de suites, de fonctions.
- Sous-espaces vectoriels ; somme, intersection, sommes directes, supplémentaires.
- Dimension : familles génératrices, libres, espaces vectoriels de dimension finie, théorème de la base incomplète, dimension d'un espace vectoriel, d'un sous-espace vectoriel.
- Applications linéaires : somme, composition. Exemples : formes linéaires, endomorphismes, symétries, projecteurs. Noyau, image. Rang d'une application linéaire. Théorème du rang.
- Matrice d'une application linéaire dans une base. Matrices de passage. Matrices équivalentes et semblables.
Cours / Topos en synchrone (heures)
52.00
Nom du bloc de compétence
10323
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Bases de données 1
Thème(s) abordé(s) dans le module
Ce cours propose, d'une part, une introduction approfondie aux principes théoriques de la conception des Bases de Données Relationnelles, et d'autre part, une formation pratique à l'accès et à la manipulation des bases de données relationnelles au moyen du langage SQL (langage de requêtes structuré).

Ce cours présente les concepts et les outils de base permettant de concevoir et de manipuler des bases de données relationnelles :
- algèbre relationnelle, qui sert de base théorique aux langages de requêtes des SGBD (Systèmes de Gestion des Bases de Données) relationnels.
- langage de requêtes structuré SQL (Structured Query Language) : langage de définition des données : création/suppression des tables et des vues, langage de manipulation des données : insertion/mise à jour/suppression et consultation des données, langage de contrôle des données: gestion des droits des utilisateurs de la base de données.
- théorie de la normalisation, permettant de définir une base de données relationnelle cohérente et non redondante.
- modélisation entités-associations, permettant de définir le schéma conceptuel de la base de données, puis de le traduire sous forme de tables.

Les compétences acquises en programmation SQL sont applicables dans les environnements de SGBD relationnels classiques, libres ou propriétaires, tels que Oracle, PostgreSQL, Microsoft Access, etc.
Titre du module
Programmation web 1
Thème(s) abordé(s) dans le module
Concevoir un site web responsive en HTML et CSS, optimisé pour mobiles et ordinateurs de bureau, accessibles à tous.
Une approche sémantique est privilégiée, pour les éléments de contenu ainsi que pour les éléments d'organisation de contenu.
Acquérir les bases de Javascript en termes d'algorithmique.
Comprendre comment Javascript accède au D.O.M. (Document Object Model) pour le manipuler et le modifier.
Utiliser des API pour interagir avec le document HTML, et exploiter des services en ligne, ou les données des capteurs d'un téléphone mobile.
Manipuler des données au format JSON.
Titre du module
Algorithmique et programmation 2
Thème(s) abordé(s) dans le module
À la suite de l’UE d’algorithmique et programmation 1 du premier semestre, l’objectif de cette UE est d’appréhender des concepts plus avancés en algorithmique et en programmation impérative. Dans un premier temps, ce cours rappellera les notions de base de la programmation impérative en termes de traitement (instructions, séquences, conditionnelles, boucles, fonctions), de données (types de bases, variables, tableaux) et d'entrées/sorties. Ces éléments seront manipulés au travers d'un langage compilé (langage C). On présentera la forme générale des programmes et leur cycle de vie (écriture, compilation, édition de liens, exécution). Dans un second temps, cette UE s'attachera à étudier des données et traitements plus avancés (mettant en jeu pointeurs, types composés, tableaux dynamiques, listes chaînées), ainsi que les mécanismes de gestion mémoire statique (pile d'exécution) et dynamique (allocation et libération explicites). Plusieurs algorithmes classiques seront présentés et comparés, notamment des algorithmes de recherche et de tri itératifs ou récursifs, avec une introduction à la notion de complexité. Une attention particulière sera portée à la résolution de problèmes par des algorithmes adaptés et leur mise en œuvre robuste (pré- et post- conditions, vérifications de terminaison, tests, bonne utilisation de l’allocation mémoire,...).
Titre du module
Programmation fonctionnelle
Thème(s) abordé(s) dans le module
Cette UE présente le paradigme de programmation fonctionnelle, ses principes fondateurs (composition de fonctions, variables au sens mathématique, propriété de transparence référentielle, pureté), les concepts de base permettant d’écrire un programme dans ce mode (équation fonctionnelle, application de fonction, conditionnelle, fonction anonyme, définition temporaire, récursivité), ainsi que des notions plus avancées (fonctionnelles, fonctions d'ordre supérieur, curryfication, application partielle). Les types omniprésents dans les langages fonctionnels récents y sont étudiés (constructeurs * et ->, types produits et sommes, types récursifs (exemple des listes), filtrage, polymorphisme, calcul ou inférence de types). Les différentes stratégies d’évaluation (évaluation affairée, paresseuse) des expressions fonctionnelles y sont discutées. Les programmes illustratifs sont écrits en utilisant le langage support Haskell.
Cours / Topos en synchrone (heures)
76.00
Travaux dirigés en synchrone (heures)
28.00
Travaux pratiques en groupe en synchrone (heures)
56.00
Nom du bloc de compétence
10335
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Projet Professionnel Étudiant
Thème(s) abordé(s) dans le module
Cette première matière de préparation du projet professionnel accompagne la réflexion des étudiants de première année dans leurs choix à venir d'études, de stages, d'orientation professionnelle. Elle permet aux étudiants d'échanger leurs points de vue, de les confronter à ceux des professionnels sur leur lieu de travail, et les guider dans une démarche rigoureuse d'analyse des éléments recueillis.
Titre du module
Sciences et enjeux environnementaux
Thème(s) abordé(s) dans le module
Enseignement de 24h construit en 4 Blocs décrits ci-dessous. Programme indicatif.

Bloc 1 (6h)
- 1h: Introduction sous forme de Quizz/débat
- 3h : Physique du climat et GES / Ressources énergétiques - ordre de grandeur / Aspect géopolitique du changement climatique
- 2h : Cycle de l'eau / définition biodiversité / Intro écosystème (Qu'est-ce qu'un sol - Comment se fait un sol ?) en fonction du climat

Bloc 2 (7h)
- 2h: Pollution de l'eau / Artificialisation-Surexploitation des sols
- 2h : Pollution de l'air (aréosols, ozone, ...) (intervenant M. Millet)
- 2h : Pollution organique : POP (PolluantsOrganiques Persistants) / Bio-accumulation / Plastique / Méthane
- 1h : Pollution métallique / inorganique

Bloc 3 (7h)
- 3h : Cours à dominante historique sur le changement climatique et biodiversité dégradée : comment en est-on arrivé là ? / aspects juridiques / SHS
- 4h : Que peut la science : énergies renouvelables / économie circulaire / décontamination / impact du numérique

Conclusion (4h)
- 2h : Moyens et scénarios pour diminuer les émissions / impact et adaptation au changement climatique — notamment sur la base des rapports du GIEC
- 2h : débat / autres pollutions (sonores, lumineuses,...)
Cours / Topos en synchrone (heures)
26.00
Travaux dirigés en synchrone (heures)
8.00
Nom du bloc de compétence
10359
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Anglais ou allemand
Thème(s) abordé(s) dans le module
Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
La liste complète des enseignements est disponible sur le site de la faculté des Langues.
Travaux dirigés en synchrone (heures)
20.00
Nom du bloc de compétence
10345
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Modèles de calcul
Thème(s) abordé(s) dans le module
Cette UE discute des deux principales formalisations de la notion d’algorithme et de ce qui est calculable par une machine : le lambda-calcul et les machines de Turing. Le formalisme du lambda-calcul (syntaxe, interprétation usuelle en termes de fonctions anonymes, curryfication) y est présenté ainsi que les règles de calcul associées (notion de réduction, substitution, règles de réduction, problème de capture de variable, notion de variable libre et liée, forme normale, résultat de Church-Rosser, stratégies de réduction (NOR et AOR)). Le pouvoir d'expressivité du lambda-calcul (booléens, entiers de Church, n-uplets, récursivité (combinateur de point fixe)) y est discuté. Cette UE inclut une présentation de la machine de Turing (ruban, tête de lecture/écriture, états, fonction de transition, configuration, mode accepteur, mode calculateur, machine universelle) et discute de son équivalence (sans preuve) avec le lambda-calcul et les autres modèles de calcul. La thèse de Church-Turing y est énoncée. Les règles du lambda-calcul et le fonctionnement des machines de Turing sont décrits et mis en œuvre en Haskell.
Cours / Topos en synchrone (heures)
10.00
Travaux dirigés en synchrone (heures)
6.00
Travaux pratiques en groupe en synchrone (heures)
8.00
Nom du bloc de compétence
10367
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Analyse 2
Thème(s) abordé(s) dans le module
Cette matière a pour objectif d'introduire les problèmes de calcul avec les nombres réels. Après avoir donné une définition des réels grâce aux développements décimaux, les grandes propriétés de la droite réelle sont démontrées (bornes supérieures, complétude). Les suites de réels, et la notion associée de convergence (=de Cauchy), sont introduites pour quantifier l'erreur d'approximation du réel obtenu comme la limite. L'objectif principal est la construction de suites permettant d'approximer des réels obtenus par l'évaluation de fonctions usuelles.

Ce contexte servira également de prétexte pour revenir à l'introduction historique des machines de Turing (calculabilité des nombres réels), notamment en exhibant l'analogie formelle entre le théorème de l'arrêt des machines de Turing, le procédé diagonal de Cantor et le « paradoxe » de Russell en théorie des ensembles. Le but est d'introduire la notion de complexité calculatoire et de l'étudier sur des exemples concrets en comparant (empiriquement ou théoriquement) plusieurs algorithmes effectuant la même tâche.

Théorie: décimaux, rationnels, nombres algébriques, nombres réels, opérations, borne sup / inf, suites et convergence, ordres de grandeur (o, O, ∼ ), fonctions continues et dérivables, formule de Taylor-Lagrange

Pratique: utilisation de bibliothèques Python de calcul symbolique (sympy) et numérique à mantisse fixe (numpy) ou arbitraire (mpmaths) pour manipuler des nombres et approximer des valeurs de fonctions
Titre du module
Arithmétique et cryptographie
Thème(s) abordé(s) dans le module
En s’appuyant sur l’arithmétique modulaire, ce cours explore différentes approches cryptographiques, aussi bien historiques que contemporaines.

- Base d’arithmétique : divisibilité, Bézout, algorithme d’Euclide, nombres premiers
- Arithmétique modulaire : anneaux Z/nZ, indicatrice d’Euler, théorèmes de Fermat et d’Euler, exponentiation modulaire.
- Théorème des restes chinois.
- Cryptosystème à clé publique : RSA.
- Echange de clé : Diffie-Hellman et ElGamal.
- Cryptosystème à clé privée : AES.
- Hashage cryptographique : SHA256.
- Application aux cryptomonnaies
Cours / Topos en synchrone (heures)
26.00
Travaux dirigés en synchrone (heures)
16.00
Travaux pratiques en groupe en synchrone (heures)
8.00
Nom du bloc de compétence
10323
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Architecture
Thème(s) abordé(s) dans le module
Cet enseignement présente les notions d'architecture des ordinateurs nécessaires au développement logiciel effectué dans un souci de correction, d'efficacité énergétique et de performance.

Les thèmes traités sont le codage des données, l'architecture et le fonctionnement des processeurs, les jeux d'instructions, l'assembleur RISC-V, le chemin de données, le pipeline et les architectures superscalaires, la hiérarchie mémoire, et les architectures parallèles (multi-coeurs, générales et spécialisées).
Titre du module
Structures de données et algorithmes 1
Thème(s) abordé(s) dans le module
Cet enseignement vise à déployer une démarche rigoureuse de résolution de problèmes informatique afin de tendre ensuite vers du code certifié. La démarche proposée consiste à définir la notion de type abstrait avec une méthode de spécification dans laquelle on précise une signature contenant des types et des fonctions et les relations exigées entre ces différentes fonctions. On introduit le formalisme de spécifications en relation avec la programmation. Cette méthodologie est utilisée pour décrire des types de données de base et les types linéaires simples classiques que sont les piles, les files et les listes. Pour chaque type abstrait, les différentes possibilités d'implantation en langage C sont discutées et comparées suivant des critères d'efficacité en temps et en espace. C'est ainsi qu'on étudie des styles d'implantations statiques/fonctionnelles sans effets de bord et des styles d'implantations dynamiques avec des passages d'arguments par adresse. On donne aussi les premiers éléments qui permettent de comprendre la notion de complexité algorithmique et son utilité. Enfin, les qualités de complétude, de consistance et de non-redondance d'une spécification ainsi que la validité d'une implantation relativement à une spécification seront présentées.
Titre du module
Programmation orientée objets 1
Thème(s) abordé(s) dans le module
Cette matière est une introduction à la programmation orientée objets avec Java comme langage d'application.

Les thèmes étudiés sont :
- les classes et objets : conception des classes, constructeurs, affectation et comparaison d'objets, champs et méthodes statiques, surdéfinition de méthodes, classes internes, paquetage ;
- l'héritage : conception des classes dérivées, redéfinition de méthodes, polymorphisme, super classe objet, classes abstraites, interfaces, classes enveloppes, classes anonymes ;
- la gestion des exceptions
- les types génériques
- la génération de nombres aléatoires
- les flux texte en lecture et écriture.
Titre du module
Software engineering
Thème(s) abordé(s) dans le module
Enseignement dispensé en anglais.

Mécanismes de la compilation (préprocesseur, compilation, assemblage et édition de liens). Structure mémoire d'un exécutable, pile d’exécution. Utilisation, création et compilation de bibliothèques. Compilation séparée et structuration d'un projet informatique (makefile). Gestionnaire de versions et développement collaboratif (svn, git). Portée des variables static/extern. Documentation de code (doxygen). Analyse de couverture de code (gcov). Méthodologie de gestion des erreurs et debug (gdb et valgrind). méthodologies de tests, tests unitaires/intégration/système, TDD, instrumentation d’un dépôt git (CI/CD, etc…), frameworks, écosystèmes, IDEs.

Version en Anglais:

Compilation mechanisms (preprocessor, compilation, assembly and link editing). Memory structure of an executable, execution stack. Use, creation and compilation of libraries. Separate compilation and structuring of an IT project (makefile). Scope of static/external variables. Version management and collaborative development (svn, git). Test methodologies, unit/integration/system tests, Test Driven Development (TDD), instrumentation of a git repository (CI/CD, etc.), frameworks, ecosystems, IDEs. Code documentation (doxygen). Code coverage analysis (gcov). Error management and debugging methodology (gdb and valgrind)
Cours / Topos en synchrone (heures)
64.00
Travaux dirigés en synchrone (heures)
50.00
Travaux pratiques en groupe en synchrone (heures)
52.00
Nom du bloc de compétence
10335
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Logique et programmation logique
Thème(s) abordé(s) dans le module
Ce cours est une introduction à la logique et à son rapport avec l'informatique. Ce cours introduit le paradigme de programmation logique par la pratique du langage Prolog.

- Logique propositionnelle, syntaxe, sémantique, (tables de vérité, satifiabilité, tautologies).
- Logique des prédicats, syntaxe, sémantique.
- Systèmes formels, notion de correction/complétude.
- Déduction naturelle.
- Mise en forme de clause, Mise en formel prénexe, Skolemisation, Unification
- Méthode de résolution pour la logique des prédicats.
- Introduction à Prolog: faits, règles, fonctionnement de l’intérpréteur.
Cours / Topos en synchrone (heures)
18.00
Travaux dirigés en synchrone (heures)
22.00
Travaux pratiques en groupe en synchrone (heures)
6.00
Nom du bloc de compétence
10381
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Français
Thème(s) abordé(s) dans le module
Cet enseignement, orienté vers les compétences orthographiques et grammaticales du Français, est réalisé en auto-apprentissage sur la plateforme de l'université ouverte des humanités.
Travaux dirigés en synchrone (heures)
10.00
Nom du bloc de compétence
10359
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Probabilités et statistiques 1
Thème(s) abordé(s) dans le module
Cette unité d’enseignement constitue une introduction aux probabilités dites discrètes. On modélise une expérience aléatoire en donnant l’ensemble des résultats possibles et leurs probabilités. On étudie ensuite les variables aléatoires discrètes, qui à un résultat associent un nombre entier ainsi que leurs propriétés (espérance, variance, valeur moyenne, fonction génératrice). On considère également le lien que peuvent avoir deux variables aléatoires (indépendance, corrélation) et la convergence de variables aléatoires. On présente également les bases de la statistique descriptive ainsi que les valeurs remarquables d’un échantillon (moyenne empirique, quantiles).

- Espaces probabilisés (modélisation dans le cas au plus dénombrable, indépendance, probabilités conditionnelles)
- Variables aléatoires discrètes (définition, loi, espérance, variance, fonction génératrice, écart-type, loi conditionnelle, couples de variables aléatoires discrètes, coefficient de corrélation linéaire)
- Convergence (en moyenne quadratique, en probabilité, loi faible des grands nombres, évocation du théorème limite central)
- Statistiques descriptives (fonction de répartition empirique, moyenne quadratique, moyenne et variance empiriques, quantiles, diagramme des fréquences).
Cours / Topos en synchrone (heures)
10.00
Travaux dirigés en synchrone (heures)
18.00
Nom du bloc de compétence
10323
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Programmation système
Thème(s) abordé(s) dans le module
Cette matière présente les principaux concepts manipulés par les systèmes d'exploitation sous l'angle de la programmation avec les primitives systèmes : fichiers et répertoires, gestion des périphériques, processus, droits, tubes et signaux. L'accent est mis sur la portabilité des applications au travers de l'utilisation de la norme POSIX. Travaux pratiques : programmation en langage C sous Linux.

- Historique des systèmes d’exploitation
- Introduction à la programmation système sous Unix et à la norme Posix
- Primitives système pour l’accès aux fichiers et répertoires sous Unix
- Introduction au principe de la multiprogrammation
- Primitives système pour la gestion des processus sous Unix
- Primitives système pour la gestion des tubes Posix
- Introduction à la notion de programmation évenementielle / asynchrone
- Interruptions et signaux
- Primitives système pour la gestion des signaux Unix
Titre du module
Réseaux IP
Thème(s) abordé(s) dans le module
Cette matière constitue une introduction aux réseaux informatiques. Elle présente la notion de service et de protocole à travers l'étude du modèle OSI et TCP/IP. Les protocoles Ethernet et IP (versions 4 et 6) y sont étudiés : principe de commutation, adressage et traduction d'adresses, découverte de voisins, configuration automatique, équipements d'interconnexion (concentrateur, commutateur, routeur). Durant cette UE, les étudiants mettent en œuvre les différents concepts étudiés lors de travaux pratiques sur des équipements professionnels.

- Introduction aux réseaux informatique, modèle OSI
- Réseaux locaux et protocole Ethernet
- Protocole IPv4
- Protocole IPv6
Titre du module
Structures de données et algorithmes 2
Thème(s) abordé(s) dans le module
Cette UE présente les structures de données relationnelles classiques :
- Tables : avec adressage calculé, associatif, indexé, partagé et haché ;
- Arbres et forêts : binaires, généraux, préfixés, (auto-)équilibrés, e.g., AVL et B-arbres ;
- Graphes : non orientés, orientés, acycliques, etc.

Au niveau algorithmique, il s’agira principalement d’étudier les algorithmes de parcours classiques (en profondeur et en largeur), la dérécursivation et les algorithmes de tri (interne ou externe). Les algorithmes de tri en particulier seront utilisés pour illustrer et approfondir les notions d’optimalité et de complexité introduites en SDA1. Sur les graphes, seuls quelques exemples seront traités : la fermeture transitive avec l’algorithme de Warshall et le calcul d’une forêt de recouvrement dans le cas orienté (algorithme de Tarjan).

Dès lors que la notion de type abstrait des structures étudiées aura été formellement introduite et définie (avec la méthode de spécification algébrique initiée en SDA1), la seconde étape consistera à rigoureusement spécifier les algorithmes manipulant ces structures. Cette spécification sera essentiellement réalisée sous une forme équationnelle équivalente à une approche fonctionnelle mais, sur certains exemples, on raffinera la spécification pour produire des algorithmes itératifs traduits ensuite dans un pseudo-langage impératif. Enfin, il s’agira d’aller au bout de la démarche avec des implantations concrètes en programmation impérative, par exemple en C.
Titre du module
Programmation orientée objets 2
Thème(s) abordé(s) dans le module
Cette matière a pour objectif apprendre à concevoir une solution à un problème logiciel par la conception d’une solution orientée objets.

Les différents sujets abordés seront :
- Famille de langages : les différents langages orientés, et en particulier les langages orientés objets seront regroupés et classés en fonction des concepts implémenté. Les catégories vues seront : langage orienté objets à classes ou langage orienté objet à prototype ? Langages typés (et règles de typage) ou non typé ? Objet pur ou utilisation possible de type de base ? Langage généralement compilé ou interprété ?
- Famille d'héritage : simple, multiple, dynamique, alimentaire, par interface, par trait, par mixins.
– Gestion des erreurs : protection par exception, programmation par contrat.
– Gestion automatique de la mémoire : principes de fonctionnement du ramasse-miettes. Comparaison d’algorithmes standard de gestion automatique de la mémoire.
- Parallélisme : définition et utilisation de thread, problème des accès concurrent.

Différents langages de programmation pourront être présentés et utilisés au cours de l’UE. En particulier, les langages principalement utilisés seront :
- Java : Langage à classe, typé, semi-compilé ; héritage simple ; interface ; exception ; généricité ; thread ; gestion de la mémoire par ramasse miette
- C++ : Langage à classe, typé, compilé ; héritage multiple ; gestion de la mémoire manuelle.
Titre du module
Programmation web 2
Thème(s) abordé(s) dans le module
Ce cours a pour objet le cycle de vie d'un projet web, du recueil des besoins utilisateurs à la mise en production d'un projet. Il s'agira en particulier de s'interroger sur la mise en place d'un projet et de mettre en œuvre celui-ci à travers différents langages et frameworks web, en front-end (programmation client) et en back-end (programmation serveur).

Cette UE a pour objectif de comprendre tout le cycle de vie d’un projet web :

Recueil des besoins utilisateur :
- création d’issues et gestion de projet sur un outil de conception comme Gitlab
- création d’une maquette avec Figma.

Mise en place du projet :
- comment s’articule un projet web ?
- comment organiser ses fichiers ?

Développement d’un projet complet avec les langages :

*CSS :
flex
grid
responsive design

*HTML :
sémantique d’une page web
notions de SEO
notions d’UX design

*Javascript :
manipulation du DOM
appel d’APIs avec AJAX

*PHP :
gestion et sécurisation d’une base de données
programmation orientée objet
création d’APIs

Mise en production d’un projet

Aller plus loin et présentation d’outils modernes de programmation web :
- ViteJS : Un bunlder moderne pour programmer proprement et rapidement
- Présentation de frameworks:
*Javascript : VueJS et React
*PHP : Symfony.
Cours / Topos en synchrone (heures)
90.00
Travaux dirigés en synchrone (heures)
38.00
Travaux pratiques en groupe en synchrone (heures)
66.00
Nom du bloc de compétence
10335
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Analyse numérique appliquée
Thème(s) abordé(s) dans le module
Dans ce module, nous étudierons des méthodes numériques pour résoudre des problèmes mathématiques. Les notions seront abordées sous trois angles : la formulation mathématique, l’approximation algorithmique, et l’implémentation pratique avec une bibliothèque de calcul numérique. La complexité et la vitesse de convergence des algorithmes seront étudiées. Trois grandes notions seront étudiées : calcul d’intégrales et de dérivées ; approximation des moindres carrés ; valeurs propres et vecteurs propres. Nous prendrons comme pré-requis le module d’analyse du semestre 3.

- Méthodes numériques pour le calcul des intégrales (méthodes des rectangles, des trapèzes).
- Approximation des dérivées par différences finies.
- Conditionnement de matrice, valeurs propres et vecteurs propres.
- Régression linéaire, approximation des moindres carrés, changements de variables dans les problèmes de régression.
Cours / Topos en synchrone (heures)
10.00
Travaux dirigés en synchrone (heures)
8.00
Travaux pratiques en groupe en synchrone (heures)
8.00
Nom du bloc de compétence
10381
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Communication
Thème(s) abordé(s) dans le module
Théorie de la communication : Les sciences de l'information et de la communication (SIC). Définition du champ d'étude des SIC. Application à la communication. Les nouvelles technologies de l'information et de la communication. Les communications de masse, les communications de type publicitaire, les communications d'entreprise. Les processus de la communication, la transmission de l'information, l'influence.
Titre du module
Économie et gestion
Thème(s) abordé(s) dans le module
Le but de cours est d’initier les étudiants au concepts de base de l’économie et plus particulièrement la microéconomie et la théorie de la firme. Un intérêt particulier sera porté aux fonctionnements des marchés et aux comportements individuels en distinguant les différentes configurations de l’économie.

PARTIE 1 Qu’est-ce que l’économie ?
- Chapitre 1 Introduction: Un moteur de croissance et de découverte

PARTIE 2
- Chapitre 2 L’offre et la demande
- Chapitre 3 Contrôle des prix et quotas : l’intervention sur les marchés ..
- Chapitre 4 L’élasticité

PARTIE 3
- Chapitre 5 Les individus et les marchés
- Chapitre 6 La prise de décisions par les individus et les firmes

PARTIE 4
- Chapitre 7 Les décisions de production
- Chapitre 8 La concurrence parfaite et la courbe d’offre
- Chapitre 9 Le monopole.
- Chapitre 10 La concurrence monopolistique et la différenciation des produits
Cours / Topos en synchrone (heures)
20.00
Nom du bloc de compétence
10359
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Anglais ou allemand
Thème(s) abordé(s) dans le module
Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
La liste complète des enseignements est disponible sur le site de la faculté des Langues.
Travaux dirigés en synchrone (heures)
20.00
Nom du bloc de compétence
10345
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Stage facultatif
Thème(s) abordé(s) dans le module
Possibilité de faire un stage en entreprise.
Nom du bloc de compétence
10367
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Probabilités et statistiques 2
Thème(s) abordé(s) dans le module
Cette unité d’enseignement complète dans un premier temps le cours de probabilités de l’unité de probabilité et statistique 1 en abordant les variables aléatoires à densité. Dans un second temps, elle s’intéresse aux données statistiques, d’une part d’un point de vue descriptif, et d’autre part d’un point de vue inférentiel, via les notions d’estimation et de tests d’hypothèses. L’ensemble des notions rencontrées dans cette UE est illustré à l’aide du langage R.
Titre du module
Traitement du signal
Thème(s) abordé(s) dans le module
Ce cours présente les bases de la théorie et du traitement du signal, c'est-à-dire la représentation mathématique et le traitement informatique des signaux physiques (son, lumière, ondes radio, wifi, etc.). L'UE abordera l'ensemble de la chaîne de traitement : acquisition, échantillonnage (théorème de Shannon), analyse (transformée de Fourier), filtrage, convolution, transmission. Elle présentera différents types d'applications et leur mise en œuvre (traitement et compression de signaux).

- signaux de base (sinusoide, marche, impulsion) et propriétés (periodicité, phase)
- représentation en temps discret et continu, en valeur continue ou quantifiée
- convolution
- transformée et série de Fourier pour le signal 1D
- théorème de Shannon pour l’échantillonnage
- filtrage linéaire
- entropie et théorème de shannon pour la transmission
- base de la compression
Cours / Topos en synchrone (heures)
26.00
Travaux dirigés en synchrone (heures)
14.00
Travaux pratiques en groupe en synchrone (heures)
12.00
Nom du bloc de compétence
10323
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Architecture des systèmes d'exploitation
Thème(s) abordé(s) dans le module
Ce cours présente le fonctionnement des principaux composants architecturaux des systèmes d'exploitation (noyau, gestion mémoire, processus et threads, fichiers et périphériques), l'interface avec le matériel (interruptions, traduction d'adresses, gestion des périphériques) et les mécanismes sous-jacents (pagination, synchronisation, commutation, ordonnancement, etc.). Les mécanismes de synchronisation et les problèmes de concurrence sont abordés à travers la programmation en C avec les threads POSIX et le partage de mémoire entre processus.
Titre du module
Algorithmes des réseaux
Thème(s) abordé(s) dans le module
Ce cours présente les algorithmes et mécanismes mis en œuvre dans les protocoles réseaux pour assurer la fiabilité et augmenter l’efficacité des communications : numérotation et accusés de réception, retransmission continue et sélective, anticipation à l’émission et à la réception, contrôle de flux et de congestion. Une étude approfondie du protocole TCP permettra de contextualiser ces algorithmes et mécanismes. Cette approche permet de développer une compréhension approfondie des concepts individuels ainsi que de leur application concrète dans un protocole réseau majeur tel que TCP. L’aspect pratique met l’accent sur le développement d’applications communicantes et la mise en œuvre des algorithmes étudiés via l’API socket en langage C.
Titre du module
Bases de données 2
Thème(s) abordé(s) dans le module
Dans cette matière, les étudiants acquerront des connaissances sur le fonctionnement et l’utilisation des systèmes de gestion de bases de données (SGBD). Ils apprendront la programmation procédurale en PL/SQL, notamment pour pouvoir écrire des procédures stockées et des fonctions pour bases de données. L’UE enseignera aussi à concevoir des déclencheurs pour renforcer la cohérence et la sécurité des données. Le rôle et le fonctionnements des index seront présentés, ainsi que leur utilisation pour améliorer les performances de requêtes. L’UE présentera aussi le fonctionnement des transactions, en particulier les propriétés d’atomicité, de cohérence, d’isolation et de durabilité (ACID). Les implémentations par SGBD de méthodes à base de verrouillage ou d’estampillage afin de garantir ces propriétés seront aussi traitées. L’UE abordera aussi l’optimisation de requêtes par le SGBD par la génération et l’analyse de plans d’exécutions.
Titre du module
Génie logiciel
Thème(s) abordé(s) dans le module
Contexte d'entreprise : acteurs, enjeux, aspects organisationnels. Périmètre, planification et maîtrise de projet informatique. Qualités logicielles. Cycles de vie, modèles de développement. Expression du besoin, outils d'analyse, spécification. Méthodes de conception. Modélisation, analyse et conception orientée objets : UML. Cas d'utilisation, activités, diagrammes de classes et d'objets, de séquence, de communication. Études de cas. Technique de production d'un code de qualité professionnelle. Pratiques agiles, Extreme Programming, Srum. Équipes de développement, rôles, travail collaboratif. Évaluation : revue de code, stratégies de test, types de tests, automatisation, intégration descendante et ascendante et d'un système, validation, déploiement, métriques. Maintenance. Gestion de version, gestion de configuration. Pipeline de documentation. Ateliers de Génie Logiciel, outils automatisés de développement, intégration continue.
Titre du module
Problem solving with algorithms
Thème(s) abordé(s) dans le module
This course follows a problem-based learning (PBL) approach. Students work in a team. Two real-life problems are successively given to the students who need to:
- Design an algorithm to solve the problem;
- Write its specifications;
- Choose and describe the most relevant data structures;
- Implement the algorithm (possibly with the help of a generative AI) and test it.

For each problem, one lecture is planned at the end to formalize important concepts.
This course is taught in English only.
Cours / Topos en synchrone (heures)
74.00
Travaux dirigés en synchrone (heures)
54.00
Travaux pratiques en groupe en synchrone (heures)
44.00
Nom du bloc de compétence
10335
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Graphes
Thème(s) abordé(s) dans le module
Bases de théorie des graphes
Description et études théoriques (validité, complexité) des algorithmes de parcours (BFS, DFS), arbres couvrants minimaux, plus courts chemins, flot maximal
Cours / Topos en synchrone (heures)
12.00
Travaux dirigés en synchrone (heures)
10.00
Travaux pratiques en groupe en synchrone (heures)
8.00
Nom du bloc de compétence
10381
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Projet Professionnel de l'étudiant 2
Thème(s) abordé(s) dans le module
L’objectif de ces séances est de réfléchir à son projet professionnel, de travailler à l’identification et à la valorisation de ses compétences afin de pouvoir les transférer dans le monde professionnel. Différents outils sont abordés : CV, lettre de motivation, entretien d'embauche, réseaux sociaux professionnels.
Travaux dirigés en synchrone (heures)
12.00
Nom du bloc de compétence
10359
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Interaction hommes-machines
Thème(s) abordé(s) dans le module
Historique de l'interaction Homme/Machine. Conception : éléments de psychologie et de perception appliqués aux systèmes interactifs. Types et gestion des périphériques d'entrée/sortie, interdépendance avec une interface. Styles d'interaction. Ergonomie : principes et attributs. Design d'interface graphique, conception centrée sur l’utilisation. Profils d'utilisateurs, traduction du besoin en fonctionnalités. Conception fonctionnelle, conception technique. Choix des composants d'une IHM. Maquettes et prototypes, outils de conception (par ex. Figma). Egalité vis à vis du contenu, accessibilité. Localisation, internationalisation. Partie technique : techniques d'implémentation, fonctions callback, gestion d'événements. Outils de développement, boîtes à outils, générateurs d'interfaces. Techniques de validation. Adaptive design, responsive design. Mise en pratique: prototypage avec Figma, et implémentation d'une interface interactive avec Qt en C++, utilisation de QtDesigner.
Titre du module
Intelligence artificielle
Thème(s) abordé(s) dans le module
Enseignement dispensé partiellement en anglais

Ce cours vise à offrir une introduction panoramique du domaine de l'intelligence artificielle. Une grande partie du cours se concentre sur l'apprentissage automatique et couvre les bases des arbres de décision, des réseaux de neurones artificiels (apprentissage supervisé), et du clustering k-means (apprentissage non supervisé) ; cette partie couvre également l'évaluation des modèles et des données. Les chapitres suivants abordent d'autres facettes de l'intelligence artificielle, telles que les agents, les jeux et la résolution de problèmes.

Version en Anglais:
This course aims to offer a comprehensive introduction to the field of artificial intelligence. A large part of the course focuses on machine learning and covers the basics of decision trees, artificial neural networks (supervised learning), and k-means clustering (unsupervised learning); this part also covers model evaluation and data. The subsequent chapters address additional facets of artificial intelligence, such as agents, games, and problem solving.
Titre du module
Réseaux locaux
Thème(s) abordé(s) dans le module
Ce cours se focalise sur l'interconnexion de réseaux informatiques au niveau liaison (couche 2) du modèle OSI. La première partie du cours propose d'étudier les protocoles d'accès au support de communication : méthodes probabilistes (CSMA et ses dérivées) et déterministes (TDMA, FDMA, anneau à jeton). L'accent est ensuite porté sur l'interconnexion de réseaux locaux au niveau trame avec l'étude du protocole Spanning Tree et des réseaux locaux virtuels (VLAN). Introduction aux codes détecteurs et correcteurs d'erreurs. Les travaux pratiques permettront de mettre en œuvre les différents protocoles et technologies étudiés.
Titre du module
Géométrie pour la 3D
Thème(s) abordé(s) dans le module
Acquérir les bases de la géométrie linéaire dans le plan et dans l'espace. Maîtriser la composition de transformations géométriques pour être capable de développer une application pour la 3D à l’aide d’OpenGL. Introduction à la géométrie algorithmique dans le plan en terme méthodologique et d’algorithmes robustes.

Rappels des transformations géométriques de base, de leurs propriétés, de leur composition en coordonnées homogènes. Rappels des équations générales et paramétriques des droites et des plans. Rappels sur les vecteurs, produits scalaires et vectoriels, conditions de colinéarité, coplanarité, orthogonalité.

Positions relatives d’un point et d’une droite, de deux droites, d’une droite et d’un plan ou leurs restrictions à un segment ou un triangle. Présentation des coordonnées barycentriques. Tests et calculs d’intersection.

Présentation des polygones. Introduction des bases de la géométrie algorithmique à travers quelques algorithmes dans le plan comme le calcul d’aires, le problème de la galerie d’art, l’enveloppe convexe, la triangulation etc. jusqu’à l’évocation des diagrammes de Voronoï.

Durant ce cours, les étudiants mettent en pratique les compétences visées via une application 3D à l'aide d'OpenGL.
Titre du module
Programmation mobile
Thème(s) abordé(s) dans le module
Cette matière est dédiée au développement d’applications mobiles (Android ou iOS) en insistant sur les bonnes pratiques de programmation.

Contenu du cours :
- Introduction au framework Android à partir de l’IDE Android Studio (en Java et Kotlin)
- Structure d’un projet Android (arborescence, notion de Manifest, système de build gradle)
- Classes fondamentales du framework (Activity, Intent, Fragment, FragmentManager, Layout, …)
- Notion de ViewModel, RecyclerView, ViewHolder, Adapter, Designs patterns dédiés à la programmation mobile (MVC, MVVM)
- Gestion des threads et des évènements sous Android Requêtes asynchrones (Volley, JSonObject Request, etc..)
- Gestion de la persistance (Bundle, SharedPreferences, accès au système de fichiers, BDD SQLite)
- Gestion des capteurs
Cours / Topos en synchrone (heures)
48.00
Travaux dirigés en synchrone (heures)
6.00
Travaux pratiques en groupe en synchrone (heures)
46.00
Nom du bloc de compétence
10335
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Théorie des langages
Thème(s) abordé(s) dans le module
Cet enseignement pose les fondements de la théorie des langages. Son objectif premier est la compréhension de certains mécanismes inhérents à la conception des langages de programmation et à une introduction à la théorie de la calculabilité. Ses applications peuvent néanmoins s'étendre à d'autres domaines scientifiques. Le plan du cours est le suivant : après l'introduction d'un certain nombre d'outils formels en relation avec les notions de langage formel, nous présenterons en détails la classe des langages rationnels et la classe des langages algébriques. Nous présenterons ainsi différentes notions correspondant à la classe des langages rationnels : les expressions rationnelles ; les automates d'états finis (déterministes et non déterministes) ; la déterminisation des automates ; des propriétés de stabilité de la classe des langages rationnels ; le lemme de l’Étoile puis la minimisation des automates. Nous présenterons ensuite différentes notions correspondant à la classe des langages algébriques : les grammaires algébriques ; les automates à pile ; les propriétés de stabilité de la classe des langages algébriques ; le lemme de la double Étoile puis les équivalences automates-grammaires. Ce cours se terminera par une introduction aux machines de Turing qui sont des « ultimes » généralisations de la notion d'automate.
Nom du bloc de compétence
10381
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Projet intégrateur
Thème(s) abordé(s) dans le module
Ce projet permet de mettre en évidence, par la pratique, les interactions qui existent entre les connaissances et compétences acquises dans des UE différentes. Il a également vocation à impliquer les étudiants dans des projets d’envergure relativement large sur la durée du semestre, et ainsi à mettre progressivement en avant les concepts ou outils de gestion de projet.

Évaluation (documents écrits et soutenance) en anglais.

Version en Anglais:
This project provides an opportunity to demonstrate, through practical experience, the interactions that exist between the knowledge and skills acquired in different courses. It is also designed to involve students in relatively large-scale projects over the semester, and thus to gradually bring project management concepts and tools to the fore.

Assessment (written documents and oral presentation) are in English.
Travaux pratiques en groupe en synchrone (heures)
20.00
Nom du bloc de compétence
10444
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Méthodologie scientifique
Thème(s) abordé(s) dans le module
L'objectif de ce cours est de proposer une introduction à ce qui constitue la méthodologie scientifique et la démarche expérimentale. Après avoir examiné dans les grandes lignes différents éléments qui caractérisent la recherche aujourd'hui, on montrera un aperçu de l'évolution de la démarche scientifique depuis l'époque moderne jusqu'à nos jours en abordant certains concepts épistémologiques marquants, et comment ces derniers ont eux aussi évolués.
Titre du module
Médiation scientifique en info
Thème(s) abordé(s) dans le module
Cette matière consiste à participer soit à la cordée de la réussite « Décodeuses d’informatique » soit à « Partenaires scientifiques pour la classe ».

Partenaires scientifiques pour la classe (PSC, anciennement ASTEP) est une action de la fondation La main à la pâte soutenue par l’Education nationale (EN), voir https://www.fondation-lamap.org/fr/psc. L’étudiant intervient en classe d’école primaire : il co-construit et co-anime une séquence scientifique avec l’enseignant (stage filé). L’étudiant a un rôle de référent scientifique. Il apprend à co-conduire un projet, s’adapter à un milieu professionnel et reformuler ses connaissances à un niveau adapté.

La cordée de la réussite « Décodeuses d’informatique » a pour objectif d’améliorer la vision de ce qu’est l’informatique chez les élèves de collège et lycée, et d’encourager les vocations pour les études d’informatique, notamment en luttant contre les stéréotypes de genre. Il s’agit d'interventions en classe entière au collège ou au lycée.

Pour les deux dispositifs, les interventions en classe mettront en œuvre des ateliers d’informatique débranchée. L’informatique débranchée consiste à étudier des concepts fondamentaux de l’informatique sans utiliser d’ordinateur, à l’aide d’activités ludiques et de manipulations.

Contenu des enseignements
- Définition de l’informatique à travers 4 mots clés
- Formation à l’enseignement de l’informatique à travers l’informatique branchée et débranchée.
- Formation préalable aux séances en classe par des formateurs EN et Universitaires : principes et intérêt de PSC et des Cordées de la Réussite.
- Pour PSC : programmes des sciences à l’école, principes de l’enseignement des sciences fondé sur l’investigation, comment garder des traces, analyser et rapporter l’expérience vécue.
- Pour la Cordée : introduction à la médiation en informatique, stéréotypes et parité homme/femme en informatique.
- Suivi pendant le stage PSC par des conseillers pédagogiques (permanences et visite en classe), et suivi à distance par l’équipe encadrante Unistra et EN via un espace d’échange Moodle pour aider à la mise en place d’une démarche scientifique et pédagogique de qualité.
- Co-animation des ateliers de la cordée avec des enseignants confirmés.
Titre du module
Droit
Thème(s) abordé(s) dans le module
Les nouvelles technologies et le droit : la propriété intellectuelle et la protection des créations informatiques, les principes du droit d'auteur et du droit des brevets, le cas du logiciel, des bases de données et de l'oeuvre multimédia. L'exploitation des créations informatiques (contrat de cession et de licence). L'informatique et les libertés (la CNIL, les obligations des détenteurs de fichiers, les droits des personnes fichées). La délinquance informatique (la contrefaçon des logiciels et des bases de données, l'intrusion dans les systèmes informatiques, l'internet et la responsabilité des fournisseurs d'accès). La protection des données personnelles (CNIL, sanction des fuites, obligations du responsable du traitement). Le droit de la propriété intellectuelle appliqué aux créations informatiques (logiciels, bases de données, dessins et modèles, brevets).
Cours / Topos en synchrone (heures)
32.00
Travaux dirigés en synchrone (heures)
8.00
Nom du bloc de compétence
10359
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Anglais ou allemand
Thème(s) abordé(s) dans le module
Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
La liste complète des enseignements est disponible sur le site de la faculté des Langues.
Travaux dirigés en synchrone (heures)
20.00
Nom du bloc de compétence
10345
Etape(s) concernée(s)
Phase de rattachement du bloc de compétence
Connaissances requises
Connaissances, Savoir-faire, Savoir-être abordés
Titre du module
Stage facultatif
Thème(s) abordé(s) dans le module
Possibilité de faire un stage en entreprise.
Nom du bloc de compétence
10367
Etape(s) concernée(s)
Label attribué
Non
Période(s) de démarrage d’une session (promotion)
Zone géographique
Adresse
UFR de mathématique et d'informatique, 7 rue René Descartes - 67084 Strasbourg Cedex
Mois de début
Nombre minimum d’apprenants par session
385
Nombre maximum d’apprenants par session
385
Domaine de compétences du diplôme
Présentation générale
La licence d'informatique propose une formation en informatique qui vise à donner à un étudiant les connaissances scientifiques et les compétences techniques lui permettant, soit de poursuivre ses études dans un master d’informatique, soit de s’insérer dans le monde professionnel dans les métiers de l’informatique.

Le premier semestre de la première année L1 est commune avec la licence de sciences, mention Mathématiques.

Le deuxième semestre de la première année, la deuxième et la troisième année sont spécifiques à l'informatique.

Licence d'informatique

Cursus : Enseignement supérieur (Universités, Ecoles d'ingénieur, Ecoles privées,...)
Parcours : Licence / Bachelor+ Master / Mastère
Toutes les informations affichées dans cette page sont communiquées à titre indicatif et sont non contractuelles. Veuillez contacter l’organisme de formation pour toute vérification.
  • La licence d'informatique propose une formation en informatique qui vise à donner à un étudiant les connaissances scientifiques et les compétences techniques lui permettant, soit de poursuivre ses études dans un master d’informatique, soit de s’insérer dans le monde professionnel dans les métiers de l’informatique.

    Le premier semestre de la première année L1 est commune avec la licence de sciences, mention Mathématiques.

    Le deuxième semestre de la première année, la deuxième et la troisième année sont spécifiques à l'informatique.
    • Semestre 1

      Mathématiques pour l'informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 111.0 heure(s) dont 111.0 heure(s) en synchrone
      • Cours / Topos en synchrone (heures) : 111.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Mathématiques élémentaires
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours a pour but de (re)voir et approfondir les connaissances de mathématiques du lycée (spécialité mathématique en première et terminale).

          - Ensemble de nombres basiques. Intervalles de R. Opérations sur ces ensembles, quantificateurs.
          - Fonctions élémentaires : exp., log., trigonométriques, leurs représentations graphiques, et leurs propriétés algébriques et application à la résolution d’équations faisant intervenir ces fonctions.
          - Calcul littéral sur les fonctions polynomiales et rationnelles (division euclidienne, factorisation, décomposition en éléments simples)
          - Nombres complexes : forme algébrique et forme exponentielle; module, argument ; exponentielle complexe ; interprétation géométrique ; puissances complexes ; linéarisation de polynômes trigonométriques, racines de 1, résolution d’équations complexes ; étude de transformations complexes du plan du type (z -> az+b)
          - Suites récurrentes affines d’ordre 1 (arithmético-géométriques) et linéaire d’ordre 2.
          - Fonctions composées, réciproques, leurs dérivées (approche calculatoire).
          - Géométrie analytique du plan et de l’espace : coordonnées cartésiennes, équations de droites et plans, calcul vectoriel (rappels de produit scalaire, projections ; produit vectoriel), droites, cercles, plans, sphères, leurs intersections.
      • Algèbre 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours introduit au calcul matriciel et l'arithmétique des entiers.

          - Calcul matriciel et systèmes linéaires :
          °Calcul matriciel : matrices échelonnées, pivot de Gauss, inversibilité.
          °Résolution de systèmes linéaires.
          °Déterminant.

          - Arithmétique dans Z :
          °division euclidienne ; diviseurs communs à deux entiers, pgcd, ppcm ; lemme de Gauss ; théorème de Bézout ; algorithme d’Euclide de calcul de pgcd ;
          °nombres premiers ; existence et unicité de la décomposition en produit de facteurs premiers ;
          °congruences : additions et multiplications ; systèmes de congruences, théorème chinois ; petit théorème de Fermat
      • Analyse 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours vise à développer les premières connaissances en analyse (fonctions classiques, limites, études de fonctions, intégration, équations différentielles).

          - Fonctions usuelles : hyperboliques (cosh, sinh, tanh) et fonctions trigonométriques réciproques (arcsin, arccos, arctan))
          - Calcul de limites (opérations arithmétiques, croissances comparées, taux d’accroissement, introduction des notions d’équivalence et négligeabilité)
          - Étude complète de fonctions (variations, convexité, asymptotes…)
          - Calcul de primitives : fonctions élémentaires, changement de variable, intégration par parties. Cas des fonctions de type fractions rationnelles, polynômes trigonométriques, polynômes et fractions rationnelles exponentiels.
          - Équations différentielles linéaires d’ordre 1 et 2 à coefficients constants avec et sans second membre :
          °On se contente ici de traiter les cas suivants :
          — y′(x) + a(x)y(x) = b(x) pour des fonctions usuelles a et b données (variation de la constante)
          — ay′′(x) + by′(x) + cy(x) = u(x) pour des constantes a, b, c données, et une fonction u de la forme (polynôme) x (exponentielle).
      Informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 90.0 heure(s) dont 90.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 10.0
      • Cours / Topos en synchrone (heures) : 46.0
      • Travaux pratiques en groupe en synchrone (heures) : 34.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Algorithmique et programmation 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette UE est un premier contact avec la programmation informatique. Elle commence par introduire les types de données élémentaires, les constantes, les variables, les expressions, et les structures de contrôle (conditionnelles et boucles). Puis sont étudiés les fonctions et les types de données composées (n-uplets et listes). Cette UE introduit également la notion d'algorithme, commune à tous les langages informatiques ; algorithmes itératifs et récursifs permettant de créer, interroger, trier, traiter différents types de données. Les bases de la méthodologie de résolution de problèmes sont présentées : analyse et représentation d'un problème, décomposition fonctionnelle, les notions de pré-condition et post-condition et élaboration de jeux de tests. Enfin, les bases de l’analyse de la complexité des algorithmes est abordée, en particulier à travers différents algorithmes de tri (tri à bulles, tri par insertion, tri fusion). Le langage pour cet enseignement est le python.
      • Bases de l'architecture informatique
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette UE présente les principes de base du fonctionnement des systèmes informatiques, de la représentation de l'information jusqu'à son traitement automatisé. Le codage des différents types d'information (entiers naturels, entiers relatifs, réels, caractères, etc.) dans un format adapté à leur traitement informatique (arithmétique et traitements associés) y est présenté. L'architecture des ordinateurs (architecture de Von Neumann, unité de traitement, mémoire, entrées/sorties) et son fonctionnement (instructions, cycle d'exécution, utilisation des adresses mémoire) y sont également étudiés. Cette UE fait le lien entre architecture matérielle et programmation à bas niveau (en langage machine et en langage d'assemblage). Les notions les plus importantes à connaître concernant le langage d'assemblage y sont présentés : jeu d'instruction, format des instructions, "label" ou étiquette, registre, les différents modes d'adressage : immédiat, relatif, direct, indirect).
      Méthodologie
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 53.0 heure(s) dont 53.0 heure(s) en synchrone
      • Cours / Topos en synchrone (heures) : 34.0
      • Travaux pratiques en groupe en synchrone (heures) : 19.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Kit de survie pour les étudiants de mathématique et d'informatique
        • Type de module : obligatoire
        • Thèmes abordés :
          Cet enseignement vise à donner aux étudiants une culture, des méthodes et des outils de travail pour étudier les mathématiques et l'informatique à l’Université.

          Les principaux thèmes étudiés sont :
          - Les méthodes de travail spécifiques aux études universitaires
          - Les stratégies et méthodes pour l'apprentissage d'un cours, la résolution d'exercices et de problèmes
          - L’histoire et les origines de l'informatique des premiers outils de comptage aux ordinateurs modernes
          - Une culture informatique de base : composant d’un ordinateur, typologie des langages, outils de programmation, …
          - Les principaux métiers et principales tendances en informatique
          - L’utilisation du langage LaTeX pour la rédaction de rapports
          - Manipulation de fichiers de de dossiers (navigation dans l'arborescence, création/édition/suppression)
          - Gestion des droits utilisateurs
          - Gestion des processus
          - Principales commandes shell
          - Gestion des redirection de sortie et d'entré de processus
          - Création de variable et de script shell
      • Introduction au langage formel et à la démonstration
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours est une introduction au langage mathématique et à la démonstration.

          Qu’est-ce qu’une démonstration mathématique ? Et pourquoi faire des démonstrations ?

          Contenu :
          - Langage mathématique: statut des énoncés mathématiques et vocabulaire (axiome, lemme, théorème, corollaire, conjecture, prémisse, conclusion, hypothèse, contraposée, réciproque, condition nécessaire, suffisante, conjonction, disjonction), notion de variable libre ou liée, connecteurs logiques et quantificateurs, règles de permutation des quantificateurs, quantificateurs relativisés (∀ x ∈ R, P(x)), expression formelle de l’unicité, négation d’une formule quantifiée.
          - Rédaction d’une démonstration, règles logiques, y compris raisonnement par l’absurde, raisonnement par cas.
          - Vocabulaire ensembliste: l’ensemble des x tels que…, union, intersection, complémentaire, paire, nuplet, produit cartésien.
          - Fonctions: image directe, image inverse, injectivité, surjectivité, bijectivité.

          - Relations: relation d’équivalence, relation d’ordre, classe d’équivalence, quotient.
          - Propriétés fondamentales de N. Principe de récurrence.
      Langues
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 20.0 heure(s) dont 20.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 20.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Anglais ou allemand
        • Type de module : obligatoire
        • Thèmes abordés :
          Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
          La liste complète des enseignements est disponible sur le site de la faculté des Langues.
    • Semestre 2

      Mathématiques pour l'informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 52.0 heure(s) dont 52.0 heure(s) en synchrone
      • Cours / Topos en synchrone (heures) : 52.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Algèbre 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Cet enseignement vise à donner aux étudiants une introduction à l’algèbre et à la manipulation de structures algébriques en étudiant de manière détaillé l’exemple de l’algèbre linéaire.

          - Espaces vectoriels. Applications linéaires. Lien avec matrices. Changement de base.
          - Espaces vectoriels sur un corps (exemples K = Q, R, C). Exemples : K^n, K[X], espaces de suites, de fonctions.
          - Sous-espaces vectoriels ; somme, intersection, sommes directes, supplémentaires.
          - Dimension : familles génératrices, libres, espaces vectoriels de dimension finie, théorème de la base incomplète, dimension d'un espace vectoriel, d'un sous-espace vectoriel.
          - Applications linéaires : somme, composition. Exemples : formes linéaires, endomorphismes, symétries, projecteurs. Noyau, image. Rang d'une application linéaire. Théorème du rang.
          - Matrice d'une application linéaire dans une base. Matrices de passage. Matrices équivalentes et semblables.
      Informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 160.0 heure(s) dont 160.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 28.0
      • Cours / Topos en synchrone (heures) : 76.0
      • Travaux pratiques en groupe en synchrone (heures) : 56.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Bases de données 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours propose, d'une part, une introduction approfondie aux principes théoriques de la conception des Bases de Données Relationnelles, et d'autre part, une formation pratique à l'accès et à la manipulation des bases de données relationnelles au moyen du langage SQL (langage de requêtes structuré).

          Ce cours présente les concepts et les outils de base permettant de concevoir et de manipuler des bases de données relationnelles :
          - algèbre relationnelle, qui sert de base théorique aux langages de requêtes des SGBD (Systèmes de Gestion des Bases de Données) relationnels.
          - langage de requêtes structuré SQL (Structured Query Language) : langage de définition des données : création/suppression des tables et des vues, langage de manipulation des données : insertion/mise à jour/suppression et consultation des données, langage de contrôle des données: gestion des droits des utilisateurs de la base de données.
          - théorie de la normalisation, permettant de définir une base de données relationnelle cohérente et non redondante.
          - modélisation entités-associations, permettant de définir le schéma conceptuel de la base de données, puis de le traduire sous forme de tables.

          Les compétences acquises en programmation SQL sont applicables dans les environnements de SGBD relationnels classiques, libres ou propriétaires, tels que Oracle, PostgreSQL, Microsoft Access, etc.
      • Programmation web 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Concevoir un site web responsive en HTML et CSS, optimisé pour mobiles et ordinateurs de bureau, accessibles à tous.
          Une approche sémantique est privilégiée, pour les éléments de contenu ainsi que pour les éléments d'organisation de contenu.
          Acquérir les bases de Javascript en termes d'algorithmique.
          Comprendre comment Javascript accède au D.O.M. (Document Object Model) pour le manipuler et le modifier.
          Utiliser des API pour interagir avec le document HTML, et exploiter des services en ligne, ou les données des capteurs d'un téléphone mobile.
          Manipuler des données au format JSON.
      • Algorithmique et programmation 2
        • Type de module : obligatoire
        • Thèmes abordés :
          À la suite de l’UE d’algorithmique et programmation 1 du premier semestre, l’objectif de cette UE est d’appréhender des concepts plus avancés en algorithmique et en programmation impérative. Dans un premier temps, ce cours rappellera les notions de base de la programmation impérative en termes de traitement (instructions, séquences, conditionnelles, boucles, fonctions), de données (types de bases, variables, tableaux) et d'entrées/sorties. Ces éléments seront manipulés au travers d'un langage compilé (langage C). On présentera la forme générale des programmes et leur cycle de vie (écriture, compilation, édition de liens, exécution). Dans un second temps, cette UE s'attachera à étudier des données et traitements plus avancés (mettant en jeu pointeurs, types composés, tableaux dynamiques, listes chaînées), ainsi que les mécanismes de gestion mémoire statique (pile d'exécution) et dynamique (allocation et libération explicites). Plusieurs algorithmes classiques seront présentés et comparés, notamment des algorithmes de recherche et de tri itératifs ou récursifs, avec une introduction à la notion de complexité. Une attention particulière sera portée à la résolution de problèmes par des algorithmes adaptés et leur mise en œuvre robuste (pré- et post- conditions, vérifications de terminaison, tests, bonne utilisation de l’allocation mémoire,...).
      • Programmation fonctionnelle
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette UE présente le paradigme de programmation fonctionnelle, ses principes fondateurs (composition de fonctions, variables au sens mathématique, propriété de transparence référentielle, pureté), les concepts de base permettant d’écrire un programme dans ce mode (équation fonctionnelle, application de fonction, conditionnelle, fonction anonyme, définition temporaire, récursivité), ainsi que des notions plus avancées (fonctionnelles, fonctions d'ordre supérieur, curryfication, application partielle). Les types omniprésents dans les langages fonctionnels récents y sont étudiés (constructeurs * et ->, types produits et sommes, types récursifs (exemple des listes), filtrage, polymorphisme, calcul ou inférence de types). Les différentes stratégies d’évaluation (évaluation affairée, paresseuse) des expressions fonctionnelles y sont discutées. Les programmes illustratifs sont écrits en utilisant le langage support Haskell.
      Enseignements d'ouverture
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 34.0 heure(s) dont 34.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 8.0
      • Cours / Topos en synchrone (heures) : 26.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Projet Professionnel Étudiant
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette première matière de préparation du projet professionnel accompagne la réflexion des étudiants de première année dans leurs choix à venir d'études, de stages, d'orientation professionnelle. Elle permet aux étudiants d'échanger leurs points de vue, de les confronter à ceux des professionnels sur leur lieu de travail, et les guider dans une démarche rigoureuse d'analyse des éléments recueillis.
      • Sciences et enjeux environnementaux
        • Type de module : obligatoire
        • Thèmes abordés :
          Enseignement de 24h construit en 4 Blocs décrits ci-dessous. Programme indicatif.

          Bloc 1 (6h)
          - 1h: Introduction sous forme de Quizz/débat
          - 3h : Physique du climat et GES / Ressources énergétiques - ordre de grandeur / Aspect géopolitique du changement climatique
          - 2h : Cycle de l'eau / définition biodiversité / Intro écosystème (Qu'est-ce qu'un sol - Comment se fait un sol ?) en fonction du climat

          Bloc 2 (7h)
          - 2h: Pollution de l'eau / Artificialisation-Surexploitation des sols
          - 2h : Pollution de l'air (aréosols, ozone, ...) (intervenant M. Millet)
          - 2h : Pollution organique : POP (PolluantsOrganiques Persistants) / Bio-accumulation / Plastique / Méthane
          - 1h : Pollution métallique / inorganique

          Bloc 3 (7h)
          - 3h : Cours à dominante historique sur le changement climatique et biodiversité dégradée : comment en est-on arrivé là ? / aspects juridiques / SHS
          - 4h : Que peut la science : énergies renouvelables / économie circulaire / décontamination / impact du numérique

          Conclusion (4h)
          - 2h : Moyens et scénarios pour diminuer les émissions / impact et adaptation au changement climatique — notamment sur la base des rapports du GIEC
          - 2h : débat / autres pollutions (sonores, lumineuses,...)
      Langues
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 20.0 heure(s) dont 20.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 20.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Anglais ou allemand
        • Type de module : obligatoire
        • Thèmes abordés :
          Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
          La liste complète des enseignements est disponible sur le site de la faculté des Langues.
      Option
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L1)
      • Ce bloc est : optionnel
      Formation - Volume horaire : 24.0 heure(s) dont 24.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 6.0
      • Cours / Topos en synchrone (heures) : 10.0
      • Travaux pratiques en groupe en synchrone (heures) : 8.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Modèles de calcul
        • Type de module : optionnel
        • Thèmes abordés :
          Cette UE discute des deux principales formalisations de la notion d’algorithme et de ce qui est calculable par une machine : le lambda-calcul et les machines de Turing. Le formalisme du lambda-calcul (syntaxe, interprétation usuelle en termes de fonctions anonymes, curryfication) y est présenté ainsi que les règles de calcul associées (notion de réduction, substitution, règles de réduction, problème de capture de variable, notion de variable libre et liée, forme normale, résultat de Church-Rosser, stratégies de réduction (NOR et AOR)). Le pouvoir d'expressivité du lambda-calcul (booléens, entiers de Church, n-uplets, récursivité (combinateur de point fixe)) y est discuté. Cette UE inclut une présentation de la machine de Turing (ruban, tête de lecture/écriture, états, fonction de transition, configuration, mode accepteur, mode calculateur, machine universelle) et discute de son équivalence (sans preuve) avec le lambda-calcul et les autres modèles de calcul. La thèse de Church-Turing y est énoncée. Les règles du lambda-calcul et le fonctionnement des machines de Turing sont décrits et mis en œuvre en Haskell.
    • Semestre 3

      Mathématiques pour l'informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 50.0 heure(s) dont 50.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 16.0
      • Cours / Topos en synchrone (heures) : 26.0
      • Travaux pratiques en groupe en synchrone (heures) : 8.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Analyse 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette matière a pour objectif d'introduire les problèmes de calcul avec les nombres réels. Après avoir donné une définition des réels grâce aux développements décimaux, les grandes propriétés de la droite réelle sont démontrées (bornes supérieures, complétude). Les suites de réels, et la notion associée de convergence (=de Cauchy), sont introduites pour quantifier l'erreur d'approximation du réel obtenu comme la limite. L'objectif principal est la construction de suites permettant d'approximer des réels obtenus par l'évaluation de fonctions usuelles.

          Ce contexte servira également de prétexte pour revenir à l'introduction historique des machines de Turing (calculabilité des nombres réels), notamment en exhibant l'analogie formelle entre le théorème de l'arrêt des machines de Turing, le procédé diagonal de Cantor et le « paradoxe » de Russell en théorie des ensembles. Le but est d'introduire la notion de complexité calculatoire et de l'étudier sur des exemples concrets en comparant (empiriquement ou théoriquement) plusieurs algorithmes effectuant la même tâche.

          Théorie: décimaux, rationnels, nombres algébriques, nombres réels, opérations, borne sup / inf, suites et convergence, ordres de grandeur (o, O, ∼ ), fonctions continues et dérivables, formule de Taylor-Lagrange

          Pratique: utilisation de bibliothèques Python de calcul symbolique (sympy) et numérique à mantisse fixe (numpy) ou arbitraire (mpmaths) pour manipuler des nombres et approximer des valeurs de fonctions
      • Arithmétique et cryptographie
        • Type de module : obligatoire
        • Thèmes abordés :
          En s’appuyant sur l’arithmétique modulaire, ce cours explore différentes approches cryptographiques, aussi bien historiques que contemporaines.

          - Base d’arithmétique : divisibilité, Bézout, algorithme d’Euclide, nombres premiers
          - Arithmétique modulaire : anneaux Z/nZ, indicatrice d’Euler, théorèmes de Fermat et d’Euler, exponentiation modulaire.
          - Théorème des restes chinois.
          - Cryptosystème à clé publique : RSA.
          - Echange de clé : Diffie-Hellman et ElGamal.
          - Cryptosystème à clé privée : AES.
          - Hashage cryptographique : SHA256.
          - Application aux cryptomonnaies
      Informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 166.0 heure(s) dont 166.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 50.0
      • Cours / Topos en synchrone (heures) : 64.0
      • Travaux pratiques en groupe en synchrone (heures) : 52.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Architecture
        • Type de module : obligatoire
        • Thèmes abordés :
          Cet enseignement présente les notions d'architecture des ordinateurs nécessaires au développement logiciel effectué dans un souci de correction, d'efficacité énergétique et de performance.

          Les thèmes traités sont le codage des données, l'architecture et le fonctionnement des processeurs, les jeux d'instructions, l'assembleur RISC-V, le chemin de données, le pipeline et les architectures superscalaires, la hiérarchie mémoire, et les architectures parallèles (multi-coeurs, générales et spécialisées).
      • Structures de données et algorithmes 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Cet enseignement vise à déployer une démarche rigoureuse de résolution de problèmes informatique afin de tendre ensuite vers du code certifié. La démarche proposée consiste à définir la notion de type abstrait avec une méthode de spécification dans laquelle on précise une signature contenant des types et des fonctions et les relations exigées entre ces différentes fonctions. On introduit le formalisme de spécifications en relation avec la programmation. Cette méthodologie est utilisée pour décrire des types de données de base et les types linéaires simples classiques que sont les piles, les files et les listes. Pour chaque type abstrait, les différentes possibilités d'implantation en langage C sont discutées et comparées suivant des critères d'efficacité en temps et en espace. C'est ainsi qu'on étudie des styles d'implantations statiques/fonctionnelles sans effets de bord et des styles d'implantations dynamiques avec des passages d'arguments par adresse. On donne aussi les premiers éléments qui permettent de comprendre la notion de complexité algorithmique et son utilité. Enfin, les qualités de complétude, de consistance et de non-redondance d'une spécification ainsi que la validité d'une implantation relativement à une spécification seront présentées.
      • Programmation orientée objets 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette matière est une introduction à la programmation orientée objets avec Java comme langage d'application.

          Les thèmes étudiés sont :
          - les classes et objets : conception des classes, constructeurs, affectation et comparaison d'objets, champs et méthodes statiques, surdéfinition de méthodes, classes internes, paquetage ;
          - l'héritage : conception des classes dérivées, redéfinition de méthodes, polymorphisme, super classe objet, classes abstraites, interfaces, classes enveloppes, classes anonymes ;
          - la gestion des exceptions
          - les types génériques
          - la génération de nombres aléatoires
          - les flux texte en lecture et écriture.
      • Software engineering
        • Type de module : obligatoire
        • Thèmes abordés :
          Enseignement dispensé en anglais.

          Mécanismes de la compilation (préprocesseur, compilation, assemblage et édition de liens). Structure mémoire d'un exécutable, pile d’exécution. Utilisation, création et compilation de bibliothèques. Compilation séparée et structuration d'un projet informatique (makefile). Gestionnaire de versions et développement collaboratif (svn, git). Portée des variables static/extern. Documentation de code (doxygen). Analyse de couverture de code (gcov). Méthodologie de gestion des erreurs et debug (gdb et valgrind). méthodologies de tests, tests unitaires/intégration/système, TDD, instrumentation d’un dépôt git (CI/CD, etc…), frameworks, écosystèmes, IDEs.

          Version en Anglais:

          Compilation mechanisms (preprocessor, compilation, assembly and link editing). Memory structure of an executable, execution stack. Use, creation and compilation of libraries. Separate compilation and structuring of an IT project (makefile). Scope of static/external variables. Version management and collaborative development (svn, git). Test methodologies, unit/integration/system tests, Test Driven Development (TDD), instrumentation of a git repository (CI/CD, etc.), frameworks, ecosystems, IDEs. Code documentation (doxygen). Code coverage analysis (gcov). Error management and debugging methodology (gdb and valgrind)
      Informatique fondamentale
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 46.0 heure(s) dont 46.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 22.0
      • Cours / Topos en synchrone (heures) : 18.0
      • Travaux pratiques en groupe en synchrone (heures) : 6.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Logique et programmation logique
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours est une introduction à la logique et à son rapport avec l'informatique. Ce cours introduit le paradigme de programmation logique par la pratique du langage Prolog.

          - Logique propositionnelle, syntaxe, sémantique, (tables de vérité, satifiabilité, tautologies).
          - Logique des prédicats, syntaxe, sémantique.
          - Systèmes formels, notion de correction/complétude.
          - Déduction naturelle.
          - Mise en forme de clause, Mise en formel prénexe, Skolemisation, Unification
          - Méthode de résolution pour la logique des prédicats.
          - Introduction à Prolog: faits, règles, fonctionnement de l’intérpréteur.
      Enseignements d'ouverture
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 10.0 heure(s) dont 10.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 10.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Français
        • Type de module : obligatoire
        • Thèmes abordés :
          Cet enseignement, orienté vers les compétences orthographiques et grammaticales du Français, est réalisé en auto-apprentissage sur la plateforme de l'université ouverte des humanités.
    • Semestre 4

      Mathématiques pour l'informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 28.0 heure(s) dont 28.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 18.0
      • Cours / Topos en synchrone (heures) : 10.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Probabilités et statistiques 1
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette unité d’enseignement constitue une introduction aux probabilités dites discrètes. On modélise une expérience aléatoire en donnant l’ensemble des résultats possibles et leurs probabilités. On étudie ensuite les variables aléatoires discrètes, qui à un résultat associent un nombre entier ainsi que leurs propriétés (espérance, variance, valeur moyenne, fonction génératrice). On considère également le lien que peuvent avoir deux variables aléatoires (indépendance, corrélation) et la convergence de variables aléatoires. On présente également les bases de la statistique descriptive ainsi que les valeurs remarquables d’un échantillon (moyenne empirique, quantiles).

          - Espaces probabilisés (modélisation dans le cas au plus dénombrable, indépendance, probabilités conditionnelles)
          - Variables aléatoires discrètes (définition, loi, espérance, variance, fonction génératrice, écart-type, loi conditionnelle, couples de variables aléatoires discrètes, coefficient de corrélation linéaire)
          - Convergence (en moyenne quadratique, en probabilité, loi faible des grands nombres, évocation du théorème limite central)
          - Statistiques descriptives (fonction de répartition empirique, moyenne quadratique, moyenne et variance empiriques, quantiles, diagramme des fréquences).
      Informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 194.0 heure(s) dont 194.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 38.0
      • Cours / Topos en synchrone (heures) : 90.0
      • Travaux pratiques en groupe en synchrone (heures) : 66.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Programmation système
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette matière présente les principaux concepts manipulés par les systèmes d'exploitation sous l'angle de la programmation avec les primitives systèmes : fichiers et répertoires, gestion des périphériques, processus, droits, tubes et signaux. L'accent est mis sur la portabilité des applications au travers de l'utilisation de la norme POSIX. Travaux pratiques : programmation en langage C sous Linux.

          - Historique des systèmes d’exploitation
          - Introduction à la programmation système sous Unix et à la norme Posix
          - Primitives système pour l’accès aux fichiers et répertoires sous Unix
          - Introduction au principe de la multiprogrammation
          - Primitives système pour la gestion des processus sous Unix
          - Primitives système pour la gestion des tubes Posix
          - Introduction à la notion de programmation évenementielle / asynchrone
          - Interruptions et signaux
          - Primitives système pour la gestion des signaux Unix
      • Réseaux IP
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette matière constitue une introduction aux réseaux informatiques. Elle présente la notion de service et de protocole à travers l'étude du modèle OSI et TCP/IP. Les protocoles Ethernet et IP (versions 4 et 6) y sont étudiés : principe de commutation, adressage et traduction d'adresses, découverte de voisins, configuration automatique, équipements d'interconnexion (concentrateur, commutateur, routeur). Durant cette UE, les étudiants mettent en œuvre les différents concepts étudiés lors de travaux pratiques sur des équipements professionnels.

          - Introduction aux réseaux informatique, modèle OSI
          - Réseaux locaux et protocole Ethernet
          - Protocole IPv4
          - Protocole IPv6
      • Structures de données et algorithmes 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette UE présente les structures de données relationnelles classiques :
          - Tables : avec adressage calculé, associatif, indexé, partagé et haché ;
          - Arbres et forêts : binaires, généraux, préfixés, (auto-)équilibrés, e.g., AVL et B-arbres ;
          - Graphes : non orientés, orientés, acycliques, etc.

          Au niveau algorithmique, il s’agira principalement d’étudier les algorithmes de parcours classiques (en profondeur et en largeur), la dérécursivation et les algorithmes de tri (interne ou externe). Les algorithmes de tri en particulier seront utilisés pour illustrer et approfondir les notions d’optimalité et de complexité introduites en SDA1. Sur les graphes, seuls quelques exemples seront traités : la fermeture transitive avec l’algorithme de Warshall et le calcul d’une forêt de recouvrement dans le cas orienté (algorithme de Tarjan).

          Dès lors que la notion de type abstrait des structures étudiées aura été formellement introduite et définie (avec la méthode de spécification algébrique initiée en SDA1), la seconde étape consistera à rigoureusement spécifier les algorithmes manipulant ces structures. Cette spécification sera essentiellement réalisée sous une forme équationnelle équivalente à une approche fonctionnelle mais, sur certains exemples, on raffinera la spécification pour produire des algorithmes itératifs traduits ensuite dans un pseudo-langage impératif. Enfin, il s’agira d’aller au bout de la démarche avec des implantations concrètes en programmation impérative, par exemple en C.
      • Programmation orientée objets 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette matière a pour objectif apprendre à concevoir une solution à un problème logiciel par la conception d’une solution orientée objets.

          Les différents sujets abordés seront :
          - Famille de langages : les différents langages orientés, et en particulier les langages orientés objets seront regroupés et classés en fonction des concepts implémenté. Les catégories vues seront : langage orienté objets à classes ou langage orienté objet à prototype ? Langages typés (et règles de typage) ou non typé ? Objet pur ou utilisation possible de type de base ? Langage généralement compilé ou interprété ?
          - Famille d'héritage : simple, multiple, dynamique, alimentaire, par interface, par trait, par mixins.
          – Gestion des erreurs : protection par exception, programmation par contrat.
          – Gestion automatique de la mémoire : principes de fonctionnement du ramasse-miettes. Comparaison d’algorithmes standard de gestion automatique de la mémoire.
          - Parallélisme : définition et utilisation de thread, problème des accès concurrent.

          Différents langages de programmation pourront être présentés et utilisés au cours de l’UE. En particulier, les langages principalement utilisés seront :
          - Java : Langage à classe, typé, semi-compilé ; héritage simple ; interface ; exception ; généricité ; thread ; gestion de la mémoire par ramasse miette
          - C++ : Langage à classe, typé, compilé ; héritage multiple ; gestion de la mémoire manuelle.
      • Programmation web 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours a pour objet le cycle de vie d'un projet web, du recueil des besoins utilisateurs à la mise en production d'un projet. Il s'agira en particulier de s'interroger sur la mise en place d'un projet et de mettre en œuvre celui-ci à travers différents langages et frameworks web, en front-end (programmation client) et en back-end (programmation serveur).

          Cette UE a pour objectif de comprendre tout le cycle de vie d’un projet web :

          Recueil des besoins utilisateur :
          - création d’issues et gestion de projet sur un outil de conception comme Gitlab
          - création d’une maquette avec Figma.

          Mise en place du projet :
          - comment s’articule un projet web ?
          - comment organiser ses fichiers ?

          Développement d’un projet complet avec les langages :

          *CSS :
          flex
          grid
          responsive design

          *HTML :
          sémantique d’une page web
          notions de SEO
          notions d’UX design

          *Javascript :
          manipulation du DOM
          appel d’APIs avec AJAX

          *PHP :
          gestion et sécurisation d’une base de données
          programmation orientée objet
          création d’APIs

          Mise en production d’un projet

          Aller plus loin et présentation d’outils modernes de programmation web :
          - ViteJS : Un bunlder moderne pour programmer proprement et rapidement
          - Présentation de frameworks:
          *Javascript : VueJS et React
          *PHP : Symfony.
      Informatique fondamentale
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 26.0 heure(s) dont 26.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 8.0
      • Cours / Topos en synchrone (heures) : 10.0
      • Travaux pratiques en groupe en synchrone (heures) : 8.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Analyse numérique appliquée
        • Type de module : obligatoire
        • Thèmes abordés :
          Dans ce module, nous étudierons des méthodes numériques pour résoudre des problèmes mathématiques. Les notions seront abordées sous trois angles : la formulation mathématique, l’approximation algorithmique, et l’implémentation pratique avec une bibliothèque de calcul numérique. La complexité et la vitesse de convergence des algorithmes seront étudiées. Trois grandes notions seront étudiées : calcul d’intégrales et de dérivées ; approximation des moindres carrés ; valeurs propres et vecteurs propres. Nous prendrons comme pré-requis le module d’analyse du semestre 3.

          - Méthodes numériques pour le calcul des intégrales (méthodes des rectangles, des trapèzes).
          - Approximation des dérivées par différences finies.
          - Conditionnement de matrice, valeurs propres et vecteurs propres.
          - Régression linéaire, approximation des moindres carrés, changements de variables dans les problèmes de régression.
      Enseignements d'ouverture
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 20.0 heure(s) dont 20.0 heure(s) en synchrone
      • Cours / Topos en synchrone (heures) : 20.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Communication
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Théorie de la communication : Les sciences de l'information et de la communication (SIC). Définition du champ d'étude des SIC. Application à la communication. Les nouvelles technologies de l'information et de la communication. Les communications de masse, les communications de type publicitaire, les communications d'entreprise. Les processus de la communication, la transmission de l'information, l'influence.
      • Économie et gestion
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Le but de cours est d’initier les étudiants au concepts de base de l’économie et plus particulièrement la microéconomie et la théorie de la firme. Un intérêt particulier sera porté aux fonctionnements des marchés et aux comportements individuels en distinguant les différentes configurations de l’économie.

          PARTIE 1 Qu’est-ce que l’économie ?
          - Chapitre 1 Introduction: Un moteur de croissance et de découverte

          PARTIE 2
          - Chapitre 2 L’offre et la demande
          - Chapitre 3 Contrôle des prix et quotas : l’intervention sur les marchés ..
          - Chapitre 4 L’élasticité

          PARTIE 3
          - Chapitre 5 Les individus et les marchés
          - Chapitre 6 La prise de décisions par les individus et les firmes

          PARTIE 4
          - Chapitre 7 Les décisions de production
          - Chapitre 8 La concurrence parfaite et la courbe d’offre
          - Chapitre 9 Le monopole.
          - Chapitre 10 La concurrence monopolistique et la différenciation des produits
      Langues
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 20.0 heure(s) dont 20.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 20.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Anglais ou allemand
        • Type de module : obligatoire
        • Thèmes abordés :
          Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
          La liste complète des enseignements est disponible sur le site de la faculté des Langues.
      Option
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L2)
      • Ce bloc est : optionnel
      Modalité de validation :
      • Exposé
      • Rapport de projet
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Stage facultatif
        • Type de module : optionnel
        • Thèmes abordés :
          Possibilité de faire un stage en entreprise.
    • Semestre 5

      Mathématiques pour l'informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 52.0 heure(s) dont 52.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 14.0
      • Cours / Topos en synchrone (heures) : 26.0
      • Travaux pratiques en groupe en synchrone (heures) : 12.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Probabilités et statistiques 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Cette unité d’enseignement complète dans un premier temps le cours de probabilités de l’unité de probabilité et statistique 1 en abordant les variables aléatoires à densité. Dans un second temps, elle s’intéresse aux données statistiques, d’une part d’un point de vue descriptif, et d’autre part d’un point de vue inférentiel, via les notions d’estimation et de tests d’hypothèses. L’ensemble des notions rencontrées dans cette UE est illustré à l’aide du langage R.
      • Traitement du signal
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours présente les bases de la théorie et du traitement du signal, c'est-à-dire la représentation mathématique et le traitement informatique des signaux physiques (son, lumière, ondes radio, wifi, etc.). L'UE abordera l'ensemble de la chaîne de traitement : acquisition, échantillonnage (théorème de Shannon), analyse (transformée de Fourier), filtrage, convolution, transmission. Elle présentera différents types d'applications et leur mise en œuvre (traitement et compression de signaux).

          - signaux de base (sinusoide, marche, impulsion) et propriétés (periodicité, phase)
          - représentation en temps discret et continu, en valeur continue ou quantifiée
          - convolution
          - transformée et série de Fourier pour le signal 1D
          - théorème de Shannon pour l’échantillonnage
          - filtrage linéaire
          - entropie et théorème de shannon pour la transmission
          - base de la compression
      Informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 172.0 heure(s) dont 172.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 54.0
      • Cours / Topos en synchrone (heures) : 74.0
      • Travaux pratiques en groupe en synchrone (heures) : 44.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Architecture des systèmes d'exploitation
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours présente le fonctionnement des principaux composants architecturaux des systèmes d'exploitation (noyau, gestion mémoire, processus et threads, fichiers et périphériques), l'interface avec le matériel (interruptions, traduction d'adresses, gestion des périphériques) et les mécanismes sous-jacents (pagination, synchronisation, commutation, ordonnancement, etc.). Les mécanismes de synchronisation et les problèmes de concurrence sont abordés à travers la programmation en C avec les threads POSIX et le partage de mémoire entre processus.
      • Algorithmes des réseaux
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce cours présente les algorithmes et mécanismes mis en œuvre dans les protocoles réseaux pour assurer la fiabilité et augmenter l’efficacité des communications : numérotation et accusés de réception, retransmission continue et sélective, anticipation à l’émission et à la réception, contrôle de flux et de congestion. Une étude approfondie du protocole TCP permettra de contextualiser ces algorithmes et mécanismes. Cette approche permet de développer une compréhension approfondie des concepts individuels ainsi que de leur application concrète dans un protocole réseau majeur tel que TCP. L’aspect pratique met l’accent sur le développement d’applications communicantes et la mise en œuvre des algorithmes étudiés via l’API socket en langage C.
      • Bases de données 2
        • Type de module : obligatoire
        • Thèmes abordés :
          Dans cette matière, les étudiants acquerront des connaissances sur le fonctionnement et l’utilisation des systèmes de gestion de bases de données (SGBD). Ils apprendront la programmation procédurale en PL/SQL, notamment pour pouvoir écrire des procédures stockées et des fonctions pour bases de données. L’UE enseignera aussi à concevoir des déclencheurs pour renforcer la cohérence et la sécurité des données. Le rôle et le fonctionnements des index seront présentés, ainsi que leur utilisation pour améliorer les performances de requêtes. L’UE présentera aussi le fonctionnement des transactions, en particulier les propriétés d’atomicité, de cohérence, d’isolation et de durabilité (ACID). Les implémentations par SGBD de méthodes à base de verrouillage ou d’estampillage afin de garantir ces propriétés seront aussi traitées. L’UE abordera aussi l’optimisation de requêtes par le SGBD par la génération et l’analyse de plans d’exécutions.
      • Génie logiciel
        • Type de module : obligatoire
        • Thèmes abordés :
          Contexte d'entreprise : acteurs, enjeux, aspects organisationnels. Périmètre, planification et maîtrise de projet informatique. Qualités logicielles. Cycles de vie, modèles de développement. Expression du besoin, outils d'analyse, spécification. Méthodes de conception. Modélisation, analyse et conception orientée objets : UML. Cas d'utilisation, activités, diagrammes de classes et d'objets, de séquence, de communication. Études de cas. Technique de production d'un code de qualité professionnelle. Pratiques agiles, Extreme Programming, Srum. Équipes de développement, rôles, travail collaboratif. Évaluation : revue de code, stratégies de test, types de tests, automatisation, intégration descendante et ascendante et d'un système, validation, déploiement, métriques. Maintenance. Gestion de version, gestion de configuration. Pipeline de documentation. Ateliers de Génie Logiciel, outils automatisés de développement, intégration continue.
      • Problem solving with algorithms
        • Type de module : obligatoire
        • Thèmes abordés :
          This course follows a problem-based learning (PBL) approach. Students work in a team. Two real-life problems are successively given to the students who need to:
          - Design an algorithm to solve the problem;
          - Write its specifications;
          - Choose and describe the most relevant data structures;
          - Implement the algorithm (possibly with the help of a generative AI) and test it.

          For each problem, one lecture is planned at the end to formalize important concepts.
          This course is taught in English only.
      Informatique fondamentale
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 30.0 heure(s) dont 30.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 10.0
      • Cours / Topos en synchrone (heures) : 12.0
      • Travaux pratiques en groupe en synchrone (heures) : 8.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Graphes
        • Type de module : obligatoire
        • Thèmes abordés :
          Bases de théorie des graphes
          Description et études théoriques (validité, complexité) des algorithmes de parcours (BFS, DFS), arbres couvrants minimaux, plus courts chemins, flot maximal
      Enseignements d'ouverture
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 12.0 heure(s) dont 12.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 12.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Projet Professionnel de l'étudiant 2
        • Type de module : obligatoire
        • Thèmes abordés :
          L’objectif de ces séances est de réfléchir à son projet professionnel, de travailler à l’identification et à la valorisation de ses compétences afin de pouvoir les transférer dans le monde professionnel. Différents outils sont abordés : CV, lettre de motivation, entretien d'embauche, réseaux sociaux professionnels.
    • Semestre 6

      Informatique
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 100.0 heure(s) dont 100.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 6.0
      • Cours / Topos en synchrone (heures) : 48.0
      • Travaux pratiques en groupe en synchrone (heures) : 46.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Interaction hommes-machines
        • Type de module : obligatoire
        • Thèmes abordés :
          Historique de l'interaction Homme/Machine. Conception : éléments de psychologie et de perception appliqués aux systèmes interactifs. Types et gestion des périphériques d'entrée/sortie, interdépendance avec une interface. Styles d'interaction. Ergonomie : principes et attributs. Design d'interface graphique, conception centrée sur l’utilisation. Profils d'utilisateurs, traduction du besoin en fonctionnalités. Conception fonctionnelle, conception technique. Choix des composants d'une IHM. Maquettes et prototypes, outils de conception (par ex. Figma). Egalité vis à vis du contenu, accessibilité. Localisation, internationalisation. Partie technique : techniques d'implémentation, fonctions callback, gestion d'événements. Outils de développement, boîtes à outils, générateurs d'interfaces. Techniques de validation. Adaptive design, responsive design. Mise en pratique: prototypage avec Figma, et implémentation d'une interface interactive avec Qt en C++, utilisation de QtDesigner.
      • Intelligence artificielle
        • Type de module : obligatoire
        • Thèmes abordés :
          Enseignement dispensé partiellement en anglais

          Ce cours vise à offrir une introduction panoramique du domaine de l'intelligence artificielle. Une grande partie du cours se concentre sur l'apprentissage automatique et couvre les bases des arbres de décision, des réseaux de neurones artificiels (apprentissage supervisé), et du clustering k-means (apprentissage non supervisé) ; cette partie couvre également l'évaluation des modèles et des données. Les chapitres suivants abordent d'autres facettes de l'intelligence artificielle, telles que les agents, les jeux et la résolution de problèmes.

          Version en Anglais:
          This course aims to offer a comprehensive introduction to the field of artificial intelligence. A large part of the course focuses on machine learning and covers the basics of decision trees, artificial neural networks (supervised learning), and k-means clustering (unsupervised learning); this part also covers model evaluation and data. The subsequent chapters address additional facets of artificial intelligence, such as agents, games, and problem solving.
      • Réseaux locaux
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Ce cours se focalise sur l'interconnexion de réseaux informatiques au niveau liaison (couche 2) du modèle OSI. La première partie du cours propose d'étudier les protocoles d'accès au support de communication : méthodes probabilistes (CSMA et ses dérivées) et déterministes (TDMA, FDMA, anneau à jeton). L'accent est ensuite porté sur l'interconnexion de réseaux locaux au niveau trame avec l'étude du protocole Spanning Tree et des réseaux locaux virtuels (VLAN). Introduction aux codes détecteurs et correcteurs d'erreurs. Les travaux pratiques permettront de mettre en œuvre les différents protocoles et technologies étudiés.
      • Géométrie pour la 3D
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Acquérir les bases de la géométrie linéaire dans le plan et dans l'espace. Maîtriser la composition de transformations géométriques pour être capable de développer une application pour la 3D à l’aide d’OpenGL. Introduction à la géométrie algorithmique dans le plan en terme méthodologique et d’algorithmes robustes.

          Rappels des transformations géométriques de base, de leurs propriétés, de leur composition en coordonnées homogènes. Rappels des équations générales et paramétriques des droites et des plans. Rappels sur les vecteurs, produits scalaires et vectoriels, conditions de colinéarité, coplanarité, orthogonalité.

          Positions relatives d’un point et d’une droite, de deux droites, d’une droite et d’un plan ou leurs restrictions à un segment ou un triangle. Présentation des coordonnées barycentriques. Tests et calculs d’intersection.

          Présentation des polygones. Introduction des bases de la géométrie algorithmique à travers quelques algorithmes dans le plan comme le calcul d’aires, le problème de la galerie d’art, l’enveloppe convexe, la triangulation etc. jusqu’à l’évocation des diagrammes de Voronoï.

          Durant ce cours, les étudiants mettent en pratique les compétences visées via une application 3D à l'aide d'OpenGL.
      • Programmation mobile
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Cette matière est dédiée au développement d’applications mobiles (Android ou iOS) en insistant sur les bonnes pratiques de programmation.

          Contenu du cours :
          - Introduction au framework Android à partir de l’IDE Android Studio (en Java et Kotlin)
          - Structure d’un projet Android (arborescence, notion de Manifest, système de build gradle)
          - Classes fondamentales du framework (Activity, Intent, Fragment, FragmentManager, Layout, …)
          - Notion de ViewModel, RecyclerView, ViewHolder, Adapter, Designs patterns dédiés à la programmation mobile (MVC, MVVM)
          - Gestion des threads et des évènements sous Android Requêtes asynchrones (Volley, JSonObject Request, etc..)
          - Gestion de la persistance (Bundle, SharedPreferences, accès au système de fichiers, BDD SQLite)
          - Gestion des capteurs
      Informatique fondamentale
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Théorie des langages
        • Type de module : obligatoire
        • Thèmes abordés :
          Cet enseignement pose les fondements de la théorie des langages. Son objectif premier est la compréhension de certains mécanismes inhérents à la conception des langages de programmation et à une introduction à la théorie de la calculabilité. Ses applications peuvent néanmoins s'étendre à d'autres domaines scientifiques. Le plan du cours est le suivant : après l'introduction d'un certain nombre d'outils formels en relation avec les notions de langage formel, nous présenterons en détails la classe des langages rationnels et la classe des langages algébriques. Nous présenterons ainsi différentes notions correspondant à la classe des langages rationnels : les expressions rationnelles ; les automates d'états finis (déterministes et non déterministes) ; la déterminisation des automates ; des propriétés de stabilité de la classe des langages rationnels ; le lemme de l’Étoile puis la minimisation des automates. Nous présenterons ensuite différentes notions correspondant à la classe des langages algébriques : les grammaires algébriques ; les automates à pile ; les propriétés de stabilité de la classe des langages algébriques ; le lemme de la double Étoile puis les équivalences automates-grammaires. Ce cours se terminera par une introduction aux machines de Turing qui sont des « ultimes » généralisations de la notion d'automate.
      Projet
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 20.0 heure(s) dont 20.0 heure(s) en synchrone
      • Travaux pratiques en groupe en synchrone (heures) : 20.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Projet intégrateur
        • Type de module : obligatoire
        • Thèmes abordés :
          Ce projet permet de mettre en évidence, par la pratique, les interactions qui existent entre les connaissances et compétences acquises dans des UE différentes. Il a également vocation à impliquer les étudiants dans des projets d’envergure relativement large sur la durée du semestre, et ainsi à mettre progressivement en avant les concepts ou outils de gestion de projet.

          Évaluation (documents écrits et soutenance) en anglais.

          Version en Anglais:
          This project provides an opportunity to demonstrate, through practical experience, the interactions that exist between the knowledge and skills acquired in different courses. It is also designed to involve students in relatively large-scale projects over the semester, and thus to gradually bring project management concepts and tools to the fore.

          Assessment (written documents and oral presentation) are in English.
      Enseignements d'ouverture
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 40.0 heure(s) dont 40.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 8.0
      • Cours / Topos en synchrone (heures) : 32.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Méthodologie scientifique
        • Type de module : obligatoire
        • Thèmes abordés :
          L'objectif de ce cours est de proposer une introduction à ce qui constitue la méthodologie scientifique et la démarche expérimentale. Après avoir examiné dans les grandes lignes différents éléments qui caractérisent la recherche aujourd'hui, on montrera un aperçu de l'évolution de la démarche scientifique depuis l'époque moderne jusqu'à nos jours en abordant certains concepts épistémologiques marquants, et comment ces derniers ont eux aussi évolués.
      • Médiation scientifique en info
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Cette matière consiste à participer soit à la cordée de la réussite « Décodeuses d’informatique » soit à « Partenaires scientifiques pour la classe ».

          Partenaires scientifiques pour la classe (PSC, anciennement ASTEP) est une action de la fondation La main à la pâte soutenue par l’Education nationale (EN), voir https://www.fondation-lamap.org/fr/psc. L’étudiant intervient en classe d’école primaire : il co-construit et co-anime une séquence scientifique avec l’enseignant (stage filé). L’étudiant a un rôle de référent scientifique. Il apprend à co-conduire un projet, s’adapter à un milieu professionnel et reformuler ses connaissances à un niveau adapté.

          La cordée de la réussite « Décodeuses d’informatique » a pour objectif d’améliorer la vision de ce qu’est l’informatique chez les élèves de collège et lycée, et d’encourager les vocations pour les études d’informatique, notamment en luttant contre les stéréotypes de genre. Il s’agit d'interventions en classe entière au collège ou au lycée.

          Pour les deux dispositifs, les interventions en classe mettront en œuvre des ateliers d’informatique débranchée. L’informatique débranchée consiste à étudier des concepts fondamentaux de l’informatique sans utiliser d’ordinateur, à l’aide d’activités ludiques et de manipulations.

          Contenu des enseignements
          - Définition de l’informatique à travers 4 mots clés
          - Formation à l’enseignement de l’informatique à travers l’informatique branchée et débranchée.
          - Formation préalable aux séances en classe par des formateurs EN et Universitaires : principes et intérêt de PSC et des Cordées de la Réussite.
          - Pour PSC : programmes des sciences à l’école, principes de l’enseignement des sciences fondé sur l’investigation, comment garder des traces, analyser et rapporter l’expérience vécue.
          - Pour la Cordée : introduction à la médiation en informatique, stéréotypes et parité homme/femme en informatique.
          - Suivi pendant le stage PSC par des conseillers pédagogiques (permanences et visite en classe), et suivi à distance par l’équipe encadrante Unistra et EN via un espace d’échange Moodle pour aider à la mise en place d’une démarche scientifique et pédagogique de qualité.
          - Co-animation des ateliers de la cordée avec des enseignants confirmés.
      • Droit
        • Type de module : module devant être choisi parmi un groupe de modules
        • Thèmes abordés :
          Les nouvelles technologies et le droit : la propriété intellectuelle et la protection des créations informatiques, les principes du droit d'auteur et du droit des brevets, le cas du logiciel, des bases de données et de l'oeuvre multimédia. L'exploitation des créations informatiques (contrat de cession et de licence). L'informatique et les libertés (la CNIL, les obligations des détenteurs de fichiers, les droits des personnes fichées). La délinquance informatique (la contrefaçon des logiciels et des bases de données, l'intrusion dans les systèmes informatiques, l'internet et la responsabilité des fournisseurs d'accès). La protection des données personnelles (CNIL, sanction des fuites, obligations du responsable du traitement). Le droit de la propriété intellectuelle appliqué aux créations informatiques (logiciels, bases de données, dessins et modèles, brevets).
      Langues
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : obligatoire
      Formation - Volume horaire : 20.0 heure(s) dont 20.0 heure(s) en synchrone
      • Travaux dirigés en synchrone (heures) : 20.0
      Modalité de validation :
      • Contrôle de connaissances
      • Exercice sur une plateforme numérique en ligne
      • Exercice en situation reconstituée (TD/TP)
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Anglais ou allemand
        • Type de module : obligatoire
        • Thèmes abordés :
          Selon votre profil (filière et disponibilité horaire), vous aurez un choix plus ou moins large de modules d’allemand/d'anglais auxquels vous pouvez vous inscrire.
          La liste complète des enseignements est disponible sur le site de la faculté des Langues.
      Option
      Caractéristique du bloc
      • Etape du parcours : Cycle Licence/Bachelor (L3)
      • Ce bloc est : optionnel
      Modalité de validation :
      • Exposé
      • Rapport de projet
      Prérequis nécessaire(s) pour suivre le bloc :
      • Connaissances acquises lors d'une action précédente du parcours OU par le diplôme prérequis
      Module(s) :
      • Stage facultatif
        • Type de module : optionnel
        • Thèmes abordés :
          Possibilité de faire un stage en entreprise.
    • Planification

      Mode de planification
      • Sessions planifiées de manière récurrente
      Période(s) de démarrage d’une session (promotion)

      Alsace : Bas-Rhin (67)
      • Lieu : UFR de mathématique et d'informatique, 7 rue René Descartes - 67084 Strasbourg Cedex
      • Début de session en Septembre
      • Nombre minimum d’apprenants par session : 385
      • Nombre maximum d’apprenants par session : 385

    • Modalités n°1

      Durée globale 3.0 année(s)
      Proportion de l'action pouvant être réalisé à distance : Pas de possibilité ou non autorisé
    • Validation de l'action

      Contrôle continu au cours des trois années.
    • Modalité pédagogique

      • Cours / Topo
      • Travaux Pratiques en groupe encadrés par enseignant / professionnel d’entreprise
      • Projet individuel
      • Projet en groupe
      • Formalisation structurée des travaux (rapport de projet)
      • Immersion en entreprise pour mise en pratique des compétences en contexte professionnel
    • Outils pédagogiques

      • Plateforme technique pour les exercices
      • Poste de travail et périphériques informatiques
      • Banque de médias contenant des documents, des tutos vidéos, …
    • Moyens techniques

      • Poste de travail informatique de type PC au centre de formation
      • Poste de travail (PC portable, tablette, ...) appartenant au stagiaire
      • Plateforme de serveurs, container, ... (à préciser)
    • Etape n°1 - Obtention du baccalauréat

      Modalité : Dossier via une plateforme Web (Parcours Sup, e-candidat, mon master, site web organisme de formation)
      Lieu : dans les locaux du centre de formation