Licence Informatique

Diplôme de Licence Informatique

Parcours Ingénierie Systèmes et Logiciels

Cette page liste les compétences du parcours Ingénierie Systèmes et Logiciels du diplôme de Licence Informatique et donne la description détaillée de son programme pédagogique des différents semestres qui le composent.

Compétences

Analyser et concevoir un logiciel
  • en mettant en œuvre des méthodes d’analyse pour concevoir des applications et algorithmes à partir d’un cahier des charges partiellement donné
    UEs : Analyse et modélisation de S.I.
  • en choisissant, sur des critères objectifs, les structures de données et en construisant les algorithmes les mieux adaptés à un problème donné
    UEs : Algorithmique 1Algorithmique 2Conception Objet
  • en identifiant les concepts fondamentaux de complexité, calculabilité, décidabilité, vérification pour apprécier la complexité et les limites de validité d’une solution
    UEs : Algorithmique 1Algorithmique 2
Analyse et modélisation de S.I. Algorithmique 1 Algorithmique 2 Conception Objet
Niveau 2
Élaborer les spécifications fonctionnelles et non fonctionnelles à partir des exigences
Identifier les opérations liées aux différentes structures de données
Comprendre et calculer la complexité des algorithmes
Utiliser des techniques algorithmiques adaptées pour des problèmes complexes
Anticiper les résultats de diverses métriques (temps d’exécution, occupation mémoire)
Niveau 3
Utiliser des patrons de conception pour le développement d’applications cohérentes
Adopter de bonnes pratiques de conception et de programmation
Développer un logiciel
  • en appliquant des approches raisonnées de résolution de problèmes complexes par décompositions et/ou approximations successives
    UEs : Prog. 1
  • en analysant et interprétant les résultats produits par l'exécution d'un programme
    UEs : Prog. 1Prog. 2
  • en se servant aisément de plusieurs styles/paradigmes algorithmiques et de programmation (approches impérative, fonctionnelle, objet et multitâche) ainsi que plusieurs langages de programmation
    UEs : Prog. Orientée ObjetProg. fonctionnelle et scriptsProg. Multi-Paradigme
  • en caractérisant le rôle des tests et des preuves de correction dans le développement des logiciels et mettant en œuvre des tests élémentaires et des invariants de boucle
    UEs : Outils pour la Prog.
  • en travaillant en équipe autant qu’en autonomie et responsabilité au service d’un projet
    UEs : Outils pour la Prog.
Prog. 1 Prog. 2 Prog. Orientée Objet Outils pour la Prog. Prog. fonctionnelle et scripts Prog. Multi-Paradigme
Niveau 1
Produire un exécutable à partir d'un code source
Analyser un problème avec méthode (découpage en éléments algorithmiques simples)
Émettre un diagnostic du code et une correction en cas de dysfonctionnement
Choisir des structures de données complexes adaptées au problème
Comprendre et utiliser les mécanismes de la programmation orientée objet
Niveau 2
Vérifier et valider la qualité de l'application par des tests logiciels
Collaborer avec un gestionnaire de version
Mettre en œuvre un environnement d'intégration continue
Niveau 3
Comprendre et utiliser les mécanismes de la programmation fonctionnelle
Comprendre et utiliser les mécanismes des langages de script
Choisir une combinaison de paradigmes adéquate pour traiter un problème
Construire un système d'information
  • en concevant le traitement informatisé d’informations de différentes natures, telles que des données, des images et des textes
    UEs : Bases de donnéesWeb 1Web 2Web 3Web 4
  • en concevant, en implémentant et en exploitant des bases de données
    UEs : Bases de donnéesWeb 2
  • en caractérisant les pratiques, outils et techniques visant à assurer la sécurité des systèmes informatiques pendant leur développement et leur utilisation
    UEs : Web 4Sécurité
Bases de données Web 1 Web 2 Web 3 Web 4 Sécurité
Niveau 1
Manipuler les informations d'une base de données relationnelle
Concevoir une base de données relationnelle normalisée
Réaliser un ensemble de pages liées entre elles par des liens hypertexte et intégrant divers médias
Appliquer un ensemble de règles de style à un site internet
Mettre en œuvre une architecture 3-tier (back-end)
Niveau 2
Organiser la restitution de données à travers la programmation et la visualisation
Réaliser une application client dynamique (front-end)
Niveau 3
Développer une application multi-tiers complète
Mettre en œuvre un serveur d'application sécurisé
Comprendre le rôle de la cryptographie dans la sécurité des systèmes d'information
Comprendre les systèmes informatiques
Sciences Pour l'Ingénieur - EEA Systèmes élect. programmés Méthodologie Info. Architecture des ordinateurs Système 1 Réseau Système 2
Niveau 1
Comprendre les éléments fondamentaux de l'électronique
Interagir avec un système via un interpréteur de commandes
Niveau 2
Comprendre le fonctionnement interne d'un processeur
Maîtriser les instructions d'une architecture matérielle
Manipuler un système de fichiers et des processus
Automatiser des tâches dans un système via un interpréteur de commandes
Niveau 3
Comprendre l'architecture et les fondements des communications réseau et de l'Internet
Maîtriser les principes de base de la programmation réseau
Utiliser les fonctionnalités de base d'un système multi-tâches et multi-utilisateurs pour la communication
Maîtriser les rôles et les principes fondamentaux de la conception des systèmes d'exploitation
Assimiler les fondements mathématiques
Mathématiques 1 Mathématiques 2 Logique et Déduction Théorie des langages Analyse syntaxique Apprentissage automatique
Niveau 1
Raisonner, argumenter avec des objets mathématiques
Niveau 2
Comprendre les bases de la logique
Comprendre les bases de la construction de preuve
Utiliser un solveur pour résoudre un problème complexe
Manipuler les différentes formes d'un langage régulier
Niveau 3
Caractériser et décrire des langages formels
Comprendre et utiliser les mécanismes de l'analyse syntaxique
Appliquer des méthodes d’exploration et d’exploitation des données (apprentissage)
Se positionner dans le champ professionnel de l'informatique
Atelier Projet Professionnel Techniques de comm. et Projet Pro. 1 Techniques de comm. et Projet Pro. 2 Projet Stage en entreprise
Niveau 1
Présenter ses compétences à l'écrit et/ou à l'oral
Niveau 2
Comprendre le marché de l'emploi pour développer et y inscrire son projet professionnel
Initier son bilan de compétences, en particulier vis-à-vis de ses traits de personnalité, ses valeurs et ses motivations
Rédiger un curriculum vitae et une lettre de motivation pour candidater à un emploi
Niveau 3
Comprendre le monde socio-économique afin de positionner avec pertinence son offre de compétences
Travailler son bilan de compétences afin de communiquer efficacement dans ses démarches de recherche d'emploi ou de stage
Décrire une solution technique à un problème concret
Comprendre et s'insérer dans l'organisation interne d'une entreprise
Décrire l'intégration d'un développement dans une solution
Analyser et communiquer
Outils documentaires Anglais 1 Enjeux socio-écologiques Techniques de comm. et Projet Pro. 1 Introduction à la recherche Anglais 2 Anglais 3 Techniques de comm. et Projet Pro. 2 Anglais 4
Niveau 1
Appréhender les outils numériques de rédaction de documents pour des présentations écrites et orales
Rendre compte et communiquer en se servant aisément des différents registres d’expression écrite de la langue anglaise
Comprendre des problématiques complexes de durabilité selon une approche pluri-disciplinaire
Niveau 2
Définir et mettre en valeur les idées clés de sa communication
Adapter sa communication au contexte et au public visé dans le cadre de productions techniques ou professionnelles
Utiliser un français sans faute d’orthographe, de structure ou de syntaxe
Comprendre les mécanismes et les principes de la recherche scientifique
Communiquer et argumenter à l'écrit et à l'oral sur des aspects disciplinaires en langue anglaise
Niveau 3
Utiliser les technologies de l’information pour construire sa communication
Adapter sa communication en fonction des outils de communication
S'exprimer à l'écrit et à l'oral sur des aspects techniques en langue anglaise

