- Appliquer des approches raisonnées de résolution de problèmes complexes par décompositions et/ou approximations successives et mettre en œuvre des méthodes d'analyse pour concevoir des applications et algorithmes à partir d'un cahier des charges
- Manipuler aisément plusieurs paradigmes algorithmiques (approches impérative, fonctionnelle, objet et multitâche).
- Choisir, sur des critères objectifs, les structures de données et construire les algorithmes les mieux adaptés à un problème donné.
- Identifier les concepts fondamentaux de complexité, calculabilité, décidabilité, vérification : apprécier la complexité et les limites de validité d'une solution.
- Caractériser 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.
- Construire et rédiger une démonstration mathématique synthétique et rigoureuse.
- Manipuler aisément plusieurs styles de programmation (approches impérative, fonctionnelle, objet et multitâche) ainsi que plusieurs langages de programmation.
- Concevoir le traitement informatisé d'informations de différentes natures, telles que des données, des images et des textes.
- Caractériser le rôle des tests et des preuves de correction dans le développement des logiciels et mettre en œuvre des tests élémentaires et des invariants de boucle.
- Concevoir, implémenter et exploiter des bases de données.
- Identifier et caractériser les principaux éléments fonctionnels et l'architecture matérielle d'un ordinateur, interpréter les informations techniques fournies par les constructeurs, écrire des routines simples en langage machine.
- Caractériser le fonctionnement des systèmes et des réseaux, ainsi que les pratiques, outils et techniques visant à assurer la sécurité des systèmes informatiques pendant leur développement et leur utilisation.
- Analyser et interpréter les résultats produits par l'exécution d'un programme.
- Expliquer et documenter la mise en œuvre d'une solution technique.
- Caractériser les techniques de gestion de l'aléatoire (probabilités et statistique) et leurs rôles dans le traitement de certaines données.
- Utiliser un logiciel de calcul formel ou scientifique.
- Utiliser les outils numériques de référence et les règles de sécurité informatique pour acquérir, Analyser et synthétiser des données en vue de leur exploitation.
Semestre 1?:
Algorithmique et Programmation 1
Méthodes et Outils pour les Mathématiques et pour l'Informatique
Anglais
Culture Numérique 1
Projet Professionnel et Personnel de l'Étudiant
Calculus 1
Option 2?: au choix
Analyse 1 (mathématiques)
Ou 2 unités parmi initiation aux réseaux (informatique)
Chimie?; physique
Semestre 2?:
Algorithmique et Programmation 2
Algèbre Linéaire
Numération et circuits
Polynômes
Anglais
Culture Numérique 2
Option 1 : au choix?Web?où?Calculus 2
Option 2 : une option à choisir parmi?Décision de groupe et théorie du vote?(informatique) ;?Analyse 2?(mathématiques) ;?Biologie
Semestre 3?:
Algorithmique et Programmation 3
Langage C
Programmation Web 1
Probabilités
Anglais
Construction du Projet Professionnel
Semestre 4?:
Algorithmique et Programmation 4
Bases de données
Programmation Orientée Objet
Assembleur
Anglais
Option : au choix Communication et Techniques de Recrutement ou Découverte des Métiers de l'Enseignement Primaire
Semestre 5?:
Algorithmique et Programmation 5
Théorie des langages et compilation
C avancé
Unix et shell
Outils Logiques
Anglais
Semestre 6?:
Conception orientée objet
Lambda calcul et programmation fonctionnelle
Programmation Web 2
Technologies émergentes
Anglais
Esprit d'entreprendre
Stage
Licence mention informatique
Certifiante
Bac + 3 et 4