Post Job Free
Sign in

Engineering Computer Science

Location:
Boulder, CO
Posted:
January 28, 2013

Contact this candidate

Resume:

Jeremy G. Siek

University of Colorado

Electrical, Computer, and Energy Engineering Fax: 01-303-***-****

*** ***

Email: abqc1t@r.postjobfree.com

Boulder, CO 80309-0425

Website: http://ecee.colorado.edu/ siek

United States of America

Research Interests

Research in programming language design and implementation to improve support

for software libraries and domain speci c languages, including research in type

systems, program logics, program generation, and performance optimization.

Education

Indiana University

2005

Ph.D. Computer Science, A Language for Generic Programming

Advisor: Andrew Lumsdaine

University of Notre Dame

1999

M.S. Computer Science and Engineering

A Modern Framework for Portable High Performance Numerical Linear Algebra

Advisor: Andrew Lumsdaine

University of Notre Dame

1997

B.S. Mathematics

Professional Research Experience

University of Colorado, Boulder, CO

2007 present

Assistant Professor

University of Colorado, Boulder, CO

2006 2007

Visiting Assistant Professor

LogicBlox, Atlanta, GA

2006 2007

Research Scientist

Rice University, Houston, TX

2005 2006

Post-doctoral Research Associate

Indiana University, Bloomington, IN

2000 2005

Research Assistant

AT&T Labs Research, Florham Park, NJ

Summer 2001

Summer Manager

Silicon Graphics Inc., Mountain View, CA

1999 2000

Intern

Honors

Distinguished Visiting Fellowship

2010

Scottish Informatics & Computer Science Alliance (SICSA) June 1 - July 31

2009-2014 NSF Faculty Early Career Development (CAREER) Award

Bridging the Gap Between Prototyping and Production

Impact

The TypeScript dialect of JavaScript, designed by Anders Hejlsberg and his team

at Microsoft, uses ideas from my papers on gradual typing: Gradual Typing for

Functional Languages and Gradual Typing for Objects.

The Implicits feature of the Scala programming language, designed by Martin

Odersky and his colleagues, uses ideas from my paper Essential Language Support

for Generic Programming.

My Ph.D. thesis laid the foundation for the Concepts feature that was proposed

for C++2011. While that proposal did not become part of the standard, work is

continuing towards making it part of a future version of the C++ standard.

Funding

Total Funding: $2,532,929 Total External Funding: $2,417,809

Modular Re ection. Principal Investigator: Bor-Yuh Chang, Co-PI: Jeremy

G. Siek. Funding Agency: NSF. Amount: $ 125,000 (Siek s part), Duration:

10/1/2012 9/30/2015.

Unifying Modular Abstractions for Chapel. (NSF CAREER Award Supplement)

Principal Investigator: Jeremy G. Siek. Funding Agency: DOD, Amount:

$88,816, Duration: 8/27/2012 8/26/2013.

REU for CAREER: Bridging the Gap Between Prototyping and Production.

Principal Investigator: Jeremy G. Siek. Funding Agency: NSF. Amount: $21,000,

Duration: 6/1/2012 5/31/2013.

Modern Object-Oriented Chapel. (NSF CAREER Award Supplement) Principal

Investigator: Jeremy G. Siek. Funding Agency: DOD, Amount: $39,905,

Duration: 7/1/2011 6/30/2012.

Remodel ECEE 1B61A Graduate Student O ce Space. Principal Investigator:

Jeremy G. Siek. Funding Agency: CU CEAS and the CU ECEE Dept, Amount:

$55,120, June 2011.

Interfaces and Modular Generics for Chapel. Principal Investigator: Jeremy G.

Siek. Funding Agency: DOD, Amount: $103,735, Duration: 9/1/2010 8/31/2012.

EAGER: Exploratory Research on Gradual Programming. Principal Investigator:

Jeremy G. Siek. Funding Agency: NSF. Amount: $81,748,

Duration: 8/1/2009 7/31/2010.

CAREER: Bridging the Gap Between Prototyping and Production. Principal

Investigator: Jeremy G. Siek. Funding Agency: NSF. Amount: $481,910,

Duration: 3/1/2009 2/28/2014.

