Introduction ============ *Our goal : write clear, readeable, high-level and yet efficient programs.* This is the motto of the lectures. Traditionnally, it is often said that genericity, abstraction (i.e. high-level) programming is not compatible with the efficency that we need in scientific computations. The goal of these lectures is to show that we can achieve these goals with today C++ and libraries. Why is it important? -------------------- * Our codes are changing all the times. We want to have code reuse. * more to come here Goal of the lectures -------------------- * Present some patterns and techniques which are useful to write high level and efficient codes. * Fix the "pattern" design of TRIQS. One problem : one standardised solution.