|
|
|
| Introduction and overview | 1 |
| Necessary C++ background relevant for generic programming | 2 |
| C++ SL overview and use | 4 |
| Generic programming process | 1 |
| Details of 'concepts': definition, concept refinement, semantic constraints, multi parameter concepts, concept taxonomies | 3 |
| Expressing genericity: parametric polymorphism and higher-order functions, where clauses, bounded polymorphism, run-time vs. compile-time polymorphism | 3 |
| Constraining generics in C++: concept checking, archetypes. | 2 |
| Case study: Boost Graph Library | 3 |
| Generic programming and run-time performance | 1 |
| GP in other languages: Generic Java, C#, Haskell. Different implementation approaches to generics. | 5 |
| Polymorphism and type theory | 3 |
| Generative programming and metaprogramming, staged languages. | 5 |
| Generic libraries as embedded domain specific languages | 2 |
| Utilizing semantic concepts: library specific optimization, algorithm concepts | 3 |
| Data-type generic programming | 4 |
| Student term project presentations | 3 |
|
|
|