REU for CAREER: Bridging the Gap Between Prototyping and Production.

Principal Investigator: Jeremy G. Siek. Funding Agency: NSF. Amount: $10,500,

Duration: 3/1/2009 2/28/2010.

Matching funds from the University of Colorado for the CAREER award.

Amount: $60,000.

Test and Evaluation of Architecture-Aware Compiler Environments. Principal

Investigator: Jeremy G. Siek. Funding Agency: DARPA. Amount: $1,146,195,

Duration: 2/1/2009 7/1/2013.

Modular Metaprogramming. Principal Investigators: Jeremy G. Siek (Colorado)

and Andrew Lumsdaine (Indiana). Funding Agency: NSF. Amount: $340,000

(Colorado s portion), Duration: 7/1/2007 7/1/2010.

Publications

Books

Jeremy G. Siek, Lee-Quan Lee, and Andrew Lumsdaine. The Boost Graph

Library: User Guide and Reference Manual. Addison-Wesley, 2002.

Book Chapters

Jeremy G. Siek and Andrew Lumsdaine. Advances in Software Tools for Scienti c

Computing, chapter A Modern Framework for Portable High Performance Numerical

Linear Algebra. Springer, 2000.

Journal Articles

Thomas Nelson, Geo rey Belter, Jeremy G. Siek, Elizabeth Jessup, and Boyana

Norris. Reliable generation of high-performance matrix algebra. ACM

Transactions on Mathematical Software (TOMS), 2012. Submitted for review.

Erik Silkensen and Jeremy G. Siek. Well-typed islands parse faster. Lecture Notes

in Computer Science, Volume TBD, 2012. Revised and Selected Papers from the

Trends in Functional Programming 13th International Symposium, June 12-14,

2012.

David Broman and Jeremy G. Siek. Modelyze: a gradually typed host

language for embedding equation-based modeling languages. Science of Computer

Programming, 2012. submitted for review, 58 pages.

Jeremy G. Siek. The C++0x concepts e ort. Lecture Notes in Computer

Science, 7470:175 216, 2012. Special Issue Generic and Indexed Programming.

Daniel P. Friedman, Abdulaziz Ghuloum, Jeremy G. Siek, and Onnie Lynn

Winebarger. Improving the lazy krivine machine. Higher Order and Symbolic

Computation, 20(3):271 293, 2007.

Jeremy G. Siek and Andrew Lumsdaine. A language for generic programming in

the large. Science of Computer Programming, 76:423 465, September 2011.

Ronald Garcia, Jaakko J rvi, Andrew Lumsdaine, Jeremy G. Siek, and Jeremiah

Willcock. An extended comparative study of language support for generic

programming. Journal of Functional Programming, 17(2):145 205, March 2007.

Ian Karlin, Elizabeth Jessup, Geo rey Belter, and Jeremy G. Siek. Parallel

memory prediction for fused linear algebra kernels. SIGMETRICS Perform.

Eval. Rev., 38:43 49, March 2011.

Conference Papers

Justin Gottschlich, Maurice Herlihy, Gilles Pokam, and Jeremy G. Siek. Visualizing

transactional memory. In International Conference on Parallel Architectures and

Compilation Techniques (PACT), September 2012. 19% acceptance rate.

Devin Coughlin, Bor-Yuh Evan Chang, Amer Diwan, and Jeremy G. Siek.

Measuring enforcement windows with symbolic trace interpretation. In International

Symposium of Software Testing and Analysis, July 2012. 29% acceptance rate.

Wieyu Miao and Jeremy G. Siek. Pattern-based traits. In Symposium on Applied

Computing, March 2012. 26% acceptance rate, 8 pages.

Amal Ahmed, Robert Bruce Findler, Jeremy G. Siek, and Philip Wadler. Blame

for All. In ACM SIGACT-SIGPLAN Symposium on Principles of Programming

Languages, January 2011. 23% acceptance rate.

Weiyu Miao and Jeremy G. Siek. Incremental type-checking for type-re ective

metaprograms. In GPCE 10: Proceedings of the International Conference on

Generative Programming and Component Engineering, 2010. 30% acceptance

rate.

