Différences entre les versions de « ERG::Code-2019-2 »
Ligne 299 : | Ligne 299 : | ||
==Déroulement du cours== | ==Déroulement du cours== | ||
− | Le cours ne nécessite aucun prérequis si ce n'est une capacité d'attention pendant les séances. Cette attention implique qu'à certains moments, par exemple lors des moments de discussions ou de présentations, il sera demandé aux étudiant.e.s de fermer leur ordinateur, que l'usage des smartphones est interdit et que les étudiant.e.s doivent arriver à l'heure au cours (9h, le | + | Le cours ne nécessite aucun prérequis si ce n'est une capacité d'attention pendant les séances. Cette attention implique qu'à certains moments, par exemple lors des moments de discussions ou de présentations, il sera demandé aux étudiant.e.s de fermer leur ordinateur, que l'usage des smartphones est interdit et que les étudiant.e.s doivent arriver à l'heure au cours (9h, le jeudi matin). |
Comme il s'agit d'un cours technique, les travaux se feront majoritairement en classe et il n'est pas absolument nécessaire de travailler en dehors du cours, à part pour documenter les travaux ou préparer leurs présentations (les cotations). | Comme il s'agit d'un cours technique, les travaux se feront majoritairement en classe et il n'est pas absolument nécessaire de travailler en dehors du cours, à part pour documenter les travaux ou préparer leurs présentations (les cotations). |
Version du 3 octobre 2019 à 14:07
Introduction
Ce cours est destiné aux étudiant.e.s de BAC3. Cette année, nous nous concentrons sur le rapport du numérique au texte. Les interactions textuelles avec les machines, le code générateur de poésie, le code en tant que poésie, le code secret, le code caché. Nous serons amenés à créer des poésies algorithmiques, des générateurs de textes, des machines à plagier, des bots twitter, des ordinateurs qui parlent. À travers différentes expérimentations menées en atelier, nous aborderons plusieurs langages de programmation, concepts informatiques et exemples dans les champs de l'art, du design, de l'histoire de l'informatique et autres.
Séances
Séances
03/10/2019 : introduction langages
Poésie binaire: suite
100001001100101010000011100101100101110011111001011101110010000011101101100001110110011101000001101110000111011001110011010000011011011100101110111011100111100101111001101000001111010110100111000111101000000011011101101100101111001011110101100111110110111001011101100110010111011101111110000110110101101101001110010111100100100000100010011000011100111110010111011100100000111011111001011001010001101110010111011100100000110010111001011101110010000011001001100001110011101000001101110110100111001011110100000110110011101101111110111111010011110100010000011011011100101110010111001001000011101001100101111001011101011100111 100110011001011110011010000011001011100100110100111101001101001110111111011101110011000110101000101001100110010101000001000011110000111011101100001111000011001010100010000110111011010100111110000111101101100001110100111001011101110111010001000001100100110111111011101101110110010100011011110101110111011001010100000110110111010011110011111001111010011101111110111001000000111010000110111101011101110010000011001111110010110000111011101100100010000011100101101111110110111000011101110000110111101001110010110000111011101110011110011011011111110010110110111010011110011111010011001010101110 1000011 1100101 1110011 1110100 0100000 1110110 1110010 1100001 1101001 0100000 1101111 1110101 0100000 1100110 1100001 1110101 1111000 0001101 1110101 1101110 0100000 1101111 1110101 0100000 1111010 1100101 1110010 1101111 0100000 0001101 1000011 1100101 1110011 1110100 01000001101110 1101111 1101101 1110010 0100000 1101111 1110101 0100000 1100010 1101100 1100001 1101110 1100011 0100000 0001101 1101100 1100001 1110010 1101101 1100101 0100000 1100001 1101101 1101101 1100101 0100000 1100010 1101001 1100101 1101110 0100000 0001101 1101100 1100101 0100000 1100011 1101111 1100100 1100101 0100000 1100010 1101001 1101110 1100001 1101001 1110010 1100101 0100000 0001101 1110100 1101111 1110101 1110100 1110011 0100000 1100101 1110011 1110100 0100000 1110100 1110010 1100101 1110011 0100000 1100011 1101100 1100001 1101001 1110010 1100101 10011000100000100111110100101000100100100110011101000001101010010001011010101101001000011011001010101111101010110001010100000101001110000011001110101001101000001000101101001010100101000101101010110100100001101101000010011111010101101001001000001000100100010110100110100000100011110100101001111101001101000001010100101100110100001000101101001100011011000100100010110100110100000101011010010011000101101010110110000100000101000010100101001001100111010000111001001101000010001011010011000110110011001000001010000010101101001001100010101000001000100101010101000001010000101001010010011001110100001110001010001101100110010001010100000100001110010001001111100100110110000100000100010010101010100000101001010011111001001000110110000110100000100010110100111010100010000010101001001111100100101000001010001101010110010010100000101001010010011001110100001110001010001101100001101000001000101101001110101000100000100110110011111001001010000010100011010101100100101000001000010100111110010011010100 100001111010011110010110001111101011101001111010011100110100000100100111011011101101110010111011101110011110010111100110001101101000111010111010010100000111001101001111100001110011111001011101110110001111001011101110111010000011011010110110000111100101101001110000111101001101001110111111011101110011000110110100001110010110111111001101110101111001111010011101111110111001000001100100110010100011010110000010000011001011110100010000011001001100101010000001100010001101100110011000011101110110011111000011100111100101010000011001000100111111010111011100001101100111010111101001110010110010101000001110101110111011010011110110110010111100101110011 1011010110010111100101101111111001101000001100101111010001000001110101110111011100110001101101001011110011110100110100011011011100101110111011101000100000110110011001010100000110001111011111100100010100011001010101001010111000011011010010110010111100001100101111010011010011110100110100111011111101110010110000011011011010110010111100101101111111001101000001100101111010001000001110101110111011100110001101101001111000011110101111010001000001100001010000011011001100001010000011011001101001110011111011101100101010110000011011000011010011111001011110011111010001000001110101110111001000001110011110010111000111110010110010111101000101110 10011111100011110001111010001101001SP1100100SP11101001100001110110011100001100001SP110100111011011110000110110011011111110010110000111011101101111SP11010011101100SP1110010110100111000111101111111001011001001101111CR11001001101001SP1100011110111111011011110000110010111011101110011110000111100101100101SP119991111919911101111SP110001111011001011000SP1100101SP11100111110100110000111101001101111SP111010011011111101100111010011011110101110CR1100001110110011011001100001SP11100111101111110011111101100110100011100001SP110010011001011101100SP110110111010011101111SP11100001100101111010011101001101111SPCR11010001100001SP1100010111010111100111110011110000011110100110111SP11001011100100SP1101000110111SP1100001111000011001011110010111010011011111011110CR100111011001011101100SP1110100110010111100101110010110111111100101100101SP11001001100101110110011011001100001SP1110100110000111011101100001SP1100010111010111010011100001SP0101100CR11001111110000011011100110110011001011100111110011111010011100001110111011101001100101SP11000111110111111011011100101SP111010111011101100001SP1100010110111111000010101100CR11010001101111SP1110010110100011100011110111111011101101111111001111000111101001111010111101001101111SP11011001100001SP111001111001011101110111001111101001110001011010011101100110100111101001100001SP11101011101101110000111011101100001CR110100011101110SP1110101SP11101001101111111001011100111101111SP11001001101001SP11000111100001111001011011101100101SP110001111000011110010110111011000010101110
Le code ci-dessus converti en caractères (binaire vers ASCII) grâce à moulinette.py:
B2P92srw;0v:pv9P6rw9ryP=4qt;2y=3vrv2w?k4ry"0srw;reen een dag nietNooit meedCSKW Les editions"Le Canape"m'avaient donneune mission :un grand romantransformiste. Cest vrai ou fauxun ou zero Cest nomr ou blanc larme amme bien le code binaire touts est tres claire L ORDINATEURJ_+A'&A%%+$&A%&A)3!&-+0A!%!&-A*A!%0A*A%'(A)A#+A%'(A#+A Circuits ImmensesQkRAfOCOK]GK]heSCiS_]f_MkgS_\AIJ�`AKhAIJ@b]OCOW86:z92P:w4{2y9 Zeros et unsRythment le cod(e).Repetition,Zeros et unsSaut a la ligne,C'est un secret.
Tentatives de classements des langages de programmation
css, html, javascript + jquery python, ruby, C, Assembleur, PHP Processing, Java, C++, XML, binaire, ASP, Pascal, Turbo pascal, C#, SQL -------------------------------------------------- Langage web -- langages côté client css, html, javascript + jquery, XML -- langages côté serveur ASP, PHP, ruby, python, java, javascript -- langage côté serveur spécifique aux bases de données SQL Langage pas web assembleur, binaire processing, java, python, C, C#, C++,Pascal, Turbo Pascal, ruby javascript (nodejs), XML, html, css, PHP ------------------------------------------------- Langages compilés C, C#, C++,Pascal, Turbo Pascal, assembleur, java, python, Processing -> le compilateur convertit le langage de haut niveau vers le binaire Langages interprétés javascript, XML, html, css, PHP, python, ruby ----------------------------------------------- Langages orientés objets C++, Java, Processing, Python, javascript, ruby Langage procéduraux C, Pascal, Turbo Pascal, assembleur ------------------------------------------------- Langages descriptifs html, css, xml Langages algorithmiques Les autres XML <users> <user> <name>Lionel Maes</name> <email>lionel@lavillahermosa.com</email> </user> <user> <name>Protch</name> </user> </users> HTML <body> <h1>Le titre de la page</h1> <article>Et le texte de l'article</article> </body> javascript alert('coucou les amis'); alert('vous avez bien dormi?'); ------------------------------------- Processing (Java) print("coucou les amis"); Javascript console.log("coucou les amis"); Python print("coucou les amis") PHP echo "coucou les amis"; ---------------------------------------------------------- Python x = 0 PHP $x = 0; BASH x=0
Hello python
#!python
# -*- coding: utf-8 -*-
print("Qui est-ce?")
name = input()
#name = raw_input()
#La ligne ci-dessous affiche Salut et le nom de l'utilisateur
#print("Salut "+name)
#boucle infinie
'''
while True:
print("Salut "+name)
print("Comment ça va?")
'''
#boucle while avec compteur
'''
compteur = 0
while compteur < 10:
print("Salut "+name)
compteur = compteur + 1
'''
#boucle for avec compteur
'''
for compteur in range(0, 10):
print("Salut "+name)
'''
'''
0 1 2 3 4 5
['L'|'i'|'o'|'n'|'e'|'l']
'''
print(name[2])
indice = 2
print(name[indice])
print("boum c'est fini")
26/09/2019: texte et code
Notes
spécificité numérique - virtuel, intangible - source d'énergie, réseau (électrique ou autre) - information codée, binaire 0 1 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 10 11 12 13 20 0 1 10 11 100 101 110 111 1000 16 8 4 2 1 1 0 1 1 1 90 9 1 0 0 couleur 128 64 32 16 8 4 2 1 1 1 1 1 1 1 1 1 0000 0000 0000 0010 = 255 00000000 = 8 bits = 1 byte = 1 octet FF 00 00 ---------- 1 1 1 1 1 1 1 a 1 0 0 0 0 1 1 a 1 1 0 0 0 0 1 b 0 1 0 0 0 1 1 b 1 1 0 0 0 1 0 c 1 1 0 0 0 1 1 c 1 1 0 0 0 1 1 d 0 0 1 0 0 1 1 d 1 1 0 0 1 0 0 A 1 0 0 0 0 0 1 A 1 0 0 0 0 0 1 F 0 1 1 0 0 0 1 F 1 0 0 0 1 1 0
Slides
Voir: slides 01: texte et code
1. INTERNATIONAL MORSE CODE, HAND SENDING - https://archive.org/details/gov.archives.arc.36813 Department of Defense. Department of the Army. Office of the Chief Signal Officer. (09/18/1947 - 02/28/1964)
- Le code morse, inventé par Samuel F. B. Morse en 1832.
- Directions pour tracer les lettres
- Les confusions possibles si l'opérateur fait une erreur de rythme
2. TM 11-459 International Morse Code (Instruction) - 1959 - https://archive.org/details/Tm11-4591957/page/n3
- Le télégraphe "a contribué plutôt à lier inextricablement la technologie et la place de l'humain" (K. Hayles - Lire et penser en milieux numériques p. 223)
3. Direct service guide for telegraphic cipher - 1939 - https://archive.org/details/directservicegui00sldu/page/20
- Premier objectif: la compression (pour des raisons économiques)
- 2e objectif: la discrétion
- 3e objectif: le controle des erreurs
4. Bentley's second phrase code - 1929 - https://archive.org/details/bentleyssecondph00bent/page/778
- Les codes ne sont plus liés au langage naturel
5. Idem
- Ici, un "tableau de mutilation" qui permet de corriger un code mal transmis (qui contient une erreur d'une lettre)
6. Teleprinter n°7 - Creed & Company - 1930
- Frederick G. Creed, inventeur du téléscripteur (vers 1910), ancien télégraphiste, canadien
7. Un exemple de téléscripteur - 1932, Londres
8. Code baudot - 1888
- Un encodage des caractères sur 5 chiffres, 5 bits
- Utilisé (dans des versions ultérieures) sur les premiers téléscripteurs
- Nécessité de définir une vitesse de modulation, "baudrate" en anglais, qui définit le nombre de symboles envoyés en 1 seconde -> la question du début et de la fin!
- Donald Murray adapte le code baudot en 1902 et attribue aux lettres les plus utilisées de l'alphabet les positions impliquant le moins de trous
- En 1924, adaptation du code baudot-Murray par l'organisme International Telegraph Union en International Telegraph Alphabet No. 2 (ITA2)
9. ASCII - American Standard Code for Information Interchange - 1963 - pré 1971
- sur 7 bits
Exercice : poésie binaire
Chaque étudiant.e écrit sur un pad commun au moins deux vers de 4 pieds en binaire en utilisant le tableau de conversion ASCII suivant:
Déroulement du cours
Le cours ne nécessite aucun prérequis si ce n'est une capacité d'attention pendant les séances. Cette attention implique qu'à certains moments, par exemple lors des moments de discussions ou de présentations, il sera demandé aux étudiant.e.s de fermer leur ordinateur, que l'usage des smartphones est interdit et que les étudiant.e.s doivent arriver à l'heure au cours (9h, le jeudi matin).
Comme il s'agit d'un cours technique, les travaux se feront majoritairement en classe et il n'est pas absolument nécessaire de travailler en dehors du cours, à part pour documenter les travaux ou préparer leurs présentations (les cotations).
Le cours fonctionne en évaluation continue, ce qui signifie que chaque exercice réalisé en atelier aura une note attribuée. Pour réussir le cours, il faut essentiellement être présent.e.
À cette évaluation continue s'ajoute deux notes en décembre et en mai qui correspondent aux moments de cotations. Il est demandé pour ces cotations de présenter une sélection des travaux réalisés jusque là.
La difficulté technique, bien que présente, ne doit pas constituer une barrière pour assister au cours. Il ne sera pas demandé aux étudiant.e.s d'être performant.e.s mais plutôt de ne pas se braquer et d'accepter d'être inefficaces durant des périodes qui semblent parfois longues (voire trouver du plaisir dans ces périodes de recherches). L'entraide et le partage sont encouragés. Tout sera fait pour éviter des comportements de mise à distance du savoir entre celles et ceux "qui savent" et les "newbies".
Chaque étudiant.e a accès à ce wiki, qui servira durant toute l'année à documenter les travaux. La création des comptes pour le wiki se fait au début du deuxième cours (au moment de l'inscription au cours).