Introduction to Programming with C++ 

  • procedural programming
  • type-generic programming
  • object-oriented programming

Introduction to Numerical Methods and Software 

  • essential analysis and linear algebra
  • root finding
  • convex unconstrained optimization
  • regression

Introduction to Algorithmic Differentiation 

  • first and higher derivative models
  • derivative code by overloading
  • exploitation of sparsity
  • derivative code by hand
  • derivative code by automatic source transformation 

Advanced Topics in Algorithmic Differentiation 

  • implementation by overloading and template metaprogramming with C++
  • extended set of elemental functions (linear algebra, implicit functions)
  • AD mission planning
  • data flow reversal for adjoints

Advanced C++

  • C++ 11 and beyond

Combinatorial Problems in Scientific Computing 

  • sparse basic linear algebra 
  • sparse linear algebra