Ce cours s’inscrit dans la suite de l’initiation à la programmation dispensée au début du semestre 1. Il vise à montrer aux étudiants comment la mise en œuvre de concepts mathématiques élémentaires peut faciliter la programmation. Il vise également à montrer la façon dont les ordinateurs manipulent les nombres. Les concepts mathématiques étudiés sont présentés de façon informelle, l’objectif étant de pouvoir programmer avec et non de pouvoir démontrer quoi que ce soit.

Pour cela le cours commence par la présentation de la numération en base 10 puis en base 2, puis 8, puis 16, puis 64, puis n. Il expose ensuite la façon dont les nombres entiers naturels, les nombres entiers relatifs et les nombres décimaux sont représentés au sein des ordinateurs.

La suite du cours est dédiée à la géométrie euclidienne. A travers l’implémentation d’un simulateur d’un écosystème peuplé d’animaux, les notions de point, de vecteur et d’angle sont révisées, modélisées et manipulées.

Ce cours de communication (orale et écrite) prépare les étudiants à exposer leurs travaux à un public ciblé (leurs pairs et les enseignants). Les étudiants apprennent à contextualiser et structurer leur discours en fonction de l'auditoire. Ils s'exercent à la recherche lexicale, utilisent des métaphores, argumentent, reformulent, soignent les transitions et concluent. Pour la partie orale, ils prennent conscience de l'impact du ton, du débit, de l'articulation, du regard, de leur gestuelle et de l'occupation de l'espace.  

Ce cours permet aux étudiants d’apprendre à se présenter et à présenter un projet individuel.

Après la première partie du cours « Programmation » du semestre 1, les étudiants sont invités à réaliser un projet en groupe (typiquement 3 ou 4 élèves). Ce projet doit leur permettre de mettre en application ce qu’ils ont vu plus tôt et de développer les compétences en cours d’acquisition par la pratique.

Le projet est proposé par les élèves mais doit correspondre à un cadre technologique précis (en l'occurrence, il s'agit d'un site WEB dynamique et interactif développé sous LINUX en Nodejs). Tout au long de la réalisation, les étudiants sont suivis par le professeur qui veille au bon avancement du projet. Ce suivi s'effectue à la fois formellement lors de réunions planifiées, mais également de manière informelle dès que le groupe en éprouve le besoin.

Le cours en lui-même consiste en une présentation d'une méthode de spécification (schéma de navigation, maquettes et document de spécification) que les étudiants doivent mettre en oeuvre pour spécifier leur projet. Après validation des spécifications par le professeur, les étudiants entament le codage proprement dit. La recette du projet prend la forme d'une présentation du projet par les étudiants devant leurs camarades de promotion.