EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL...

15
Présentation du cours Qu’est-ce qu’un algorithme ? Annexe : Environnement de travail c EPFL 2020-21 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation générale Jamila Sam Laboratoire d’Intelligence Artificielle Faculté I&C ICC (partie programmation) – Cours 1 : Présentation du cours – 1 / 55 Présentation du cours Qu’est-ce qu’un algorithme ? Annexe : Environnement de travail c EPFL 2020-21 Jamila Sam & Jean-Cédric Chappelier Plan I Présenter le cours : I Objectifs (« Quoi ? ») I Administration (« Comment ? ») I Introduire la programmation : notion d’algorithme I Présenter l’environnement de travail pour la partie pratique ICC (partie programmation) – Cours 1 : Présentation du cours – 2 / 55 Présentation du cours Notes et examens Qu’est-ce qu’un algorithme ? Annexe : Environnement de travail c EPFL 2020-21 Jamila Sam & Jean-Cédric Chappelier Structure générale du cours ICC INFORMATIQUE PROGRAMMATION Théorie Pratique Partie théorique -→ Barbara Jobstmann Partie pratique -→ Jamila Sam I Cours obligatoire pour les étudiants du 1er semestre de la section des Sciences de la Vie. I Connaissances supposées acquises : aucune ICC (partie programmation) – Cours 1 : Présentation du cours – 3 / 55 Présentation du cours Notes et examens Qu’est-ce qu’un algorithme ? Annexe : Environnement de travail c EPFL 2020-21 Jamila Sam & Jean-Cédric Chappelier Objectifs de la partie théorique I Présenter l’informatique en tant que discipline scientifique I Exposer ses fondements conceptuels I Développer la pensée algorithmique « Computational thinking » I Expliquer les bases de fonctionnement du monde numérique I Sensibiliser à la sécurité dans ce monde numérique D’avantage lors du cours de vendredi! ICC (partie programmation) – Cours 1 : Présentation du cours – 4 / 55

Transcript of EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL...

Page 1: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Information Calcul et Communication :

Présentation générale

Jamila Sam

Laboratoire d’Intelligence ArtificielleFaculté I&C

ICC (partie programmation) – Cours 1 : Présentation du cours – 1 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Plan

I Présenter le cours :

I Objectifs (« Quoi? »)

I Administration (« Comment? »)

I Introduire la programmation : notion d’algorithme

I Présenter l’environnement de travail pour la partie pratique

ICC (partie programmation) – Cours 1 : Présentation du cours – 2 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Structure générale du cours ICC

INFORMATIQUE

PROGRAMMATION

Théorie Pratique

Partie théorique −→ Barbara JobstmannPartie pratique −→ Jamila Sam

I Cours obligatoire pour les étudiants du 1er semestre de lasection des Sciences de la Vie.

I Connaissances supposées acquises : aucune

ICC (partie programmation) – Cours 1 : Présentation du cours – 3 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Objectifs de la partie théorique

I Présenter l’informatique en tant que discipline scientifique

I Exposer ses fondements conceptuels

I Développer la pensée algorithmique+ « Computational thinking »

I Expliquer les bases de fonctionnement du monde numérique

I Sensibiliser à la sécurité dans ce monde numérique

+ D’avantage lors du cours de vendredi !

ICC (partie programmation) – Cours 1 : Présentation du cours – 4 / 55

Page 2: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Objectifs de la partie pratique

La programmation n’est qu’une partie de l’informatique mais unepartie importante et une discipline en tant que telle.Buts de la partie pratique :

1. Apprendre à programmersavoir les bases et connaître correctement au moins unlangage

+ pratique sur le langage C++

2. Appréhender par la pratique certaines des problématiquesconceptuelles vues dans la partie théorique

3. Savoir comment utiliser un ordinateur (sous Linux) dans lecadre du développement de programmes

ICC (partie programmation) – Cours 1 : Présentation du cours – 5 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Organisation de la partie théorique

Langue : AnglaisMoyens :

Concepts introduits lors de cours magistrauxex-cathedra

+ Vendredi 915–1100

mis en pratique, de manière guidée, lors deséances d’exercices sur papier

