Generic Programming — 689 (Fall 2006) |
Course essentials:
Course: 691–601 — Special Topics in Generic Programming, Tuesdays and Thursdays, 3:55 PM-5:10 PM, Richardson Room 206 Instructor: Jaakko Järvi Course pages: http://courses.cs.tamu.edu/jarvi/2006/f689 Contact: jarvi@cs.tamu.edu Office hours: By appointment (my office is 410B)
In a nutshell:
Study of the generic programming approach to design and systematic classification of software components. Techniques for achieving correctness, efficiency, and generality of algorithms, data structures, and memory management. Methods of structuring a library of generic software components for maximum usability are practiced in a significant design and implementation project, or analyzed in a research project.
The main programming tool used in the course is C++, but we take a close look of language constructs for generic programming in several other programming languages, including Generics in Java (or C#), and Haskell. We will also get acquainted with concepts and other language features that provide support for constrained generics in C++. These features are likely to be adopted into the next major revision of C++.
Note to a prospective student:
If you are thinking of a research career in programming languages, or certain areas of software engineering, such as topics related to of reusable software libraries, generic or generative programming etc., you are well advised to take the course. Research in this area is very active: generics in several mainstream languages are evolving constantly, as well as the mechanisms to exploit genericity to change and improve programming practices. After Generic Programming, Programming Language Design (604) in the spring is the next natural choice if you are serious in pursuing research in this field.
This document was translated from LATEX by HEVEA.