Programme pédagogique

Licence 1ère année - Semestre 1

Programmation 1
 ECTShCMhTDhTP
Description

Ce module est une initiation à la programmation. Il a pour objectif de poser les bases de la création de programmes informatiques. Les étudiants sont y invités à adopter des approches raisonnées pour répondre aux besoins exprimés et résoudre des problèmes simples. La démarche dispensée dans ce module va de l'analyse du problème posé, à la vérification de la solution logicielle implémentée. La programmation est faite en langage Java. Les variables, tableaux, instructions conditionnelles, les boucles de traitement, la programmation de fonctions et la récursivités sont les notions abordées dans ce module au travers de cours magistraux, petits exercices de travaux dirigés, programmation sur ordinateur en TP et de projets.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Analyser un problème simple
  • Concevoir un programme capable de résoudre un problème simple posé
  • Produire un exécutable à partir d'un code source
  • Analyser un problème avec méthode (découpage en éléments algorithmiques simples)
  • Corriger les erreurs de compilation un programme en Java
  • Vérifier que les programmes codés fournissent les résultats attendus

Mots-clés : Programmation informatique, Logiciel, Langage de programmation Java

Compétence associée : Développer un logiciel

  • en appliquant des approches raisonnées de résolution de problèmes complexes par décompositions et/ou approximations successives
  • en analysant et interprétant les résultats produits par l'exécution d'un programme

Apprentissages critiques

  • Produire un exécutable à partir d'un code source
  • Analyser un problème avec méthode (découpage en éléments algorithmiques simples)
Bases de données
 ECTShCMhTDhTP

Compétence associée : Construire un système d'information

  • en concevant le traitement informatisé d’informations de différentes natures, telles que des données, des images et des textes
  • en concevant, en implémentant et en exploitant des bases de données

Apprentissages critiques

  • Manipuler les informations d'une base de données relationnelle
  • Concevoir une base de données relationnelle normalisée
Mathématiques 1
 ECTShCMhTDhTP
Description

Cette UE a pour but d'initier au formalisme mathématique du supérieur dans les domaines de la logique mathématique, l'analyse réelle, et l'algèbre. Les domaines couverts seront : les propositions logiques élémentaires, les ensembles, les raisonnements mathématiques, les nombres complexes, les propriétés sur ℝ, les suites réelles, les relations d'équivalences et finalement les systèmes linéaires.

Mots-clés : Logique élémentaire, ensembles, applications ensemblistes, raisonnements, nombres complexes

Compétence associée : Assimiler les fondements mathématiques

  • en caractérisant les outils logiques et algébriques fondamentaux (théorie des langages et de la compilation, logique et raisonnement, ordres, induction) et leurs implications dans la programmation et la modélisation
  • en construisant et en rédigeant une démonstration mathématique synthétique et rigoureuse

Apprentissages critiques

  • Raisonner, argumenter avec des objets mathématiques
Mathématiques 2
 ECTShCMhTDhTP
Description

Cette UE a pour objectif de poser les bases du formalisme mathématique du supérieur dans les domaines de la logique mathématique, l'analyse réelle, et l'algèbre. Les domaines couverts sont : le calcul matriciel, les fonctions sur ℝ à valeurs réelles, les calculs d'intégrales, les méthodes de résolutions d'équations différentielles linéaires, les lois de composition interne.

Mots-clés : Matrices, fonctions sur ℝ, intégrales, équations différentielles

Compétence associée : Assimiler les fondements mathématiques

  • en caractérisant les outils logiques et algébriques fondamentaux (théorie des langages et de la compilation, logique et raisonnement, ordres, induction) et leurs implications dans la programmation et la modélisation
  • en construisant et en rédigeant une démonstration mathématique synthétique et rigoureuse

Apprentissages critiques

  • Raisonner, argumenter avec des objets mathématiques
Outils pour l'informatique
 ECTS
Sciences Pour l'Ingénieur - EEA
 ECTShCMhTDhTP
Description

Cette UE a pour objectif d'introduire les notions de bases de l'électronique numérique. Elle couvrira les principes de base de l'électronique numérique à savoir : la numération et codage, la logique combinatoire et la logique séquentielle.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Utiliser les systèmes de numération en base 2, 8, 16,
  • Faire des changements de base, et des additions de nombres réels dans les différentes bases
  • Etudier un problème de logique combinatoire : de faire la table de vérité, de simplifier les équations logiques et de produire le logigramme simplifié associé à ce problème
  • Utiliser les éléments de base de la logique séquentielle (les bascules) et pouvoir les associer pour faire des compteurs, des registres et des mémoires

