
PyGre.io
Découverte de la programmation
Remerciements
Présentations
Quelques clichés


Pourquoi ?

Internet of Things
Machines > Humains
- Rapidité
- Répétition sans erreur
- Grandes quantités de données
Le problème ?

Comment se faire comprendre ?
Communiquer
Comment les machines "pensent" elles ?
Tout n'est que chiffres

Images

Couleur = RGB (Red, Green, Blue)
Texte
72 101 108 108 111 44 32 87 111 114 108 100 32 33
H e l l o , W o r l d !
ASCII: Conversion caractère <=> nombre
Unicode: gestion des caractères spéciaux,
accents, pictogrammes, emojis...
Syntaxe:
le binaire
0010101101001001001100110010011001010010010010011101100
Comment les machines voient les nombres
Décimal (base 10)
394
2 | 1 | 0 | Index |
3 | 9 | 4 | Valeur |
Chaque valeur est comprise entre 0 et B-1 (9)
Autres bases communes
Base 12: L'heure
Base 26: L'alphabet
Pourquoi le binaire ?
Chaque valeur vaut soit 0, soit 1.
Raisons électroniques
Logique booléenne = grammaire
Binaire (base 2)
Puissances de 2
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 ...
5 | 4 | 3 | 2 | 1 | 0 | Index |
32 | 16 | 8 | 4 | 2 | 1 | 2^i |
1 | 0 | 1 | 0 | 1 | 0 | Valeur |
number = int(input("Enter a number:"))
print(bin(number))
Décomposition Binaire
Qu'est-ce qu'un programme ?

def sayHello(name):
print("Hello, " + name + " !")
sayHello("World")
011010011101001000101001011010
101101110100110111011100110110
101110111011110110101100111011
011010011101001000101001011010
101101110100110111011100110110
101110111011110110101100111011
011010011101001000101001011010
011010011101001000101001011010
Code Source
Exécutable
Python, C/C++, Ruby, JavaScript, ...
PC, Mac, iOS, Android
...
Les composantes d'un programme
Variables
foo = 12
bar = 42
result = foo + bar # result = 54
foo = 1234
bar = 0.25
result = foo * bar # result = 308.5
result = foo - spam
Donner un nom à une chose
Réutilisation (DRY)
Recyclable
Doivent être déclarées
NameError: name 'spam' is not defined
Types de variables
Nombres Entiers (1, 2, 42, 394, ...)
Nombres Réels (1.2345, π, ...)
Booléens (True, False)
int
float
bool
Texte ("Hello, World !")
str
foo = 42
foo = 12.34
foo = True
foo = "Hi!"
Texte = séquence de caractères
Conditions & Logique
numberToFind = 42
guess = int(input("Enter a number:"))
if guess == numberToFind:
print("Bingo !")
elif guess > numberToFind:
print("Too high, try again.")
else:
print("Too low, try again.")
Boucles
numberToFind = 42
guess = int(input("Enter a number:"))
while guess != numberToFind:
if guess > numberToFind:
guess = int(input("Too high, try again:"))
elif guess < numberToFind:
guess = int(input("Too low, try again:"))
print("Bingo!")
Atelier
number = int(input("Enter a number between 0 and 999:"))
v2 = int(number / 100)
v1 = int((number - v2 * 100) / 10)
v0 = int(number - v2 * 100 - v1 * 10)
print(v2, v1, v0)
Décomposition Décimale
Un peu d'histoire
Jacquard
1801 - Lyon (La Soie)
Invente le métier à tisser programmable
Utilisation de cartes à trous
pour les motifs

Charles Babbage
XIXe Siècle - Angleterre
Mathématicien & Mécanicien
Inventeur de "l'ordinateur" programmable

Ada Lovelace
XIXe Siècle - Angleterre
Mathématicienne
Pionnière des maths de la
programmation
Première développeuse
Le langage Ada porte son nom

George Boole
XIXe Siècle - Angleterre
Mathématicien
Logique Booléenne

Alan Turing
XXe Siècle - Angleterre
Mathématicien & analyste
Invente la Machine de Turing,
ancêtre de nos ordinateurs
Test de Turing (IA)
CF: The Imitation Game (2014)

Grace Hopper
1947 - US Army
Invente le premier compilateur
Machine-independent program
Découvre le premier "bug"


Et bien d'autres...
Tim Berners-Lee
Bill Gates
Steve Jobs
Richard Stallman
Linus Torvalds
Bjarne Stroustrup
Guido van Rossum
Invente Internet
Crée Microsoft Windows
Crée Apple
Fonde GNU & compilateur C
Crée Linux
Crée le langage C++
Crée langage Python
PyGre.io 2017-01-18
By François Best
PyGre.io 2017-01-18
- 444