Justin E. Gottschlich, Manish Vachharajani, and Jeremy G. Siek. An e cient

software transactional memory using commit-time invalidation. In Proceedings

of the 8th annual IEEE/ACM International Symposium on Code Generation and

Optimization, CGO 10, pages 101 110, New York, NY, USA, 2010. ACM. 41%

acceptance rate.

Jeremy G. Siek and Philip Wadler. Threesomes, with and without blame. In

POPL 10: Proceedings of the 37th annual ACM SIGPLAN-SIGACT Symposium

on Principles of Programming Languages, pages 365 376, New York, NY, USA,

2010. ACM. 19% acceptance rate.

Geo rey Belter, E. R. Jessup, Ian Karlin, and Jeremy G. Siek. Automating the

generation of composed linear algebra kernels. In International Conference for

High Performance Computing, Networking, Storage and Analysis, 2009. 20%

acceptance rate.

Angela Yun Zhu, Walid Taha, Robert Cartwright, Matthieu Martel, and Jeremy G.

Siek. In pursuit of real answers. In Proceedings of the 2009 International

Conference on Embedded Software and Systems, pages 115 122, Washington, DC,

USA, 2009. IEEE Computer Society. 29% acceptance rate.

Boyana Norris, Albert Hartono, Elizabeth Jessup, and Jeremy G. Siek. Generating

empirically optimized composed matrix kernels from matlab prototypes. In

International Conference on Computational Science, 2009. 30% acceptance rate.

Jeremy G. Siek, Ronald Garcia, and Walid Taha. Exploring the design space of

higher-order casts. In European Symposium on Programming, March 2009. 27%

acceptance rate.

Jeremy G. Siek and Manish Vachharajani. Gradual typing and uni cation-based

inference. In Dynamic Languages Symposium. AITO, 2008. 43% acceptance

rate.

Jeremy G. Siek and Walid Taha. Gradual typing for objects. In ECOOP 2007,

volume 4609 of LCNS, pages 2 27. Springer Verlag, August 2007. 16% acceptance

rate.

Seth Fogarty, Emir Pasalic, Jeremy G. Siek, and Walid Taha. Concoqtion:

Indexed types now! In ACM SIGPLAN 2007 Workshop on Partial Evaluation

and Program Manipulation (PEPM 07), 2007. 55% acceptance rate.

Douglas Gregor, Jaakko J rvi, Jeremy G. Siek, Gabriel Dos Reis, Bjarne

Stroustrup, and Andrew Lumsdaine. Concepts: Linguistic support for generic

programming in C++. In Proceedings of the ACM SIGPLAN Conference on

Object-oriented Programming, Systems, Languages, and Applications (OOPSLA 06),

October 2006. 17% acceptance rate.

Jeremy G. Siek and Walid Taha. A semantic analysis of C++ templates. In

ECOOP 2006: European Conference on Object-Oriented Programming, Nantes,

France, July 2006. 13% acceptance rate.

Jaakko J rvi, Douglas Gregor, Jeremiah Willcock, Andrew Lumsdaine, and

Jeremy G. Siek. Algorithm specialization in generic programming - challenges of

constrained generics in C++. In PLDI 06: Proceedings of the ACM SIGPLAN

2006 Conference on Programming Language Design and Implementation, New

York, NY, USA, June 2006. ACM Press. 21% acceptance rate.

Jeremy G. Siek and Andrew Lumsdaine. Essential language support for generic

programming. In PLDI 05: Proceedings of the ACM SIGPLAN 2005 Conference

on Programming Language Design and Implementation, pages 73 84. ACM Press,

June 2005. 21% acceptance rate.

Jeremy G. Siek and Andrew Lumsdaine. Language requirements for large-scale

generic libraries. In GPCE 05: Proceedings of the 4th International Conference

on Generative Programming and Component Engineering, September 2005. 29%

acceptance rate.

Lie-Quan Lee, Jeremy G. Siek, and Andrew Lumsdaine. The generic graph

component library. In OOPSLA 99: Proceedings of the 14th ACM SIGPLAN

Conference on Object-Oriented Programming, Systems, Languages, and Applications,

pages 399 414, New York, NY, USA, 1999. ACM Press. 18% acceptance rate.