+ Vendredi 1515–1600

ICC (partie programmation) – Cours 1 : Présentation du cours – 6 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Organisation de la partie pratique

Langue : FrançaisMoyens :

Concepts introduits ou complémenté lors de coursmagistraux ex-cathedra

+ Jeudi 1015–1100

mis en pratique, de manière guidée, lors deséances d’exercices sur machines

+ Jeudi 1715–1900

Compléments en lignes : vidéos et quizzes(disponibles pour 8 semaines du cours).

ICC (partie programmation) – Cours 1 : Présentation du cours – 7 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Séances d’appui

Un support hebdomadaire est offert aux étudiants du cours ICCchaque samedi

Toute question peut être posée (théorie ou pratique)

+ Samedi 1515–11700

Inscrivez-vous aux appuis chaque semaine sur le site Moodleafin que nous puissions gérer convenablement les besoinsen assistants !

ICC (partie programmation) – Cours 1 : Présentation du cours – 8 / 55

Page 3: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Équipe

Barbara Jobstmann (Théorie) Jamila Sam (Programmation)

Amedeo Esposito Andrea Caforio Rania Islambouli Kalpani Welivita

(Programmation) (Programmation) (Théorie) (Théorie)

ICC (partie programmation) – Cours 1 : Présentation du cours – 9 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Équipe (2)

De nombreux assistants étudiants apportent un soutienindispensable à ce cours :

I 14 assistants-étudiants (théorie)

I 14 assistants-étudiants (pratique)

+ Certains travaillent pour les deux parties, mais pas tous !

La liste complète est disponible sur le site Moodle du cours :

https://moodle.epfl.ch/course/view.php?id=15751

ICC (partie programmation) – Cours 1 : Présentation du cours – 10 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Accès au matériel du cours

I Logistique (salles, horaires, planning, forums etc.)

I Contenu (transparents, exercices etc.)

+ Site Moodle du cours :

https://moodle.epfl.ch/course/view.php?id=15751

ICC (partie programmation) – Cours 1 : Présentation du cours – 11 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Au temps du COVID . . .

Selon les règles en vigueur en cette rentrée, seul les 1/3 d’entrevous seront sur le campus par semaine.I Le cours donné en présentiel sera diffusé simultanément

via Zoom (voir l’adresse sur Moodle)I Il sera enregistré et l’enregistrement sera mis à disposition

sur le site Moodle quelques heures plus tard.I Les séances d’exercice en présentiel auront un format

classique en salle de TP avec une partie des assistants.I L’autre partie des encadrants seront à disposition des

étudiants en ligne pendant l’horaire du TP+ L’interaction sera fédérée par le forum Piazza du cours (voir

plus bas)I un système de coaching sera mis en place pour un suivi

régulier+ Vous aurez à poster un journal hebdomadaire

+ Vos coachs seront en charge de les lire et de faire remonter lesproblèmes rencontrés

+ Le but de cours est d’essayer d’y apporter des réponsesadéquates le plus rapidement possible

ICC (partie programmation) – Cours 1 : Présentation du cours – 12 / 55

Page 4: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Au temps du COVID . . . (2)Il est vivement recommandé de suivre le cours et le TPaux horaires prévus pour le présentiel, même si vous êteshors campus !

I Vous assurez ainsi la régularité de vos acquis et de votreprogression (clé essentielle de réussite au cours).

I Vous pouvez bénéficier d’un maximum de support de la partdes assistants pendant les TPs.

Lors des semaines où vous y êtes autorisé(e), il reste encouragéde venir profiter des cours et exercices sur le campus

Veillez à garder vos distances en salle de cours et à porter votremasque.

Il est difficile de répondre «en live» aux questions posées pendantl’heure de cours par l’audience hors EPFL.

+ Postez sur le forum Piazza et une réponse rapide est garantieaprès le cours

ICC (partie programmation) – Cours 1 : Présentation du cours – 13 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Forum Piazza

https://go.epfl.ch/piazza-cs119g

I Constitue le moyen d’interaction central pendant les TPsen non présentiel

