Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
66
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
desarrollo realistas [8] e, incluso, poder utilizarse co- Remoto git clone
mo herramienta de monitorización [12]. Su uso no está repositorio
exento de retos. Los alumnos pueden utilizarlo como remoto
un sistema de entrega más, sin aprovechar su funciona-
lidad [3], o usarlo de forma ineficiente [9]. Desde una git fetch
perspectiva académica existe el riesgo de un aumento git push
de las tareas de gestión docente [16] o que la curva de git init Local
aprendizaje sea tan elevada que afecte al normal desa-
git branch repositorio
rrollo del curso [14].
local
Esta contribución presenta la experiencia docente git remote
desarrollada en la asignatura Ingeniería Web5 del itine-
git commit
rario de Ingeniería de Software del grado de Ingeniería
Informática de la Universidad de Zaragoza durante el
Local git merge
año 2014. En esta asignatura y para el desarrollo de
area de
la parte práctica, en lugar de utilizar directamente Git git checkout
preparación
desde la línea de comandos se ha utilizado la plata-
forma y las herramientas de escritorio proporcionadas
por GitHub6 para afrontar los retos y riesgos anteriore- git add
mente mencionados. GitHub es un servicio comercial
Local
de alojamiento en la Web de repositorios remotos Git.
directorio de
Está considerado como la plataforma de alojamiento
trabajo
de repositorios remotos más popular. A principios de
2014 el número de usuarios de GitHub se estimaba
en más de 3,4 millones y el número de repositorios git pull = git fetch + git merge
en 16,7 millones [20]. En abril de 2015, el número de
Figura 1: Principales comandos de Git
usuarios es más de 9,4 millones y el número de reposi-
torios alcanza los 22,4 millones [6]. Esta contribución
se centra en motivar esta experiencia, explicar cómo se
ha usado esta herramienta durante el curso, y evaluar determinó las siguientes decisiones de implementa-
beneficios, riesgos y retos. ción:
67
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
68
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
herramientas similares a las que ofrece GitHub. • Trabajo fuera de línea. Implícito por soportar Git
pero restringido a los recursos gestionados en los
repositorios por Git. No hay soporte fuera de lí-
3. GitHub aplicado a la docencia nea a las herramientas de trabajo colaborativo de
GitHub.
Ingeniería Web es una asignatura de 6 créditos • Trabajo en grupo. El uso de Git y GitHub per-
ECTS del cuarto curso del grado de Ingeniería Infor- mite implementar diferentes flujos de trabajo en
mática de la Universidad de Zaragoza. La asignatura entornos educativos [21]. En esta asignatura se ha
es parte del itinerario de Ingeniería del Software. A lo organizado según se describe en la Figura 2.
largo de la asignatura el alumno debe desarrollar en
solitario o en grupo varios sistemas Web orientados a La relevancia del trabajo en grupo en esta asignatu-
servicios, desarrollando así competencias relacionadas ra hace que merezca la pena detallar su implementa-
con el desarrollo Web. Ingeniería Web es una asignatu- ción. Primero hay que preparar los repositorios remo-
ra de evaluación continua en la que el trabajo práctico tos compartidos de los grupos y los repositorios remo-
pondera un 80 % en la nota final. tos y locales de los alumnos. GitHub actúa como la
A continuación describimos herramientas y funcio- máquina remota donde se crean los repositorios remo-
nalidades de GitHub utilizadas en este curso distin- tos compartidos. A continuación, cada alumno clona
guiendo entre las derivadas de Git y las exclusivas de en GitHub el repositorio remoto compartido de su gru-
GitHub. Las herramientas y funcionalidades se presen- po para crear su repositorio remoto. El siguiente paso
tan agrupadas bajo tres criterios. El primero atiende a es la creación por parte de cada alumno de un clon local
su uso por parte del alumno en su aprendizaje. El se- de su repositorio remoto utilizando Git. Al repositorio
gundo se fija en su papel como soporte del curso. Fi- local se le añade como remoto el repositorio remoto del
nalmente, el tercero denominado facilitadores describe grupo. El repositorio remoto del alumno se referencia
aspectos relacionados con tecnologías, licencias y pre- localmente en Git como origin y el del grupo como
cios que han facilitado el diseño curso. upstream. Una vez que está preparada toda la infraes-
tructura, el flujo de trabajo esperado de cada alumno
sigue los siguientes pasos: integrar los cambios del re-
3.1. Aprendizaje del alumno
positorio del grupo en su repositorio local (git pull
Dentro de esta categoría incluimos las herramientas --rebase upstream), realizar los cambios perti-
y funcionalidades relacionadas con actividades de co- nentes, enviar dichos cambios a su repositorio indivi-
municación, productividad y participación de los alum- dual remoto (git push --force origin) y, fi-
nos. Las derivadas de Git son: nalmente, solicitar vía un pull request que los cambios
de su repositorio remoto se integren en el repositorio
• Diario de actividades. El histórico de cambios de
remoto del grupo. Dentro del grupo hay un alumno con
un repositorio hospedado en GitHub es accesible
el rol gestión del repositorio remoto. Este alumno es el
vía Web, pudiendo accederse a todos los cambios
que decide si se integra el cambio o no en el repositorio
que se han producido con indicación de quién
del grupo.
lo ha cambiado, cuándo se ha cambiado, qué ha
cambiado y el origen del cambio (otro repositorio La única herramienta de GitHub que puede ser con-
o vía un editor Web proporcionado por GitHub). siderada de aprendizaje no asociada con Git y de la
Toda la información presentada es navegable. cual se tiene constancia de su uso por parte de los alum-
69
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
70
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
(a) Punch card: Comportamiento al notificar la entrega de (b) Punch card: Comportamiento al integrar cambios du-
las prácticas obligatorias rante del proyecto final
(c) Public contributions: Sumario gráfico con datos (d) Network: Seguimiento e interacción dentro de los equipos
cuantitativos/cualitativos de actividad enlazados
71
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
72
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
[10] Oren Laadan, Jason Nieh y Nicolas Viennot. [16] Karen L Reid y Gregory V Wilson. Learning by
Teaching operating systems using virtual ap- doing: introducing version control as a way to
pliances and distributed version control. En manage student assignments. SIGCSE, páginas
the 41st ACM technical symposium, página 480, 272–276, 2005.
New York, New York, USA, 2010. ACM Press, [17] Paul Sawers. GitHub Wants Schools to
ISBN 9781450300063. Collaborate Around code, Febrero 2014.
[11] Joseph Lawrance, Seikyung Jung y Charles Wi- http://thenextweb.com/insider/
seman. Git on the cloud in the classroom. En 2014/02/11/github-wants-schools-
44th ACM technical symposium, página 639, collaborate-code/.
New York, New York, USA, 2013. ACM Press, [18] Kris Shaffer. Push, Pull, Fork: GitHub for Acade-
ISBN 9781450318686. mics. Hybrid Pedagogy, 2013. http://www.
[12] Ying Liu. CVS historical information to unders- hybridpedagogy.com/journal/push-
tand how students develop software. Ïnterna- pull-fork-github-for-academics/.
tional Workshop on Mining Software Reposito- [19] Ian Skerrett. Eclipse Community Sur-
ries (MSR 2004)"W17S Workshop - 26th Inter- vey 2014 Results, Junio 2014. https:
national Conference on Software Engineering, //ianskerrett.wordpress.com/
2004:32–36, Enero 2004. 2014/06/23/eclipse-community-
[13] Andrew Meneely y Laurie Williams. On prepa- survey-2014-results/.
ring students for distributed software develop- [20] Marisa Whitaker. GitHub co-founder
ment with a synchronous, collaborative develop- Chris Wanstrath shares his story, Abril
ment platform. En 40th ACM technical sympo- 2014. http://magazine.uc.edu/
sium on Computer science education, página 529, content/magazine/favorites/web-
New York, New York, USA, Marzo 2009. ACM only/wanstrath.html.
Request Permissions, ISBN 9781605581835. [21] Zhiguang Xu. Using Git to Manage Capstone
[14] Ivan Milentijevic, Vladimir Ciric y Oliver Voji- Software Projects . En 7th International Multi-
novic. Version control in project-based learning. Conference on Computing in the Global Informa-
Computers & Education, 50(4):1331–1338, Ma- tion Technology, 2012.
yo 2008. [22] Alexey Zagalsky, Joseph Feliciano, Margaret An-
[15] Stephen O’Grady. DVCS and Git Usage in 2013, ne Storey, Yiyun Zhao y Weiliang Wang. The
Diciembre 2013. http://redmonk.com/ Emergence of GitHub as a Collaborative Plat-
sogrady/2013/12/19/dvcs-and-git- form for Education. ACM, New York, New York,
2013/. USA, Febrero 2015, ISBN 978-1-4503-2922-4.
73