Initiation à la programmation (Atelier)

De Wiki Linux62.

Durant cet atelier, les participants découvriront le principe de la programmation, les différents types de langages et apprendront à faire leurs premiers programmes.

Les exemples seront réalisés avec le langage python.

Les points suivants seront abordés :

  • A quoi sert la programmation ?
  • Qu'est ce que la programmation ?
  • Compilation ?
  • Les familles de langages
  • Les types de données
  • Les structures de controle
  • L'organisation d'un programme
  • Les espaces de nommage
  • ...

Tout au long de cet atelier, nous accompagnerons les notions par des exemples et nous terminerons par le classique programme de la tortue :-) (en mode graphique).


Notes sur le premier cours

A quoi sert la programmation ?

sert à éviter de faire des choses rébarbatives
pour automatiser des processus difficiles à faire la main
programmation capable de faire choses à la place d'un humain

programme
faire suivre une suite de commandes (instructions) qui vont faire une tâche bien spécifique
on l'exprime avec une syntaxe

organisation d'un programme sous plusieurs formes possibles
fonction : (comme en math) -> données en entrée/données en sortie
procedure : fonction qui ne renvoie rien

programmation
en général on ouvre un fichier et on écrit dans un fichier le code source

pour python on a un shell intéractif dans lequel on peut taper des commandes qui seront exécutées.

 [démo]
 >>> <- on demande d'entrer quelque chose

Familles de programmes

compilés
on prend le code source, le passe dans une moulinette et le transforme en langage machine (binaire)
beaucoup plus rapide mais à recompiler à chaque fois
un binaire par architecture -> inconvénient

"réservés" aux gens qui savent bien programmer : plus difficile à comprendre

interprétés
un programme (interpréteur) lit le code source et le comprend instruction par instruction et les exécute une par une
pas besoin de recompiler mais à chaque fois besoin de relire, recomprendre et exécuter -> plus lent
mais plus facile à manipuler -> multi-plateforme (pas besoin de compiler pour chaque architecture)

plus facile car l'interpréteur dit où sont les erreurs

Langages

besoin d'un langage formel créé pour remplir des tâches précises

langage
ensemble de commandes pour exprimer quelque chose dans un langage formel
permet manipulation de données (ex : declaration et affectation de variables etc) et structures de contrôle de flot (ex : si, sinon, boucles)

langage objet
plus récent
modélisation du programme par rapport à la réalité
(ex: un écran, on programme suivant l'écran)

python
syntaxe simple et rapide à exécuter
langage interprété

ici c'est python qui va transcrire à la volée et exécuter le programme prévu à la base pour les scientifiques on peut à peu près tout faire (du hello world au jeu 3D) même si le langage est interprété, c'est relativement rapide (ex : bien adapté pr interfaces graphiques) simple niveau syntaxe, le plus clair possible, simple à apprendre en 1-2h de pratique très explicite (pas comme perl hein ! :p) une personne qui ne programme pas est capable de comprendre le code

mi chemin entre Ada et C

C
langage qui commence à dater mais toujours à jour car on peut programmer des choses quon ne peut pas faire dans d'autres langages
(ex: coder directement un driver pour une carte réseau)

Ada
vieu langage créé à la demande des militaires états-uniens
langage compréhensible en le lisant, proche du langage naturel (celui utiliser pour parler)

La programmation concrètement

La notion de variable

boite dans laquelle on met quelque chose
(valeur numérique, chaîne de caractères, bout binaire etc.)

langages typés
les boites sont typées
ex: pour une boite chaîne de caractère on ne peut mettre que des chaines de caractère

python non typé

rappel :
entier : 1 2 3 ...
flottant : décimal 1,2 1.7 ...

identificateur
nom donné à une boite (ex : port est un symbole)
on peut donc mémoriser des choses en mémoire
(ex : on assigne 3 à port, dans port on aura 3)

Outils personnels
Équipes