Cette UE présente, de façon condensée, les concepts de base de la discipline informatique enseignés dans plusieurs UE de premier cycle : principes des systèmes d'exploitation, structures de données et algorithmique.
Le cours est illustré par des applications et des travaux pratiques. Ainsi, l'UE occupe deux soirs par semaine : un soir pour chaque séance de cours/ED, et un soir pour chaque séance de travaux pratiques sur machines.
Il est à noter que le rythme de l'UE est de fait assez intense, et les élèves qui préfèreraient découvrir un certain nombre des notions couvertes par cette UE à la faveur d'un rythme moins soutenu peuvent se tourner vers les UE NFA006 Structures de données et NFA031 Programmation Java.
Cette UE est en premier lieu destinée aux élèves titulaires d'un diplôme de niveau au moins BAC+2 dans une discipline scientifique autre que l'informatique et qui souhaitent suivre une formation en vue d'obtenir un diplôme en informatique. Elle est cependant ouverte aux élèves d'autres formations du CNAM.
L'accès à cette UE est réservée aux élèves ayant suivi l'UE NFP 135 (VARI 1) ou ayant acquis les connaissances de NFP 135.
L'obtention de cette UE et de l'UE NFP 135 (VARI 1) est obligatoire pour l'entrée en 3ème année de licence, pour l'accès au diplôme RNCP niveau II (concepteur-architecte en informatique) et l'entrée en Ecole d'ingénieur (EIC).
Examen écrit noté sur 15
Réalisation d'un projet noté sur 5
Algorithmique et structures des données
Conception d'algorithmes, récursivité, évaluation (complexité en temps et en mémoire). Structures de données linéaires (listes, files, piles) et arborescentes (tas, arbres de recherche, AVL) : construction, parcours, recherche d'éléments. Tables de hachage. Représentation de graphes en machine. Algorithmes de tri.
Systèmes d'exploitation
Architecture des systèmes.
Le système comme machine virtuelle : chaîne de production d'un programme, système de fichiers.
Le système comme gestionnaire des ressources : gestion du processeur, de la mémoire, des entrées/sorties.
Exemple d'UNIX.
Projet
Réalisation d'un projet.
Exemples de thèmes abordés : réalisation d'un compilateur d'un langage de type pseudo-code vers du Java à l'aide d'arbres de syntaxe (2019), calcul d'itinéraires dans le métro via l'algorithme de Dijkstra avec tas (2020), ordonnancement de projets via les graphes (2021), simulation d'un ordonnanceur de processus avec préemption (2022), gestion d'un système de fichiers simplifié (2023).