Home » Advanced Programming in Science and Technology

Advanced Programming in Science and Technology

Purpose

The purpose of the course is to give the students an introduction to scientific programming using Python and Fortran.

Pre-requisites

This course requires good knowledge in programming in either C, Fortran or Python. Introduction to Programming in Science and Technology + Computational Python  or equivalent to this

General aims of the course

In computational science it is often necessary to combine many different software packages into a workflow. This often requires the knowledge of several languages and tools for implementing an efficient and flexible workflow. Today many use shell scripting to accomplish these workflows relying on fragile parsing of output from executables or input files. There are today several methods, tools and languages that can make this process more efficient and flexible. This course aims to provide the students with the tools to improve their existing scientific workflows in an efficient way.

  • Write modularized software using C++
  • Implement and test object-based numerical C++.
  • Conduct object-oriented analysis of problems in computational science and engineering.
  • Implement tools for interactive visualization.
  • Use tools such as Swig to provide a Python based interfaces to existing numerical codes.
  • Use tools such as make and CMake to efficiently build software
  • Introduction to distributed workflows using the ARC C++/Python library
  • Use version control systems such as subversion and git.
  • Use these insights in practice in solving problems of relevance of her/his PhD-project

Course contents (tentative)

Day 1 – C++ numerical computing

Day 2 – Object-oriented concepts in C++

Day 3 – Matrix computing with C++ using the Armadillo library

Day 4 – Basic OpenGL / Build tools and C++ / Python integration

Day 5 – Intro to federated computing using ARC / Work on project assignment

Course schedule

The course consists of:

1 week pre-study exercises  18-22 November 2013
1 week of lectures and hands-on  25-29 November 2013 at Lund University
1 week project assignment 2-6 December 2013

Course literature

C++ and Object-oriented Numeric Computing – for Scientists and Engineers (Springer – ISBN 978-0387989907)
Design Patterns – http://en.wikipedia.org/wiki/Design_Patterns_(book)
Fortran 95/2003 Explained
Lärobok i Fortran 95
Fortran 90 for the Fortran 77 Programmer

Contact

Jonas Lindeman, LUNARC, Lund University
E-mail: jonas.lindemann at lunarc.lu.se

Registration

Send an e-mail to jonas.lindemann at lunarc.lu.se with the following information before November 4:

  • SeSE, Advanced programming in science and technology
  • Name
  • e-mail (You must use your university email address, not gmail, yahoo, hotmail etc.)
  • Affiliation
  • Supervisor
  • Subject of PhD-project.

Indicate also if you apply for a travel grant.