Starting in the spring 2013, I videotaped the lectures for my MATH 676: Finite element methods in scientific computing course at the KAMU TV studio at Texas A&M. These are lectures on many aspects of scientific computing, software, and the practical aspects of the finite element method, as well as their implementation in the deal.II software library. Support for creating these videos was also provided by the National Science Foundation and the Computational Infrastructure in Geodynamics.

The videos are part of a broader effort to develop a modern way of teaching Computational Science and Engineering (CS&E) courses. If you are interested in adapting our approach, you may be interested in this paper I wrote with a number of education researchers about the structure of such courses and how they work.

Note 1: In some of the videos, I demonstrate code or user interfaces. If you can't read the text, change the video quality by clicking on the "gear" symbol at the bottom right of the YouTube player.

Note 2: deal.II is an actively developed library, and in the course of this development we occasionally deprecate and remove functionality. In some cases, this implies that we also change tutorial programs, but the nature of videos is that this is not reflected in something that may have been recorded years ago. If in doubt, consult the current version of the tutorial.

Lecture 32.8: Learning to use modern tools, part 5b1: Version control systems (VCSs), Using git and github in practice

Having discussed in the previous lecture how git works as a version control system, this lecture is about how people primarily use it in practice using the github service.

In collaborations between developers, one often uses a central place to put the "one", "authoritative" repository that contains the current sources for a project. Every developer then has their own "forked" repository in which they develop new functionality. When ready, one then moves individual patches or commits from a developer's repository to the "central" repository. Github, a commercial service that is free for open source projects, provides a web-based interface that makes all of this very simple.

In this lecture, I explain the workflow we use when collaborating on software via github, and show an example of submitting a patch to a project hosted on github.


Slides: click here