I Permet de poster des questions qui seront prises en chargeau fur et à mesure par les assistants :I Les questions peuvent aussi être posées anonymement :-)I Elles peuvent être adressées en particulier aux instructeurs ou

à un instructeur en particulier (votre coach par exemple)I Les assistants vous inviteront en visio-conférence sur Zoom

si la question nécessite une interaction plus directe (vouspourrez ainsi discuter de vive voix et montrer votre code mêmeà distance).

I Les interactions sur Zoom peuvent se faire avec vous seul(e)ou inclure d’autres étudiants si vous le souhaitez.

I Il est attendu que le forum Piazza fonctionne à plein régimependant les horaires de TP, mais vous pouvez l’utiliser dèsqu’une question se pose à vous pendant toute la semaine.

+ Nous ferons tout notre possible pour vous répondre dans lesmeilleurs délais (maximum un jour d’attente)

ICC (partie programmation) – Cours 1 : Présentation du cours – 14 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Interaction avec les enseignantsPlusieurs moyens pour contacter les enseignants, assistants etétudiants-assistants pour poser des questions sur le cours ou lesexercices :I Durant les séances d’exercices :

+ c’est le moyen le plus direct si vous êtes autorisé(e) à venir

I Par l’intermédiaire du forum piazza (accessible via Moodle,ou directement depuis l’adresse du forum)

+ moyen idéal pour partager/discuter, faire part de ses difficultéset les résoudre

N’hésitez pas à en faire usage !

I par email s : + pour des aspects administratifs uniquement :Jamila Sam

+ mais pour les cas généraux, préférez le forum.

Les contacts personnels par email, téléphone ou vi-sites devront être strictement réservés aux cas per-sonnels et/ou urgents !

ICC (partie programmation) – Cours 1 : Présentation du cours – 15 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Support de coursTout le matériel est accessible via le site Moodle du cours :

I Transparentsparfois enrichis de notes techniques (mini-références)détaillant certains concepts évoqués pendant le cours, enparticulier les éléments du langage C++également parfois des références complémentaires(bibliographiques et/où hyperliens Internet)

I Énoncé des exercicesdisponibles sur le site Moodle en fin de semaine.

I Corrigé des exercicesdisponibles sur le site Moodle en fin de semaine suivante.

I Pour la partie pratique : Vidéos et quizzesofferts par le cours massif en ligne (MOOC) associé au cours(voir plus loin)

ICC (partie programmation) – Cours 1 : Présentation du cours – 16 / 55

Page 5: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Livre ? (1)

Pour la partie théorique, le livre suivant est recommandé :

Sous la direction de André Schiper, PPUR, 2016(prix etudiant 35 CHF)

ICC (partie programmation) – Cours 1 : Présentation du cours – 17 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Livres? (2)

Le matériel du MOOC, les transparents et divers supports du siteMoodle devraient constituer une documentation suffisante pourla partie programmation !

Si vous souhaitez la compléter, les ouvrages suivants sontégalement recommandés pour la partie pratique :

Marylène Micheloud & Medard RiederProgrammation orientée objets en C++– une approche évolutive, PPUR, 1997.

Il est disponible pour un prix avoisinant les 43 CHF.

ICC (partie programmation) – Cours 1 : Présentation du cours – 18 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Livres ? (2)

Le matériel du MOOC, les transparents et divers supports du siteMoodle devraient constituer une documentation suffisante pourla partie programmation !

Si vous souhaitez la compléter, les ouvrages suivants sontégalement recommandés pour la partie pratique :

J.-C. Chappelier & F. SeydouxC++ par la pratique –recueil d’exercices corrigés et aide-mémoire,PPUR, 3ème édition. Empruntable en versionélectronique auprès de la bibliothèque

Il est disponible pour un prix avoisinant les 50 CHF.

ICC (partie programmation) – Cours 1 : Présentation du cours – 18 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Couplage au MOOC (1)

MOOC d’initiation à la programmation en C++ :

www.coursera.org/learn/initiation-programmation-cpp/

Notre cours dispose de ses propres séries d’exercices et detransparents de complément

+ Sur-ensemble du MOOC

