Methods and Cases in Computing Education

4 downloads 4056 Views 246KB Size Report
Projects are hosted on the Free Knowledge Forge of the RedIRIS (Spanish National ... Computer Science degrees at the EHEA”), during 2007, the course was ...
Proceedings  of  the  3rd  Workshop  on�

Methods  and  Cases  in  Computing   Education  

  Held  in  Cádiz  (Spain),  June  30th  2010   Published  by  the  Spanish  Chapter  of  the  ACM  Special  Interest  Group  on  Computer  Science   Education  with  the  collaboration  of  the  University  of  Cádiz.        

www.uca.es  

www.sigcse.es  

   

        ISBN  978-­‐84-­‐694-­‐0523-­‐9    

 

Methods  and  Cases  in  Computing  Education  by  Spain  ACM  SIGCSE  Chapter  is  licensed  under  a  Creative  Commons  Reconocimiento   2.5  España  License.    

  �

� Table  of  contents   Introduction  to  University  and  the  ICT  Sector......................................................... 1    

Davinia  Hernández-­‐Leo,  Verónica  Moreno  Oliver    

Collaboration  and  competitiveness  in  project-­‐based  learning ............................... 8    

Pablo  Recio  Quijano,  Noelia  Sales  Montes,  Antonio  García   Domínguez,  Manuel  Palomo  Duarte  

Case  of  an  online  course:  Java  Programming....................................................... 15    

Ángel  García-­‐Beltrán  

Adapting  LEARN-­‐SQL  to  Database  computer-­‐supported  cooperative   learning ................................................................................................................ 22    

Xavier  Burgués,  Carme  Martín,  Carme  Quer,  Alberto  Abelló,   M.  José  Casany,  Toni  Urpí,  M.  Elena  Rodríguez  

iii   �

Collaboration  and  competitiveness  in  project-­‐ based  learning   Pablo  Recio  Quijano  (1),  Noelia  Sales  Montes  (1),  Antonio  García  Domínguez  (2),  Manuel  Palomo   Duarte  (2)    Department  of  Computer  Languages  and  Systems,  University  of  Cádiz   C/  Chile  nº  1,  Cádiz  (Spain)   ����������������������������������������������������

(1)  

(2)  

Department  of  Computer  Languages  and  Systems,  University  of  Cádiz   C/  Chile  nº  1,  Cádiz  (Spain)   �����������������������������������������������



Abstract   This  paper  presents  the  methodology  used  in  the  “Video  Game  Design”  course  of  the  Technical   Engineering  in  Computer  Systems  (“Ingeniería  Técnica  en  Informática  de  Sistemas”)  degree  at  the   University  of  Cádiz.  This  methodology  combines collaboration  and  competition  with  a  strong   commitment  to  free  software.  On  the  one  hand,  students  develop  video  games  in  teams.  On  the  other   hand,  grading  partially  depends  on  the  place  obtained  in  a  competition  between  expert  system  rulesets   developed  by  the  students  for  a  board  game  exclusively  developed  for  it.    

1.    Introduction   In   recent   years,   the   importance   of   the   video   game   and   electronic   entertainment   industries   has   greatly  increased.  Universities  are  gradually  incorporating  their  design  and  implementation  in  their   curricula.  At  the   University   of  Cádiz,  these   topics  are   taught   in  the   “Video  Game   Design”  course   of   its  degree   on  Technical  Engineering  in  Computer   Systems   (“Ingeniería   Técnica   en   Informática   de   Sistemas”).   The   course   is   divided   into   two   parts.   In   the   first   part,   students   are   organized   into   three-­‐person   teams   to   develop   a   video   game,   following   a   project-­‐based   learning   approach   (Mills   &   Treagust,   2003).   This   part   is   a   collaborative   experience   in   medium-­‐scale   project   development   in   small   groups.   Projects   are   hosted   on   the   Free   Knowledge   Forge   of   the   RedIRIS   (Spanish   National   Research  and  Education  Network)  Community  to  increase  their  visibility  and  let  students  use  latest   generation  tools.   In  the  second  part,  students  learn  about  expert  systems:  a  branch  of  artificial  intelligence  suited   for   problems   with   partial   knowledge   of   the   environment   (Russell   &   Norvig,   2009).   Students   develop   an   expert   system   which   implements   a   strategy   to   play   a   predefined   board   game   in   which   two  armies  move  by  turns.  Students  compete  against  each  other  by  running  their  expert  systems   in   a  predefined   environment  which   implements   the  game  itself.   Grading   in   this   part  of  the  course   depends  on  the  results  obtained  in  the  competition.  

