ECEN 5043 & CSCI 7818,
Spring 2009,
Tue/Th 12:30-1:45

In this seminar students learn principles, methodologies, and 
techniques for developing reusable components. In this seminar 
we will explore the following questions: 
• What makes one component more or less reusable than another? 
• Is reusability compatible with efficiency? 
• What mathematical foundations are needed to understand 
reusable components? 
• What programming language features and programming patterns 
are needed to express reusable components?

Topics: generic programming, metaprogramming, C++ templates, concepts, generics, the Standard Template Library, generative programming
Instructor: Prof. Jeremy Siek
Location: ECEE 1B28
Textbook: Elements of Programming by Alexander Stepanov and Paul McJones (will be available for purchase in e-stores at the ECE dept.)
Assignments:
  • Implement a generic contains function that works on both linked lists and arrays. If you have the time, test the performance of your generic function versus functions hand-written in C for each specific data structure. No need to turn anything in, but please bring your code to class. Due 1/15.
  • Read Chapters 1 and 2 of the Elements of Programming (EOP). Due 1/27.
  • Read Chapter 3 of the Elements of Programming (EOP). Due 2/3.
  • Read Chapter 4 of the Elements of Programming (EOP). Due 2/10.
  • Read Chapter 5 of the Elements of Programming (EOP). Due 2/24. Give a proof that if subtractive_gcd_nonzero terminates, it returns the gcd of its arguments.
  • Read Chapter 6. Due 3/10.
  • Final project 1 page description. Due 3/10.
Resources:
Schedule: