Cours Elements d'Informatique de Licence 1ere année,   Catherine Recanati (année 2016)


Ce cours de 1ère année de Licence en section B (Physique/Chimie-Sciences pour l'Ingénieur) présente des notions de bases sur l'architecture des ordinateurs et les systèmes d'exploitation pour permettre la compréhension, l'écriture et la compilation de programmes. L'essentiel du cours sera consacré au langage C, langage de programmation impératif qui a servi de base à la programmation sous Unix. On y introduira les notions de variables, types, tableaux, fonctions, ainsi que la notion de pointeur.

Le cours se déroule sur 6 semaines contenant chacune 2 séances de cours et 2 séances de TD d'une heure et demie, plus une séance de TP de 3h en salle machine.


Représentations de nombres & Programmation (7 novembre - 13 novembre)

  1. Le cours CM1 est consacré à la représentation des nombres et introduit la notion de variable. Le cours CM2 introduit la structure d'un programme C et la syntaxe BNF des expressions.
  2. Le fichier PresentationProg contient les règles de présentation et d'indentation de programmes que vous devrez utiliser en TP.
  3. En complément, les 5 premières minutes de la vidéo "Pointeurs et adresses" illustrent la notion d'affectation et introduisent la notion de pointeur comme adresse. (Ceux qui veulent anticiper sur la suite peuvent regarder au delà des 5 premières minutes, mais la fin ne fait pas partie du cours de la semaine).

Notions d'architecture de machines (14 novembre - 20 novembre)

  1. Le cours CM3 présente quelques notions d'architecture des ordinateurs: langage machine, langage assembleur, et mini-assembleur AMIL. La vidéo de Pierre Boudes en est le résumé et sera passée à la fin du cours. Le cours CM4 présente quelques éléments des systèmes d’exploitation : fichiers, processus, programmes et compilation.
  2. Le TD4 est en fait un cours/TD car la notion de condition de vérité et celle de boucle while et d'instruction if y sont introduites, alors qu'elles n'ont pas été encore introduites en cours.
  3. Le lien suivant contient un tutoriel (réalisé par John Chaussard) pour installer une machine virtuelle, et programmer en C sous Linux depuis un PC Windows: http://www.math.univ-paris13.fr/~chaussar/Divers/Didacticiel/UbuntuVirtuel/installer_xubuntu.htm. Il vous est fortement conseillé d'installer ce logiciel si vous disposez d'un ordinateur personnel pour revoir et finir vos TP chez vous.

Le contrôle en programmation impérative (21 novembre - 27 novembre)

Le cours CM5 porte sur les structures de contrôle: boucles while, for, et branchements. Le cours CM6 aborde la définition des fonctions et leurs appels. La vidéo passée en fin de cours est le début (1mn:50) de la vidéo de la semaine du 5 décembre.

 

Préparation à l'examen partiel P2 (21 novembre - 4 décembre)


Examen partiel le mardi 29 novembre de 12h à 13h (documents, calculettes, et appareils téléphoniques non autorisés). Au programme, les 3 premières semaines de cours.

Plus précisément, il faut vous assurer d'avoir compris les notions de:  codage d'un entier ou d'un réel, variable, type de variable, identificateur de variable, valeur, adresse de variable et affectation. Vous devez aussi être familier avec la notation BNF et, en C, reconnaître ce qu'est une expression, une définition ou déclaration de fonction et un appel de fonction. Vous devrez aussi maîtriser le sens des instructions de contrôle (en particulier des boucles), et la structure syntaxique d'un programme. Vous devez aussi comprendre dans les grandes lignes ce que fait le compilateur, et être capable de distinguer entre les différentes sortes d'erreurs détectées par le compilateur.

Pour réviser, relisez le cours, regardez les videos et le glossaire (dernière section), et revoyez attentivement la correction des TD et et des TP (ils sont en ligne ici, avec les corrigés).


28 novembre - 4 décembre -----------------------------------------------

Le cours CM7 introduit le type tableau et considère des fonctions ayant pour argument une variable de type tableau. La fin du cours CM7 et le cours CM8 portent sur le sens d'un programme, la compilation et l'exécution des programmes (portée des variables, pile d'appels de fonctions, éditeur de liens et compilation séparée).


5 décembre - 11 décembre

1. Le cours CM9 porte sur les pointeurs et les tableaux. Le cours CM10 sur les chaînes de caractères et la bibliothèque standard <string.h>.

2. Les deux premières vidéos illustrent le cours CM9. La première introduit la notion de "passage d'une variable par référence" (c'est-à-dire par adresse). La seconde traite l'exemple d'une procédure qui échange les valeurs de deux variables, puis celui d'une procédure qui trie les valeurs figurant dans un tableau en utilisant la procédure d'échange précédente.

3. La troisième vidéo illustre en partie le cours CM10.


12 décembre - 18 décembre

1. Le cours CM11 introduira les structures et les listes chaînées en C. Le dernier cours sera consacré aux révisions.

2. La vidéo "Liste chainées en C" illustre le cours CM11 sur les listes chaînées..

3. Le TD12 est un TD de révisions. Il n'y a pas de sujet de TP cette semaine, car le dernier TP sera consacré aux révisions et à l'implémentation d'exercices de la feuille de TD12.

Programme du partiel P2: celui du premier partiel, en ajoutant les fonctions et les tableaux (statiques à une seule dimension), soient les cours jusqu'à CM9 . Il y aura des exercices avec des fonctions prenant en argument des variables de type tableau. Ceux qui traiteront ces exercices en utilisant des pointeurs auront des points de bonus supplémentaires, mais les exercices pourront être traités sans les pointeurs,  avec des variables de boucles i de type int. (Un programme légèrement plus détaillé du partiel figure au début du cours CM11).

· 


Vacances de Noël

Pour vous aider à réviser :

1. L'album des vidéos, accessible ici en ligne (et sur internet à l'adresse https://vimeo.com/album/4018284)

2. Un glossaire sur les notions de programmation impérative abordées dans ce cours.

3. Un ancien polycopié de cours qui couvre globalement le même programme que ce cours. Il est en 3 parties : Partie 1 (premières notions de programmation; éléments de base du langage C; types, opérateurs et expressions; instructions du langage), Partie 2 (fonctions; tableaux; structures et unions), Partie 3 (structure d'un programme; pointeurs; pointeurs et tableaux à une dimension; pointeurs et tableaux à plusieurs dimensions).

Videos:

Ancien cours de programmation impérative: