Parcours Science et Technologie du Logiciel (STL)

Le parcours Sciences et Technologie du Logiciel (STL) a pour objectif de former des spécialistes en développement logiciel, possédant une assise solide dans les langages de programmation et les méthodes algorithmiques. Il s’adresse à des étudiantes et étudiants intéressés à la fois par les aspects fondamentaux et technologiques de l’informatique.

La formation est centrée sur l'apprentissage de méthodes et d'outils rigoureux pour la conception et le développement de logiciels complexes ainsi que pour la modélisation et l'analyse de problèmes algorithmiques issus de divers domaines applicatifs.

Le parcours STL propose une filière recherche (Algorithme et Programmation Recherche) et deux filières professionnelles, dont une classique (Algorithme et Programmation pour l’Ingénieur) et une en alternance par la voie de l'apprentissage, en partenariat avec le CFA INSTA.

Parcours Science et Technologie du Logiciel (STL)

Objectifs

Le parcours offre des agencements d'UE qui couvrent des compétences à la fois larges et pointues en particulier autour des thématiques suivantes :

  • Fiabilité du logiciel et algorithmes.
  • Programmation Web, concurrence et mobilité.
  • Génie logiciel et environnements de développement.

Les voies professionnelles et les voies vers la recherche s'interpénètrent largement. Les débouchés professionnels sont ceux de spécialistes en architecture logicielle et outils d'ingénierie, de cheffes et chefs de projets à forte compétence technique en algorithmique et programmation. Les voies vers la recherche visent non seulement une poursuite d'étude en doctorat, mais ont aussi des débouchés immédiats dans les centres de recherche des grandes entreprises, les bureaux d'étude et les petites entreprises innovantes et de hautes technologies. Les domaines de recherche couverts concernent la programmation et les architectures logicielles, ainsi que l'algorithmique, avec des problématiques très actuelles, liées par exemple à la programmation concurrente ou à la fiabilité des programmes.

Du point de vue des connaissances scientifiques, la formation présente l'algorithmique et la programmation en profondeur afin que les étudiants soient en mesure de mettre leurs acquis en pratique directement à la sortie de la formation. Toutefois, notre champ scientifique étant en constante évolution, les étudiantes et étudiants doivent aussi saisir les notions abstraites fondamentales leur permettant de s'adapter aux changements importants auxquels ils seront confrontés tout au long de leur carrière. Enfin, la formation aborde les questions de pratique et de responsabilité de gestion de projets, connaissances requises pour bon nombre de postes offerts à la sortie de Master.

La première année M1 du parcours STL se caractérise à la fois par un complément sur les fondamentaux de la discipline transversal au master Informatique et par un début de spécialisation. Elle est donc un tronc commun offrant une importante mutualisation d’enseignements avec les autres parcours du master Informatique.

L’année se compose de deux semestres (S1 et S2) indépendants, dans la mesure où ils doivent être validés indépendamment l’un de l’autre. Au cours de chaque semestre, l’étudiant ou l'étudiante doit suivre un nombre d'UE correspondant à 30 ECTS, chaque UE correspondant généralement à 60 heures d’enseignement (généralement 20 heures de cours + 40 heures de TD/TP) et valant 6 ECTS.

Premier semestre (M1-S1)

Au semestre M1-S1, les étudiantes et étudiants suivent 6 UE, dont 2 UE obligatoires proposées par le parcours STL, 2 UE spécifiques et 2 UE à choisir parmi celles proposées par les autres parcours du master Informatique.

Les 2 UE obligatoires sont :

  • ALGAV (Algorithmique Avancée, 6 ECTS)
  • DLP  (Développement de Langages de Progrommation, 6 ECTS)

Les 2 UE spécifiques sont :

  • OUV (Ouverture et pré-requis, 3 ECTS)
  • ANG  (Anglais, 3 ECTS)

Les 2 UE optionnelles recommandées sont à choisir (sous réserve de places disponibles) parmi :

  • IL (Ingénierie Logicielle, 6 ECTS)
  • LRC (Logique et Représentation des Connaissances - UE du parcours ANDROIDE, 6 ECTS)
  • NOYAU (Architecture avancée des noyaux des systèmes - UE du parcours SAR, 6 ECTS)
  • PSCR (Programmation système concurrente et répartie - UE du parcours SAR, 6 ECTS)
  • ARCHI (Architecture des processeurs et optimisations - UE du parcours SESI, 6 ECTS)
  • COMPLEX (Complexité, Algorithmes Probabilistes et Approchés - UE du parcours SFPN, 6 ECTS)
  • MOGPL (Modèlisation, Optimisation, Graphes, et Programmation Linéaire - UE du parcours ANDROIDE, 6 ECTS)
  • UE libre : toute UE du catalogue d’UE global du master Informatique, sous réserve de validation par le responsable du parcours (et de compatibilité d’emploi du temps)

