Module Programmation

Octobre, 2021

Créalise

Formateur: Philippe Vincent

administrateur + développeur + formateur

= artisan numérique

Quelques langages informatiques que j’utilise régulièrement

Ruby, Bash, Typescript, Markdown, Html, Css,

Qui êtes-vous ?

Présentez-vous

  • Prénom – Nom

  • Pourquoi avez-vous choisi cette formation ?

État des connaissances

  • Quels langages informatiques connaissez-vous ?

    • niveau : débutant, confirmé ?
  • Qu’est ce vous aimeriez apprendre dans ce module de programmation ?

PLAN

Le matin

  • de la théorie

  • quelques exercices théoriques

  • un peu de pratique

L’après-midi

  • un jeu de carte

  • plus de pratique

  • évaluation

Définir la programmation

On va le faire … ensemble

remue-méninges

Des synonymes de programmation ?

Différences entre programmation et langages informatiques

Pouvez-vous citer des langages de programmation ?

Citer vos programmes favoris.

bureautique, navigateur, vidéo, dessin

Savez-vous comment sont-ils programmés ?

Avec quel langage de programmation ?

CODE SOURCE, ça veut dire quoi ?

Est-ce facile d’y accèder ?

Existe-t-il des plateformes pour accèder au code source des programmes ?

GITHUB, GITLAB, GIT… ?

https://github.com/ruby/ruby/blob/master/lib/time.rb

Un peu de théorie

Le codage binaire

1 0
VRAI FAUX
OUI NON
+ -
O K ANNULER

bg 20%

représentation des nombres

	BASE 10 => BASE 2				    8 cases
	=================				===============
	      0 => 0					0 1 2 3 4 5 6 7	
	      1 => 1
	      2 => 10
	      3 => 11
	      4 => 100
              ...		
	      8 => 1000 		        8 bits   = 1 octet
	     16 => 10000		     1024 octets = 1 Ko (kilo-octet)
	     32 => 100000		     1024 Ko     = 1 Mo (méga-octet)
	     64 => 1000000		     1024 Mo     = 1 Go (giga-octet)
	    128 => 10000000		     1024 Go     = 1 To (téra-octet)
	    256 => 100000000			...

Algèbre de Boole, et ses fonctions logiques :

  • inverse (ou son contraire !), donc !vrai = ?
  • somme (addition, OU) : donc vrai + faux = ?
  • produit (multiplication, ET) : donc vrai * faux = ?

Êtes-vous logique ?

Choisissez une réponse :

  • OUI
  • NON

VRAI + VRAI = ?

FAUX * FAUX = ?

!( VRAI + FAUX ) * VRAI = ?

VRAI * ( FAUX + (FAUX * FAUX) + !VRAI ) = ? 

Induction Logique

Tous les hommes sont mortels.
Socrate est un homme.
Donc Socrate est mortel.
Et pourtant !?
Dans l'emmental, il y a des trous.
Plus il y a d'emmental, plus il y a de trous.
Plus il y a de trous, moins il y a d'emmental.
Donc plus il y a d'emmental, moins il y a d'emmental.
répondre très rapidement

est-ce que tu ne veux pas une claque, OUI ou NON ?

La machine de Turing

machineTuring

La base théorique de tout ordinateur

Programmer

en jouant avec

Studio Code

https://studio.code.org/s/express-2020

Exo 1

Avoir une note >=10

dans au moins 5 modules

Programmer

en

jouant

avec

Snap!

https://snap.berkeley.edu

Exo 1

dessiner ces initiales

Exo 2

faire un bloc

Exo 3

faire un triangle de 30 pas

Exo 4

faire un carré de 30 pas

Exo 5

faire un bloc Triangle avec 1 paramètre

Exo 6

faire un bloc Carré avec 1 paramètre

Exo 7

faire un bloc PolygoneConvexe composé de 2 paramètres :

  • nombreCotés
  • distanceCoté avec une valeur par défaut à 30

BONUS :

Construire le jeu du nombre mystère

Déterminer un nombre au hasard entre 1 et 100
Poser indéfinement la question : "Deviner le nombre mystère ? "
Si le mystère est plus grand que la réponse, répondez : “plus grand”
Si le mystère est plus petit que la réponse, répondez : “plus petit”
Si trouvé, Terminer le jeu
Et préciser : Fécilitations, vous avez trouvé en <n> coups !

Apprendre l’écosystème de la programmation

avec …

une distribution de cartes

JEU SAIS TOUT

(chercher sur Internet puis exposer en binôme)

Choix des cartes

  1. Alan Turing
  2. Logiciel libre
  3. Le jargon des programmeurs
  4. Gestionnaire de version
  5. Programmation impérative
  6. Programmation orientée objet
  7. Programmation fonctionnelle
  8. Informatique quantique

Carte 1 : Alan Turing

Enigma 
médaille de Turing
langage Turing-complet
test de Turing
la pomme de Blanche-Neige

Carte 2 : Logiciel Libre

Richard Stallman, les 4 règles du logiciel libre
Linux utilise la licence ...
Différence entre GPL et BSD ...
Créative Commons, Art Libre
Wikipedia, OpenStreetMap

Carte 3 : Le jargon des programmeurs (for english people)

DRY
YAGNI
KISS
TDD
RTFM
Carte 4 : Gestionnaire de version
git
commit
fork

"Gestion sémantique de version"
    majeur, mineur, correctif

gestionnaire de paquets
    apt, npm, gem

Carte 5 : Programmation impérative

Assembleur
Basic
Instruction GOTO
PHP

Carte 6 : Programmation orientée objet

Smalltalk
Java
Polymorphisme
Héritage

Carte 7 : Programmation fonctionnelle

LISP
Lambda Calcul
MapReduce
Haskell
Typescript

Carte 8 : Informatique quantique

résolution de problème NP-Complet
complexité
cryptographie asymétrique
cryptographie quantique

PROGRAMMATION niveau débutant, par écrit

ÉVALUATION

QCM

Épilogue

Le tout premier programme

premier

Ceci est le premier algorithme pour calculer les nombres de Bernoulli, 1843. Vous voulez-voir qui a programmé ça ? image