Lie-Quan Lee, Jeremy G. Siek, and Andrew Lumsdaine. Generic graph algorithms

for sparse matrix ordering. In ISCOPE 99, LNCS. Springer-Verlag, 1999. 34%

acceptance rate.

Jeremy G. Siek and Andrew Lumsdaine. The matrix template library: A

generic programming approach to high performance numerical linear algebra. In

ISCOPE 98, LNCS. Springer-Verlag, 1998. 26% acceptance rate.

Refereed Workshop Papers

Geo rey Belter, Jeremy G. Siek, Ian Karlin, and E. R. Jessup. Automatic

generation of tiled and parallel linear algebra routines. In Fifth International

Workshop on Automatic Performance Tuning (iWAPT), June 2010.

Elizabeth R. Jessup, Ian Karlin, Erik Silkensen, Geo rey Belter, and Jeremy Siek.

Understanding memory e ects in the automated generation of optimized matrix

algebra kernels. In Automated Program Generation Workshop at ICCS, May 2010.

Justin E. Gottschlich, Jeremy G. Siek, Manish Vachharajani, Dwight Y. Winkler,

and Daniel A. Connors. An e cient lock-aware transactional memory implementation.

In Proceedings of the 4th workshop on the Implementation, Compilation, Optimization

of Object-Oriented Languages and Programming Systems, ICOOOLPS 09, pages

10 17, New York, NY, USA, 2009. ACM.

Jeremy G. Siek and Philip Wadler. Threesomes, with and without blame. In

Proceedings for the 1st workshop on Script to Program Evolution, STOP 09, pages

34 46, New York, NY, USA, 2009. ACM.

Justin E. Gottschlich, Jeremy G. Siek, and Daniel A. Connors. C++ move

semantics for exception safety and optimization in software transactional memory

libraries. In Proceedings of the Third International Workshop on Implementation,

Compilation, Optimization of Object-Oriented Languages, Programs and Systems

(ICOOOLPS). In conjunction with ECOOP. jul 2008.

Jeremy G. Siek, Ian Karlin, and E. R. Jessup. Build to order linear algebra

kernels. In Workshop on Performance Optimization for High-Level Languages

and Libraries (POHLL 2008), pages 1 8, April 2008.

Jeremy G. Siek and Walid Taha. Gradual typing for functional languages. In

Scheme and Functional Programming Workshop, pages 81 92, September 2006.

Jaakko J rvi, Andrew Lumsdaine, Jeremy Siek, and Jeremiah Willcock. An

Analysis of Constrained Polymorphism for Generic Programming. In Kei Davis

and J rg Striegnitz, editors, Multiparadigm Programming 2003: Proceedings of the

MPOOL Workshop at OOPSLA 03, John von Neumann Institute of Computing

series, pages 87 107, Anaheim, CA, October 2003.

Doug Gregor, Brian Osman, David R. Musser, Jeremy G. Siek, Lie-Quan Lee,

and Andrew Lumsdaine. Concept-based component libraries and optimizing

compilers. In NSF Next Generation Systems Program Workshop at International

Parallel and Distributed Processing Symposium, IPDPS 2002, pages 174 181,

2002.

David Abrahams and Jeremy G. Siek. Policy adaptors and the Boost Iterator

Adaptor Library. In Second Workshop on C++ Template Programming, October

2001.

Jeremiah Willcock, Jeremy Siek, and Andrew Lumsdaine. Caramel: A concept

representation system for generic programming. In Second Workshop on C++

Template Programming, October 2001.

Jeremy G. Siek and Andrew Lumsdaine. Concept checking: Binding parametric

polymorphism in C++. In Proceedings of the First Workshop on C++ Template

Programming, Erfurt, Germany, 2000.

Jeremy G. Siek and Andrew Lumsdaine. May y: A pattern for lightweight generic

interfaces. In Pattern Languages of Programs, July 1999.

Jeremy G. Siek, Andrew Lumsdaine, and Lie-Quan Lee. Generic programming for

high performance numerical linear algebra. In Proceedings of the SIAM Workshop

on Object Oriented Methods for Inter-operable Scienti c and Engineering Computing