Deuxième semestre (M1-S2)

Au semestre M1-S2, les étudiantes et étudiants suivent également 6 UE :

  • Une UE obligatoire de projet : PSTL, 6 ECTS
  • Quatre UE à choisir parmi :
    • APS (Analyse des Programmes et Sémantique, 6 ECTS)
    • CA (Compilation Avancée, 6 ECTS)
    • CPA (Conception et Pratique d'Algorithmes, 6 ECTS)
    • CPS (Composants, 6 ECTS)
    • PAF (Programmation Avancée en style Fonctionnel, 6 ECTS)
    • PC2R (Programmation Concurrente Réactive et Répartie, 6 ECTS)

Il est possible de choisir une UE en dehors des UE STL, dans d'autres parcours du master, à condition d'obtenir l'accord du responsable du parcours.

L'année de M2 suit le planning et les règles générales du Master d'Informatique.

Pour STL, il y a trois filières : R&D : Algorithmes et Programmation Recherche, ING : Algorithmes et PRogrammation pour l'Ingénieu et ALT : en Alternance. Chaque filière définit des règles spécifiques d'agencement d'UE. Cette distinction entre filières est en réalité plus importante pour l'organisation que pour les contenus. Ceux-ci se déclinent en trois thématiques : 1. Fiabibilité du Logiciel et Algorithmes, 2. Web, Concurrence et Mobilité et 3. Génie Logiciel et Environnement de Développement. La totalité des UE de M2-STL sont mutualisées entre plusieurs filières comme indiqué sur le schéma. Cette mutualisation tient compte des périodes en entreprise pour la filière en alternance.

 

Au semestre M2-S3, les étudiantes et étudiants suivent également 6 UE  parmi :

Le choix des UE est contraint par rapport à la filière intégrée.
Il est aussi possible de choisir une UE en dehors des UE STL mentionnées ci-dessous (dans les autres parcours du master ou pour la filière recherche, une UE du MPRI) à condition d'obtenir l'accord du responsable de la filière.

Savoir-faire et compétences

À l’issue de la formation, les étudiantes et étudiants ont acquis une expertise en ingénierie du logiciel ainsi qu’une connaissance poussée de la sûreté de fonctionnement des logiciels tout en ayant été confrontés à la résolution de problèmes algorithmiques récents.

Le parcours STL forme des spécialistes à forte compétence technique en algorithmique et programmation, mais aussi avec un bagage conséquent en connaissances fondamentales dans ces thématiques facilitant l’évolution de carrière et l’acquisition ultérieure de nouvelles compétences.

Public visé et prérequis

Le parcours STL s’adresse à des titulaires d’un diplôme de Licence ou d’un diplôme équivalent, en informatique ou en mathématiques et informatique. Il peut également accueillir directement en M2, des étudiantes et étudiants ayant effectué leur première année de Master dans une autre école ou université, française ou étrangère. Une admission est envisageable pour des candidates et candidats en Formation Continue, postulant éventuellement au titre de la VAE.

Les prérequis de la première année de STL relèvent de connaissances et concepts de niveau Licence, essentiellement dans les domaines de la programmation et de l'algorithmique : notions générales sur les trois types de langages (fonctionnel, impératif et objet) ; connaissance approfondie d'au moins un langage (Java, OCaml ou C) ; structures de données et algorithmes fondamentaux (listes, arbres, graphes, recherche et tri) ; méthodes de conception des algorithmes (correction et complexité). Il faut aussi des bases de logique et de compilation ainsi que des principes sur les systèmes d'exploitation, ainsi qu'une bonne connaissance externe d'Unix et des outils de développement de programmes.

Débouchés

Les débouchés des filières professionnelles sont ceux d’expertes et experts en ingénierie du logiciel (maîtrise des techniques applicatives les plus récentes et capacités de prise en charge de la définition et de la gestion d’environnements de développement) ainsi que de spécialistes en sûreté de fonctionnement (conception ou validation de systèmes comportant de nombreux composants logiciels et devant répondre à des exigences de sûreté). La filière recherche vise non seulement une poursuite d’étude en Doctorat, en algorithmique et en programmation, mais elle a aussi des débouchés immédiats dans les centres de recherche des grandes entreprises, les bureaux d’étude et les startups logicielles.

Contacts

Responsables du parcours

Frédéric PESCHANSKI

Antoine GENITRINI