2.    Course  syllabus   “Video   Game   Design”   is   an   optional   course   of   the   third   year   of   the   Technical   Engineering   in   Computer  Systems  (“Ingeniería  Técnica  en  Informática  de  Sistemas”)  degree   at  the  University  of   Cadiz.   It   is   worth   6   LRU   credits   (4.5   ECTS   credits),   which   are   equally   divided   into   lectures   and   practical  sessions.  There   are   two  weekly   sessions  of   two   hours  each   during  the   second  term   (from   February   to   June).   The   course   integrates   knowledge   about   several   IT   branches,   such   as   8   �

programming,   artificial   intelligence,   physics,   modeling,   group   work,   etc.   The   course   has   been   taught  since  the  2006–2007  academic  year,  using  a  project-­‐based  learning  for  most  of  the  course   except  for  the  competition.   Since   its   inception,   the   course   has   been   strongly   committed   to   using   high-­‐quality   free   software,   according   to   the   “Institutional   Declaration   of   Support   of   Free   Software”   approved   by   the   Governing  Council  of  the   University   of   Cádiz  (Universidad  de   Cádiz,  2004).   This  commitment   is   not   only   due   to   the   ethical   responsibility   of   the   University   as   a   public   educational   organization,   but   also  to  the  practical  benefits  linked  with  the  use  of  free  software  in  education  (González  Barahona   et  al.,  2004).   Free   software   can   contribute   to   achieve   the   objectives   established   by   the   European   Higher   Education   Area   (EHEA)   (García   &   Rodríguez   &   Palomo,   2008).   Students   have   access   to   bleeding-­‐ edge  tools  and  all  information  produced  during  their  development,  regardless  of  their  economic   situation.   They   can   analyze   and   modify   the   program   for   learning   and   experimenting,   and   obtain   skills   as   task   management,   architectural   design,   software   configuration   control   and   other   high-­‐ level  skills.   Additionally,  free  software  also  tends  to  be  more  accessible  to  disabled  users,  offer  translations  in   more   languages   and   better   conform   to   existing   standards.   All   these   features   require   specific   techniques   that   students   can   learn   from   the   code   and   the   developer   community,   making   them   more   competitive   in   the   labor   market.   Finally,   some   of   the   free   software   projects   are   more   successful   than   others:   students   may   see   directly   what   were   the   key   factors   and   keep   them   in   mind  for  their  own  initiatives.   After   the   insights   obtained   in   the   Teacher   Training   Group   GFUCA17   (“Course   adaptations   for   Computer   Science   degrees   at   the   EHEA”),   during   2007,   the   course   was   included   into   the   Educational   Innovation   Project   IE-­‐26.   In   2009,   the   course   was   part   of   the   EHEA   Adaptation   Pilot   Experience   of   the   degree   and   the   Teaching   Innovation   Action   “Usage   of   Web   2.0   collaborative   technologies  to  encourage  student  teamwork”.  These  initiatives  are  part  of  the  Europe  Project  of   the  University  of  Cádiz.  

3.    Video  game  development   In   the   collaborative   part   of   the   course,   students   develop   a   video   game   in   groups   of   three   and   release   it   as   free   software.   All   code   is   publicly   available,   but   evaluation   is   done   in   class   using   templates  previously  agreed  with  the  students.   3.1.    Software  forge   A  software  forge  is  an  on-­‐line  environment  that  provides  several  tools  that  simplify  collaborative   development   and   eases   distributed   work.   Current   forges   feature   mailing   lists,   forums,   task   and   bug  trackers,  content  syndication  feeds  and  wikis,  among  others.  These  tools  provide  constant  up-­‐ to-­‐date   information   which   allows   the   teacher   to   efficiently   and   closely   follow   the   students’   progress.   Among  these  collaboration  tools,  version  control  systems   (such  as   Subversion)  play  a  key   role  in   enabling  the  collaboration  between  the  students  in  each  group.  Most  work  is  done  in  a  distributed   fashion,   as   differing   group   member   schedules   make   face-­‐to-­‐face   meetings   hard   to   plan.   Version   control  systems  let  each  student  plan  their  own  work  in  a  flexible  manner  and  stay  in  sync  with  the   rest  of  the  group.   The   basic   workflow   with   Subversion   is   as   follows:   when   the   project   begins,   students   create   a   9   �

