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.

Computational science is, at a fundamental level, about developing and implementing algorithms and data structures — in other words, you can't avoid the need to do some programming.
This lecture is an overview of what actually happens when you compile a program. In particular, I talk about the two stages of building an application: compiling individual source files into "object" files and linking multiple object files into an "executable". I demonstrate this using a very simple program, including the kind of error messages you may get from either.
In practice, one does not issue the compile instructions by hand every time a file has been modified. Rather, one uses programs that automatically track which files need to be re-compiled. The classical choice for this is the make tool. I briefly show how it is used. It has a rather clumsy syntax and few people today write make scripts by hand, but it demonstrates the general principle behind any of the alternatives. In particular, one can generate make scripts from the CMake tool we use in deal.II; likewise, CMake allows to generate scripts similar to those used by "make" for Integrated Development Environments such as Eclipse or Visual Studio, as we will show in later lectures.
Note: The excellent Software Carpentry project
also has an
excellent
lesson on make and the
automation this tool allows.