ERG::Code-2017-1

De {}
Aller à la navigation Aller à la recherche

Introduction

Ce cours est destiné aux étudiants de BAC2. Le but est ici de faire un tour d'horizon de pratiques et de possibilités liées à la programmation et plus généralement à l'algorithmique et au numérique.

Nous commencerons cette année par une introduction aux pages web, avec les langages html et css, pour très vite enchaîner sur le javascript et l'écriture de programmes. Nous nous attarderons ensuite sur les bases de données, le stockage d'information, pour terminer par la génération de supports imprimés via les outils orientés web (html, javascript, css).

Quelques points importants:

  • La plupart des travaux seront réalisés dans le cadre de l'atelier. La présence au cours est donc nécessaire.
  • Le cours se veut à la fois pratique et théorique: les étudiants seront encouragés à se documenter et se positionner par rapport aux questions que posent le code informatique, son écriture et ses applications dans divers domaines.
  • La recherche et la documentation font partie du cours. Une attention toute particulière sera apportée au partage d'informations entre nous et vers l'extérieur.

Séances

25/09/2017

  • Brève introduction aux langages de programmation : langage machine, langage assembleur, langage évolué, langages de scripts (langages interprétés), langages compilés, langage de balisage (langage de marquage), langage de requête
BINAIRE (langage machine)

0                0
1                1
1 0              2
1 1              3
1 0 0            4
1 0 1            5
1 1 0            6
1 1 1            7
1 0 0 0          8

1 0 0 0 0 0 0 0  128 (1 octet)


ASSEMBLEUR
COBOL
C
C++ 

JAVA > interpreté
Python > idem



HPGL > pour les traceurs
POSTSCRIPT > pour les imprimantes
BASH > pour le terminal
JQUERY > JAVASCRIPT
PROCESSING > JAVA

HTML > côté client, interprété
CSS  > côté client, interprété
JAVASCRIPT > côté client, interprété
PHP > côté serveur, interpreté
SQL > côté serveur, interprété
Ruby on rail > côté serveur, interprété


  • Mains dans l'html: créer un labyrinthe de pages web

02/10/2017

  • Introduction à Internet et au web
  • Mise en ligne du labyrinthe
  • Main dans le css: mise en page d'un contenu existant

http://curlybraces.be/erg/2017-2018/lionelmaes/introcss.zip

09/10/2017

  • Le positionnement en css : intro

http://curlybraces.be/erg/2017-2018/lionelmaes/20171009positionnement.zip

1. réalisez un carré rouge qui prend tout l’écran dans lequel se trouve un carré jaune centré horizontalement et verticalement quelque soit la taille de la fenêtre.👽
2. Réalise un drapeau belge sur toute la page🇧🇪    
3. Fais moi un Mario en pixel art (pixel = bloc de 20x20 px)
4. faire un damier de 5 carrés horizontaux et verticaux qui s'adapte à la taille de l'écran
5. créer un motif avec des superpositions de carrés (au moins 5 carrés de couleur différentes avec des positionnements différents). 
6.Créez un escalier de 12 rectangles de 100 px par 20 px avec les couleurs de l'arc-en-ciel
7. créer 5 carrés de différentes couleurs qui se superposent avec transparence > opacity:1; opacity:0.5;
8. Réalise une lettre à partir de carrés (avec un positionnement fixe) et une qui s'adapte à la 
9. Créer 5 carrés avec 5 bordures de couleurs différentes
10. réaliser un bloc fixe qui change de couleur à un certain niveau de la page par dessus d'autres blocs mobiles
avoir un menu fixe à gauche sur toute la page et faire 4 colonnes de texte qui se placent les une à côté des autres s'il y a de la place, les unes en dessous des autres sinon
12. réaliser un dégradé de blocs
13. réaliser 3 blocs de couleur bleu, les uns à coté des autres, dont celui du milieu est fixé sur la page

16/10/2017

  • Positionnement en css: suite
  • Démo js: intro

23/10/2017

  • Javascript: introduction et exercice d'écriture de scénario avec prompt et alert

http://curlybraces.be/erg/2017-2018b3/lionelmaes/20171023demo_js.zip

06/11/2017

  • Javascript: récapitulatif

http://curlybraces.be/erg/2017-2018/lionelmaes/20171106rappeljs.zip

  • Jquery: introduction

http://curlybraces.be/erg/2017-2018/lionelmaes/20171106introjquery.zip

13/11/2017

  • Exercices jquery: énoncés
