Top Banner
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)
23

Open Source and GitHub for Teaching with Software Development Projects

Jan 15, 2015

Download

Education

Daniel Nüst

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

Authors:
Daniel Nüst ([email protected], 52°North Initiative for Geospatial Open Source Software GmbH)
Thomas Bartoschek ([email protected], 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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Open Source and GitHub for Teaching with Software Development Projects

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)

Page 2: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

2

Why use Open Source?

Save money

This is not about

using Open Source

in education!

Page 3: Open Source and GitHub for Teaching with Software Development Projects

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, …)

Page 4: Open Source and GitHub for Teaching with Software Development Projects

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 developmentStudents learn project mgmt/lifecycle

Page 5: Open Source and GitHub for Teaching with Software Development Projects

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”.

Page 6: Open Source and GitHub for Teaching with Software Development Projects

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

Page 7: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

7

BASICS ON GIT AND GITHUB

Page 8: Open Source and GitHub for Teaching with Software Development Projects

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.

Page 9: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

9

GitHub PlatformFree (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

Page 10: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

10

GitHub for Educationhttps://education.github.com/

Stop emailing code, never loose your work, stay organized, build a portfolio

Page 11: Open Source and GitHub for Teaching with Software Development Projects

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

Page 12: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

12

HOW DO WE DO IT?

Page 13: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

13

GitHub Collaboration Modelhttp://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

Page 14: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

14

Fork & Pull

Page 15: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

15

Page 16: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

16

Grading with GitHubChallenge: 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)

Page 17: Open Source and GitHub for Teaching with Software Development Projects

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 thesame way

https://github.com/Geosoft2/geosoft2-2014-fundamentals

Page 18: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

18

ExperiencesStudents…… 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.

Also excellent

students!

Page 19: Open Source and GitHub for Teaching with Software Development Projects

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.

Teachers

must learn!

Page 20: Open Source and GitHub for Teaching with Software Development Projects

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.

Reflect and

improve!

Page 21: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

21

Experiences (cont.)https://github.com/enviroCar/ & https://envirocar.orgPrototype developed in project seminar – new OS project for tracking cars

Page 22: Open Source and GitHub for Teaching with Software Development Projects

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!

Page 23: Open Source and GitHub for Teaching with Software Development Projects

Teaching Software Development w/ GitHub @ FOSS4G-E, Bremen, 2014

23

Next, and GoalsCollaborate with youShare experiences > “open innovation” for teaching

Guidelines for Teaching Open Software Development in Projects

Who will join a

mailing list…

today?