Mots-clés : électronique numérique, base N, table de vérité, bascules

Compétence associée : Comprendre les systèmes informatiques

  • en identifiant et caractérisant les principaux éléments fonctionnels et l’architecture matérielle d’un ordinateur

Apprentissages critiques

  • Comprendre les éléments fondamentaux de l'électronique
Méthodologie Informatique
 ECTShCMhTDhTP
Description

Cette UE a pour objectif d'initier les étudiants à la manipulation de systèmes d'exploitation et de réseaux. Elle vise à donner les compétences minimales pour permettre aux étudiants d'être autonomes sur des systèmes d'exploitation de type Linux.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Prendre en main un environnement de travail sous une distribution Linux
  • Manipuler le système de fichiers à l'aide de lignes de commandes pour gérer des fichiers et des répertoires
  • Assurer la sécurité des fichiers et des répertoires
  • Maîtriser la notion de processus : lister, arrêter, démarrer ceux-ci
  • Réaliser la compilation et l'exécution d'un programme (C/C++ et java) via la ligne de commande

Mots-clés : shell, ligne de commande, système de fichiers, processus

Compétence associée : Comprendre les systèmes informatiques

  • en caractérisant le fonctionnement des systèmes et des réseaux

Apprentissages critiques

  • Interagir avec un système via un interpréteur de commandes
Outils documentaires
 ECTShCMhTDhTP
Description

Cette UE vise à la formation aux outils numériques libres nécessaires aux différentes mentions de licence pour permettre la rédaction de documents et de supports de présentation orale. Elle prépare également à la certification PIX, une certification de compétences numériques inscrites dans le Cadre de référence européen DigComp qui comprend 5 domaines et 16 compétences numériques.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Structurer et mettre en forme un document
  • Insérer des informations générées automatiquement
  • Utiliser Libre Office Impress (présentation) pour réaliser un document composite
  • Traiter et exploiter des données dans des feuilles de calcul

Mots-clés : Bureautique, traitement de texte, tableur, présentation

Compétence associée : Analyser et communiquer

  • en utilisant les outils numériques de référence et les règles de sécurité informatique pour acquérir, traiter, produire et diffuser de l’information ainsi que pour collaborer en interne et en externe

Apprentissages critiques

  • Appréhender les outils numériques de rédaction de documents pour des présentations écrites et orales

Licence 1ère année - Semestre 2

Programmation Orientée Objet
 ECTShCMhTDhTP
Description

L'objectif du cours de POO est de permettre aux étudiants de comprendre et mettre en œuvre le paradigme de Programmation Orientée Objet. Il s'agit dans un premier temps d'en maîtriser les concepts fondamentaux, en décrivant des objets au moyen de classes, en les instanciant via des constructeurs, et en mettant en œuvre l'encapsulation pour garantir leur manipulation exclusivement par les traitements prévus. Ensuite les étudiants mettront en œuvre les concepts faisant la puissance de la programmation orientée objet : héritage, polymorphisme, exceptions, classes abstraites et interfaces, généricité, collections. Ce cours apprend également à utiliser des objets existants tels que spécifiés par leur API, et à documenter ses propres objets. Cet enseignement propose un équilibre entre l'apprentissage des concepts et leur mise en pratique par le langage Java.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Analyser un problème en termes d'objets informatique à mettre en œuvre et de relations entre ces objets
  • Rédiger un diagramme de classes en UML
  • Concevoir un programme en définissant de nouveaux objets et en utilisant des objets existants
  • Coder en utilisant le langage Java, et en explorant sont API
  • Développer dans un IDE tel qu'Eclipse
  • Produire une spécification en javadoc

Mots-clés : POO, Java, IDE, API

Compétence associée : Développer un logiciel

  • en se servant aisément de plusieurs styles/paradigmes algorithmiques et de programmation (approches impérative, fonctionnelle, objet et multitâche) ainsi que plusieurs langages de programmation

Apprentissages critiques

  • Choisir des structures de données complexes adaptées au problème
  • Comprendre et utiliser les mécanismes de la programmation orientée objet
Programmation 2
 ECTShCMhTDhTP
Description

Ce module programmation 2 apportera aux étudiants une compétence en programmation bas niveau nécessaire à certains types de développements (exemple : la programmation système). Le langage choisi est le langage C.

Dans un premier temps, nous décrirons les bases de la programmation en C : édition d'un code source, compilation/édition de liens, exécution. Nous nous attacherons ensuite à décrire les principes fondamentaux de la programmation dans ce langage : types, variables, opérateurs, instructions, fonctions,... le tout sous une forme qui s'apparentera à des rappels/adaptations du module programmation 1 au cours duquel le langage Java a été utilisé. Nous aborderons ensuite des aspects nouveaux et spécifiques au langage C : manipulation explicite d'adresses mémoire (pointeurs), tableaux statiques et chaines de caractères, gestion de la mémoire par allocation/désallocation dynamique, struct, typedef, enum, préprocesseur, modularité,...

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Conduire un développement en langage C en utilisant les caractéristiques propres à ce langage
  • Développer un projet de moyenne importance en langage C
  • Concevoir des applications nécessitant un développement bas niveau
  • Comprendre comment développer des structures de données complexes (listes, arbres, graphes,...) nécessitant une gestion dynamique de la mémoire
  • Respecter un certain nombre de bonnes pratiques communes aux langages de développement

Mots-clés : Programmation bas niveau, langage C

Compétence associée : Développer un logiciel

  • en analysant et interprétant les résultats produits par l'exécution d'un programme

Apprentissages critiques

  • Émettre un diagnostic du code et une correction en cas de dysfonctionnement
Web 1
 ECTShCMhTDhTP
Description

Ce module est consacré à la découverte des langages du web côté client. Nous verrons tout d'abord les principes généraux des sites web (architecture, protocole HTTP, notion de balise, URL, etc.). Puis nous entrerons dans le vif du sujet avec, dans une première partie sur le langage HTML, l'apprentissage des éléments de structuration d'un site web, et les principales balises permettant la description de contenu, incluant des éléments multimédia (images, sons, vidéos). Nous verrons ensuite les formulaires, qui permettent à l'utilisateur de saisir des informations.

