MATH-611 / 4 credits

Teacher: Anciaux Guillaume

Language: English

Remark: Next time: Fall 2024


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

Resources

Moodle Link

In the programs

  • Number of places: 40
  • Exam form: Project report (session free)
  • Subject examined: Scientific programming for Engineers
  • Courses: 18 Hour(s)
  • TP: 38 Hour(s)
  • Type: mandatory
  • Number of places: 40
  • Exam form: Project report (session free)
  • Subject examined: Scientific programming for Engineers
  • Courses: 18 Hour(s)
  • TP: 38 Hour(s)
  • Type: optional
  • Number of places: 40
  • Exam form: Project report (session free)
  • Subject examined: Scientific programming for Engineers
  • Courses: 18 Hour(s)
  • TP: 38 Hour(s)
  • Type: optional

Reference week

Related courses

Results from graphsearch.epfl.ch.