Proposta d'ús de les organitzacions en l'àmbit educatiu¶
En aquest apartat es proposa una metodologia de treball per tal d'aprofitar les eines
de GitHub i facilitar la gestió del treball de l'alumnat
i la revisió dels projectes per part del professorat.
Aquesta metodologia es basa en la creació d'una organització,
on s'allotjaran els repositoris dels estudiants de manera centralitzada
i on el docent tindrà accés a tots els projectes.
Els estudiants treballaran en els seus propis repositoris privats
i el docent pot crear repositoris públics amb solucions o exemples.
D'aquesta manera:
El professorat tindrà accés a tots els repositoris dels estudiants.
L'alumnat tindrà accés a tots els repositoris públics creats pel professorat,
però sols tindrà accés als seus propis repositoris privats.
No obstant això, aquesta metodologia es complementària i no substitueix
la plataforma educativa amb la qual es treballa habitualment (Aules, Moodle, etc.).
Aquesta proposta GitHub Classroom
GitHub Classroom és una plataforma educativa que permet realitzar
el seguiment del treball de l'alumnat i la revisió dels projectes dins d'una organització de GitHub.
No obstant això, personalment, preferisc utilitzar les organitzacions
per gestionar el treball de l'alumnat d'una manera més "manual" per diferents motius:
Aquesta proposta no substitueix a la plataforma educativa oficial: Aules,
sinó que la complementa i facilita la revisió per part del professorat i
normalitza l'ús de Git entre l'alumnat.
GitHub Classroom es basa en la creació d'un repositori per cada tasca o projecte.
Personalment preferisc treballar amb únic repositori per estudiant o equip,
que anirà actualitzant-se al llarg del curs acadèmic.
L'automatització de les correccions mitjançant GitHub Actions
és una funcionalitat molt interessant, però sols serveix per a tasques molt concretes
que permeten ser automatitzades.
Tasques més complexes o creatives són pràcticament impossibles d'automatitzar.
Vos anime a explorar i provar GitHub Classroom i així també
podreu comparar les dues opcions i valorar la metodologia de treball que més s'adapte
a les vostres necessitats.
L'objectiu principal d'aquesta proposta és que l'alumnat
tinga normalitzat l'ús d'un sistema de control de versions com és Git,
d'ús generalitzat en el món professional.
Tenint en compte aquest objectiu, aquesta proposta també pretén:
Facilitar la revisió del treball de l'alumnat amb el sistema
de control de versions Git.
Familiaritzar i normalitzar l'ús de Git a l'aula,
per part de l'alumnat i el professorat.
Si el professorat l'utilitza de manera habitual,
serà més fàcil que l'alumnat comence a utilitzar-lo.
Aprofitar les eines de GitHub per facilitar la gestió
de projectes grupals, el seguiment de tasques i la revisió del treball.
Facilitar i incentivar la col·laboració entre els estudiants.
Configurar els permisos dels membres de l'organització com a No permission.
D'aquesta manera, els estudiants no podran veure els repositoris privats
d'altres companys de classe.
Permisos de l'organització
Figura 2. Permisos de la organització
Convidar els estudiants a la organització.
Els estudiants han d'acceptar la invitació, que rebran per correu electrònic,
per tal de poder accedir a la organització.
Estudiants com a membres de l'organització
Figura 3. Estudiants com a membres de l'organització
Indicar a cada estudiant que s'ha de crear un repositori privat.
Hem de decidir quants repositoris privats han de crear els estudiants al llarg
del curs acadèmic.
Personalment, jo els demane que creen un únic repositori que utilitzaran durant tot
el curs, amb la nomenclatura {Cognom}{Nom}-{modul}.
PuigcerverJoan-ED
PuigcerverJoan-PSP
No obstant això, també pot ser interessant crear diferents repositoris (un per cada tasca o projecte).
En aquest cas, cal tindre en compte que el volum de repositoris en l'organització augmentarà considerablement.
Repositoris dels estudiants de l'organització
Figura 4. Repositoris dels estudiants de l'organització
Com a docent, crear els repositoris públics amb solucions o exemples
que es consideren necessaris.
Personalment, m'agrada crear un repositori equivalent al que tenen els estudiants, sobre
el qual vaig resolent els exercicis que fem a classe i on vaig publicant les solucions
al llarg del curs.
El repositori .github és un repositori especial, que s'utilitza per definir el profile/README.md
que apareix a la pàgina principal de l'organització.
Repositoris públics del professorat de l'organització
Figura 5. Repositoris públics del professorat de l'organització
Configurar els permisos dels membres de l'organització com a No permission.
D'aquesta manera, els estudiants no podran veure els repositoris privats
d'altres companys de classe.
Permisos de l'organització
Figura 7. Permisos de la organització
Convidar els estudiants a la organització.
Els estudiants han d'acceptar la invitació, que rebran per correu electrònic,
per tal de poder accedir a la organització.
Estudiants com a membres de l'organització
Figura 8. Estudiants com a membres de l'organització
Convidar a la resta de docents a la organització com a Owner.
Els docents han d'acceptar la invitació, que rebran per correu electrònic.
En aquest cas, també tindran accés a tots els repositoris privats
dels estudiants.
Docents com a propietaris de l'organització
Figura 9. Docents com a propietaris de l'organització
Crear un equip per a cada grup d'estudiants
i afegir els estudiants a l'equip.
Info
La creació de l'equip, el repositori privat
i el projecte pot ser realitzada per part del professorat
o per part d'un dels estudiants del grup.
Equips dels estudiants dins de l'organització
Figura 10. Equips dels estudiants dins de l'organització
Crear un repositori privat per a cada grup d'estudiants
i afegir l'equip creat anteriorment com a col·laborador.
Repositoris dels projectes a l'organització
Figura 11. Repositoris dels projectes a l'organització
Figura 12. Assignació a l'equip com col·laboradors del repositori
Crear un projecte per cada grup, on poden organitzar les tasques
com a incidències.
Projectes per gestionar les tasques
Figura 13. Projectes per gestionar les tasques
Figura 14. Projecte amb la planificació de tasques
Com a docent, crear els repositoris públics amb solucions, exemples
o plantilles que es consideren necessaris.
En aquest cas, hem creat els següents repositoris públics:
.github – Repositori especial per a la configuració del perfil de l'organització.
projecte-daw1 – Documentació del projecte.
projecte-template – Plantilla del projecte.
Repositoris públics de l'organització
Figura 15. Repositoris públics de l'organització
A partir d'aquest punt, els equips de treball poden treballar de manera autònoma
i gestionar les seues tasques dins d'un únic projecte.
Per poder treballar de manera col·laborativa sobre el mateix repositori,
és important que facen un bon ús d'una de les Estratègies de ramificació.
A més, l'ús de GitHub és independent de la metodologia
de treball que s'aplique a l'aula, com per exemple,
metodologies àgils com Scrum o Kanban.
Exemple real aplicat en un projecte intermodular a 1r de DAW amb Scrum
Amb els estudiants de 1r curs de Desenvolupament d'Aplicacions Web (DAW),
hem estat treballant en un projecte intermodular on es desenvolupa una
aplicació web de temàtica lliure. El projecte es porta a terme en grups
de 4-5 estudiants i es treballa amb la metodologia àgil Scrum.
Cada equip gestiona les tasques amb un projecte,
enllaçat a un repositori privat.
Es segueix la següent estratègia de ramificació:
Utilització de les branques develop i main.
Utilització de les branques feature per a cada tasca.
Pull Requests per a incorporar
les branques feature a la branca develop.
Enllaçar les incidències relacionades.
Habilitar les revisions per part dels companys.
Configurar Actions per executar les proves automàticament
abans de tancar la Pull Request.
En qualsevol dels casos, els estudiants són els propietaris dels seus
repositoris i poden fer canvis sobre el seu contingut en qualsevol moment,
fins i tot després del termini de lliurament de la tasca.
Per tant, és important establir un mecanisme de lliurament de tasques,
per poder revisar el treball que els estudiants han lliurat, independentment
si després l'han modificat.
L'opció més senzilla és crear una etiqueta
o un llançament (release) per identificar
el commit en el qual es troba la versió
del treball que es vol lliurar.
Etiquetes amb els lliuraments
Figura 16. Etiquetes amb els lliuraments
El professorat, podrà accedir al repositori privat de l'estudiant
i situar-se en aquesta versió per tal de revisar el treball lliurat.
Es recomana utilitzar una etiqueta anotada
per poder comprovar la data en la qual s'ha creat.
Un altre aspecte a tindre en compte és que,
si es delega la creació dels repositoris privats als estudiants,
tenen la possibilitat d'esborrar-lo i podrien perdre tot el treball realitzat,
dificultant la revisió del treball lliurat en una reclamació posterior.
Per aquest motiu, personalment m'agrada demanar-los que lliuren
el codi de la tasca de manera comprimida a la plataforma educativa oficial (Aules),
indicant l'enllaç al seu repositori.
Lliurament d'una tasca a Aules
Figura 17. Definició de la tasca a Aules
Figura 18. Lliurament d'un estudiant a Aules
En la pràctica, no revise el codi lliurat a la tasca d'Aules i
el consulte directament en el repositori privat.
No obstant això, és cert que de vegades els estudiants
han tingut algun problema amb Git i gràcies a aquest backup
els he pogut avaluar.
Un dels principals reptes d'aquesta proposta és la gestió dels membres i repositoris
de l'organització:
Gestió dels membres: GitHub no proporciona una manera senzilla
de convidar i gestionar els membres de l'organització
en massa.
Gestió dels repositoris de l'alumnat: El nombre de repositoris
de l'alumnat pot ser molt elevat i gestionar-los individualment
pot ser complicat.
Per aquesta raó, s'ha desenvolupat ghot (GitHub Organization Tools),
una eina de línia de comandes que permet gestionar els membres i repositoris
d'una organització de manera senzilla i ràpida.
Aquesta eina permet realitzar les següents accions de manera massiva:
Convidar i eliminar membres de l'organització.
Crear, eliminar, clonar i actualitzar (pull) repositoris.
Crear incidències als repositoris.
Documentació
Podeu trobar la informació sobre la instal·lació i ús de ghot a la documentació:
GitHub Organization Tools
Advertència
ghot és una eina en estat experimental.
Vos recomane que executeu les ordres amb l'opció --dry primer
per verificar que tot funciona correctament.
A més, si trobeu algun error o teniu alguna proposta de millora,
podeu indicar-ho a la secció d' Issues del repositori de ghot.
Important
No és necessari fer ús de ghot per aplicar aquesta proposta.
Totes les accions poden ser realitzades manualment.
Convidar a l'alumnat a l'organització mitjançant ghot
El primer pas és crear un fitxer estudiants.csv,
el qual ha segut exportat de la plataforma educativa Aules.
Convidar els estudiants a l'organització amb ghot user invite.
Crear els repositoris privats amb ghot repo create.
Convidar els estudiants als repositoris corresponents amb ghot repo invite.
Recomanació
És recomanable executar les ordres amb l'opció --dry per tal de
comprovar prèviament que tot funciona correctament.
joapuiib@fp:~$ghotuserinvite--dryfpmislata-daw1-edestudiants.csv
Total members: 1Pending invitations: 0ada.lovelace: Invitation sent to 'adalovelace' (dry).alan.mathison.turing: Invitation sent to 'alanturing' (dry).joapuiib@fp:~$ghotrepocreate--dry--privatefpmislata-daw1-edestudiants.csv
ada.lovelace: Repository 'fpmislata-daw1-ed/AdaLovelace-ED' created (private) (dry).alan.mathison.turing: Repository 'fpmislata-daw1-ed/AlanMathisonTuring-ED' created (private) (dry).joapuiib@fp:~$ghotrepoinvite--dryfpmislata-daw1-edestudiants.csv
ada.lovelace: User 'adalovelace' is not a member of the organization.alan.mathison.turing: User 'alanturing' is not a member of the organization.
ghot repo invite no funciona correctament en aquest cas perquè
les comandes prèvies no s'han executat realment i els estudiants no són membres
de l'organització.
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.