Dans une seconde partie, nous aborderons CSS, où nous verrons les principes généraux des feuilles de styles, puis les principales propriétés permettant de définir des styles et de réaliser une mise en page et une mise en forme appropriée.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Développer des documents Web en utilisant le langage HTML et le système de feuilles de styles CSS
  • Structurer des informations dans un document Web avec le langage HTML.
  • Mettre en forme et mettre en page des documents HTML avec CSS.
  • Optimiser les temps de chargement des documents sur le réseau et dans le cadre d'un système client/serveur.
  • Gérer des éléments graphiques, vidéo et audio
  • Définir des d'interfaces web simples. Veiller à l'ergonomie.
  • Réaliser un développement d'après un cahier des charges dans le cadre de mini-projets.
  • Présenter son travail et expliquer ses choix de développement dans le cadre de courtes soutenances.

Mots-clés : Web statique, HTML, structuration, CSS, feuille de style

Compétence associée : Construire un système d'information

  • en concevant le traitement informatisé d’informations de différentes natures, telles que des données, des images et des textes

Apprentissages critiques

  • Réaliser un ensemble de pages liées entre elles par des liens hypertexte et intégrant divers médias
  • Appliquer un ensemble de règles de style à un site internet
Parcours au choix
 ECTS
Parcours 1 (Info-Maths)
 ECTS
Fonctions et suites
 ECTShCMhTDhTP
Espaces vectoriels
 ECTShCMhTDhTP
Parcours 2 (Info)
 ECTS
Outils maths pour l'info
 ECTShCMhTDhTP
Systèmes électroniques programmés
 ECTShCMhTDhTP

Compétence associée : Comprendre les systèmes informatiques

  • en identifiant et caractérisant les principaux éléments fonctionnels et l’architecture matérielle d’un ordinateur

Apprentissages critiques

  • Comprendre les éléments fondamentaux de l'électronique
Anglais 1
 ECTShCMhTDhTP

Compétence associée : Analyser et communiquer

Apprentissages critiques

  • Rendre compte et communiquer en se servant aisément des différents registres d’expression écrite de la langue anglaise
Enjeux socio-écologiques
 ECTShCMhTDhTP

Compétence associée : Analyser et communiquer

  • en respectant les principes d’éthique, de déontologie et de responsabilité environnementale

Apprentissages critiques

  • Comprendre des problématiques complexes de durabilité selon une approche pluri-disciplinaire
Atelier Projet Professionnel
 ECTShCMhTDhTP

Compétence associée : Se positionner dans le champ professionnel de l'informatique

  • en caractérisant et en valorisant son identité, ses compétences et son projet professionnel en fonction d’un contexte

Apprentissages critiques

  • Présenter ses compétences à l'écrit et/ou à l'oral

Licence 2e année - Semestre 3

Algorithmique 1
 ECTShCMhTDhTP
Description

Ce cours vise à familiariser les étudiants avec les fondements de l'algorithmique. Les premières sessions se concentrent sur les notations de Landau (particulièrement le O()) pour évaluer la complexité temporelle des algorithmes. On explore ensuite les structures de données linéaires telles que les tableaux, les listes, les piles et les files, en mettant l'accent sur les algorithmes classiques relatifs classiques (tri, rangs,...). Les étudiants apprendront à analyser la complexité des algorithmes à travers des exemples concrets sur des structures linéaires, comme les chaînes de caractères, avec des exemples d'algorithmes de compression ou de pattern matching.

Le cours comprend également une exploration introductive des paradigmes classiques de la conception d'algorithmes, tels que "diviser pour régner", la récursivité, l'optimisation gloutonne et la programmation dynamique.

En travaux pratiques, ils seront amenés à coder des algorithmes simples en C, en mettant en évidence l'impact des choix de structures de données sur la performance.

L'objectif est qu'à la fin du cours, les étudiants aient acquis les bases nécessaires pour concevoir et analyser des algorithmes, ainsi que pour choisir judicieusement les structures de données linéaires en fonction des besoins spécifiques d'un problème.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Maîtriser les notions d'opérations élémentaires et de complexité algorithmique (en temps) dans le cas le pire
  • Savoir évaluer et comparer des complexités algorithmiques dans des cas simples
  • Connaître les structures de données linéaires classiques (tableaux, listes, piles, files, chaînes de caractères)
  • Appréhender différentes stratégie de conception d'algorithmes, comme par exemple l'approche "diviser pour régner"
  • Savoir implémenter en C les structures linéaires classiques
  • Être capable d'évaluer empiriquement l'efficacité d'un programme

Compétence associée : Analyser et concevoir un logiciel

  • en choisissant, sur des critères objectifs, les structures de données et en construisant les algorithmes les mieux adaptés à un problème donné
  • en identifiant les concepts fondamentaux de complexité, calculabilité, décidabilité, vérification pour apprécier la complexité et les limites de validité d’une solution

Apprentissages critiques

  • Identifier les opérations liées aux différentes structures de données
  • Comprendre et calculer la complexité des algorithmes
Architecture des ordinateurs
 ECTShCMhTDhTP
Description

Cette UE vise à enseigner les bases du fonctionnement d'un ordinateur. Dans cet objectif, nous utilisons un microprocesseur de type RISC de la famille MIPS pour appréhender les bases du fonctionnement d'un système informatique. Les concepts suivants sont étudiés : le codage de l'information (nombres entiers non signés et signés, nombres réels au standard IEEE754, pointeurs et caractères), la logique booléenne pour concevoir le chemin suivi par les données circulant dans le microprocesseur, la programmation en langage assembleur et le traitement des entrées-sorties, l'optimisation du chemin de données en utilisant les techniques de pipeline et de hiérarchie mémoire.

Mots-clés : Codage IEEE754, MIPS, assembleur

Compétence associée : Comprendre les systèmes informatiques

  • en identifiant et caractérisant les principaux éléments fonctionnels et l’architecture matérielle d’un ordinateur
  • en interprétant les informations techniques fournies par les constructeurs, en écrivant des routines simples en langage machine

Apprentissages critiques

  • Comprendre le fonctionnement interne d'un processeur
  • Maîtriser les instructions d'une architecture matérielle
Logique et Déduction
 ECTShCMhTDhTP
Description