repository  with  a  basic  directory  structure.  At  the  start  of  each  working  session,  every  developer   updates  their  working  copy  to  the  latest  revision  of  the  contents  of  the  repository.  After  making   their  contributions  (new  features,  bug  fixes,  etc.),  these  are  committed  as  new  revisions.  If  in  the   meantime   another   developer   has   sent   more   contributions,   Subversion   will   merge   the   changes   introduced   by   both.   More   advanced   workflows   exist,   but   this   is   often   enough   for   the   projects   developed  in  the  course.   Subversion’s   advantages   do   not   end   there:   the   system   keeps   all   intermediate   versions   of   the   program  resulting  from  each  contribution  of  each  user.  Every  revision  includes  the  author’s  name,   its   date   and   time   and   a   description   message.   This   enables   all   users   to   fetch   any   version   of   the   program,   either   by   its   version   number   (1.0)   or   its   date   and   time   (yesterday   at   15:00).   This   information  can  also  be  used,  for  example,  to  compare  different  versions  of  a  file.   Moreover,  the  forge  is  publicly  available,  so  anyone  interested  in  the  video  games  can  download   them  and  spread  the  word.   3.2.    Results   Table  1  reports  several  statistics   for  the  nine   projects  carried  out  during   the  2008–2009  academic   year   (Free   Software   and   Knowledge   Office   of   the   University   of   Cádiz,   2009).   Average   values   for   each  project  and  student  are  shown  as  well.   Table  1.  Statistics  for  the  2008–2009  academic  year   Metric  

9  projects  

Proj.  average.  

Student   average  

964  

107.11  

37.08  

Total  files  (raw)  

3516  

390.67  

135.23  

Total  code  files  (.h  +   .cpp)  

1096  

121.78  

42.15  

Total  lines  (raw)  

286495  

31832.78  

11019.04  

Total  code  lines  (.h  +   .cpp)  

177884  

19764.89  

6841.69  

Number  of  additions  

3724  

413.78  

143.23  

Number  of   modifications  

1462  

162.44  

56.23  

Revisions  (commits)  

  There  is  a  large  difference  between  the  raw  file  count  and  the  code  file  count  and  the  raw  total   lines  and  code  total  lines.  This  is  because  the  projects  use  Doxygen  (Van  Heesch,  2010).  to  produce   large  amounts  of  HTML  documentation  automatically  from  the  C.2ex++  sources.   The   data   has   been   obtained   using   StatSVN   (Appendium,   2010)   and   the   RedIRIS   software   forge.   StatSVN   is   a   full-­‐featured   free   software   tool   that   generates   statistics   of   a   project   from   its   SVN   repository.  It  also  provides  information  about  the  work  from  each  developer.  For  instance,  it  can   show  the  distribution  of  work  over  the  term  and  over  the  week.   Using   this   data   we   can   classify   the   students   over   several   profiles.   For   example,   some   students   like   to  work  during  the  night  (with  almost  40%  of  their  contributions  done  after  midnight),  while  the   rest   do   the   work   during   the   entire   day.   Regarding   weekdays,   some   groups   work   on   the   project   during   class,   so   their   contributions   are   focused   in   working   days,   and   other   students   work   on   10   �

weekends.   There   are   some   common   patterns,   though:   contribution   rate   always   increases   in   the   last  few  days  before  each  monthly  presentation.   We  conclude  that,  in  general,  the  students  have  produced  a  considerable  amount  of  work  bearing   in   mind   that   this   is   an   optional   4-­‐month   course.   Each   student   has   sent   on   average   over   37   contributions   and   has   produced   more   than   40   files.   The   177884   lines   of   source   code   have   generated  nearly  110000  lines  of  documentation.  