Matériel MOOC utilisé :1. Vidéos2. Quizzes3. Devoirs (mais ne comptent pas)

+ à utiliser pour se préparer aux tests

ICC (partie programmation) – Cours 1 : Présentation du cours – 19 / 55

Page 6: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Couplage au MOOC (2)

I Avant le cours : visionner les vidéos, faire les quizzes etcomprendre certains exercices de niveau 0

I Cours ex-cathedra : résumé et approfondissements+ seulement une heure

I Exercices : mise en pratique

I Certificats (payants) : en aucun cas obligatoires pour cecours

ICC (partie programmation) – Cours 1 : Présentation du cours – 20 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Couplage au MOOC (3)

Charge de travail pour la partie pratique :

I 45 mn de cours ex-cathedra : récapitulation etapprofondissements ;

I 1h45 d’exercices en salle de TP : mise en pratique ;

I environ 3h30 heures de travail à la maison :

I 1h30-1h45 sur les vidéos de la semaine suivante

I 0 :15-0 :30 sur les quizzes de la semaine suivante

I environ 1 :30 heures pour commencer à préparer la séried’exercices de la semaine en cours, finaliser celle de lasemaine passée.

ICC (partie programmation) – Cours 1 : Présentation du cours – 21 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Notes et examens

Les épreuves de contrôle continu seront les suivantes :

I Mid-term (théorie + programmation) individuel, 2h45

I Examen écrit final (théorie + pratique) individuel, 2h45

ICC (partie programmation) – Cours 1 : Présentation du cours – 22 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Calcul de la note

I La note finale du semestre, N, est calculée comme suit :

N =(4∗Nmidt erm+6∗Nexamen)

10

I Les notes intermédiaires ne sont pas arrondies.

I Les cours ICC et «Programmation orientée-objet» sontindépendants. La moyenne arrondie de chaque cours esttransmise au SAC à la fin de chaque semestre.

Afin de nous permettre un suivi régulier de votre progression,5% de la note de chaque examen est dédié au rendu desjournaux hebdomadaires sur Moodle

ICC (partie programmation) – Cours 1 : Présentation du cours – 23 / 55

Page 7: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Notes et examensMid-terem

Votre progression à mi-semestre sera évaluée par un examenécrit portant sur le contenu du cours et les séances d’exercices,aussi bien pour la partie théorique que pratique.

Réalisé individuellement

Documentation autorisée

Date :

Vendredi 30 Octobre

ICC (partie programmation) – Cours 1 : Présentation du cours – 24 / 55

Présentation ducoursNotes et examens

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Notes et examensExamen final

Le semestre sera clôturé par un examen écrit portant sur lecontenu du cours et les séances d’exercices, aussi bien pour lapartie théorique que pratique.

Réalisé individuellement

Documentation autorisée

Date :

Vendredi 18 Décembre

ICC (partie programmation) – Cours 1 : Présentation du cours – 25 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Qu’est-ce que la programmation?

«PROGRAMME» :Conception :quelles notes en-chainer? Exécution : tourner la

manivelleRésultat : mélodie

Réalisation : percerles trous aux bonsendroits

ICC (partie programmation) – Cours 1 : Présentation du cours – 26 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Algorithme?

+ solution calculatoire/mécanique/itérative/... à un problème

"Spécification d’un schéma de calcul sous forme d’une suited’opérations élémentaires obéissant à un enchaînementdéterminé"

[Encyclopedia Universalis]

AlgorithmeI suite finie de règles à appliquer,I dans un ordre déterminé,I à un nombre fini de données,I se terminant (i.e., arriver, en un nombre fini d’étapes, à un

résultat, et ce quelque soit les données traitées).

ICC (partie programmation) – Cours 1 : Présentation du cours – 27 / 55

Page 8: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Algorithme

Un algorithme est un moyen pour un humain de représenter larésolution par calcul d’un problème à une autre personnephysique (humain) ou virtuelle (calculateur) ; un algorithme est :

I séquentiel si ses opérations s’exécutent en séquence,I parallèle si certaines de ses opérations s’exécutent en

parallèle,I réparti si certaines de ses opérations s’exécutent sur