Le cours de Logique et Deduction a pour objectif de fournir aux étudiants les bases théoriques nécessaires à la modélisation et à la résolution de problèmes logiques en informatique. Il couvre les principaux concepts de la logique formelle, en mettant l'accent sur la logique propositionnelle, la logique des prédicats du premier ordre, le calcul de séquents (automatisation des preuves), et l'utilisation des SAT solvers pour résoudre des problèmes pratiques. Il est aussi l'occasion d'introduire des logiques spécifiques à l'informatique comme la logique du temps linéaire. Les travaux pratiques (en Python) seront l'occasion pour les étudiants de mettre en pratique les concepts théoriques abordés en cours. Les TP incluront des exercices de manipulation et de réécriture de formules logique, et aborderont l'utilisation de SAT solvers pour résoudre des problèmes réels tels que le Sudoku.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Connaître les concepts théoriques associés à la logique propositionnelle et à la logique des prédicats du premier ordre
  • Aborder les notions de termes, d'arbre et de réécriture sur des exemples simples
  • Comprendre le lien entre preuve et calcul
  • Appliquer une méthode simple de résolution pour décider de la satisfaisabilité ou validité d'une formule propositionnelle
  • Construire des arbres de preuve pour la logique propositionnelle dans le système LK
  • Savoir modéliser un problème simple en formules SAT
  • Savoir utiliser en pratique un solveur SAT

Compétence associée : Assimiler les fondements mathématiques

  • en caractérisant les outils logiques et algébriques fondamentaux (théorie des langages et de la compilation, logique et raisonnement, ordres, induction) et leurs implications dans la programmation et la modélisation
  • en construisant et en rédigeant une démonstration mathématique synthétique et rigoureuse

Apprentissages critiques

  • Comprendre les bases de la logique
  • Comprendre les bases de la construction de preuve
  • Utiliser un solveur pour résoudre un problème complexe
Système 1
 ECTShCMhTDhTP
Description

L'objectif du cours est de comprendre et manipuler les principes de base d'un système de type Unix. Après une présentation du rôle et des éléments constitutifs d'un système d'exploitation, nous verrons, dans un première partie, les caractéristiques d'un système de fichiers et comment interagir avec le système via des commandes shell. Les commandes de base seront présentées, et nous verrons que le shell implémente un langage de programmation, permettant l'écriture de scripts. Enfin, dans cette partie, nous verrons comment extraire des informations d'un fichier texte via la ligne de commande. Dans une seconde partie, la construction d'un exécutable à partir de plusieurs fichiers source écrits en langage C sera présentée. Vous verrez également dans cette partie la construction de bibliothèques, et l'automatisation de la construction d'exécutables et de bibliothèques en utilisant des fichiers Makefile et la commande make. Une troisième partie vous apprendra à écrire des programmes en C permettant de lire et d'écrire dans des fichiers, cela via deux API, l'API flux et l'API descripteurs de fichiers. Une dernière partie sera consacrée à la gestion des processus, d'abord d'un point de vue externe : les principales caractéristiques d'un processus, les signaux, les sessions, les groupes de processus, et le contrôle des processus via la ligne de commande seront présentées. Ensuite d'un point de vue interne, vous apprendrez, en langage C, à créer des processus et à gérer la communication entre ces processus via des tubes et des signaux.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Comprendre le fonctionnement et les notions de base d'un système d'exploitation de type Unix
  • Gérer des fichiers via la ligne de commande : création, copie, permissions, etc.
  • Écrire des scripts shell simples
  • Extraire des informations de fichiers texte via des commandes shell de type filtre
  • Écrire des Makefile pour construire des bibliothèques et des programmes composés de plusieurs unités de compilation
  • Écrire des programmes en C pour lire / écrire dans des fichiers en utilisant les API flux et descripteurs de fichier
  • Gérer des processus via la ligne de commande
  • Écrire des programmes en C permettant de créer des processus, charger un nouvel exécutable, réaliser des redirections, gérer la communication entre processus via des tubes anonymes et des tubes nommés, gérer les signaux

Mots-clés : Shell, ligne de commande, scripts shell, programmation C, fichiers, processus

Compétence associée : Comprendre les systèmes informatiques

  • en caractérisant le fonctionnement des systèmes et des réseaux

Apprentissages critiques

  • Manipuler un système de fichiers et des processus
  • Automatiser des tâches dans un système via un interpréteur de commandes
Web 2
 ECTShCMhTDhTP
Description

Ce module est consacré aux traitements effectués côté serveur, où des scripts PHP sont utilisés pour communiquer avec une base de données relationnelle en MySQL/MariaDB. Nous verrons comment développer des sites Web dynamiques reposant sur des bases de données relationnelles. Nous identifierons les rôles des éléments de l'architecture client/serveur 3 tiers : le client et les langages HTML/CSS, le serveur Web et le langage PHP, le serveur de bases de données et le langage SQL. Puis nous présenterons la syntaxe du langage PHP, et nous utiliserons ce langage pour générer des contenus dynamiques, et gérer de façon sécurisée les interactions entre le serveur Web et le client, et entre le serveur Web et le serveur de bases de données.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Concevoir et développer des interfaces utilisateur dans un environnement 3 tiers (HTML, CSS, PHP).
  • Concevoir et développer les méthodes de traitement de données dans un environnement 3 tiers (PHP, SQL).
  • Utiliser au mieux les paradigmes de programmation en fonction des besoins et de la taille des développements.
  • Construire et développer des applications fiables au niveau de la sécurité, tant du point de vue fonctionnelle que du point de vue protection des données.
  • Effectuer des traitements spécifiques côtés serveur : gestion messages électroniques, transferts de fichiers, opérations sur les répertoires.
  • Réaliser un développement d'après un cahier des charges dans le cadre de mini-projets.
  • Présenter son travail et expliquer ses choix de développement dans le cadre de courtes soutenances.

Mots-clés : PHP, MySQL, architecture 3-tiers

Compétence associée : Construire un système d'information

  • en concevant le traitement informatisé d’informations de différentes natures, telles que des données, des images et des textes
  • en concevant, en implémentant et en exploitant des bases de données

Apprentissages critiques

  • Mettre en œuvre une architecture 3-tier (back-end)
  • Organiser la restitution de données à travers la programmation et la visualisation
Anglais 2
 ECTShCMhTDhTP

Compétence associée : Analyser et communiquer

