Scientific software development toolbox, January 25-29, 2016
General aims of the course
The aim of this course is to demonstrate and familiarize the students with best practices and tools in modern scientific software development. The main focus is on professional tools for developing and maintaining scientific software efficiently. Since most scientific programs are developed in a collaborative setting, we will discuss tools and workflows which facilitate this process. But also for a single-person development the demonstrated tools will prove invaluable.
- Distributed version control with Git
- Collaborative web-based development with GitHub
- Working with Jupyter notebook
- Test-driven development
- Continuous integration
- Expressing dependencies with make
- Building portable software with CMake
- Profiling and code optimization toolbox
- Controlling complexity with functional programming
- Debugging toolbox
- Modular programming and mixed-language development
- Code documentation
- Software packaging, distribution, and release mechanism
- Survival guide for working with legacy code
- Software licensing
- Basic knowledge of the Linux/Unix shell.
- Basics in at least one interpreted language (example: Python or Julia or Matlab).
- Basics in at least one compiled language (example: C or C++ or Fortran).
- You will need to bring a laptop.
For more information and timetable please follow http://toolbox.readthedocs.org.
Timetable and room
The course consists of one week preparation time, one week lectures (Jan 25-29, 2016) with exercises and one week project work. The course will take place in room 304 at Plan 3, Teknikringen 14 at the KTH campus in Stockholm.
Contact and questions
Radovan Bast (firstname.lastname@example.org).
The registration is closed.