Pages

Js : with Mash

 

I fond of PythonTutor

Exemples de code
  1. Python
  2. C
  3. JavaScript

const data = [
    {
        nom: "coka",
        cat: "Boisson",
        prix: 4,
    },
    {
        nom: "pepsi",
        cat: "Boisson",
        prix: 9,
    },
    {
        nom: "farine",
        cat: "Epicerie",
        prix: 4,
    },
];

const groupBy = (arr, key) =>
  arr.reduce((acc, i) => {
    (acc[i[key]] = acc[i[key]] || [] ).push(i);
    return acc;
  }, {});

const cat = groupBy(data,"cat"),
prix = groupBy(data,"prix");



en action : pythontutor



JS

Un programme est un texte, l'histoire qu'il raconte un algorithme. La programmation son écriture. Et le langage varie suivant sa rédaction.

La rédaction dépendra du style de programmation (programmation impérative, fonctionnelle, programmation logique, programmation orientée objet …)

Prenons un exemple : "On doit retrouver la grand-mère maternelle, connaissant la mère".


Le tableau suivant résumerait les différents styles d'écriture :

impératif

fonctionnelle

logique

objet

Partie Déclaration

 Y


Partie Affectation

Y = mère de X;

Z  = mère de Y;

Fonction

afficher, mère


Pour X afficher la mère de la mère de X

Prédicat

mère(U,V)


si mère(x,y) et mère(y,z) alors grand-mère(x,z)

Class

individu

    méthode : mère


grd-mère : [[this mère] mère] 


La mauvaise nouvelle est qu'il va falloir ajouter une ième colonne car JS est un langage objet à prototype

Il n'y a pas de classes en JS. La fonction est la pierre angulaire car c'est elle qui possède un prototype qui permet de mettre en place une chaîne d'héritage.


Mais, si on s'amuse à comparer les index des cours de langages de programmation. Voici les index des cours de langage C et de JS du site Openclassroom.

Le constat serait frappant : les plans de cours se ressemblent. 

En effet, si l’ordinateur représente les données en binaire, nous voulons penser nos données de façon plus naturelle (des nombres, des dates …), les manipuler facilement à l'aide de boucles dans des structures de plus hauts niveaux (les tableaux …) ; et ceci quelque soit le langage utilisé.

Il faut donc apprendre pour un langage les

  1. Éléments lexicaux

  2. Types

  3. Structures de contrôle

  4. Fonctions


Le plan du cours suit ce schéma.

  1. Les littéraux

    1. Les chaînes de caractères (Strings) en JavaScript [M0L05]

    2. Les nombres en JavaScript [M0L06]

    3. Les booléens en JavaScript [M0L07]


  1. Les Variables

    1. Les variables en JavaScript [M0L08]


  1. Les conditions

    1. Les conditions en JavaScript [M0L10]


  1. Les boucles

    1. Les boucles en JavaScript [M0L13]


  1. Les fonctions

    1. Les fonctions en JavaScript (partie 1) [M0L15]

    2. Les fonctions en JavaScript (partie 2) [M0L16]

    3. Les fonctions en JavaScript (partie 3) [M0L17]


Vous avez au moins un an de programmation derrière vous. Si le nombre de vidéos est important, les notions abordées ne sont pas nouvelles.

 


Les cours en ligne

Vous pouvez suivre la formation JS proposée par Jérémy


Suite à ma demande, Jérémy vous propose :
"... de regarder directement depuis l'adresse de ma playlist YouTube publique du module débutant :

Ça leur évitera d'avoir à rentrer leur email sur mon site et de subir mes emails marketing ensuite ;-)."



Interview

Jérémy combien de temps consacres tu à la création d'une vidéo ?

" ... Pour 15 min de vidéo (une leçon), ça me prend en général 4 jours à plein temps, soit une trentaine d'heures.
Ecriture du script 1 jour et demi à 2j (collecte des infos + synthèses + création du code qu'on va voir dans la vidéo), montage vidéo une demie-journée, transcription (sous-titres) 1h, création d'exercices quand il y en a 2h à 4h."

Programme 


Voici la liste de vidéos à étudier pour commencer : 


Remarque : Jérémy installe sous Mac, l'installation sous Windows ne devrait vous poser aucun problème.


Installer nodejs/différences avec Chrome






Examen : 1H

 Donner le code des fichiers :

index.html
styles.css


Pour le fichier on se contente de définir les grilles !


Grid : help

 Grid est partout : calendrier

Propriété dense : adaptation à l'écran

Nomage des lignes : affecter des éléments à une colonne

Flow column : Astuce du chef

Tout en un : en résumé