plusieurs machines.

ICC (partie programmation) – Cours 1 : Présentation du cours – 28 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Toute une théorie

Formalisation : dans les années (19)30 par des mathématiciens :Gödel, Turing, Church, Post, ...

+ fonctions "calculables" et machines de Turing : abstractionmathématique des notions de traitement (suite d’opérationsélémentaires), de problème et d’algorithme.

+ la partie théorique du cours a pour but de vous en donner unaperçu !

ICC (partie programmation) – Cours 1 : Présentation du cours – 29 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Algorithmes et données

« Voulez-vous danser? » : premier algorithme :

Voulez−vousdanser?

Choisir une

personne

ouiSuccess story

non

Données :

I PersonneI Ensemble de N

personnes

+ Il n’est pas garanti que l’algorithme puisse se terminer !

ICC (partie programmation) – Cours 1 : Présentation du cours – 30 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Algorithmes et données

« Voulez-vous danser? » : deuxième algorithme :

Choisir la

personne i

Voulez−vous

danser?

i = i+1

i > N

i=1

Hopeless

non

oui

non oui

Success story Données :

I PersonneI Ensemble

ordonné de Npersonnes

I les données sont structuréesI l’algorithme se termine nécessairement

(au pire N essais successifs)I . . . mais il n’est pas sûr qu’il soit le plus efficace possible !

ICC (partie programmation) – Cours 1 : Présentation du cours – 30 / 55

Page 9: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Conception d’un programmeConcrètement, concevoir un programme c’est décomposer latâche à automatiser sous la forme :I d’une séquence d’instructions (traitements)I et de données permettant une mise en oeuvre efficace et

correcte des traitements.

traitements données

influencent

opèrent sur

Formalisation des traitements : algorithmes

+ distinguer formellement les bons traitements des mauvais

Formalisation des données : structures de données (abstraites)

+ distinguer formellement les bonnes structures de donnéesdes mauvaises

ICC (partie programmation) – Cours 1 : Présentation du cours – 31 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Algorithmes – objectifs

On attend d’un algorithme qu’il :I se termine,I produise un résultat correct,I pour toute donnée d’entrée valable.

+ Il n’y a (mal)heureusement aucune recette pour produire unalgorithme !

ICC (partie programmation) – Cours 1 : Présentation du cours – 32 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Difficulté de l’Informatique

Un programme doit être valable pour toute une gamme d’entrées !

+ Impossible de vérifier par des essais : on ne pourra jamaistester tous les cas.

Vérification par preuves mathématiques.

Importance du travail soigneux et mûrement réfléchi !

ICC (partie programmation) – Cours 1 : Présentation du cours – 33 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Algorithme 6= Programme

Un algorithme est indépendant du langage de programmationdans lequel on va l’exprimer et de l’ordinateur utilisé pourl’exécuter

C’est une description abstraite des étapes conduisant à la solutiond’un problème.

Algorithme = partie conceptuelle d’un programme(indépendante du langage)

Programme = implémentation (i.e., réalisation) de l’algorithme,dans un langage de programmation et sur un système particulier.

+ Premier programme au cours prochain

ICC (partie programmation) – Cours 1 : Présentation du cours – 34 / 55

Page 10: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Lien entre les parties théorique et pratique

I L’écriture de programmes est indissociable de la conceptiond’algorithmes.

I Certains exercices de la partie pratique vous permettrontd’expérimenter plus concrètement des problématiquesconceptuellement abordées dans la partie théorique :

I Ecriture d’algorithmes simples

I Mise en pratique de techniques de résolution algorithmiques(récursion, dichotomie)

I Théorie de la complexité

ICC (partie programmation) – Cours 1 : Présentation du cours – 35 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travail

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Pour préparer le prochain cours

I Vidéos et quiz du MOOC semaine 1 :I Introduction [09 :55]I Variables [18 :08]I Variables : lecture/écriture [13 :43]I Expressions [14 :50]

+ A échelonner sur plusieurs jours pour éviter l’« overdose »

I Le prochain cours :I Jeudi 10h15 à 11h (résumé et compléments)