4.    Competition  between  expert  systems   In   the   competitive   part,   students   face   each   other   with   the   expert   systems   they   have   developed   to   play   a   board   game   similar   to   Stratego   (Palomo,   2007).   The   game   pits   two   armies   made   up   by   several  pieces  against  each  other.  Every  piece  has  an  associated  value  that  is  initially  only  visible  to   its  owner.  When  two  pieces  face  each  other,  their  values  are  revealed  and  the  lowest  valued  piece   is   removed   from   the   board   (“dies”).   If   both   pieces   have   the   same   value,   both   pieces   die.   The   objective  of  the  game  is  to  capture  the  opponent’s  lowest  valued  piece.   4.1.    Development   To  perform  the  competition,  a  free  software  tool  which  provides  a  common  environment  where   the  expert  systems  can  face  off  each  other  has  been  developed:  Resistencia  en  Cádiz:  1812  (Recio,   2010).   Using   this   application,   the   students   can   test   their   expert   systems   against   other   expert   systems   and   themselves.   This   helps   students   improve   their   modules   and   make   their   systems   stronger.   Figure   1   shows   a   screenshot   of   a   game   between   two   teams,   with   some   pieces   uncovered.                            

 

  Fig.  1:  Screenshot  of  a  match  in  “Resistencia  en  Cádiz:  1812”     Near   the   end   of   the   course,   2   weeks   are   used   to   perform   this   experience.   A   1-­‐hour   lecture   11   �

provides   the   required   conceptual   foundations   behind   rule-­‐based   expert   systems,   emphasizing   their  practical  applications  in  science  and  engineering.  The  second  hour  of  this  first  session  is  used   to  show  the  main  application,  so  they  can  get  familiar  with  the  environment  they  are  going  to  use.   In   this   session   some   sample   rules   will   be   shown,   from   simple   cases   to   a   reasonably   complex   system.   The   application   is   easy   to   learn   and   use,   so   the   practical   session   of   that   week   can   be   used   to   code   a   basic   ruleset,   so   they   can   be   improved   at   home.   They   can   test   their   rulesets   against   some   examples  included  in  the  system.  Two  features  are  very  useful  for  learning.  First,  it  can  play  a  very   large  set  of  games  automatically,  showing  general  statistics  of  the  behavior  of  the  ruleset.  Second,   human  players  can  play  directly  against  an  expert  system  and  test  how  it  behaves  under  certain   situations.   Lecture   time   for   the   second   week   is   used   to   organize   a   league   which   faces   all   students   against   each   other.   Figure   2   shows   a   screenshot   with   results   from   a   round   and   the   resulting   overall   ranking.  

Fig.  2:  Results  on  a  league-­‐format  competition   Usually,  students  identify  issues  and  weak  points  in  their  systems  during  the  competition,  so  they   have  an  extra  hour  during  the  last  week’s  practical  session  to  improve  their  ruleset.  The  last  hour   is  used  to  play  a  shorter  tournament  with  their  improved  teams.   4.2.    Evaluation   In  order  to  pass  this  part  of  the  course,  the  student  only  needs  to  defeat  a  naive  (“sparring”)  team   that   is   included   in   the   system.   This   lets   the   student   pass   this   part   with   confidence,   even   if   the   ruleset  ends  up  in  last  place  in  the  following  competition.   If  they  want  to  get  a  better  score,  students  need  to  win  against  their  classmates.  Students  get  an   extra  point  for  each  of:  winning  once  during  the  league,  being  in  the  top  half  of  the  league,  passing   each  of  the  two  play-­‐off  rounds  and  winning  a  tournament.   The   experience   has   been   rewarding   both   for   the   students   and   the   teacher.   Students   were   on   average  much  more  interested  in  this  course  than  in  others,  judging  from  the  surveys  conducted   near  the  end  of  the  term.  Results  showed  a  very  high  score  in  that  attribute,  with  4.77  points  over   5.   12   �

Students  reported  that  they  felt  more  motivated  due  to  competing  with  their  peers  through  their   work,   rather   than   speed   or   reflexes,   as   usual   in   most   video   games.   Students   enjoyed   developing   a   program  and  seeing  it  play  a  game  following  a  strategy  without  their  intervention.  