Apprentissages critiques

  • Communiquer et argumenter à l'écrit et à l'oral sur des aspects disciplinaires en langue anglaise

Licence 2e année - Semestre 4

Algorithmique 2
 ECTShCMhTDhTP
Description

Ce module se focalise sur des concepts avancés en algorithmique, en particulier sur les structures de données non-linéaires comme les graphes, ainsi que sur les algorithmes clés qui y sont associés. Le cours se décomposera en 3 grandes parties. La première sur les tas couvrira les techniques de tri associées, les tas binomiaux et les tas de Fibonacci. La deuxième partie se consacrera aux arbres de recherche en explorant des structures telles que les arbres AVL, les arbres rouges-noirs, les B-arbres et les arbres Splay. Cette partie inclura aussi les mécanismes de recherche efficaces et les stratégies d'équilibrage qui font de ces arbres des outils puissants pour la manipulation de données. La dernière partie se penchera sur les graphes en abordant des algorithmes essentiels tels que l'arbre couvrant de poids minimum (MST), les plus courts chemins (SP), les flux dans les graphes, les coupes minimales, etc.

Au fil de ce module, les étudiants développeront des compétences algorithmiques avancées, renforçant leur capacité à concevoir et à analyser des algorithmes complexes pour résoudre des problèmes réels.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Analyser et mettre en œuvre des algorithmes de tri efficaces
  • Comprendre les différentes approches de tri, y compris les tas, les tas binomiaux et les tas de Fibonacci
  • Comprendre les propriétés et les avantages des arbres AVL, des arbres rouges-noirs, des B-arbres et des arbres Splay
  • Appliquer les arbres de recherche pour résoudre des problèmes complexes liés à la manipulation de données
  • Maîtriser les algorithmes de l'arbre couvrant de poids minimum (MST), des plus courts chemins (SP), des flux et des coupes minimales
  • Appliquer ces algorithmes pour résoudre des problèmes de graphe variés
  • Résoudre des problèmes concrets en utilisant les structures de données et les algorithmes enseignés
  • Analyser la complexité temporelle et spatiale des algorithmes étudiés
  • Comprendre les meilleures pratiques pour l'optimisation des performances algorithmiques

Mots-clés : Algorithmes avancés, tas, arbre de recherche, graphe

Compétence associée : Analyser et concevoir un logiciel

  • en choisissant, sur des critères objectifs, les structures de données et en construisant les algorithmes les mieux adaptés à un problème donné
  • en identifiant les concepts fondamentaux de complexité, calculabilité, décidabilité, vérification pour apprécier la complexité et les limites de validité d’une solution

Apprentissages critiques

  • Utiliser des techniques algorithmiques adaptées pour des problèmes complexes
  • Anticiper les résultats de diverses métriques (temps d’exécution, occupation mémoire)
Analyse et modélisation de S.I.
 ECTShCMhTDhTP

Compétence associée : Analyser et concevoir un logiciel

  • en mettant en œuvre des méthodes d’analyse pour concevoir des applications et algorithmes à partir d’un cahier des charges partiellement donné

Apprentissages critiques

  • Élaborer les spécifications fonctionnelles et non fonctionnelles à partir des exigences
Outils pour la Programmation
 ECTShCMhTDhTP
Description

Principes et manipulation d'outils logiciels pour le développement logiciel. Le cours commencera par une introduction au test logiciel et notamment critères de test structurels qui seront mis en application pour du test unitaire avec l'outil JUnit, et un outil de mesure de couverture de code. Nous nous intéresserons à la gestion de version avec l'outil Git. Nous aborderons ensuite la virtualisation avec des containers Docker. Pour finir, nous nous intéresserons à la mise en place d'une infrastructure d'intégration et de déploiement continues. Les travaux pratiques mettront l'accent sur la mise en œuvre, notamment avec des environnements de développement intégrés (IDE) qui permettent d'assister les développeurs dans certaines tâches (complétion, compilation, test unitaire, debugging, synchronisation avec un dépôt de sources).

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Expliquer le principe du test logiciel
  • Citer les principaux critères de couverture de code
  • Ecrire et d'exécuter des tests unitaires dans un environnement de type xUnit
  • Assigner automatiquement le verdict du test avec des assertions appropriées
  • Automatiser la gestion et la production de projets logiciels avec un applicatif dédié
  • Evaluer la qualité des tests écrits soit par une mesure de la couverture de code, soit par analyse mutationnelle
  • Utiliser un gestionnaire de version pour réaliser un travail collaboratif sur un code source
  • Réaliser un développement logiciel collaboratif en s'appuyant sur l'intégration continue
  • Configurer et déployer un environnement virtuel de type Docker

Mots-clés : Test logiciel, JUnit, Selenium

Compétence associée : Développer un logiciel

  • en caractérisant le rôle des tests et des preuves de correction dans le développement des logiciels et mettant en œuvre des tests élémentaires et des invariants de boucle
  • en travaillant en équipe autant qu’en autonomie et responsabilité au service d’un projet

Apprentissages critiques

  • Vérifier et valider la qualité de l'application par des tests logiciels
  • Collaborer avec un gestionnaire de version
  • Mettre en œuvre un environnement d'intégration continue
Web 3
 ECTShCMhTDhTP
Description

Ce module sera focalisé sur le langage Javascript, langage du web dynamique côté client. Nous commencerons par la description des fondamentaux du langage (syntaxe, types de données, fonctions, objets). Nous verrons ensuite l'environnement d'exécution côté client dans lequel Javascript s'exécute, le navigateur. Nous ferons un tour d'horizon des possibilités offertes par celui-ci pour la manipulation dynamique du DOM, la capture d'événements, la gestion des données (cookies, stockage local), le mobile, ou encore la géolocalisation. Le cours couvrira également la notion de programmation asynchrone de type AJAX pour interroger des API distantes, ainsi que le traitement via des promesses.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Ecrire des programmes Javascript et les intégrer dans des pages web.
  • Utiliser les classes existantes du langage Javascript et de les étendre.
  • Ecrire des classes d'objet spécifiques
  • Accéder avec Javascript aux éléments du DOM
  • Modifier le styles des éléments du DOM avec Javascript
  • Créer des fonctions pour réagir aux événements du clavier, de la souris et du DOM
  • Valider des formulaires en HTML5 et en Javascript
  • Créer, lire, modifier des données stockées en local (cookie ou HTML5 storage)
  • Faire dialoguer une page web avec un programme serveur via AJAX
  • Réaliser des traitements asynchrones avec des callbacks ou des promesses
  • Réaliser des dessins dans un canvas