(OO 98). SIAM Press, 1998.

Jeremy G. Siek and Andrew Lumsdaine. The Matrix Template Library: A

unifying framework for numerical linear algebra. In Parallel Object Oriented

Scienti c Computing. ECOOP, 1998.

Software

Build to Order BLAS. Available at http://ecee.colorado.edu/wpmu/btoblas/.

Peer-reviewed Boost libraries: Graph, Concept Check, Dynamic Bitset, Iterator

Adaptor, Operator, and Property Map. The Boost Library Collection is available

at www.boost.org.

The Matrix Template Library and the Iterative Template Library. The Matrix

Template Library is available at www.osl.iu.edu/research/mtl and the Iterative

Template Library is available at www.osl.iu.edu/research/itl.

Presentations

Invited Presentations

Advances in Gradual Typing. Keynote at the Trends in Functional Programming

Conference. May 2013.

Interpretations of the Gradually-Typed Lambda Calculus. Distilled Tutorial

at the ACM SIGPLAN Workshop on Scheme and Functional Programming.

September 2012.

Reliable Generation of High-Performance Matrix Algebra. NII Shonan Meeting

on Bridging the Theory of Staged Programming and the Practice of High-

Performance Computing. May 2012.

Gradual Typing Roundup. Dagstuhl Seminar on Foundations for Scripting

Langauges. January 2012.

Composable DSLs. IFIP WG 2.11, September 2011.

Build to Order Linear Algebra Kernels. University of Glasgow, June 2010.

General Purpose Languages Should be Metalanguages. University of Edinburgh,

Laboratory for Foundations in Computer Science, June 2010.

The C++0x Concept E ort. University of Washington. May, 2010.

Concepts in C++. Spring School on Generic and Indexed Programming. Oxford

University, UK. March, 2010.

General Purpose Languages Should be Metalanguages. Keynote at the ACM

SIGPLAN 2010 Workshop on Partial Evaluation and Program Manipulation.

Madrid, Spain. January, 2010.

Build to Order Linear Algebra Kernels. NSF-NAIS Workshop, Intelligent

Software: the interface between algorithms and machines. Edinburgh, UK.

October, 2009.

Build To Order BLAS. CScADS Workshop on Libraries and Autotuning for

Petascale Applications. Tahoe, CA. August, 2009.

Space-E cient Blame Tracking for Gradual Typing. The University of Edinburgh,

March 2009.

Type Safe Re ective Metaprogramming. Microsoft Research Redmond, RiSE

team, December 2008.

Panel: The Future of Programming Languages. Microsoft s Professional Developers

Conference, October 2008.

Gradual Typing with Inference. Foundations of Object-Oriented Languages

(FOOL 08), January, 2008. San Francisco.

Knights Tours, Religious Wars, and Built to Order BLAS. University of Colorado

at Boulder, April 2007.

Build to Order Linear Algebra Kernels. Tech-X Corporation, March 2007.

Language Support for Generic Programming, C++200X and Beyond. Rensselaer

Polytechnic Institute, March 2007.

Languages and Libraries for High-Performance Computing. U. of Wyoming,

March 2007.

Gradual Typing. Oxford University, February 2007.

Languages and Libraries for High-Performance Computing. Oxford Univ., Nov.

2006.

Languages and Libraries for High-Performance Computing. University of Colorado

at Boulder, May 2006.

Languages and Libraries for High-Performance Computing. University of California,

Merced, May 2006.

Languages and Libraries for High-Performance Computing. Virginia Polytechnic

Institute and State University, February 2006.

Languages and Libraries for High-Performance Computing. MathWorks, February

2006.

The Design and Implementation of the Boost Graph Library. The Association of

C and C++ Users (ACCU) Spring Conference 2003.

A Language for Generic Programming. April, 2005. Rice University.

Modular Generics. The Adobe Systems Technical Summit, April 2004.

Generic Programming and Numerics. Center for Theoretical Studies, ETH Z rich.

2002.

Generic Software Components for Scienti c Computing. The Institute for

Scienti c Computing Research at Lawrence Livermore National Lab. November

1999.

Conference Presentations

