Programming concepts in scientific computing

MATH-458

Media

Media

This file is part of the content downloaded from Programming concepts in scientific computing.

General Information

Classroom and Schedule

The class will be divided in lectures and labs. Usually:

Lectures are on Wednesdays from 14:15 to 16:00 in CM1103.

Labs are on Friday from 08:15 to 10:00 in CM1103.

Lectures will not be recorded.

You are expected to work about 4 more hours per week.

Important links

Teaching staff


Text Book:

Other resources:

  • C++ and Object Oriented Numeric Computing for Scientists and Engineers, Daoqi Yang, Springer-Verlag, 2000
  • Parallel scientific computing in C++ and MPI, Karniadakis, G. and Kirby, R.M.,Cambridge University Press, 2003

Lecture notes: none.

Even more readings:

Lecture organization

Typically, the lectures will be organized in four parts:

  1. Teaching, based on assignment,
  2. Possible quiz and correction in class (not part of evaluation)
  3. New assignment: typically reading of new chapter of the book.
  4. Time for exercise revision (if necessary)

All the lectures are based on the book

Guide To Scientific Computing in C++, Joe Pitt-Francis and Jonathan Whiteley, Springer-Verlag London Limited 2012. Also available from e-books at the EPFL library.

On-line resources

IT

The reference operating system is Linux, the reference compilers are gnu version 7.x. We are going to use the CLion as Integrated Development Environment (IDE) dowloadable at https://www.jetbrains.com/student/

Note that you are supposed to work on the linux workstations in the lab. You can of course use your own computer, but we can not give you support. Note that working with Windows or MacOSX should be fine but requires little experience with the installation of compilers.

Table of contents

This class focuses only on some aspects of C++, those that are probably most relevant for scientific computing.

  • Flow control, I/O
  • Pointers
  • Blocks, functions, variables
  • Classes, derivation and inheritance
  • Templates
  • Linear algebra
  • Introduction to object oriented class design

Quiz

Quiz take 20-30 minutes.


The material of the class can be pulled from:

The cloning maybe done with:

git clone https://gitlab.epfl.ch/anciaux/pcsc.git

The structure of the directories is:

root -
        | - lectures
        | - exercise_pdfs
        | - work
        | - solutions


lectures = pdfs of the lectures given in class
exercise_pdfs =  the exercises not in the book
work = where to do your things
solutions= where we put the solutions of the exercises



Monday

The first session is on Monday Sept. 22nd. It is devoted to:

  • Introduction of the class
  • Compilation
  • first hands on linux, compiling.

Assignment: reading Chapter 1



git pull upstream master


More information on the repository: https://gitlab.epfl.ch/anciaux/pcsc















Wednesday December 10th, midnight: due date for the project delivery

Friday

Exercise based on the project, 2 hours. Counts for the final grade!


Presentations of the Projects