1. faire une page avec un carré dans le coin supérieur gauche qui vas dans le coin supérieur droit quand on clic dessus puis en bas a droite puis en bas a gauche puis en haut a gauche puis ainsi de suite... 
2. Faire une page avec 3 carrés un à coté des autres avec du texte centré à l'intérieur. Cliquer sur le carré pour faire agrandir le texte
3. Faire une page avec des carres en arc en ciel qui apparait et disparait et changent de taille 
4. faire un bloc qui prend tout l'écran, à chaque refresh de la page le bloc doit être d'une nouvelle couleur aléatoire`
5.Faire un carré
6. Construire une page avec un carré dans l'espace. Cliquer sur le carré pour le faire disparaitre puis le faire réapparaitre de façon aléatoire dans la page
8. faire un carré dans l'angle supérieur gauche de la page. Lors du clic, faire répéter le carré horizontalement et de façon continue jusqu'à la fin de cette page.
7. Faire en sorte qu'un bloc se déplace partout ou on clique
9. Créer un gros bloc  où quand on clique dessus il rétrécit, encore et encore jusqu'à ce qu'il disparaisse 

10.faire deux colonnes  de bloc en deux couleurs différentes qui changent de couleur quand on clique dessus  

11.faire trois carrés de couleurs differentes superposés, quand on clique dessus le carré disparait pour faire apparaitre celui en dessous

20/11/2017

  • Jquery: dessin

http://curlybraces.be/erg/2017-2018/lionelmaes/20171120dessinjs.zip


04/12/2017

  • PHP: intro

http://curlybraces.be/erg/2017-2018/lionelmaes/20171204demophp.zip

11/12/2017

  • PHP bases de données

http://curlybraces.be/erg/2017-2018/lionelmaes/20171211bag.zip

05/02/2018 : introduction au deuxième quadrimestre

  • Travailler en groupe
    • Mise en place d'un agenda de présentation des sujets liés aux travaux
    • Chaque groupe crée la page de documentation de son projet sur le wiki
    • Avant une présentation d'un groupe, les étudiants qui n'en font pas partie lisent le projet documenté. La présentation est un moment d'échange et de débat
    • Les présentations sont transcrites par un(e) secrétaire
    • À l'intérieur des groupes, à chaque fois qu'il y a des moments de mise en commun, ils sont également retranscrits par un(e) secrétaire et mis en ligne sur la page correspondante du wiki

https://www.youtube.com/watch?v=4GXCIbStB5c

  • Bases de données
    • D'où viennent les données? Choisir une ou plusieurs sources parmi la liste suivante:
      • Les bibliothèques des membres du groupe
      • Un flux twitter d'un politicien au choix
      • Les flux facebook des membres du groupe
      • Un site de recettes de cuisine
      • Les trajets en transports en commun des membres du groupe
      • Un forum thématique (au choix) du site Doctissimo
      • Les commentaires d'un site d'actualités au choix
      • Les discours d'un politicien au choix
      • Les pads créés pour le dernier séminaire de l'ERG
      • Un ensemble de documents provenant de wikileaks.org
    • Quel est l'intérêt de les stocker? Formuler une hypothèse.
    • Que garder ou ne pas garder?
    • Produire un schéma de structure
      • Quelles seront les entités, quelles seront les relations?
    • À la fin du cours: présenter le projet via la page wiki du groupe

12/02/2018 : bases de données: suite

  • Création d'un schéma de base de données
    • Répondre aux questions suivantes:
      • Quelles sont les entités? Exemples: article, commentaire, utilisateur, livre, etc.
      • Quels sont les champs pour chaque entité? Exemples: corps de texte, chapeau, nom, prénom, date, etc.
      • Quelles sont les relations entre les entités, via quels champs? Exemple: un article est lié à un auteur via le champ id_auteur
    • Produire le schéma soit sur papier, soit via http://asciiflow.com/
  • Quel médium pour la base de données? Choisir un ou plusieurs médium parmi la liste suivante:
    • Des fiches physiques
    • Une structure de dossiers et de fichiers sur ordinateur
    • Une base de données type SQL
  • Quelle méthode pour insérer du contenu dans la base de données?
    • Écrire un scénario de remplissage, que la méthode soit numérique ou non. Écrire ce scénario comme une recette de cuisine ou un programme, en étant le plus précis possible. Exemple: Tous les jours à 15h à partir du 12 février 2018 jusqu'au 25 février 2018, scanner la homepage du site lemonde.fr. Pour chaque lien vers un article d'actualité, suivre le lien, scanner la page désignée par le lien. Pour chaque commentaire publié sur cette page, récupérer la date, le nombre de mots. Insérer une nouvelle entrée dans la table "comments" de la base de données en utilisant ces deux informations.
    • Créer un schéma correspondant à ce scénario, soit sur papier, soit via http://asciiflow.com/
    • Suivant les besoins du scénario, définir si la méthode est numérique, analogique ou les deux.
  • À la fin du cours: présenter le projet via la page wiki du groupe

19/02/2018 : bases de données: suite

  • MySQL et phpMyAdmin
  • Quel médium pour la base de données? Choisir un ou plusieurs médium parmi la liste suivante:
    • Des fiches physiques
    • Une structure de dossiers et de fichiers sur ordinateur
    • Une base de données type SQL
  • Quelle méthode pour insérer du contenu dans la base de données?
    • Écrire un scénario de remplissage, que la méthode soit numérique ou non. Écrire ce scénario comme une recette de cuisine ou un programme, en étant le plus précis possible. Exemple: Tous les jours à 15h à partir du 12 février 2018 jusqu'au 25 février 2018, scanner la homepage du site lemonde.fr. Pour chaque lien vers un article d'actualité, suivre le lien, scanner la page désignée par le lien. Pour chaque commentaire publié sur cette page, récupérer la date, le nombre de mots. Insérer une nouvelle entrée dans la table "comments" de la base de données en utilisant ces deux informations.
    • Créer un schéma correspondant à ce scénario, soit sur papier, soit via http://asciiflow.com/
    • Suivant les besoins du scénario, définir si la méthode est numérique, analogique ou les deux.
  • Documenter, planifier, démarrer la récolte
  • À la fin du cours: présenter le projet via la page wiki du groupe

Groupes de travail

Agenda de présentations

19/02/2018

26/02/2018

05/03/2018

12/03/2018