Data Structures, Algorithms and Generic Programming (Fall 2012)