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 7: Learning to use modern tools, part 1 – Eclipse: an Integrated Development Environment (IDE), fragment 1

Most of us in scientific computing have traditionally used editors to write our programs; examples of this are emacs, the various versions of vi or the KDE and GNOME editors kwrite and gedit. However, these programs have a major flaw: by and large, the mode in which they are used is on a file-by-file basis. In other words, the editor has no way of understanding types and variables declared elsewhere in the project. Modern Integrated Development Environments (IDEs) have the ability to see an entire project, no matter how large. The most widely used such IDE is Eclipse.

This lecture gives an introduction to Eclipse.

Note 1: In the lecture, I got slightly confused when setting up a new project. Eclipse asks first which kind of project it is (I choose "Makefile project with existing code") and on the next page of the dialog which toolchain to use. I didn't realize at the time what that question meant. What you should select is "Linux GCC" if you work on Linux. This way, Eclipse will automatically index classes such as std::vector as well, which it doesn't manage to do in the lecture as given.

Note 2: When showing how to set up a project, I proceed to demonstrate how one has to manually teach Eclipse where the deal.II header files are, what the Makefile targets are, etc. This used to be necessary but is no longer because we can make CMake export this information to Eclipse. Take a look at video lecture 8.01 to see how.


Slides: click here