ICC (partie programmation) – Cours 1 : Présentation du cours – 36 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Aspects logiciels d’un ordinateur

Pour fonctionner, un ordinateur doit pouvoir interagir avecl’environnement :

I comprendre, c’est-à-dire ici traiter, les informations luiprovenant (clic de souris, touche clavier, . . . )

I produire des sorties (sons, image écran, . . . )

Cela se fait grâce à des programmes (ou « logiciels ») dont leplus fondamental, est le système d’exploitation.

Le système d’exploitation est responsable de la gestion desinteractions entre l’unité centrale et ses périphériques,Exemples : MacOS X, Linux, Solaris, Windows...

ICC (partie programmation) – Cours 1 : Présentation du cours – 37 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Catégories de Logiciels

logiciels d’application traitement de tâches spécifiques auxutilisateurstraitements de textes, tableurs, logiciels de comptabilité, CAO, ....

logiciels utilitaires servant au développement des applicationsassembleurs, compilateurs, dévermineurs, gestionnaires de versions,

gestionnaires de fenêtres, librairies d’outils, ...

logiciels systèmes regroupés dans le système d’exploitation+ présents au cœur de l’ordinateur, ces logiciels sont à labase de toute exploitation, coordonnant les tâchesessentielles à la bonne marche du matériel.

ICC (partie programmation) – Cours 1 : Présentation du cours – 38 / 55

Page 11: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Système d’exploitation

matériel

applications / services

gestionnaire de fenêtres

système d’exploitationinterpréteur d

e commandes

...

(Windows)

(MacOS)

(DOS)

Linux

OpenBSD

FreeBSD

Solaris

ICC (partie programmation) – Cours 1 : Présentation du cours – 39 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Interaction avec LinuxComment interagir avec votre système d’exploitation?

+ avec un interpréteur de commande (« shell »)

matériel

applications / services

gestionnaire de fenêtres

interpréteur de commandes

système d’exploitation

Parmi les shells Unix les plus utilisés, citons : Bourne [Again] shell (sh et bash), Cshell (csh), Z shell (zsh), et celui présent par défaut sur les comptes du cours,l’Enhanced C shell (tcsh). ICC (partie programmation) – Cours 1 : Présentation du cours – 40 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Interpréteur de commandes (1)

Pour interagir avec l’utilisateur, un système informatique doitdisposer au minimum d’un interpréteur de commandes(« shell »)

Contrairement à d’autres architectures moins modulaires, l’interpréteur decommandes (ainsi que le gestionnaire de fenêtres) des systèmes de typeUNIX est un composant externe au SE.Ne faisant pas directement partie du système, ils peuvent être changés àsouhait.

Le shell attend les ordres que l’utilisateur transmet par le biais del’interface, décode et décompose ces ordres en actionsélémentaires, et finalement réalise ces actions en interagissantavec le système d’exploitation.

Parmi les shells Unix les plus utilisés, citons : Bourne [Again] shell (sh etbash), C shell (csh), Z shell (zsh), et celui présent par défaut sur lescomptes du cours, l’Enhanced C shell (tcsh).

ICC (partie programmation) – Cours 1 : Présentation du cours – 41 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Interpréteur de commandes (2)

Depuis un interpréteur de commandes vous aurez la possibilitéde :I lancer des programmes (par exemple un navigateur web,

commande firefox)I exécuter des commandes Unix (on peut aussi regrouper

plusieurs commandes dans un fichier alors appelé script).I définir des variables d’environnement,I renommer ou définir de nouvelles commandes (alias), etc...

La plupart des interpréteurs offrent également des facilitésd’édition comme le rappel des commandes précédentes(historique des commandes), la complétion (complète le nom dufichier lorsqu’il n’y a plus d’ambiguïté), la correction en cas decommande invalide, ...

ICC (partie programmation) – Cours 1 : Présentation du cours – 42 / 55

Page 12: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

La commande man

man permet d’accèder à l’aide du sytème (« page de manuel »)

Utilisations :man nomman section nomExemples : man tcsh man ls man man

Les man-pages sont organisées en différentes sections :1 commandes et programmes2 appels systèmes (noyau)3 bibliothèques logicielles4 fichiers spéciaux (/dev)