Mots-clés : Javascript, client, programmation asynchrone, événements, AJAX, promesses

Compétence associée : Construire un système d'information

  • en concevant le traitement informatisé d’informations de différentes natures, telles que des données, des images et des textes

Apprentissages critiques

  • Réaliser une application client dynamique (front-end)
Introduction à la recherche
 ECTShCMhTDhTP

Compétence associée : Analyser et communiquer

  • en identifiant le processus de production, de diffusion et de valorisation des savoirs

Apprentissages critiques

  • Comprendre les mécanismes et les principes de la recherche scientifique
Techniques de communication et Projet Pro. 1
 ECTShCMhTDhTP

Compétence associée : Se positionner dans le champ professionnel de l'informatique

  • en identifier et situant les champs professionnels potentiellement en relation avec les acquis de la mention ainsi que les parcours possibles pour y accéder
  • en caractérisant et en valorisant son identité, ses compétences et son projet professionnel en fonction d’un contexte

Apprentissages critiques

  • Comprendre le marché de l'emploi pour développer et y inscrire son projet professionnel
  • Initier son bilan de compétences, en particulier vis-à-vis de ses traits de personnalité, ses valeurs et ses motivations
  • Rédiger un curriculum vitae et une lettre de motivation pour candidater à un emploi
Anglais 3
 ECTShCMhTDhTP

Compétence associée : Analyser et communiquer

Apprentissages critiques

  • Communiquer et argumenter à l'écrit et à l'oral sur des aspects disciplinaires en langue anglaise

Licence 3e année - Semestre 5

Programmation fonctionnelle et scripts
 ECTShCMhTDhTP

Compétence associée : Développer un logiciel

  • en se servant aisément de plusieurs styles/paradigmes algorithmiques et de programmation (approches impérative, fonctionnelle, objet et multitâche) ainsi que plusieurs langages de programmation

Apprentissages critiques

  • Comprendre et utiliser les mécanismes de la programmation fonctionnelle
  • Comprendre et utiliser les mécanismes des langages de script
Réseau
 ECTShCMhTDhTP
Description

Ce module est dédié à la découverte des aspects matériels et logiciels liés aux réseaux informatiques. Le descriptif matériel présentera les équipements réseau ainsi que l'infrastructure générale de l'internet. Le descriptif logiciel est bâti sur le principe d'une pile protocolaire réseau : chaque couche protocolaire sera expliquée et exemplifiée par des protocoles. L'aspect logiciel est complété par une initiation à programmation par les sockets entre processus communicants (en langage C).

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • acquérir les connaissances de base en réseau (connaître les concepts de base liés aux réseaux : protocoles, topologies, connaître les différents types de réseaux et leur caractéristiques)
  • connaître les principes des piles protocolaires OSI et TCP/IP
  • comprendre les technologies mises en œuvre dans les réseaux (fonctionnement de TCP, routage IP, maîtrise de la QoS)
  • savoir configurer un ordinateur et un routeur pour la mise en réseau
  • se familiariser avec le développement des applications en réseau

Mots-clés : équipements réseau, pile protocolaire OSI, protocoles, numérotation IP, plan d'adressage, routage, configurations réseau, programmation par sockets

Compétence associée : Comprendre les systèmes informatiques

  • en caractérisant le fonctionnement des systèmes et des réseaux

Apprentissages critiques

  • Comprendre l'architecture et les fondements des communications réseau et de l'Internet
  • Maîtriser les principes de base de la programmation réseau
Théorie des langages
 ECTShCMhTDhTP

Compétence associée : Assimiler les fondements mathématiques

  • en caractérisant les outils logiques et algébriques fondamentaux (théorie des langages et de la compilation, logique et raisonnement, ordres, induction) et leurs implications dans la programmation et la modélisation

Apprentissages critiques

  • Caractériser et décrire des langages formels
  • Manipuler les différentes formes d'un langage régulier
Conception Objet
 ECTShCMhTDhTP
Description

Ce module s'intéressera à l'analyse et la conception de systèmes en utilisant le paradigme de la programmation orientée objet. Après un rappel sur les différents diagrammes UML, permettant d'exprimer aussi bien les aspects structurels ou dynamiques d'un système, nous verrons le langage de contraintes OCL qui complète les descriptions graphiques et permet l'expression de propriétés semi-formelles. Nous nous interesserons ensuite aux patrons de conception les plus classiques et aux problèmes auxquels ils répondent.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Modéliser l'architecture d'un logiciel à l'aide des diagrammes UML appropriés
  • Modéliser le comportement d'un composant logiciel ou d'un système à l'aide des diagrammes UML adéquats
  • Compléter ces modèles par des propriétés exprimées dans le langage OCL
  • Citer les principaux patrons de conception (création, structure, comportement)
  • Choisir le patron de conception approprié à appliquer pour un problème donné
  • Implémenter des patrons de conception dans un langage orienté objet

Mots-clés : UML, OCL, Patrons de conception

Compétence associée : Analyser et concevoir un logiciel

  • en choisissant, sur des critères objectifs, les structures de données et en construisant les algorithmes les mieux adaptés à un problème donné

Apprentissages critiques

  • Utiliser des patrons de conception pour le développement d’applications cohérentes
  • Adopter de bonnes pratiques de conception et de programmation
Web 4
 ECTShCMhTDhTP
Description

Le module s'intéressera à compléter les connaissances déjà acquises sur les langages du web classiques (HTML, CSS, PHP/MySQL, JS) en vue de maîtriser toutes les facettes du développement full-stack. Nous aborderons l'utilisation de Javascript côté serveur avec Node.js ainsi que diverses bibliothèques (express, websockets, JSON web tokens) permettant de réaliser des applications web riches interfacées avec des bases de données relationnelles ou NoSQL. Nous verrons la mise en place d'architectures à base de micro-services via des API REST, sécurisées avec des mécanismes d'authentification type web tokens (JWT). Nous terminerons par un aperçu des frameworks Javascript existants et de Typescript, la déclinaison typée de Javascript.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Configurer un serveur web basé sur Node.js pour servir des pages statiques ou dynamiques.
  • Expliquer le principe de fonctionnement d'une architecture REST.
  • Mettre en place une architecture client-serveur basée sur des micro-services REST.
  • Mettre en oeuvre une architecture client-serveur en communiquant avec des sockets web.
  • Interfacer un serveur web Node.js avec une base de données relationnelle ou NoSQL.
  • Sécuriser l'accès aux API du serveur à l'aide de jetons d'authentification JWT.
  • Employer un framework côté client et/ou côté serveur pour réaliser un développement d'application web

