SlideShare a Scribd company logo
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)
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 collaboration” is the present and
future of software development (Google,
Amazon, Yahoo, Microsoft, …)
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
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”.
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
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
management is the at the core, but should not
get in the way.
THE SCM of today.
≠
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
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
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
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/3223/social-coding-and-the-
future-of-open-source
Fork & Pull
Pull requests
– Discussion
– Transparency
https://help.github.com/articles/using-pull-requests
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 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)
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
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.
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.
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.
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
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!
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

More Related Content

Similar to Open Source and GitHub for Teaching with Software Development Projects (20)

ODP
Scale2014
shaunagm
 
ODP
How to Become Rich, Famous, and Popular While Using Your Programming Skills t...
Greg Wilson
 
PDF
Dig1108 c lesson1
vc-dig1108-fall-2013
 
DOCX
GitHub.docx
MuhammadKhalil502533
 
PDF
Let's talk FOSS!
AditiSaxena72
 
PPSX
Hackaton for health 2015 - Sharing the Code we Make
esben1962
 
PPT
What We've Learned From Building Basie
Greg Wilson
 
PPTX
Tools & Frameworks + Save Nature & Save Animal.pptx
Kuldip Pipaliya
 
PPTX
Untangling4
Derek Jacoby
 
PDF
How to Run a Successful Open Source Java EE Project
philipdurbin
 
PPTX
Git hub visualstudiocode
Rolands Krumbergs
 
PDF
Open source 101 for students
Sage Sharp
 
PDF
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
ODP
Higher Education in the Open Source Ecosystem
Deborah Bryant
 
PPTX
gdg_workshop 1 on web development and github
SaniyaKhan484230
 
PDF
Economics of innovation in mobile
Andrew Savory
 
PDF
What schools should be teaching IT students
Andy Lester
 
PDF
Posscon2011
atmosorg
 
PDF
Dig1108C Lesson 1 Fall 2014
David Wolfpaw
 
ODP
Open source slideshow
mstuckless
 
Scale2014
shaunagm
 
How to Become Rich, Famous, and Popular While Using Your Programming Skills t...
Greg Wilson
 
Dig1108 c lesson1
vc-dig1108-fall-2013
 
Let's talk FOSS!
AditiSaxena72
 
Hackaton for health 2015 - Sharing the Code we Make
esben1962
 
What We've Learned From Building Basie
Greg Wilson
 
Tools & Frameworks + Save Nature & Save Animal.pptx
Kuldip Pipaliya
 
Untangling4
Derek Jacoby
 
How to Run a Successful Open Source Java EE Project
philipdurbin
 
Git hub visualstudiocode
Rolands Krumbergs
 
Open source 101 for students
Sage Sharp
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
Higher Education in the Open Source Ecosystem
Deborah Bryant
 
gdg_workshop 1 on web development and github
SaniyaKhan484230
 
Economics of innovation in mobile
Andrew Savory
 
What schools should be teaching IT students
Andy Lester
 
Posscon2011
atmosorg
 
Dig1108C Lesson 1 Fall 2014
David Wolfpaw
 
Open source slideshow
mstuckless
 

More from Daniel Nüst (20)

PPTX
RR & Docker @ MuensteR Meetup (Sep 2017)
Daniel Nüst
 
PDF
containerit at useR!2017 conference, Brussels
Daniel Nüst
 
PDF
Docker @ Data Science Meetup
Daniel Nüst
 
PPTX
Containers for sensor web services, applications and research @ Sensor Web Co...
Daniel Nüst
 
PPTX
Docker @ FOSS4G 2016, Bonn
Daniel Nüst
 
PDF
Atlas Zukünfte
Daniel Nüst
 
PPTX
Frameworks for geoprocessing on the web with R
Daniel Nüst
 
PPTX
Agile 2015 a-geo-label-for-the-sensor-web
Daniel Nüst
 
PPTX
Visualising Interpolations of Mobile Sensor Observations
Daniel Nüst
 
PPTX
WPS Application Patterns
Daniel Nüst
 
PPTX
JavaScript Client Libraries for the (Former) Long Tail of OGC Standards
Daniel Nüst
 
PPTX
5 Star Open Geoprocessing
Daniel Nüst
 
PPTX
The 52°North Web Processing Service
Daniel Nüst
 
PPTX
Linked data and rdf
Daniel Nüst
 
PPTX
OGC SOS for Your Data
Daniel Nüst
 
PPTX
sos4R - Accessing SensorWeb Data from R
Daniel Nüst
 
PPTX
Connecting R to the Sensor Web
Daniel Nüst
 
PPTX
sos4R @ OGC TC
Daniel Nüst
 
