Wednesday, 1 January 2020 to Monday, 29 June 2020
Total hours: 60
Hours of lectures: 60
The course provides an introduction to basic concepts on programming and the internal structure of modern computers. No specific knowledge on programming is needed to follow the course.
The course aims at providing a working knowledge in the development of programs to run simulations in the field of computational sciences and exploit their results.
- Introduction to programming and algorithms
- Introduction to the Fortran programming language for intensive computations
- Description of the main concepts in programming languages: data types, control statements, procedures, arrays, input/output operations
- Introduction to parallel programming
- Optimization of code
- Introduction to the interpreted language Python
- Introduction to prototypical development in high performance computing with the SciPy library
- Introduction to object-oriented programming
- Data extraction and visualization with the Matplotlib library
Key concepts of each language will be illustrated through the progressive development of a fully functional program during the course.
The course is composed of a didactic part of 44 hours (2 lessons of 2 hours each per week) and a practical part of 16 hours (2 sessions of 4 hours for each language: one of introduction, one on more advanced concepts/usages).
- Understanding of practical issues in the development of software for high-performance computing
- Knowledge in writing codes in Fortran and Python
- Basic understanding of algorithmic problems: from theory to implementation