CSE Collaboration through Software: Improving Productivity and Sustainability tutorial
Series: BSSw Tutorials Part of: SIAM Computational Science and Engineering 2017CSE software—crosscutting technology that connects advances in mathematics, computer science, and domain-specific science and engineering—is a foundation of sustained CSE collaboration and scientific progress. However, the need for increasingly broad functionality on ever more complex computer architectures creates daunting challenges for software development and sustainability.
This tutorial will provide information on best practices in software engineering explicitly tailored for CSE. Goals are improving the productivity of those who develop CSE software and increasing the sustainability of software artifacts. We will discuss practices that are relevant for projects of all sizes, with emphasis on small teams (for example, a faculty member and collaborating students).
Materials for interactive exercises will be provided via Git. We encourage participants to first install Git on their own laptops and create a free account on GitHub (see https://github.com/).
Part 1:
-
Why effective software practices are essential for CSE projects.
-
Software licensing.
-
Effective models, tools, processes, and practices for small teams, including agile workflow management.
Part 2:
-
Reproducibility.
-
Scientific software testing, including automated testing and continuous integration. Interactive exercises for code coverage will expect attendees to have access to a Linux environment with Git and the GNU compiler suite.
Presenters
- David E. Bernholdt (Oak Ridge National Laboratory)
- Anshu Dubey (Argonne National Laboratory)
- Michael A. Heroux (Sandia National Laboratories)
- Alicia Klinvex (Sandia National Laboratories)
- Lois Curfman McInnes (Argonne National Laboratory)