Acquérir les bases de la programmation et savoir utiliser quelques logiciels parmi les plus courants. Cet enseignement est organisé à partir de cours et de travaux pratiques.
Se familiariser avec des modèles classiques de problèmes d'optimisation, notamment des modèles basés sur les graphes. Apprendre à modéliser de tels problèmes, qui sont issus de l'informatique et de la recherche opérationnelle, puis à les résoudre à l'aide d'un algorithme et d'une structure de données appropriés.
Apprendre la programmation en C, notamment de bas niveau
Connaitre le fonctionnement de certaines interfaces d'entrées-sorties
Apprendre le fonctionnement et les spécificités d'un système temps réel
Savoir réaliser les spécifications d'une application temps réel à l'aide d'une méthode
Le paradigme fonctionnel est aujourd'hui présent dans de nombreux langages modernes dits multi-paradigmes, tels Java, JavaScript, C#/F#, C++, Scala, et Swift. A titre d'exemple, la programmation fonctionnelle est devenue incontournable dans le domaine des applications web développées en Javascript.
Ce cours a pour objectif d'étudier le paradigme fonctionnel de la programmation par le biais d'au moins un langage fondé sur un noyau purement fonctionnel (par exemple Ocaml). Cette étude sera ensuite élargie au contexte de la programmation web, et illustrée par un autre langage dans ce domaine(par exemple Javascript).
Donner les principes fondamentaux d'une programmation et d'une documentation rigoureuse.
Montrer comment la documentation formelle permet la validation des logiciels.
Remarque: Ce cours comportait précédemment une longue introduction à Prolog, cet aspect du cours a été retiré.
Maitriser les concepts avancés de la programmation objet en Java. Apprendre à identifier et utiliser les patrons de conception (design pattern) adaptés à une situation de conception. Patrons utilisables quelque soit le langage de programmation
Objectifs
Comprendre les bases de la programmation, savoir écrire un programme informatique, acquérir une culture de base en informatique et sur les nouveaux outils, services et matériels numériques ; comprendre les enjeux du numérique. Modéliser un système d'information, comprendre les bases de données (modélisation, création de tables, requêtes simples).
Développement d'applications multiprocessus entralisées et réparties sour un système LINUX.
Approfondir un des thèmes majeurs de la R. O. : la programmation linéaire ,
Appréhender les concepts système et réseau pour smart-phones et tablettes tactiles et la programmation d'applications tierces.
Comprendre les mécanismes de base des systèmes d'exploitation des smart-phones et leurs contraintes particulières sur le modèle de programmation.
Connaître les principales ressources matérielles disponibles sur téléphones mobiles et les mettre en œuvre pour enrichir l'interaction utilisateur (capteurs physiques, écran tactile multipoints, géolocalisation, APN...).
Découvrir les technologies Web pour l'embarqué mobile et en particulier les technologies hybrides comme PhoneGap/CORDOVA.
Connaître les enjeux de sécurité dans le monde mobile et des technologies sans contact (cartes SIM, NFC...)
Savoir programmer des applications pour smart-phone ou tablette tactile sur une plateforme particulière.
Savoir réaliser et implanter une application Android complète et la déployer.
Objectifs
Apprendre à bien programmer avec le langage Visual Basic Application (VBA)
Savoir écrire des macros en langage VBA.
Atteindre un degré d'autonomie en programmation VBA.
Connaître et approfondir les principaux paradigmes de programmation : impératif, logique, fonctionnel, réactif, objet ; savoir les mettre en œuvre ; comprendre leurs différences.