Compétences
Les étudiants apprennent à concevoir et développer des logiciels, ce qui implique un certain nombre de savoirs et de savoir-faire :
- maîtrise de la programmation dans différents langages et paradigmes (impératif, fonctionnel, objet, logique, déclaratif) ;
- algorithmique et structures de données (conception et analyse) ;
- maîtrise des systèmes et des outils de développement logiciel (éditeurs de code, gestionnaires de versions, moteurs de production, forge, etc.) ;
- méthodologie de conception logicielle (décomposition de problème, architecture logicielle, outils et méthodes de développement collaboratif à grande échelle) ;
- fonctionnement des ordinateurs, de leurs systèmes, et des réseaux (architecture matériel, noyaux, modèle OSI, programmation TCP/IP, conception de langages) ;
- applications concrètes dans différentes branches de l’informatique : intelligence artificielle, informatique graphique, traitement automatique des langues, cybersécurité, interprétation et compilation, systèmes, réseaux, bases de données, développement web, développement mobile, etc.
- documentation (consultation et rédaction — y compris en anglais) et présentation orale ;
- perspective historique, sociale et éthique sur la discipline (histoire, enjeux sociaux et environnementaux, gestion des données personnelles, etc.).