5 formats de fichiers6 jeux7 divers8 administration système

Comparer :man printf et man 3 printfman time et man 2 timeman man et man 7 man

man -a nom pour avoir toutes les man-pages portant sur ce nom.(’q’ pour quitter une manpage et passer à la suivante)

ICC (partie programmation) – Cours 1 : Présentation du cours – 43 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Système de fichiers

Le concept de fichiers est une structure adaptée aux mémoiresde masse permettant de regrouper des données.

Un fichier c’est une collection ordonnée de données,représentant une entité pour l’utilisateur.

Le système d’exploitation va donner corps au concept defichiers, c’est-à-dire les gérer : les créer, détruire, modifier, lire, etoffrir la possibilité de les désigner par des noms.

Dans le cas de systèmes multi-utilisateurs, il faut de plus assurerla confidentialité de ces fichiers, en protégant leur contenu duregard des autres utilisateurs.

ICC (partie programmation) – Cours 1 : Présentation du cours – 44 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Structuration d’un système de fichiers

Grand nombre de fichiers

+ fournir un moyen pour organiser ces fichiers

+ concept de répertoire (directory)

Un répertoire est une collection (généralement non ordonnée) defichiers ou de répertoires (alors appelés sous-répertoires).Ils permettent d’organiser l’ensemble des fichiers dans unestructure arborescente

= un répertoire

= un fichier

ICC (partie programmation) – Cours 1 : Présentation du cours – 45 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Structuration d’un système de fichiers (2)

En plus de la notion de répertoire, la plupart des systèmespermettent également de définir des liens symboliques vers desfichiers ou des répertoires (« soft links » avec UNIX, ou« raccourcis » dans d’autres systèmes), qui permettent de définirdes alias (i.e., autres noms)+ permet d’assouplir la structure d’arbre

ICC (partie programmation) – Cours 1 : Présentation du cours – 46 / 55

Page 13: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Nommage des fichiers : absolu et relatifOn appelle « chemin » la succession des répertoires conduisantà un fichier, à partir d’un endroit donné dans l’arborescence.

Pour désigner un fichier, il est possible de procéder de deuxmanières :I à l’aide d’un chemin absolu : on prend comme convention un

parcours de l’arbre partant de la racineDans le cas de plusieurs arbres (« forêt »), le nom du lecteurest tout d’abord spécifié (i.e. on désigne la racine de l’arbre).

home

tmp

julie

marc

cours a

/

/home/julie/cours/a

I à l’aide d’un chemin relatif : c’est la succession desrépertoires à traverser, à partir d’un autre répertoire del’arborescence

../julie/cours/a

cours/a

home

tmp

julie

marc

cours a

/

ICC (partie programmation) – Cours 1 : Présentation du cours – 47 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Nommage des fichiers (2)

Le répertoire parent d’un sous-répertoire est désigné par ..,tandis que le répertoire lui-même est désigné par .

Là il y a un point et là deux

Exemples de noms de fichiers (« chemins ») :/home/prof/Work/cours/Info1/introduction2.tex

../images/paysages.gif

../../../toutlahaut.ps.gz

Sous UNIX/Linux, le délimiteur entre nom de répertoire et nom defichier dans les chemins est la barre oblique « slash » : /

D’autres systèmes utilisent l’« antislash » ou « backslash » : \D:\Users\Himher\Personnal Documents\introduction2.pdf

ICC (partie programmation) – Cours 1 : Présentation du cours – 48 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Système de fichiers UNIX/Linux

Chaque utilisateur possède un répertoire personnel (« homedirectory ») dans lequel il peut placer ses fichiers personnels.C’est la racine du sous-arbre réservé spécifiquement à unutilisateur

Les noms de fichiers possèdent généralement une extension,délimitée par un .

Là aussi il y a un point

Cette extension peut être utilisée pour indiquer la nature du fichier,c’est-à-dire l’application à laquelle il est associé.Contrairement à d’autres systèmes d’exploitation, sousUNIX/Linux les fichiers peuvent avoir 0, 1 ou plusieursextension(s).