Mots-clés : Node.js, NoSQL, REST, JSON Web Token, React

Compétence associée : Construire un système d'information

  • en concevant le traitement informatisé d’informations de différentes natures, telles que des données, des images et des textes
  • en caractérisant les pratiques, outils et techniques visant à assurer la sécurité des systèmes informatiques pendant leur développement et leur utilisation

Apprentissages critiques

  • Développer une application multi-tiers complète
  • Mettre en œuvre un serveur d'application sécurisé
Techniques de communication et Projet Pro. 2
 ECTShCMhTDhTP

Compétence associée : Se positionner dans le champ professionnel de l'informatique

  • en identifier et situant les champs professionnels potentiellement en relation avec les acquis de la mention ainsi que les parcours possibles pour y accéder
  • en caractérisant et en valorisant son identité, ses compétences et son projet professionnel en fonction d’un contexte

Apprentissages critiques

  • Comprendre le monde socio-économique afin de positionner avec pertinence son offre de compétences
  • Travailler son bilan de compétences afin de communiquer efficacement dans ses démarches de recherche d'emploi ou de stage
Anglais 4
 ECTShCMhTDhTP

Compétence associée : Analyser et communiquer

Apprentissages critiques

  • S'exprimer à l'écrit et à l'oral sur des aspects techniques en langue anglaise

Licence 3e année - Semestre 6

Analyse syntaxique
 ECTShCMhTDhTP

Compétence associée : Assimiler les fondements mathématiques

  • en caractérisant les outils logiques et algébriques fondamentaux (théorie des langages et de la compilation, logique et raisonnement, ordres, induction) et leurs implications dans la programmation et la modélisation

Apprentissages critiques

  • Comprendre et utiliser les mécanismes de l'analyse syntaxique
Apprentissage automatique
 ECTShCMhTDhTP
Description

L'apprentissage automatique est une branche de l'apprentissage machine (Machine learning) qui a pour but d'analyser et de synthétiser des masses de données (datasets) en vue de leur exploitation à des fins de prédiction, il s'agit de classification ou régression. Les données sont issues du monde réel, elles sont par définition volumineuses, complexes et hétérogènes. L'étudiant comprendra les fondements mathématiques de méthodes informatiques de l'apprentissage automatique et utilisera des techniques issues de bibliothèques informatiques réputées telle que Scikit-Learn.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Comprendre les fondements mathématiques de l'apprentissage automatique
  • Capturer et stocker des ensembles volumineux et complexes de données Hétérogènes
  • Manipuler des données hétérogènes
  • Appliquer des méthodes d'exploration et d'exploitation des données (apprentissage)
  • Formaliser et mettre en œuvre des outils mathématiques pour l'informatique pour prédire et/ou classer
  • Organiser la restitution de données à travers la programmation et la visualisation

Mots-clés : Apprentissage automatique, machine learning, classification, régression

Compétence associée : Assimiler les fondements mathématiques

  • en caractérisant les techniques de gestion de l’aléatoire (probabilités et statistique) et leurs rôles dans le traitement de certaines données

Apprentissages critiques

  • Appliquer des méthodes d’exploration et d’exploitation des données (apprentissage)
Programmation Multi-Paradigme
 ECTShCMhTDhTP

Compétence associée : Développer un logiciel

  • en se servant aisément de plusieurs styles/paradigmes algorithmiques et de programmation (approches impérative, fonctionnelle, objet et multitâche) ainsi que plusieurs langages de programmation

Apprentissages critiques

  • Choisir une combinaison de paradigmes adéquate pour traiter un problème
Sécurité
 ECTShCMhTDhTP

Compétence associée : Construire un système d'information

  • en caractérisant les pratiques, outils et techniques visant à assurer la sécurité des systèmes informatiques pendant leur développement et leur utilisation

Apprentissages critiques

  • Comprendre le rôle de la cryptographie dans la sécurité des systèmes d'information
Système 2
 ECTShCMhTDhTP
Description

Ce module traite deux volets complémentaires des systèmes d'exploitation : les grandes principes conceptuels de la mise en oeuvre d'un système (ordonnancement de processus, gestion mémoire, allocation des ressources) et la programmation système avancée (en C) autour de la communication entre des fils d'exécution indépendants : communication entre processus par mémoire partagée, communication entre threads par partage de mémoire. Avec le partage d'information, une introduction à la synchronisation compétitive (thread et processus) est présentée.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • comprendre les problématiques dans la conception des systèmes d'exploitation
  • savoir développer les applications communicantes à plusieurs fils d'exécution
  • identifier correctement la technique la plus adéquate de communication entre les fils d'exécution et l'outil adéquat permettant d'assurer la cohérence des données partagées
  • savoir automatiser des tâches d'inspection du système

Mots-clés : segments de mémoire partagée, exclusion mutuelle, threads, concepts des systèmes d'exploitation, ordonnancement, gestion mémoire, allocation des ressources

Compétence associée : Comprendre les systèmes informatiques

  • en caractérisant le fonctionnement des systèmes et des réseaux

Apprentissages critiques

  • Utiliser les fonctionnalités de base d'un système multi-tâches et multi-utilisateurs pour la communication
  • Maîtriser les rôles et les principes fondamentaux de la conception des systèmes d'exploitation
Projet
 ECTShCMhTDhTP

Compétence associée : Se positionner dans le champ professionnel de l'informatique

Apprentissages critiques

  • Décrire une solution technique à un problème concret
Stage en entreprise
 ECTShCMhTDhTP

Compétence associée : Se positionner dans le champ professionnel de l'informatique

  • en situant son rôle et sa mission au sein d'une organisation pour s'adapter et prendre des initiatives

Apprentissages critiques

  • Comprendre et s'insérer dans l'organisation interne d'une entreprise
  • Décrire l'intégration d'un développement dans une solution