ICSE16: Student Experiences Using GitHub in Software Engineering Courses

ICSE16: Student Experiences Using GitHub in Software Engineering Courses

A talk presenting our paper at the 38th International Conference on Software Engineering (ICSE 2016), Austin, TX, May 19th 2016.

Authors: Joseph Feliciano, Margaret-Anne Storey, Alexey Zagalsky

http://2016.icse.cs.txstate.edu/educationTraining

Link to paper: http://alexeyza.com/pdf/icse16seet.pdf

419a48edd42158cd11d802f06b448e83?s=128

Alexey Zagalsky

May 19, 2016
Tweet

Transcript

  1. 1.

    Student Experiences Using GitHub in Software Engineering Courses Joseph (Noel)

    Feliciano, Margaret-Anne Storey, Alexey Zagalsky speakerdeck.com/alexeyza
  2. 2.

    Student Ecosystem of Tools and Channels Communication and discussions (private,

    team, class) Regulation and task management Course material, assignments, project hosting Collaborating on files Assignment submission, grades 2
  3. 3.

    Student Ecosystem of Tools and Channels Basic needs Collaborative Participatory

    3 Hosting and disseminating content, private communication, evaluation
  4. 4.

    Student Ecosystem of Tools and Channels Basic needs Collaborative Participatory

    4 Hosting and disseminating content, private communication, evaluation
  5. 5.

    Student Ecosystem of Tools and Channels Basic needs Collaborative Participatory

    5 Hosting and disseminating content, private communication, evaluation
  6. 6.

    6 “After just seven years on the net, GitHub now

    boasts almost 9 million registered users. Each month, about 20 million others visit without registering... GitHub is now among the top 100 most popular sites on earth.” [wired.com 2015]
  7. 7.
  8. 9.

    From our previous study [CSCW 2015], we know that the

    use of GitHub supports: Knowledge co-construction [Jeong and Chi 1997] Reuse and sharing Participatory culture [Jenkins 2009] Transparency of activity Encourages participation and collaboration Applied benefits Industry relevant skills and practices 9
  9. 10.

    RQ1: How do students benefit from using GitHub in their

    courses? RQ2: What challenges do students face when GitHub is used by software engineering course instructors? RQ3: What recommendations can we give to software engineering instructors who wish to use GitHub for teaching? 10
  10. 11.

    RQ1: How do students benefit from using GitHub in their

    courses? RQ2: What challenges do students face when GitHub is used by software engineering course instructors? RQ3: What recommendations can we give to software engineering instructors who wish to use GitHub for teaching? 11
  11. 12.

    RQ1: How do students benefit from using GitHub in their

    courses? RQ2: What challenges do students face when GitHub is used by software engineering course instructors? RQ3: What recommendations can we give to software engineering instructors who wish to use GitHub for teaching? 12
  12. 13.

    Longitudinal Case Study University instructor Distributed Systems (DS) course Software

    Evolution (SE) course 34 students 29 students 13 + 2 TAs
  13. 14.

    Case Study Methodology Preliminary Interview instructor Retrospective Interview instructor +

    interview TAs Main study Interview students 12 DS + 6 SE + 1 both Validation Survey with students 15 DS + 18 SE Obtain context Observe GitHub repositories 14
  14. 15.

    Case Study Methodology Preliminary Interview instructor Retrospective Interview instructor +

    interview TAs Main study Interview students 12 DS + 6 SE + 1 both Validation Survey with students 15 DS + 18 SE Obtain context Observe GitHub repositories 15
  15. 16.

    Case Study Methodology Preliminary Interview instructor Retrospective Interview instructor +

    interview TAs Main study Interview students 12 DS + 6 SE + 1 both Validation Survey with students 15 DS + 18 SE Obtain context Observe GitHub repositories 16 Phase I
  16. 17.

    Case Study Methodology Preliminary Interview instructor Retrospective Interview instructor +

    interview TAs Main study Interview students 12 DS + 6 SE + 1 both Validation Survey with students 15 DS + 18 SE Obtain context Observe GitHub repositories 17 Phase I
  17. 18.

    Case Study Methodology Preliminary Interview instructor Retrospective Interview instructor +

    interview TAs Main study Interview students 12 DS + 6 SE + 1 both Validation Survey with students 15 DS + 18 SE Obtain context Observe GitHub repositories 18 Phase I Phase II
  18. 19.

    How GitHub was used during the case study Facilitating lab

    work and hosting discussions via ‘Issues’ Course material hosting and dissemination, and student project hosting 19
  19. 20.

    How GitHub was NOT used during the case study Private

    discussions and grades were hosted on Moodle (Moodle) Advanced use cases were not utilized, e.g., Pull- Requests for assignment submissions, CI for auto- grading 20
  20. 21.

    Benefit: The Contributing Student [Collis and Moonen 2006, Hamer et

    al. 2008, Falkner and Falkner 2012] Cross-team collaboration and contributions: “I believe that one other group decided for project 2 to use [our project 1] and they made a couple of pull requests.” [SE10] “I thought [peer reviews] was the best way to learn...” [SE11] 21
  21. 22.

    Benefit: The Contributing Student [Collis and Moonen 2006, Hamer et

    al. 2008, Falkner and Falkner 2012] Student contributions to course content: “I like being able to fix the mistakes that [the course instructor] might make... because it makes me feel a little more involved." [SE1] 22
  22. 23.

    Students find mentors “upstream” [John Britton 2015] “These are just

    people in the community I've been talking to about how to do different things, and they've been giving me suggestions.” [SE1] “I need to get them to engage with the community in a broader sense. And I think that's critical, and that's what GitHub has.” [Course Instructor] Benefit: Breaking Down the “Walled Garden” [Mott 2010] 23
  23. 24.

    “I think when you go and work in software development,

    you should get used to [having] lots of eyes being all over your work; that’s just the way it’s gonna be, so it’s practice before real life.” [SE8] “I think all three companies that I applied to this semester wanted me to link to my GitHub.” [SE6] Benefit: Gaining and Demonstrating Industry Relevant Skills and Practices 24
  24. 25.

    “It would actually be nice if [our projects] were separate

    or private somehow so I wouldn’t have to go through everything and sanitize all the stuff... ” [SE6] “The final product I'm happy to show [employers], but all those steps getting there, they're often filled with pitfalls and horrible programming and badly factored code.” [DS3] Challenge: The Perils of Public Projects 25
  25. 26.

    Many students were unfamiliar with Git & GitHub’s features The

    instructor’s lack of experience with using GitHub made it difficult to educate the students on its features, causing frustration Challenge: Unfamiliarity with Git and GitHub 26
  26. 27.

    “It sent me a million emails... I should have just

    turned that off, but I was worried about missing something. Because every time someone would post, you would get another email... I actually did not read anyone else’s feedback because it was just so many emails, to be totally honest.” [SE10] Challenge: Notification Overload 27
  27. 28.

    GitHub struggles to meet some basic needs, e.g., gradebook and

    formal assignment submission features. “I think one drawback of GitHub is that you cannot actually see the diff [of ] commonly used files such as PPTs or PDFs, so you can’t really use it for correcting professor’s slides, or PDFs.” [SE12] Challenge: GitHub is Not Designed for Education 28
  28. 29.

    Recommendations for SE Instructors Promote the desired workflow Otherwise potential

    benefits might be missed Familiarize yourself with GitHub Know the possibilities (e.g., private vs. public repos) Existing tools and guides (e.g., GitHub classroom, Elliot Blackburn’s guide, or Paul Hibbitts’ course hub CMS package) Use supported formats Use plain text file formats (e.g., Markdown) 29
  29. 31.

    Questions? @alexeyzagalsky @margaretstorey @nfeli 31 Benefits The contributing student Involvement

    in the community Industry skills and practices Challenges Perils of public projects Unfamiliarity with Git & GitHub Notification overload GitHub not designed for education speakerdeck.com/alexeyza