Exemples :serie1.cc : fichier de code source C++

cours-1.ps.gz

1re extension indiquant un fichier Postscript2e extension indiquant un fichier compressé avec gzip

ICC (partie programmation) – Cours 1 : Présentation du cours – 49 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Fichiers « cachés »

On distingue les fichiers/répertoires « cachés » au moyen d’uneconvention de nommage : ils sont préfixés par un .

Encore un point !

Exemple : .cshrc

Ce sont des fichiers/répertoires dont l’utilisateur n’a pas besoinexplicitement (ou pas souvent), souvent des fichiers deconfiguration.

Pour voir les fichiers/répertoires « cachés », utilisez la commandels -a

ICC (partie programmation) – Cours 1 : Présentation du cours – 50 / 55

Page 14: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Fichiers et shell

Un certain nombre des fonctions du shell sont relatives ausystème de fichiers :I Navigation dans la structure des fichiers :

I répertoire courant (pwd)I modification de ce répertoire (cd = change directory),I lister le contenu d’un répertoire (ls),I copier des fichiers (cp) et les déplacer (mv),I effacer des fichiers (rm),I créer des liens (ln), etc...

Toutes les commandes soumises au shell sont interprétéesrelativement au répertoire courant.

ICC (partie programmation) – Cours 1 : Présentation du cours – 51 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Fichiers et shell (2)

Les caractères de substitution (ou expressions régulières)permettent de spécifier plusieurs fichiers en une seule formule? : remplace un seul caractère arbitraire* : remplace une séquence quelconque de caractères[ ] : remplace un seul caractère parmi ceux entre crochets.

cours-?.ps.gz cours-*

cours-1.ps.gzcours-2.ps.gz...cours-A.ps.gz

cours-1.pdfcours-1.ps.gzcours-10.ps.gzcours-2.ps.gz...cours-A.texcours-A.ps.gz

ICC (partie programmation) – Cours 1 : Présentation du cours – 52 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Caractères de substitutionExemples

ls ??? liste tous les fichiers de trois lettres du répertoirecourant

ls *.txt liste tous les fichiers du répertoire courant se ter-minant par .txt

ls *.[ch] liste tous les fichiers du répertoire courant se ter-minant par .c ou par .h

ls *.cc *.h liste tous les fichiers du répertoire courant se ter-minant par .cc ou par .h

ICC (partie programmation) – Cours 1 : Présentation du cours – 53 / 55

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Méta-caractères

*, ?, [, ] sont donc des caractères réservés (ou« méta-caractères »), en ce sens qu’ils ont un rôle particulier dansl’interpréteur de commandes.

Il en existe d’autres : | \& ; ( ) < > $ \ " ’ ~ ‘

Si on souhaite les utiliser, il faut les protéger ce qui se fait avec le« backslash » : \

Exemple :echo \\ abc \; \<affiche \ abc ; <

ICC (partie programmation) – Cours 1 : Présentation du cours – 54 / 55

Page 15: EPFL - Information Calcul et Communication : [5pt] Présentation … · 2019-09-13 · c EPFL 2019-20 Jamila Sam & Jean-Cédric Chappelier Information Calcul et Communication : Présentation

Présentation ducours

Qu’est-ce qu’unalgorithme?

Annexe :Environnementde travailSystèmed’exploitation

Shell

Système de fichiers

Editeurs et EDI

c©EPFL 2020-21Jamila Sam& Jean-Cédric Chappelier

Editeurs de texte

Pour écrire et modifier des fichiers le moyen le plus naturel estd’utiliser un un éditeur de texte tels que :I EmacsI GeanyI geditI SciteI SublimeTextI notepad ou wordpad (Windows)I WinEdt (Windows)I jEdit (Windows, Mac OS X, Linux, ...)I . . .

Connaître un/des éditeur(s) de texte est absolumentindispensable !

+ La mini-référence "Environnement Unix", disponible sur le sitedu cours dédie une de ses sections à Emacs et Geany. Vousaurez aussi l’occasion de les utiliser en TP.

ICC (partie programmation) – Cours 1 : Présentation du cours – 55 / 55