E ects for Funargs. ACM SIGPLAN Workshop on Higher-Order Programming

with E ects, September 2012.

Monads for Relations. Scottish Programming Languages Seminar, June 2010.

Threesomes, With and Without Blame. Symposium on Principles of Programming

Languages, January, 2010.

Blame Tracking for Gradual Types. JVM Language Summit, September, 2009.

Sun Microsystems, Santa Clara, CA.

Threesomes, With and Without Blame. 1st International Workshop on Script to

Program Evolution, July, 2009. Genoa, Italy.

Exploring the Design Space of Higher-Order Casts. European Symposium on

Programming, March 2009. York, United Kingdom.

Gradual Typing for Python. JVM Language Summit, September, 2008. Sun

Microsystems, Santa Clara, CA.

Build to Order Linear Algebra Kernels. Front Range Architecture Compilers

Tools and Languages Workshop (FRACTAL), April, 2008.

Build to Order Linear Algebra Kernels. Joint Workshop on High-Level Parallel

Programming Models and Supportive Environments and Performance Optimization

for High-Level Languages and Libraries, April, 2008.

Gradual Typing with Inference. PC Meeting for the 2008 European Conference

on Object-Oriented Programming. February, 2008.

Gradual Typing for Objects. European Conference on Object-Oriented Programming,

July, 2007, Berlin.

E ectively writing about your research. ECOOP 2007 Doctoral Symposium and

Ph.D. Students Workshop, July, 2007, Berlin.

Generic Programming and the Boost Graph Library. The Boost Libraries

Conference. May 2007, Aspen.

Gradual Typing for Functional Languages. Scheme and Functional Programming

Workshop, September 2006.

Language Requirements for Large-Scale Generic Libraries. The conference on

Generative Programming and Component Engineering. September 2005.

Essential Language Support for Generic Programming. The ACM SIGPLAN 2005

conference on Programming Language Design and Implementation. June, 2005.

Modular Generics. The OOPSLA 2004 doctoral symposium.

Policy Adaptors and the Boost Iterator Adaptor Library. The Second Workshop

on C++ Template Programming, October 2001.

Concept checking: Binding parametric polymorphism in C++. The First

Workshop on C++ Template Programming, Erfurt, Germany, 2000.

Generic Programming for High Performance Numerical Linear Algebra. SciTools

in Oslo, Norway. 1998. Award for best presentation.

The Matrix Template Library: A Generic Programming Approach to High

Performance Numerical Linear Algebra. The International Symposium on

Computing in Object-Oriented Parallel Environments (ISCOPE). December 1998.

The Matrix Template Library: A Unifying Framework for Numerical Linear

Algebra. The Parallel and High-Performance Object-Oriented Computing workshop.

July 1998.

Generic Programming for High Performance Numerical Linear Algebra. The

SIAM Workshop on OO Methods for Interoperable Scienti c and Engineering

Computing, 1998.

Teaching

Courses

For Faculty Course Questionnaires (FCQ), maximum rating is 6.

ECEN 4553/5523 and CSCI 4555/5525: Compiler Construction, Fall 2012.

ECEN 2703: Discrete Mathematics for Computer Engineers, Fall 2011. FCQ

course: 3.6, instructor: 4.2, availability: 4.9, workload: 7-9 hours/week, respect:

5.9.

ECEN 5533: Fundamentals of Programming Languages, Fall 2011. FCQ course:

4.6, instructor: 5.1, availability: 5.4, workload: 10-12 hours/week, respect: 6.0.

ECEN 2703: Discrete Mathematics for Computer Engineers, Spring 2011. FCQ

course: 3.5, instructor: 4.4, availability: 4.9, workload: 7-9 hours/week, respect:

5.9.

ECEN 5013: Theorem Proving in Isabelle, Spring 2011. FCQ course: 5.0,

instructor: 5.5, availability: 5.0, workload: 10-12 hours/week, respect: 5.8.

ECEN 4553/5523 and CSCI 4555/5525: Compiler Construction, Fall 2010.

FCQ course: 5.8, instructor: 5.7, availability: 5.6, workload: 13-15 hours/week,

respect: 5.9.

ECEN 5013: Types and Programming Languages, Spring 2010. FCQ course:

