Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Open Source and GitHub for Teaching
with Software Development Projects
FOSS4G-Europe, Bremen, July 2014
Daniel Nüst (52°No...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 2
Why use Open Source?
Save money
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 3
Why do Open Source?
Save money
Be effective
“Egoistic c...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 4
Open Source Development in Seminars
All real world soft...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 5
Why bother?
The ultimate goal is to increase the qualit...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 6
Scrum
agile software development method –
acknowledges ...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 7
BASICS ON GIT AND GITHUB
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 8
Git
Development is collaboration, and source code
manag...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 9
GitHub Platform
Free (10 Million repositories end of 20...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 10
GitHub for Education
https://education.github.com/
Sto...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 11
GitHub for Education (cont.)
Teach more effectively
Pr...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 12
HOW DO WE DO IT?
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 13
GitHub Collaboration Model
http://video.esri.com/watch...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 14
Fork & Pull
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 15
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 16
Grading with GitHub
Challenge: grading group work is h...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 17
Grading with GitHub (cont.)
Challenge: Different kind ...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 18
Experiences
Students…
… hesitate to establish hierarch...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 19
Experiences (cont.)
… hesitate to publish code. Force ...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 20
Experiences (cont.)
Adjust Scrum…
… using 2 Week long ...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 21
Experiences (cont.)
https://github.com/enviroCar/ & ht...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 22
How is this relevant for FOSS4G?
Need contributors > g...
Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 23
Next, and Goals
Collaborate with you
Share experiences...
Upcoming SlideShare
Loading in …5
×

Open Source and GitHub for Teaching with Software Development Projects

985 views

Published on

Experiences in using GitHub for collaborative software development in project seminars using and creating open source software.

Authors:
Daniel Nüst (d.nuest@52north.org, 52°North Initiative for Geospatial Open Source Software GmbH)
Thomas Bartoschek (bartoschek@uni-muenster.de, Institute for Geoinformatics Münster)

Open source software is particularly suitable for teaching and organisations like Teaching Open Source (http://teachingopensource.org) present actively advertise this. In this talk we want to present some practical benefits that open source programming and publishing software on an open online platform has for teaching project-oriented software engineering seminars at university level. In these courses students together develop a new system for a specific task in form of a group project. For project groups, we suggest to use an adjusted variant of Scrum for project management (http://en.wikipedia.org/wiki/Scrum_%28software_development%29), git as source code management system (http://git-scm.com/), and GitHub as a collaboration platform (http://github.com/, https://education.github.com/). Thanks to GitHub’s collaboration models such as “fork & pull”, each student’s work, may they be in lines of code or contributions to a discussion, can be tracked. Students fulfil different tasks in a project setting: some develop, some spend their time issuing bugs or improving documentation. But for all of them GitHub allows to quantify contributions and set concrete goals, e.g. two pull requests created, one merged, and five issues written. GitHub also offers graphical overviews of project activities. The goal is of course not to expose the student but to create a transparent environment for evaluation and grading. Teachers can even weigh in on discussions and make suggestions on the same platform as the students.
In our experience, students estimate very well their performance in comparison with their colleagues. However, using Scrum as a development model is challenging for them. We adopted the classic Scrum schedule and defined two week long sprints. Students sometimes quarrel with the role of supervising other students and delegating tasks among their peers. But in the end, the clear schedule and the focus on the iterative and communicative aspects of project management are a key to ensure success. Teachers should be ready to step in a Scrum masters and to support the product owners and must be open to adjust plans and expectations in the same way that the students have to.
We think this approach can considerably increase quality of a course from both a teaching and a learning perspective.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Open Source and GitHub for Teaching with Software Development Projects

  1. 1. Open Source and GitHub for Teaching with Software Development Projects FOSS4G-Europe, Bremen, July 2014 Daniel Nüst (52°North GmbH), Thomas Bartoschek (Institute for Geinformatics, Münster)
  2. 2. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 2 Why use Open Source? Save money
  3. 3. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 3 Why do Open Source? Save money Be effective “Egoistic collaboration” is the present and future of software development (Google, Amazon, Yahoo, Microsoft, …)
  4. 4. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 4 Open Source Development in Seminars All real world software developers use open source. Reasons for software projects in education: Students must learn about licenses (code, data, documentation) Business models! Social & collaborative software development Students learn project mgmt/lifecycle
  5. 5. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 5 Why bother? The ultimate goal is to increase the quality of software development in project seminars so that geospatial open source software can benefit from (a) direct contributions, and (b) programmers that are acquainted with the “open source way”.
  6. 6. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 6 Scrum agile software development method – acknowledges reality • roles: product owner, scrum master, team member • sprints & stand-ups, review meetings • backlogs
  7. 7. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 7 BASICS ON GIT AND GITHUB
  8. 8. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 8 Git Development is collaboration, and source code management is the at the core, but should not get in the way. THE SCM of today. ≠
  9. 9. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 9 GitHub Platform Free (10 Million repositories end of 2013, http://en.wikipedia.org/wiki/Github) Organisation accounts Provide material Students can fork assignments, don’t start from scratch Hosting included (e.g. http://geosoft2.github.io/) Issue tracker
  10. 10. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 10 GitHub for Education https://education.github.com/ Stop emailing code, never loose your work, stay organized, build a portfolio
  11. 11. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 11 GitHub for Education (cont.) Teach more effectively Private repos, teams, …. distribute starter code, give students feedback, provide automated tests, collect assignments
  12. 12. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 12 HOW DO WE DO IT?
  13. 13. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 13 GitHub Collaboration Model http://video.esri.com/watch/3223/social-coding-and-the- future-of-open-source Fork & Pull Pull requests – Discussion – Transparency https://help.github.com/articles/using-pull-requests
  14. 14. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 14 Fork & Pull
  15. 15. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 15
  16. 16. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 16 Grading with GitHub Challenge: grading group work is hard. • GitHub allows transparency • Distinguish numbers (lines changed) from content • Students estimate their contributions well (questionnaire) • Some quantification possible (# pull requests created, merged, issues opened/closed), use to facilitate engagement (not to grade)
  17. 17. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 17 Grading with GitHub (cont.) Challenge: Different kind of work done by students. • Git for collaborative writing (docs, reports, …) • Value doc. writing in the same way https://github.com/Geosoft2/geosoft2-2014-fundamentals
  18. 18. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 18 Experiences Students… … hesitate to establish hierarchies or take over responsibility > Scrum. … are careful about not being exposed publicly. … are challenged by communication requirements of collaborative software development. … have to be continuously motivated to adopt an open innovation and development process.
  19. 19. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 19 Experiences (cont.) … hesitate to publish code. Force them. … do learn the sense of documentation. Teachers… … must stay in touch with new developments and the business world. … must be ready to interact.
  20. 20. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 20 Experiences (cont.) Adjust Scrum… … using 2 Week long sprints. … allowing virtual stand-ups, plus weekly with whole seminar. … flex up scrum Masters: teachers, another group’s member.
  21. 21. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 21 Experiences (cont.) https://github.com/enviroCar/ & https://envirocar.org Prototype developed in project seminar – new OS project for tracking cars
  22. 22. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 22 How is this relevant for FOSS4G? Need contributors > get them early! Students developing as open source are more likely to use and contribute. Need capable developers > students, internships, better devs in the long run, … Need features > get them done!
  23. 23. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 23 Next, and Goals Collaborate with you Share experiences > “open innovation” for teaching Guidelines for Teaching Open Software Development in Projects

×