For information about C++, books, articles, and biographical information, see my Research home page.
Fall 2012: CSCE689-???: Language, Library, and Program Design Using C++. Tuesday and Thursday 12:45-2:00. HRBB 126 (No there will not be a user-interface class then and there. Design course poster (from the previous version of the course).
ENGR 112: I'm still involved with this course, but I'll only give a few of the lectures. The book written for that course is now available.
In the Spring 2011 semested, I'll give a slightly improved version of my Fall 2010 design course based on C++0x. This will be the last C++0x and design course I'll offer until Fall 2012 (or later).
In the Fall 2010 semester, I gave a course in design based on C++0x: Language, library, and program design using C++. This course explores the interactions among language design, library design, and program design in the context of ISO standard C++. Novel features provided by C++0x and the design and programming techniques they support are featured.
Requirements: Graduate standing or Sr. undergrad with Instructor's permission. A basic understanding of C++ and experience with a software development project (in any language) would be an advantage.
The first two thirds of the course (approximately) is lecture based backed up with reading. Homework will be short comparison and critique papers and small experiments with existing language and library features. The last third (approximately) is half lectures (one lecture a week) plus a major project focused on language features and/or library components. Group projects will be accepted and encouraged, provided they are sufficiently ambitious. Partial C++0x implementations are available (e.g. GCC4.5 and the latest Microsoft beta) and will be used to experiment with new language features and library components.
The language facilities examined will include classes, constructors and destructors, class hierarchies, templates, mapping from language to machine, uniform initialization, constant expression evaluation, lambdas, variadic template arguments, and more. The standard library components examined will include containers and algorithms, metaprogramming support, concurrency support, resource management, and more.
C++0x Design course poster.
In case you wonder, here is a writeup about advising style.
I'm interested in programming tools, techniques, and languages. C++ is my main tool in most of my work. I'm involved in the next generation ISO standard (C++0x). I also give some thoughts to how programming can be improved in general; expressiveness, type safety, and multi-paradigm programming are areas of interest. I tend to be quite concerned about run-time and space performance.
My group is looking at parallel and distributed programming. We're also looking at ways of using program transformation to support distributed computing, optimization, embedded systems programming, providing guarantees of system properties, etc. See my publication list for papers on recent work.
I'm a member of The Parasol Lab, and part of my work relates to STAPL.
If you are thinking of applying to TAMU CS as a graduate student, see the information on our departmental home page, especially information for prospective students. I do not promise to supervise or support students that I know only through unsolicited email.
Even after a face-to-face interview, I typically require a student to take a course with me before I offer support.
Parasol Home | Research | People | General info | Seminars | Resources
Parasol Lab, 301 Harvey R. Bright Bldg, 3112 TAMU, College Station, TX 77843-3112
Contact Webmaster Phone 979.458.0722 Fax 979.458.0718
Department of Computer Science and Engineering | Dwight Look College of Engineering | Texas A&M University
Privacy statement: Computer Science and Engineering Engineering TAMU
Web Accessibility Policy and Law - Web Accessibility and Usability Standards