Maîtrise des concepts de la programmation objet et connaissance d’un système d’interface graphique.
Principes de base de la programmation objet : classes et objets, références, héritage, notion de polymorphisme, exceptions, généricité. Utilisation d’une interface graphique définie dans un langage orienté objet.
Ce cours est une introduction à la théorie des automates finis et des langages formels, ainsi qu'à l'analyse lexicale.
Les langages rationnels sont étudiés tant sous l'angle algorithmique qu'algébrique. Sont abordés en particulier des algorithmes pour transformer une expression rationnelle en automates et vice-versa, pour déterminiser un automate et le minimiser ; mais aussi le lemme de l'étoile ou la caractérisation de Myhill-Nerode des langages rationnels selon leur nombre de résiduels.
Enfin, l'introduction à l'analyse lexicale forme une partie plus orientée vers la pratique et la programmation.
Apprendre à manipuler les algorithmes (les comprendre, les modifier, et les concevoir)
Cet enseignement vise à présenter l’approche algorithmique de la résolution de problèmes simples et à sensibiliser les étudiants à la notion d’efficacité d’un algorithme. Tris simples ; Manipulations de structures récursives (listes, arbres) ; Backtracking.
À la fin de ce cours, un étudiant doit savoir utiliser tous les outils de développement classiques et avoir de premières notions de processus de développement.
Développements limités (DL à l'ordre 1 et dérivabilité, équivalents, notations o et O, formule de Taylor-Young, développements limités, application à la détermination de limites)
Algèbre linéaire (espaces vectoriels, sous-espaces vectoriels, base, dimension, application linéaire, rang et noyau, représentation matricielle, déterminant, réduction des endomorphimes digonalisables)
Conduite d'un premier projet répondant à un cahier des charges.
Algorithmes et structures de données classiques. Compréhension des problèmes élémentaires de complexité.
Complexité : ordres de grandeur usuels, complexité en temps et en espace, au pire, en moyenne ; Analyse comparée des algorithmes de tri classiques; permutations ; Structures pour les ensembles : listes, arbres binaires de recherche, tas, tables de hachage.
Maîtrise du langage C et de la bibliothèque standard.
Syntaxe générale, types, structures, unions, entrées/sorties standard; notion de pointeur, arithmétique des pointeurs, allocation dynamique de mémoire, chaînes de caractères, structures de données (listes, arbres), le débogueur, modularisation de programmes en C, make et Makefile, pointeurs de fonctions, macro-fonctions.
Ce cours est une introduction à la logique et notamment au calcul propositionnel, à certaines techniques de déduction automatique (résolution, DPLL) et à la modélisation des problèmes en logique propositionnelle.
Syntaxe, sémantique et lois du calcul propositionnel, formes normales (FNN, FND, FNC), résolution et algorithme DPLL, modélisation en calcul propositionnel (coloration, couplage).
Groupes concrets (groupes cycliques, groupe des permutations, racines de l'unité)
Probabilités discrètes (variables aléatoires à valeurs dans un ensemble fini ou dénombrable, loi de probabilité, espérance, indépendance, probabilité conditionnelle)