Basics in Computing

ITBasics
Abstract

Ce cours vise à fournir aux étudiants de première année un ensemble de compétences pratiques et théoriques de base en informatique. Nous voulons nous assurer que les étudiants ont une bonne compréhension des concepts fondamentaux qui seront des prérequis pour d'autres cours liés à l'informatique, comme la programmation, les systèmes d'exploitation et la gestion de projet GIT.  Les étudiants apprendront à utiliser un système d'exploitation UNIX, de l'utilisation du shell aux commandes les plus courantes. Ils se familiariseront également avec la représentation des nombres et des données en informatique. Ils seront initiés aux scripts Bash, et apprendront à écrire de petits scripts pour faciliter des tâches complexes. Ils comprendront comment gérer un projet en utilisant GIT, de la création du projet à sa première version. Enfin, ils seront initiés à la programmation en C, et apprendront à utiliser les outils fondamentaux, comme un compilateur ou un débogueur.

Modalités pédagogiques
 
Le cours utilisera une approche hybride et interactive, alternant de courtes sessions visant à introduire les concepts théoriques avec des exercices pratiques et des démonstrations. Les étudiants auront l'occasion d'appliquer immédiatement les concepts sur des exemples concrets dans des conditions réalistes. Une discussion sera engagée avec la classe après chaque exercice, afin d'élaborer une correction collective et d'expliquer les principaux concepts.
Le cours comprendra également des exercices optionnels complémentaires, permettant aux étudiants d'approfondir les concepts et de les mettre en pratique sur des cas d'utilisation réels.
 
Règles du cours
 
La présence aux cours magistraux et aux séances de laboratoire est obligatoire.

Bibliography

Aucune

Requirements

Aucun

Description
Le cours sera divisé en 8 sessions de 3 heures, couvrant 5 sujets principaux :
 
- Les bases d'UNIX : cette session présentera les commandes UNIX les plus couramment utilisées, les principaux mécanismes de l'interpréteur de commandes Bash et quelques concepts de base de l'informatique (fichiers, permissions, processus, utilisateurs, ...).
 
- Représentation des données : cette session couvrira les représentations les plus courantes des nombres et des données en mémoire. Elle introduira les conversions entre les différentes bases de nombres (base 2, base 10, base 16), les entiers non signés et signés, les nombres en virgule fixe et en virgule flottante et les opérateurs bitwise.
 
- Les bases de la programmation : cette session introduira quelques compétences et terminologies de base en matière de programmation. Elle familiarisera les étudiants avec les scripts Bash, leur permettant d'automatiser des tâches de base à l'aide d'un langage interprété.
 
-GIT : ce cours vise à fournir aux étudiants une vue d'ensemble de l'outil GIT, de la création d'un dépôt à la gestion des branches. Il fournira les concepts fondamentaux pour gérer un projet et travailler en équipe sur une base de code commune.
 
- Langage C (4 sessions) :  Ce cours introduira les concepts de base de la programmation en C (par exemple, les variables, les constantes et les types, les tableaux, les conditions et les boucles, les fonctions, les pointeurs, les structures et les unions) et décrira l'utilisation d'outils tels qu'un compilateur, un éditeur de liens ou un débogueur.
 
Objectifs d'apprentissage
  • Manipuler les principes fondamentaux des concepts et de l'utilisation d'UNIX
  • Comprendre comment les nombres et les données sont représentés en mémoire
  • Apprendre les bases des scripts Bash
  • Comprendre les principaux concepts de GIT et apprendre à gérer un projet
  • Apprendre les bases de la programmation en C

Nombre d'heure : 21

Evaluation 

7 quiz basés sur les principaux concepts introduits dans la session précédente (chaque quiz comptera pour ~15% de la note finale).