Le titulaire du Master est capable d’appliquer les connaissances théoriques et pratiques acquises, à la résolution de problèmes informatique. Parcours Génie logiciel : Définir au sein d'une équipe de développement l'architecture de l'application et/ou de ses composants ; Maîtriser les outils de développement d'applications à base de serveurs et de clients de type client lourd ou interface web, les outils de développement d'applications destinés à des systèmes critiques, en particulier dans le domaine des transports, médical, nucléaire… ; Maîtriser les outils de tests de logiciels à destination de systèmes critiques et/ou embarqués ; Identifier les problèmes algorithmiques intrinsèquement difficiles ou insolubles. Parcours Réseaux (Réseaux de communication & Internet, Systèmes Mobiles Autonomes Communicants et Calcul Haute Performance) : Être capable de comprendre de manière approfondie et de mettre en oeuvre les différents modèles de programmation (impérative, fonctionnelle, logique, orientée objet, distribuée et parallèle) ; Maîtriser (développement, test, mise en oeuvre) le domaine des réseaux, des systèmes d'exploitation, des systèmes répartis ; Maîtriser les équipements et les technologies associées aux équipements mobiles et aux systèmes embarqués (développement spécifique, sécurité) ; Être capable de modéliser et de valider des architectures réseau, des systèmes répartis et mobiles. Parcours Informatique pour l’image et le son : Comprendre et traduire sous forme informatique une spécification mathématique ; Développer des outils informatiques opérant sur des images 2D et 3D ainsi que sur des sons ou des flux vidéo ; Choisir le modèle et/ou la méthode adaptée à un type de problème, que ce soit pour du traitement, du codage, de l'analyse ou de la visualisation ; Construire ou adapter une chaîne de traitements spécifique à la résolution d'un problème particulier ; Savoir tirer partie d'une architecture matérielle spécifique (e.g. multi-coeur, GPU...) ; Interagir avec des données multimédia (son/musique/vidéo/environnement 3D). Parcours Informatique fondamentale (Vérification logicielle et Informatique fondamentale) : Être capable de comprendre de manière approfondie et de mettre en oeuvre les différents modèles de programmation (impérative, fonctionnelle, logique, orientée objet, distribuée et parallèle) ; Modéliser des problèmes issus de différents domaines d'application en vue de leur résolution informatique ; Évaluer la complexité et la pertinence d'une solution algorithmique ; Analyser un document scientifique de haut niveau en vue de son exploitation informatique ; choisir les structures de données adaptées et maîtriser leur algorithmique ; Maîtriser les techniques de manipulation et de visualisation adaptées aux grands volumes de données. Parcours Cryptologie et sécurité informatique : Maîtriser les techniques de mathématique algorithmique, notamment concernant les grands entiers, et être capable de les implanter ; Etre familier des principes d’algorithmique théorique (théorie de la complexité) et pratiques ; Maîtriser des techniques de codage correcteur d’erreurs, de compression en théorie de l’information ; Connaître les principaux algorithmes de chiffrement, les protocoles de communication sécurisée, et les normes afférentes ; Connaître les failles classiques des systèmes de sécurité, les principales techniques de cryptanalyse ; Etre initié à la technologie et au domaine de la carte à puce ; Maîtriser les principaux protocoles réseaux, fixes, et mobiles ; Maîtriser les logiciels de calcul scientifique (MATLAB, MAPLE, MAGMA) ainsi que les mathématiques qui les sous tendent ; Savoir structurer, écrire et utiliser des programmes en particulier écrits en langage C et en java. En plus, quel que soit le parcours choisi, le diplômé possède des compétences transversales, acquises dans un contexte général de formation universitaire et des compétences scientifiques génériques et spécifiques, acquises au cours de sa formation en informatique. Compétences transversales : organisationnelles et relationnelles Maîtriser un environnement informatique (matériel, logiciel, communication) en vue de la réalisation d'applications; Analyser un document technique (y compris du code) ou scientifique, en français ou en anglais, en vue de son utilisation dans un contexte informatique; Travailler au sein d'une équipe de développement en utilisant des méthodes de conduite de projet adaptées à l'objectif et à la taille du projet; Travailler au sein d'une équipe de développement en utilisant des outils de communication et de partage des données adaptés; Réaliser un document ou une présentation orale présentant un travail scientifique ou technique, réalisé par soi-même ou par un tiers. Compétences scientifiques générales : Développer une application de taille moyenne; Identifier des problèmes algorithmiques intrinsèquement difficiles ou insolubles.