LANGAGES INFORMATIQUES


Créalise

Session 2020-21


© Licence Art Libre

Formateur: Philippe Vincent

administrateur + développeur + formateur

= artisan numérique

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

Ruby, Bash, Html, Css, Markdown

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é ?

PLAN

Le matin

  • de la théorie
  • quelques exercices théoriques

L’après-midi

  • un jeu de carte
  • pratique de quelques langages informatiques

à la fin : évaluation

PARTIE I

un peu de théorie

LANGUE Vs LANGAGE

Différence entre une langue et un langage ?

Down arrow

Un langage est un système de signes

  • Alphabet
    • exemple : [A-Z|a-z] + [,;.:!?]
    • vous en connaissez d’autres ?
  • Vocabulaire
    • exemple: un dictionnaire
  • Grammaire NOM + VERBE + COMPLEMENT
  • Signification
    • ambigüité avec le mot ‘plus’
      • “J’en veux plus.”
      • “Je n’en veux plus.”

Une langue représente une communauté humaine

Quand on parle la même langue, on partage aussi une même culture.

un exemple : la francophonie

  • 300 millions de locuteurs présents sur 5 continents
  • 5ième langue la plus parlée au monde, après
    • le mandarin, l’anglais, l’espagnol et l’arabe

Une langue est une application concrète d’un langage.

Registre de langage

langage châtié

Vous êtes bien aimable, très chère

langage poétique

La Terre est bleue comme une orange

polysémie (plusieurs sens)

Sylvain a vu un homme avec un télescope.

Phrase alphabétique (ou pangramme)

En français

Buvez de ce whisky que le patron juge fameux

En anglais

The quick brown fox jumps over the lazy dog

Rq: utile pour visualiser une police de caractères !

D’autres langues ?

Down arrow

De la diversité des langues

  • Kisa i koz kréol terla ? lev out min
  • Are you fluent in english?
  • ¿Qué idioma hablan los mexicanos?

Rq: notez l’espace en français avant le point d’interrogation ou le signe d’interrogation inversée.

  • Langue des signes

  • Signal de fumée

  • Alphabet Morse

  • Langue Inuit

    • + plusieurs mots pour décrire la couleur blanche, => glace, neige, …

Les différentes langues humaines sont un trésor pour l’humanité

Mais aussi …

La langue de bois

bois

cf. Le pipotron

La novlangue, 1984

Bon : Bon.
Plusbon : Très bon.
Doubleplusbon : Excellent.
Inbon : Pas bon, mauvais.
Plusinbon : médiocre.
...

Le Globish

Pour aller + loin

des disciplines variées

Linguistique

Sémantique

Sémiologie

  • faculté de manipuler des symboles
  • idées, choses, concepts

Théorie des langages

  • langage formel
  • automate fini

PARTIE II

Mathématique / Arithmétique

une langue formelle internationale ?

Alphabet, Vocabulaire, Grammaire, Signification ?

des chiffres    0 1 2 3 4 5 6 7 8 9
des opérateurs  + -x / = ( )

nombre          suite de chiffres
                ex: 12

expression      un nombre OU
                <expression> opérateur <expression>
                ex:   12
                      3 + 9
                      2 x 5 + 2
Down arrow

Quelques exercices d’arithmétique simple

Calculer les expressions suivantes :

8 x 2 - 3 =

8 − 2 × 3 =

( 8 - 2 ) x 3 =

Rq: ces expressions utilisent la notation infixée

Et si on changeait de grammaire ?

    au lieu de "<expression1> opérateur <expression2>"
    on écrit   "opérateur <expression1> <expression2>"

La notation polonaise (ou notation préfixée)

× (− 8 2) 3

ou plus simplement

x - 8 2 3

Intérêt: les parenthèses deviennent inutiles !

Rq: il existe même la notation polonaise inverse (ou notation postfixée)

Exercice

calculer en notation polonaise

- 8 x 2 3 = ?

- x 8 2 3 = ?

x - 8 2 3 = ?

Exercice

écrire en notation polonaise

12 / 3 + 1 x 3

12 / ( 3 + 1 ) x 3

( 12 / 3 + 1 ) x 3

PARTIE III

langages appliqués à l’informatique

Informatique

La machine de Turing

La base théorique de tout ordinateur

machine de Turing

Le langage binaire

0 1 0 0 1 1 1 1 1 0

Down arrow

représentation des nombres décimaux

	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			...
question : quel est le plus grand nombre représentable avec 1 octet ?

Algèbre de Boole

Exercice Langage Binaire

BASE BINAIRE (2) BASE DÉCIMALE (10)
1000001 ?
? 1023

Représentation des caractères

ASCII

Ce qu’il faut retenir

on peut TOUT représenter avec des 0 ou des 1 !

  • des données quelconques, comme par exemple
    • des booléens (VRAI |FAUX)
    • des nombres (entiers, flottants, …)
    • des caractères
    • mais aussi …
      • des images, du son, de la vidéo
  • stocker sous forme de fichiers ou dans des bases de données
  • et surtout …
    • des instructions pour former un programme !

Pourquoi plusieurs langages informatiques ?

Down arrow

exemple de HTML

    <li>
      <a href='crealise.io'>École Créalise</a>
    </li>
    ...

Rq: langage composée de balises

exemple de CSS

li a { 
  background-color: beige;
  margin: 1.2em;
}

Rq: contient une partie sélecteur + une partie description de style

exemple de SQL

