$30 off During Our Annual Pro Sale. View Details »

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

Alexey Zagalsky

May 19, 2016
Tweet

More Decks by Alexey Zagalsky

Other Decks in Research

Transcript

  1. Student Experiences
    Using GitHub in Software Engineering Courses
    Joseph (Noel) Feliciano, Margaret-Anne Storey, Alexey Zagalsky
    speakerdeck.com/alexeyza

    View Slide

  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

    View Slide

  3. Student Ecosystem of Tools and Channels
    Basic needs
    Collaborative
    Participatory
    3
    Hosting and disseminating content, private communication, evaluation

    View Slide

  4. Student Ecosystem of Tools and Channels
    Basic needs
    Collaborative
    Participatory
    4
    Hosting and disseminating content, private communication, evaluation

    View Slide

  5. Student Ecosystem of Tools and Channels
    Basic needs
    Collaborative
    Participatory
    5
    Hosting and disseminating content, private communication, evaluation

    View Slide

  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]

    View Slide

  7. GitHub is a social meeting place that supports
    communities of practice and fosters
    collaboration
    7

    View Slide

  8. Many instructors have already adopted
    GitHub for hosting course materials or
    managing course assignments
    8

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  13. Longitudinal Case Study
    University instructor
    Distributed Systems (DS) course Software Evolution (SE) course
    34 students 29 students
    13
    + 2 TAs

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  30. Future Work: Benefits and Challenges of using Slack
    30

    View Slide

  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

    View Slide