Scientific programming for Engineers
Frequency
Every year
Summary
The students will acquire a solid knowledge on the processes necessary to design, write and use scientific software. Software design techniques will be used to program a multi-usage particles code, aiming at providing the link between algorithmic/complexity, optimization and program designs.
Content
Object Oriented Paradigm
C/C++ and Python programming (class, operator, template, design patterns, STL)
Programming techniques, code factorization
Pointers, memory management, data structures
Linear system solving (Eigen library)
C++/Python coupling (pybind)
Post-treatment: Paraview, numpy/scipy, matplotlib
Classical problems: series calculations, solar system and many-body calculation, sparse linear algebra.
Keywords
programming, scientific, code design, algorithm, optimization, analysis
Learning Prerequisites
Required courses
Basis in programming languages (C/Fortran)
Basic Linux knowledge is required
Important concepts to start the course
A Linux laptop is required for this class
Expected student activities
Exam: 4 evaluated homeworks
In the programs
- Number of places: 40
- Exam form: Project report (session free)
- Subject examined: Scientific programming for Engineers
- Lecture: 18 Hour(s)
- Practical work: 38 Hour(s)
- Type: mandatory
- Number of places: 40
- Exam form: Project report (session free)
- Subject examined: Scientific programming for Engineers
- Lecture: 18 Hour(s)
- Practical work: 38 Hour(s)
- Type: optional
- Number of places: 40
- Exam form: Project report (session free)
- Subject examined: Scientific programming for Engineers
- Lecture: 18 Hour(s)
- Practical work: 38 Hour(s)
- Type: optional