MATH-458 / 4 credits

Teacher: Anciaux Guillaume

Language: English

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

Notes/Handbook

Joe Pitt-Francis and Jonathan Whiteley, Guide to Scientific Computing in C++, Springer 2012

Moodle Link

In the programs

  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Programming concepts in scientific computing
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Programming concepts in scientific computing
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Programming concepts in scientific computing
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: mandatory
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Programming concepts in scientific computing
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: mandatory
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Programming concepts in scientific computing
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 2 Hour(s) per week x 14 weeks
  • Type: optional

Reference week

Wednesday, 14h - 15h: Lecture CM1103

Wednesday, 15h - 16h: Exercise, TP CM1103

Friday, 8h - 9h: Lecture CM1103

Friday, 9h - 10h: Exercise, TP CM1103

Related courses

Results from graphsearch.epfl.ch.