Programming concepts in scientific computing
MATH-458 / 4 crédits
Enseignant: Anciaux Guillaume
Langue: Anglais
Withdrawal: It is not allowed to withdraw from this subject after the registration deadline.
Remark: only for master students in Civil Engineering and Computational Science
Summary
The aim of this course is to provide the background in scientific computing. The class includes a brief introduction to basic programming in c++, it then focus on object oriented programming and c++ specific programming techniques.
Content
- Flow control, I/O
- Pointers
- Blocks, functions, variables
- Classes, derivation and inheritance
- Templates
- Linear algebra
- Class Hierarchies and architecture
Learning Prerequisites
Required courses
Analysis I and II
Linear Algebra
Numerical Analysis
The course Numerical Analysis has to be followed in parallel to the course if its content is not yet mastered.
Recommended courses
A programming language (C, C++, Fortran, Java, ...
Learning Outcomes
By the end of the course, the student must be able to:
- Interpret algorithms in c++
- Modify algorithms in c++
- Implement algorithms in c++
- Construct class hierarchies
- Use Eigen-C++ linear algebra library
- Use GIT
Transversal skills
- Assess progress against the plan, and adapt the plan as appropriate.
- Set objectives and design an action plan to reach those objectives.
- Use both general and domain specific IT resources and tools
- Give feedback (critique) in an appropriate fashion.
Teaching methods
Interactive lecture and projects in classroom
Expected student activities
Before each class the student is required to prepare with assigned reading.
Programming assignements during the project hours and at home.
Assessment methods
The students will be evaluated based on the realization of a project and their programming skills, which will be defended during an oral exam at the end of the semester.
Resources
Virtual desktop infrastructure (VDI)
Yes
Bibliography
Joe Pitt-Francis and Jonathan Whiteley, Guide to Scientific Computing in C++, Springer 2012
Other references:
C++ and Object Oriented Numeric Computing for Scientists and Engineers, Daoqui Yang, Springer-Verlag, 2000.
Ressources en bibliothèque
- C++ and Object Oriented Numeric Computing for Scientists and Engineers / Yang
- Guide to Scientific Computing in C++ / Pitt-Francis
Notes/Handbook
Joe Pitt-Francis and Jonathan Whiteley, Guide to Scientific Computing in C++, Springer 2012
Moodle Link
Dans les plans d'études
- Semestre: Automne
- Forme de l'examen: Pendant le semestre (session d'hiver)
- Matière examinée: Programming concepts in scientific computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Automne
- Forme de l'examen: Pendant le semestre (session d'hiver)
- Matière examinée: Programming concepts in scientific computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Automne
- Forme de l'examen: Pendant le semestre (session d'hiver)
- Matière examinée: Programming concepts in scientific computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 2 Heure(s) hebdo x 14 semaines
- Type: obligatoire
- Semestre: Automne
- Forme de l'examen: Pendant le semestre (session d'hiver)
- Matière examinée: Programming concepts in scientific computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 2 Heure(s) hebdo x 14 semaines
- Type: obligatoire
- Semestre: Automne
- Forme de l'examen: Pendant le semestre (session d'hiver)
- Matière examinée: Programming concepts in scientific computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel