# Pédagogie JAVA
Créer un atelier :
Questions à se poser pour mettre en place une activité pédagogique :
* Forme :
- Legacy ?
- Comment organiser la semaine ?
- Traduire les notions en activités
- Quelles limites sur les formats ?
* Fond :
- Quelles notions retenir ?
* Pédagogie :
- Comment impacter les étudiants de façon positive ?
- Comment faire en sorte qu'ils s'intéressent au langage ?
- Comment gérer les diff de niveaux entre étudiants et assistants ?
- Pourquoi cet atelier (pourquoi ça a du sens pour eux d'être ici)?
- Pourquoi nous ?
point pedagogique :
- a qui ? (definir un ensemble de choses auquel on va enseigner)
=> rapport à l'enseignement complètement différent
2 typologies :
- fait son cours et se casse
- demande un retour sur son enseignement pour pouvoir l'ameliorer
### Leur, qui sont ils ?
Définir l'ing1.
Démographie :
Les para ? environ 100, pas le même profil
interne ? pas les mêmes prof, pas le même parcours
comment les élèves vont arriver ? (en pleine forme ou super fatigué, blasé ?)
Ing1:
- Entrée Para
- CPGE
- Prépa Intégré
- Redoublants
Psyché :
- Ils attendent quoi d'être là ?
- Quel est l'état dans lequel ils arrivent ?
Environnement :
- Elements extérieurs
Ça dépend de la salle ? KB/VJ ? ils sont dans quel mood ?
- Temps en salle machine
- Période dans l'année
Profilage :
- c'est quoi ?
- c'est qui ?
Sujet: Comment on pense, on travaille un atelier, on commence avec "à qui ?"
Tàche de fond :
- Qu'est ce que c'est que d'enseigner l'informatique ?
Courant historique:
- informatique c'est un déclic (shonen: extreme difficulté et il sort tout son potentiel, ex: super sayen)
- on est tous mauvais, y'a des mécanismes qui s'enseignent: répéter et apprendre
(pour dans 2 jours)
Exo: Profilage
-
- Entrée Para (DUT/IUT) (ont fait de la technique mais pas d'abstraction) (peut etre plus isolé): "Événements rare":
- Psyché
- moins intégré au groupe
- BG Technique
- ? niveau technique
- CPGE (abstraction mais pas suffisemment de pratique) (ils sont 76: Reiman):
- Psyché
- présence plus contraingnante (fac)
- Pas trop dans le folklore
- Quid de la légitimité de l'assistants ?
- BG Technique
- savoir plus tranverse
- grandes variations
- Prépa intégré:
- Psyché:
- connais déjà l'école
- point de vue négatif sur le java
- profil: je m'en fou/pour un stage/curiosité
- BG Technique
- C# (objet et ressemble au java)
- Redoublants:
- Psyché
- Quid de la légitimité de l'assistants ?
- pression (moins le droit à l'erreur)
- attitude vis à vis du redoublement: nouveau départ (positif) / amertude
- isolé ?
- décrochage ?
- BG Technique
- un peu de recul (pour les redoublants S6 uniquement)
folklore epita ?
les intégrés ont entendu parlé des promo supérieures et vivent les memes sentiments meme si en soit ça change
au milieu du S6: para, CPGE, intégré à peu près meme niveau d'intégration dans la promo (ça dépend de la personnalité)
À la base, l'atelier a été créé sur demande des étudiants en stage qui devaient faire du java
On fait pas comme ailleurs:
changer le contexte (ex: en rond autour du prof au lieu de rangés en face du tableau)
Pourquoi ?
-
Decouvertes des codes sociaux (histoire des singes: acquis: on ne s'approche pas de l'escabot, pourquoi ? je sais pas, c'est ce qui me caractérise) (reproduit le mécanisme de l'assistants)
justifier le pk du java ? parce qu'on m'a dit que tout le monde faisait du java (en entreprise)
éviter de sortir des arguments d'autorité
on a vécu l'atelier (sorti transformé), qu'est ce qu'on peut apporter ? qu'est ce qu'on attend avec impatience dans l'atelier java (ex: Chewie: Junit: unit test)
periode java = période où on fait du code pour qqun, par du code pour du code (on traduit un besoin)
=> réfléchir à la structure, aux bonnes pratiques, etc
Les enseignements où les étudiants ont l'impression que le prof rame, prend du temps avec eux, peuvent poser leurs questions (mais faut etre avce eux)
positionnnement de l'assistant qui doit etre: pk moi en tant que personne je suis là ?
j'ai choisi d'etre la, dans quel contexte ? quelle position ?
ici: legacy
demain: produire
Questions:
- ou est ce que ça va merdé ?
- qu'est ce qui vous fait peur ?
# Cours 2
Pourquoi on est là (en tant qu'assistant) ?
-> Quand on répond à cette question on devient acteur de la situation
Position institutionnelle
Notre position
À qui ? -> Pourquoi ? -> Quoi ?
Pourquoi split en cours avec des profs et des assistants, qu'est-ce qu'on apporte de plus ?
## Quoi ?
reflexion en terme de language, Java c'est un moyen ou une finalité ?
si jamais le sujet rentre dans deux catégories ? il n'est pas assez rafiné
### Le savoir de l'informaticien (= abstraction)
Java = un moyen (pour cette partie)
- Threads
- lambda
- Design Pattern (Gof)
- SOLID (clean architecture)
- serialization
### Les pratiques de l'informaticien (= mise en pratique)
c'est structurant pour les ING1s, c'est la première fois qu'on leur apporte ce cadre
- TDD (tdd by exemple)
- peer programming (xpe)
- IDE
- (Logging ?)
### La spécificité de Java
- lambda
- syntaxe, environnement de travail
- syntaxe objet (P\)
- JUNIT (junit)
- basics of JAVA (javadoc)
= synthétiser la doc oracle ou autres (doc java)
---
(P\) = ça dépend du profil
Planning poker pour évaluer la priorité d'une tâche (suite de Fibonacci):
temps qu'on devrait dédier
en posant Threads = 3
- lambda (entre 1 et 3)
- design pattern 5 (3)
revirement de situation:
en posant Design Pattern = 5
- SOLID (potentiellement une formation à faire car pas eu de cours l'an dernier) (entre 5 et 8)
- sérialisation (entre 1 et 2)
- TDD = 2
- Peer programming (entre 0 et 1)
- IDE (entre 0 et 1)
- Logging (entre 1 et 2)
- lambda (entre 3 et 5)
- syntaxe (objet) (entre 2 et 3)
- maven (entre 0 et 1)
- JUNIT = 1
- basics of Java = 1
- generics = 3
## Comment ?
### Parenthèse: Cycle de vie d'un projet
1. Problématique(s) / Besoin(s)
Expression fonctionnelle -> Besoin technique
2. Backlog planning (Kickoff)
INVEST
3. Planning/Répartition dans une timeframe
4. Réalisation
5. Mise en production
En vrai:
1. Cahier des charges
2. Product Backlog
3. Sprint Backlog
4. Code source
5. Artifact
Dans notre monde EPITA:
1. Sujet PDF
2. TODO
3. TODO trié
4. Code source
5. .jar/.war