L'objectif de ce cours est d'initier les élèves-ingénieurs à la modélisation logique et au raisonnement sur des systèmes logiques, en complément de leur capacité de modélisation mathématique de réalités physiques. La modélisation logique formelle permet de mieux analyser des textes ou des ensembles de connaissances de manière rigoureuse, en levant les ambiguïtés et en soulignant les contradictions -notons d'ailleurs l'usage intensif de la logique formelle dans le domaines des sciences humaines (philosophie, loi). Elle permet également de faire un premier pas vers la modélisation logique de systèmes d'information, mais également vers l'automatisation des raisonnements et des preuves, qui sont des concepts importants en informatique et en intelligence artificielle.

Ces 7,5h, comprises dans l'UP Environnement Informatique de l'Ingénieur et Système d'information, sont destinées à familiariser les élèves avec les outils numériques qu'ils vont manipuler pendant leur scolarité à l'école et, en particulier, lors des cours du Tronc Commun ,Informatique.

La notion fondamentale du cours est celle d'Algorithme qui est au coeur de l'Informatique aussi bien théorique que pratique, préliminaire nécessaire à la mise en oeuvre de tout programme, et cela quel que soit le langage utilisé. L'objectif visé de ce cours est de présenter les outils théoriques et pratiques permettant de concevoir, d'analyser et de mettre au point un algorithme résolvant un problème précis bien défini. Cela nécessite d'une part l'apprentissage des structures de données de base ainsi que leurs propriétés et leurs performances et d'autre part de méthodes de preuve et de calculs des complexités (en temps et en espace) d'un algorithme.

Sans aucun cours magistral préalable, les élèves seront confrontés à la réalisation de programmes en langage C, d'où émergeront des questionnements plus fondamentaux auxquels l'enseignant répondra par un moyen approprié : renvoi vers un site web, vers un chapitre de livre, vers un connaisseur, … bien entendu, l'enseignant fera un bref exposé oral lorsque nécessaire.

Le but est que l'élève approfondisse ses connaissances dans les concepts de la programmation impérative (entrées/sorties, compilation, allocation dynamique, manipulation des structures de données complexes…) ainsi qu'un comportement adéquat lors de l'apprentissage d'un nouveau langage de programmation. Formulé autrement, durant cette UP les élèves comprennent les concepts classiques de la programmation impérative au lieu de l'apprendre. Un écueil à éviter est que les élèves perçoivent la programmation comme étant du bricolage : les UP Algorithmique, de logique, ainsi que le discours de l'enseignant, préviendront ce danger.

À l'issue de cette UP, les élèves sauront prendre en main le langage de programmation C et réaliser eux-mêmes, avec l'aide de documents, … de petites applications informatiques.