ODP
sos4R - 52° North Innovation Price Presentation
Daniel Nüst
 
PPT
Visualizing the Availability of Temporally Structured Sensor Data
Daniel Nüst
 
RR & Docker @ MuensteR Meetup (Sep 2017)
Daniel Nüst
 
containerit at useR!2017 conference, Brussels
Daniel Nüst
 
Docker @ Data Science Meetup
Daniel Nüst
 
Containers for sensor web services, applications and research @ Sensor Web Co...
Daniel Nüst
 
Docker @ FOSS4G 2016, Bonn
Daniel Nüst
 
Atlas Zukünfte
Daniel Nüst
 
Frameworks for geoprocessing on the web with R
Daniel Nüst
 
Agile 2015 a-geo-label-for-the-sensor-web
Daniel Nüst
 
Visualising Interpolations of Mobile Sensor Observations
Daniel Nüst
 
WPS Application Patterns
Daniel Nüst
 
JavaScript Client Libraries for the (Former) Long Tail of OGC Standards
Daniel Nüst
 
5 Star Open Geoprocessing
Daniel Nüst
 
The 52°North Web Processing Service
Daniel Nüst
 
Linked data and rdf
Daniel Nüst
 
OGC SOS for Your Data
Daniel Nüst
 
sos4R - Accessing SensorWeb Data from R
Daniel Nüst
 
Connecting R to the Sensor Web
Daniel Nüst
 
sos4R @ OGC TC
Daniel Nüst
 
sos4R - 52° North Innovation Price Presentation
Daniel Nüst
 
Visualizing the Availability of Temporally Structured Sensor Data
Daniel Nüst
 
Ad

Recently uploaded (20)

PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
Accounting Skills Paper-I, Preparation of Vouchers
Dr. Sushil Bansode
 
PPTX
How to Define Translation to Custom Module And Add a new language in Odoo 18
Celine George
 
PPTX
Views on Education of Indian Thinkers J.Krishnamurthy..pptx
ShrutiMahanta1
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PDF
1, 2, 3… E MAIS UM CICLO CHEGA AO FIM!.pdf
Colégio Santa Teresinha
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
PPTX
PPT on the Development of Education in the Victorian England
Beena E S
 
PPTX
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
PPTX
Latest Features in Odoo 18 - Odoo slides
Celine George
 
PPTX
How to Manage Promotions in Odoo 18 Sales
Celine George
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PPTX
CONVULSIVE DISORDERS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PPTX
Presentation: Climate Citizenship Digital Education
Karl Donert
 
PDF
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
PPTX
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
PPTX
How to Configure Access Rights of Manufacturing Orders in Odoo 18 Manufacturing
Celine George
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Accounting Skills Paper-I, Preparation of Vouchers
Dr. Sushil Bansode
 
How to Define Translation to Custom Module And Add a new language in Odoo 18
Celine George
 
Views on Education of Indian Thinkers J.Krishnamurthy..pptx
ShrutiMahanta1
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
1, 2, 3… E MAIS UM CICLO CHEGA AO FIM!.pdf
Colégio Santa Teresinha
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
PPT on the Development of Education in the Victorian England
Beena E S
 
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
Latest Features in Odoo 18 - Odoo slides
Celine George
 
How to Manage Promotions in Odoo 18 Sales
Celine George
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
CONVULSIVE DISORDERS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
Presentation: Climate Citizenship Digital Education
Karl Donert
 
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
How to Configure Access Rights of Manufacturing Orders in Odoo 18 Manufacturing
Celine George
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
Ad

Open Source and GitHub for Teaching with Software Development Projects

  • 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. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 2 Why use Open Source? Save money
  • 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. 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. 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. 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. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 7 BASICS ON GIT AND GITHUB
  • 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. 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. 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. 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. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 12 HOW DO WE DO IT?
  • 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. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 14 Fork & Pull
  • 15. Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014 15
  • 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. 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. 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. 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. 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. 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. 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. 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

Editor's Notes

  • #2: Who is a prof. software developer? Who is involved in univsersity level teaching?
  • #3: Yes, it is fun, reasonable, “the right thing”, better quality, …
  • #6: Work with REAL software
  • #18: Process Fork this project Do your research Edit the handout.md file in your folder Create a presentatation based on your handout Send a pull request before the submission deadline Present at the seminar If you see an error or want to extend information of your own or a colleagues handout... Update your local fork Make the changes Send a pull request to the original author of the topic and dicuss or changes The original author merges your changes and send a pull request to update the main repository
  • #23: Works for advanced seminars of developers
  • #24: Show of hands – who would be interested to join a google group?