5.    Conclusions   We   have   presented   two   educational   experiences   which,   combined   in   a   course,   focus   learning   around  the  student.  Students  of  the  “Video  Game   Design”  course  collaborate  with  each  other  and   build   up   teamwork   skills   on   the   one   hand,   and   learn   new   concepts   by   competing   against   each   other  on  the  other.   Students   have   worked   together   as   teams   during   the   whole   course,   generating   177884   lines   of   code   at   an   uniform   pace.   Using   StatSVN,   we   identified   several   patterns   during   their   development.   Every  video  game  is  available  at  the  RedIRIS  software  forge  for  download.   The  competitive  part  of  the  course  has  been  well  received  by  the  students,  being  scored  with  4.77   points   over   5   in   the   surveys   conducted   at   the   end   of   the   course.   Students   felt   more   motivated   since  the  ranking  of  their  expert  system  among  their  peers’  influenced  their  grades.   Future  editions   of   the  course  will   mostly   preserve  its   current  structure.  The  collaborative   part  will   mostly   be   kept   as   is.   However,   the   rules   of   the   competitive   game   will   be   slightly   changed   over   time,  so  students  will  not  copy  the  winner  strategies  of  the  past  courses.  

Acknowledgments   This   work   has   been   funded   for   the   Acción   de   Innovación   Educativa   Universitaria   del   Personal   Docente  e  Investigador  “Empleo  de  tecnologías  colaborativas  web  2.0  para  fomentar  el  trabajo  en   equipo   del   alumnado”   (PIE-­‐101)   belonging   to   the   Proyecto   Europa   de   la   Universidad   de   Cádiz,   funded   by   the   Consejería   de   Innovación,   Ciencia   y   Empresa   of   the   Junta   de   Andalucía,   the   Ministerio  de  Educación  y  Ciencia  and  the  University  of  Cádiz.  

References   Álvarez,  A.,  Palomo,  M.,  Rodríguez,  J.R.  (2009).  Experiencias  en  la  aplicación  de  técnicas  y   herramientas  de  desarrollo  colaborativo  de  software  en  una  asignatura  basada  en  proyectos.   Actas  del  XVII  Congreso  de  Innovación  Educativa  en  las  Enseñanzas  Técnicas.   Appendium  (2010).  Homepage  of  the  StatSVN  project.  ������������������������ Free  Software  and  Knowledge  Office  of  the  University  of  Cádiz  (2009).  Proyectos  de  Diseño  de   Videojuegos  curso  2008/9.  ��������������������������� González  Barahona,  J.,  Matellán  Olivera,  V.,  de  las  Heras  Quirós,  P.,  Robles,  G.,  eds.  (2004).  Sobre   software  libre:  compilación  de  ensayos  sobre  software  libre.  Dykinson   I.  García,  A.,  Rodríguez,  R.,  Palomo,  M.  (2008).  El  software  libre  en  el  EEES.  Actas  del  Congreso   internacional  sobre  investigación  educativa.  page101–page120   Mills,  J.E.,  Treagust,  D.F.  (2003).  Engineering  education:  Is  Problem-­‐Based  or  Project-­‐Based   learning  the  answer?    Australasian  Journal  of  Engineering  Education(3)  page2–page16   Palomo,  M.  (2007).  La  competitividad  como  un  factor  motivante  para  el  aprendizaje  de  sistemas   expertos.  Actas  de  las  II  Jornadas  Nacionales  de  Intercambio  de  Experiencias  Piloto  de   Implantación  de  Metodologías  ECTS.   13   �

Recio  Quijano,  P.  (2010).  Homepage  of  the  Resistencia  en  Cádiz:  1812  project.  ������������� ���������������������������   Russell,  S.,  Norvig,  P.  (2009).  Artificial  Intelligence:  A  Modern  Approach.  3rd  ed.  Prentice  Hall   Spanish  Network  for  Research.  Free  forge  RedIRIS.  ������������������������ Universidad  de  Cádiz.  (2004).  Acuerdo  del  Consejo  de  Gobierno  de  15  de  marzo  de  2004,  por  la   que  se  aprueba  la  adhesión  a  la  declaración  institucional  de  apoyo  al  uso  de  Software  Libre   en  la  Universidad  de  Cádiz.  Boletín  Oficial  de  la  Universidad  de  Cádiz  (9)  page78–page79   Universidad  de  Cádiz.  Convocatoria  de  Proyectos  de  Innovación  Educativa  Universitaria  del   Proyecto  Europa.  http://www.uca.es/web/estudios/proyecto_europa/   Van  Heesch,  D.  (2010).  Homepage  of  the  Doxygen  project.  http://www.doxygen.org/  

14   