SELECT *
FROM etudiant 
WHERE 
    nom LIKE 'a%'
  AND
    age BETWEEN 18 AND 25

recherche tous les étudiants dont le nom commence par la lettre ‘a’ et dont l’age est compris entre 18 et 25 ans

Le langage Assembleur

instructions pour le processeur

MOV AX, 10    ; stocke la valeur 10 dans le registre AX
MOV BX, 101   ; stocke la valeur 11 dans le registre BX
ADD AX, BX    ; additionne le registre AX et BX
  • spécifique pour une gamme de processeur
    • 8bits / 16bits / 32bits / 64bits
      • Intel (ordinateur) / ARM (téléphone) / …

Distinguer langage informatique de langage de programmation

Il existe

  • des langages de description de données
    • HTML, CSS, …
  • des langages de requêtage
    • SQL, Expression Régulière, …
  • de nombreux langages de programmation
    • ASSEMBLEUR, RUST, RUBY, …
Down arrow

Langage de programmation

  • notion d’algorithme
    • métaphore de la recette de cuisine
    • mécanisme de branchement
      • SI <condition> ALORS … SINON …
    • mécanisme de répétition
      • TANT QUE <condition> RÉPÉTER …

CODE SOURCE

ça veut dire quoi ?

Est-ce qu’on a accès au code source de tous les programmes ?

Différentes protection du code source ?

Existe-t-il des plateformes pour faciliter l’accès au code source dit “ouvert” ?
Down arrow

OPEN SOURCE

exemples de code source

décryptons un programme en Ruby

repl.it

Compilation Vs Interprétation

Métaphore : traduction d’un roman en anglais vers le français

Le traducteur ou l’interprète ?

Down arrow

Compilation

  • Traduit un langage informatique vers du langage machine
    • plus rapide
    • Difficulté à remonter au code source
      • rétro-ingénierie

Interprétation

  • Interprète ligne par ligne
    • Plus lent
    • Accès facile au code source
      • exemple de page HTML et F12 webdeveloper

Logiciel privateur < Open Source < Logiciel libre

  • Pas d’accès au code source = logiciel privateur

  • Mise à disposition sous licence libre ou open-source

    • sans Copyleft
      • MIT, APACHE, BSD, …
    • avec Copyleft = Logiciel libre
      • GNU, MPL …

Le logiciel libre est un pot commun auquel chacun peut ajouter quelque chose mais duquel personne ne peut rien retirer

– Eben Moglen

en conclusion, le “code source” d’un programme est

  • écrit et relu par un HUMAIN
  • executé par une “machine de Turing

PARTIE IV

“Jeu sais tout”

Règles du “Jeu sais tout”

  1. choisir sa carte en binôme ou trinôme
  2. INDIVIDUEL: surfer sur Internet et collecter un maximum d’information, 20mn
  3. Wikipedia, la base + tout autre site web
  4. Vidéo tolérée avec casque
  5. GROUPE: mettre en commun vos connaissances, trier, prioriser
  6. GROUPE: restitution oral 5mn
    1. 3 questions du public

Liste des cartes

Down arrow
  • Carte 1 : UML / Mermaid
  • Carte 2 : Base de données / Table / Index / SQL
  • Carte 3 : Alan Turing / Test de Turing
  • Carte 4 : XML / XHTML / MathML
  • Carte 5 : JSON / YAML
  • Carte 6 : Markdown
  • Carte 7 : SVG
  • Carte 8 : Latex / WYSIWIG
  • Carte 9 : Licence Libre / MIT / GPL / Creative Commons
  • Carte 10 : Python / Ruby

PARTIE V

Mise en pratique de quelques langages informatiques

Pas de programmation !

SVG

<svg width="200" height="200">
  <rect width="200" height="200" fill="red"/>
  <circle cx="100" cy="100" r="80" fill="green"/>
  <text x="100" y="110" font-size="20" text-anchor="middle" fill="white">
    Super le SVG
  </text>
</svg>
Super le SVG

Apprenons les bases

https://maurice-chavelli.developpez.com/tutoriels/apprendre-svg/les-bases/

Markdown

Pratique de Markdown

  • écrire un document qui contient
    • des titres
    • du gras
    • de l’italique
    • au moins une image
    • une liste à puce numérotée
      • une indentation dans la liste
    • des citations
      • une réponse à une citation

Extensions du langage

ajouter un diagramme mermaid

  ```mermaid
  graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
  ```

SQL

  • Instructions de manipulation des données (INSERT, UPDATE, DELETE)
  • Instruction de requetâge (SELECT)
    • SELECT <champ1, champ2, …> FROM <table1, table2> [WHERE OP ] [ORDER BY champ [ASC|DESC]]
      • possibilités d’inclure des fonctions sum, avg
      • coordination logique AND, OR
      • recherche textuelle avec LIKE
        • chaine de caractère entre “”
        • valeur spéciale % remplace n’importe quelle portion de texte

Visualisons le schéma des données

version UML

http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/schemaUML.php

version MERISE

http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/schemaRelationnel.php

Cours en ligne

https://sql.sh/cours

  • MULTIPLICATION
  • AVG
  • ALIAS
  • GROUP BY
  • HAVING
  • COUNT
  • DISTINCT

Requêtons la base de données

20 questions en ligne (jusqu’à 16)

Manipuler JSON

PARTIE VI

Relecture du support de formation

+ 1 question / étudiant


Évaluation 20mn QCM

  • 19 questions, la dernière enregistre les résultats définitivement !