5.2, instructor: 5.4, availability: 5.0, workload: 4-6 hours/week, respect: 5.8.

ECEN 3707: Discrete Mathematics for Computer Engineers, Spring 2010. FCQ

course: 3.3, instructor: 3.4, availability: 4.2, workload: 7-9 hours/week, respect:

5.5.

ECEN 4553/5523 and CSCI 4555/5525: Compiler Construction, Fall 2009.

FCQ course: 4.3, instructor: 4.6, availability: 4.8, workload: 13-15 hours/week,

respect: 5.9.

ECEN 5043: Software Engineering Reusable Components, Spring 2009. FCQ

course: 4.4, instructor: 5.1, availability: 4.9, workload: 4-6 hours/week, respect:

5.8.

ECEN 4553/5013: Introduction to Compiler Construction, Fall 2008. FCQ

course: 4.0, instructor: 4.8, availability: 5.2, workload: 13-15 hours/week,

respect: 5.8.

ECEN 5023/CSCI 7135-001: Types and Programming Languages, Spring 2008.

FCQ course: 5.0, instructor: 5.3, availability: 5.0, workload: 7-9 hours/week,

respect: 5.5.

ECEN 4553/5013: Introduction to Compiler Construction, Fall 2007. FCQ

course: 5.2, instructor: 5.2, availability: 5.7, workload: 16+ hours/week,

treatment: 5.9.

Generic Programming and the Boost Graph Library. May 14, 2007. Tutorial

at the Boost Libraries Conference 2007.

CSCI 4448/6448: Object-Oriented Analysis and Design. Spring 2007. FCQ

course: 3.1, instructor: 3.4, availability: 4.3, workload: 7-9 hours/week.

CSCI 7000: Practical Theorem Proving with Isabelle/Isar. Spring 2007.

CSCI 2830: Computer Science as a eld of work and study. Fall 2006. FCQ

course: 5.2, instructor: 5.7, availability: 5.8, workload: 0-3 hours/week.

Generic Programming and the Boost Libraries. Short course taught at

Engineering Dynamics, Inc. New Orleans. March 21-28, 2006.

The Practice of Generic Programming. With Jaakko J rvi. Invited tutorial at

the Adobe Systems Technical Summit, April 2004.

Advising

Current Ph.D. Students

Thomas Nelson

Weiyu Miao

John Michalakes

Michael Vitousek

Chris Wailes

Current M.S. Students

Shashank Bharadwaj

Current B.S. Students

Xing Jie Zhong

Co-advising

Devin Coughlin, Ph.D. student.

Graduated Students, Advised

Geo rey Belter, Ph.D. Fall 2012, now at Apple.

Jonathan Turner, M.S. Fall 2012, now at Microsoft.

Erik Silkensen, M.S. Spring 2012, pursuing a Ph.D. at Northeastern.

Justin E. Gottschlich, Ph.D, Fall 2010, now at Intel Labs.

Moss Prescott, M.S. Fall 2010.

Christopher Schwaab, B.S. Spring 2010.

Sri Teja Basava, M.S. Spring 2011, now at National Instruments.

Graduated Students, Co-advised

Ian Karlin, Ph.D. student, Spring 2011.

Scott Busch, M.S. Thesis, Fall 2009.

David Broman, Ph.D. at Link ping University, Spring 2010.

Tipp Moseley, Ph.D., Spring 2009. Now at Google.

Scott Williams, B.S., Independent Study Senior Project, Fall 2006.

Je Fi eld, Ph.D. student, Fall 2011.

Mentoring

Google Summer of Code, Summer 2006, 2007, 2008.

Service

Department

Departmental Executive Committee AY 2009 present

Computer Engineering Search Committee AY 2011-2012.

Head of the Digital Core Curriculum Committee AY 2012 present.

Research Community

PC Member. POPL 2014: The ACM SIGPLAN-SIGACT Symposium on

Principles of Programming Languages.

PC Member. The International Conference on Generative Programming:

Concepts & Experiences (GPCE 2013).

PC Member. The ACM SIGPLAN 2013 Workshop on Partial Evaluation and

Program Manipulation (PEPM).

PC Member. The ACM 2013 Conference on Programming Language Design

and Implementation (PLDI).

Review Committee Member. 2013 ACM SIGACT-SIGPLAN Symposium on

Principles of Programming Languages (POPL).

PC Member. NIER track of the 2012 International Conference on Software

Engineering (ICSE).

PC Member. Generative Programming and Component Engineering (GPCE)

2011.

PC Member. DSL 2011: IFIP Working Conference on Domain-Speci c

Languages.

PC Member. The International Workshop on Languages and Compilers for

Parallel Computing (LCPC 2011).

PC Member. Onward! 2011.

Review Committee Member. ACM Conference on Object-Oriented Programming

Systems, Languages, and Applications (OOPSLA 2011).

Program Chair. 2011 ACM SIGPLAN Workshop on Partial Evaluation and

Program Manipulation (PEPM 2011).

Program Chair. 2010 International Workshop on Foundations of Object-

Oriented Languages (FOOL 2010).

PC Member. The Fifth international Workshop on Automatic Performance

Tuning (iWAPT 2010).

PC Member. The ACM SIGPLAN Workshop on Types in Language Design

and Implementation (TLDI 2010).

PC Member. 1st International Workshop on Script to Program Evolution

(STOP 2009).

General Chair. Generative Programming and Component Engineering (GPCE)

2009.

PC Member. The ACM 2009 Conference on Programming Language Design

and Implementation (PLDI).

PC Member. IFIP Working Conference on Domain Speci c Languages (DSL

WC), July 2009.

PC Member. ACM Conference on Object-Oriented Programming Systems,

Languages, and Applications (OOPSLA 2008)

Program Chair. Generative Programming and Component Engineering (GPCE)

2008.

PC Member. ACM SIGPLAN 2008 Workshop on Partial Evaluation and

Program Manipulation (PEPM 2008).

PC Member. First Workshop on Generative Technologies (WGT 2008).

PC Member. European Conference on Object-Oriented Programming (ECOOP

2008).

Panel member for the ECOOP 2007 Doctoral Symposium and Ph.D. Students

Workshop.

PC Member. Generative Programming and Component Engineering (GPCE)

2007.

PC Member. The Boost Libraries Conference 2007.

Co-Chair. ACM SIGPLAN 2007 Symposium on Library-Centric Software

Design. Co-located with OOPSLA. I was responsible for obtaining ACM

sponsorship.

PC Member. Workshop on Generic Programming at ICFP 2006.

Organizer. Library-Centric Software Design Workshop at OOPSLA 2005 and

2006.

PC Member. Parallel Object-Oriented Scienti c Computing Workshop at

ECOOP 2005 and 2006.

PC Member. The Second MetaOCaml Workshop at GPCE 2005.

Reviewer. ESOP 2007, PARA 2006, POPL 2006, 2009, and 2011, PEPM 2009,

ACM TOPLAS, ACM TOMS, ICFP 2003, Software Practice and Experience,

Wiley Encyclopedia of Computer Science and Education (2008), Science of

Computer Programming, Journal of Object Technology, Journal of Functional

Programming..

Committees and Editing

Associate Editor, ACM TOMS 2011 present

Transactions on Mathematical Software

GPCE Steering Committee 2008 present

International Conference on Generative Programming and Component Engineering.

FOOL Steering Committee (Chair) 2011 present

International Workshop on Foundations of Object-Oriented Languages.

PEPM Steering Committee 2011 present

Workshop on Partial Evaluation and Program Manipulation.

Guest Editor. Special issue of the journal Science of Computer Programming

on Library-Centric Software Design.

C++ ANSI/ISO Standards Committee 2001 2008

Worked on the proposal for adding support for generic programming to C++

through the addition of special kinds of interfaces called concepts . Served

in the Library Working Group evaluating extensions to the C++ Standard

Library. Worked on the iterator concept and iterator adaptor proposals for

standard library extension.

Other

Contributor to Boost C++ Open Source Group 1999 2005

Contributed and maintained many software libraries including the Boost Graph

Library. Served as review manager for the Boost Unit Test Library, the Boost

Preprocessor Library, and the Boost MPI Library.



Contact this candidate