CURRICULUM
VITAE
Brian Foote
209 W. Iowa
Urbana, IL 61801
(217) 328-3523 (H/O)
Thursday, 6 September 2001
Educational History
1994- University of Illinois at Urbana-Champaign
Ph. D. (Computer Science, in progress)
1989-1994: University of Illinois at Urbana-Champaign
Graduate Study. (Computer Science)
1985-1988: University of Illinois at Urbana-Champaign
M.S. (Computer Science)
1972-1976: University of Illinois at Urbana-Champaign
B.S. (Computer Science/Psychology)
Employment History
1999 Senior Scientist
The Refactory, Inc.
1997-1998 Visiting Resarch Progammer
Dept. of Computer Science
University of Illinois at Urbana-Champaign
1991 President for Life, Brian Foote Enterprises, Inc.
1983-1997 Laboratory and Realtime Software Specialist
(Academic Professional)
Cognitive Psychophysiology Laboratory
University of Illinois at Urbana-Champaign
1979-1983 Senior Systems/Research Programmer
Cognitive Psychophysiology Laboratory
University of Illinois at Urbana-Champaign
1977-1979 Research Assistant/Programmer
Cognitive Psychophysiology Laboratory
University of Illinois at Urbana-Champaign
Teaching Experience
Design Patterns in
Java
Caterpillar, Inc., Peoria, IL
April, 2001
Industrial Logic
Design Patterns Workshop
Sun Microsystems, New York, NY
November, 2000
Industrial Logic
Design Patterns Workshop
Chesapeake Technologies
September, 2000
Industrial Logic
Design Patterns Workshop
Chesapeake Technologies
July, 2000
Design Patterns in
Java
Caterpillar, Inc., Peoria, IL
July, 2000
Industrial Logic
Design Patterns Workshop
Siemens, Boca Raton, FL
June, 2000
Writing Patterns
Lucent Technologies, Naperville, IL, 8 December 1999
Writing Patterns
Lucent Technologies, Holmdel, NJ, 7 September 1999
Tutorial: Design
Patterns
Comdex Enterprise ’98, San Francisco, CA, 9 September 1998
Design Patterns in
Java
Caterpillar, Inc., Peoria, IL
24-27 August, 1998
Tutorial: Design
Patterns
Object World West ’97, San Francisco, CA, 21 July, 1997
Design Patterns in
Smalltalk
Ralston-Purina, Inc.
9-11 June, 1998
Tutorial: Design
Patterns
Object World East ’97, Boston, MA., 3 March, 1997
Design Patterns
Illinois Software Summer School
University of Illinois at Urbana-Champaign
20-22 July, 1996
Laboratory Programming
in C++
Psychology 496, Spring 1993
University of Illinois at Urbana-Champaign
Laboratory Programming
in C
Psychology 496, Spring 1989
University of Illinois at Urbana-Champaign
The Computer as a
Laboratory Instrument
Psychology/Computer Science 301, Fall, 1985
University of Illinois at Urbana-Champaign
Publications and
Presentations
Brian Foote and Laura Hill
Programming at the Edge of Chaos: The Emergence of eXtreme Programming
XP 2000, Caligari, Sardinia, 21-23 June 2000
(Extended Abstract, Accepted but Undelivered)
Neil Harrison, Brian Foote, and Hans Rohnert, editors
Pattern Languages of Program Design 4
Software Patterns Series
Addison-Wesley Longman, Winter 2000
Brian
Foote
Smalltalk
Patterns Safari
Tutorial,
Smalltalk Soltutions ’99, New York, NY
Brian
Foote and Joseph Yoder
Metadata and Active
Object-Models
Workshop
on Metadata and Active Object-Models
OOPSLA
'98, Vancouver, Canada
Sunday,
18 October 1998
Joseph
Yoder, Brian Foote, Dirk Riehle, and Michel Tilman, organizers
Brian
Foote
An Object-Oriented
Framework
for Reflective Metalevel
Architectures
Doctoral
Dissertation, in progress. (Advisor:
Ralph E. Johnson)
Dept.
of Computer Science
University
of Illinois at Urbana-Champaign
Brian
Foote
Reflective
Programming in Smalltalk
Tutorial,
Smalltalk Soltutions ’98, New York, NY
Brian
Foote and Don Roberts
Lingua Franca
Firth
Conference on Pattern Languages of Programs (PLOP '98)
Monticello,
Illinois, August, 1998
John
Brant, Brian Foote, Ralph E. Johnson, and Donald Roberts
Wrappers
to the Rescue
Proceedings of the
12th European Conferences on Object-Oriented Programming (ECOOP '98)
Brussels, Belgium, 20-24 July 1998
Brian
Foote and Joseph Yoder
Metadata and Active
Object-Models
Firth
Conference on Pattern Languages of Programs (PLOP '98)
Monticello,
Illinois, August, 1998
Brian
Foote and Joseph Yoder
The Selfish Class
Pattern Languages of
Program Design
Robert
Martin, Dirk Riehle, and Frank Buschmann, editors
Addison-Wesley,
1998
Brian
Foote
Confessions of a
Framwork Zealot
Workshop
on Developing Successful Object-Oriented Frameworks
OOPSLA
’97, Atlanta, GA
Todd
Hansen, Steven Fraser, Craig Hilsenrath, Bill Opdyke, and Arthur Riel,
organizers
Brian
Foote and Joseph Yoder
Big Ball of Mud
Fourth
Conference on Pattern Languages of Programs (PLOP '97)
Monticello,
Illinois, September, 1997
Brian
Foote and Joseph Yoder
Attracting Reuse/The
Selfish Class
Third
Conference on Pattern Languages of Programs (PLOP '96)
Monticello,
Illinois, September, 1996
Brian
Foote
An Objective Look at
Subjectivity
Workshop
on Subjectivity in Object-Oriented Programming
William
Harrison, Harold Ossher, and Hafedh Mili, organizers
OOPSLA
’95, Austin, TX
Brian
Foote
Process and
Predicability in an Age of Reuse
(Leave the Predictions
to Jean Dixon)
Workshop
on OO Process and Metric for Effort Estimation
15
October, 1995
Dennis
de Champeaux, Simon Horner, and Granville Miller, organizers
OOPSLA
’95, Austin, TX
Brian
Foote and Joseph Yoder
Evolution, Architecture,
and Metamorphosis
Second
Conference on Pattern Languages of Programs (PLOP '95)
Monticello,
Illinois, September, 1995
Pattern Languages of
Programs Design 2
John
M. Vlissides, James O. Coplien, and Norman L. Kerth, editors
Addison-Wesley,
1996
Brian
Foote
Where Do Reusable
Objects Come From?
Presentation,
Software Engineering Summer School
Illinois
State University, Normal, IL
June,
1995, Billy Lim, organizer
Brian
Foote
Reflection as a Basis
for Subjectivity
Workshop
on Subjectivity in Object-Oriented Programming
William
Harrison, Harold Ossher,
Randall
B. Smith, and David Ungar, organizers
OOPSLA
’94, Portland, OR
Brian
Foote and William F. Opdyke.
Life Cycle and
Refactoring Patterns that
Support Evolution and
Reuse
First
Conference on Pattern Languages of Programs (PLOP '94)
Monticello,
Illinois, August, 1994.
Pattern Languages of
Program Design
James
O. Coplien and Douglas C. Schmidt, editors
Addison-Wesley,
1995.
Brian
Foote
Object-Oriented
Reflection and Metalevel Architectures
Workshop
Report
OOPSLA
‘93 Addendum to the Proceedings, pages 123-126
OOPS
Messenger Volume 5, Number 2, April 1994
Brian
Foote
A Fractal Model of the
Lifecyle of Reusable Objects (abstract)
Workshop
on Process Standards and Iteration
OOPSLA
'93 Washington, DC
Jim
Coplein, Russel Winder, and Susan Hutz, organizers
Brian
Foote
Architectural Balkanization
in the Post-Linguistic Era
Workshop
on Object-Oriented Reflection and Metalevel Architectures
OOPSLA
'93 Washington, DC
Brian
Foote, chair
Pierre
Cointe, Dan Friedman, Jacques Malenfant,
Dave
Thomas, and Yasuhiko Yokote, organizers
Brian
Foote
Objects, Reflection, and
Open Languages (abstract)
IMSA
1992 Workshop on Reflection and Metalevel Architectures
Tokyo,
Japan
Akinori
Yonezawa and Brian C. Smith, editors
Brian
Foote
Living Languages
Workshop
on Progamming Languages: The Next
Generation
OOPSLA
'92, Vancouver, British Columbia, Canada
Mamdouh
Ibrahim, chair
Brian
Foote
Objects, Reflection, and
Open Languages
Workshop
on Object-Oriented Reflection and Metalevel Architectures
ECOOP
'92 Utrecht, The Netherlands
Brian
Foote, chair
Satoshi
Matsuoka, Pierre Cointe, organizers
Mamdouh
Ibrahim, Gregor Kiczales, advisors
Designing Reusable Classes
Ralph E. Johnson and Brian Foote
Ruben Prieto-Diaz and Guillermo Arango
Domain
Analysis and Software Systems Modeling
(IEEE
Computer Society Press Tutorial)
IEEE Computer Society Press, Los
Alamitos, CA
May 1991, 299 p.
ISBN: 081868996X (case), 0818659963 (mf)
Brian
Foote
Flexible Foundations and
Movable Walls
Workshop
on Reflection and Metalevel Architectures
OOPSLA
'91, Phoenix, AZ
Mamdouh
Ibrahim, Brian Foote, Pierre Cointe, Gregor Kiczales,
Satoshi
Matsuoka, and Takuo Watanabe, organizers
Brian
Foote
A Fractal Model of the
Lifecyle of Reusable Objects
Workshop
on Reuse
OOPSLA
'91, Phoenix, AZ
Rebecca
Joos and John D. McGregor, organizers
Brian
Foote
Object-Oriented
Reflective Metalevel Architectures:
Pyrite or Panacea?
Workshop
on Reflection and Metalevel Architectures
OOPSLA/ECOOP
'90, Ottawa, Ontario, Canada
Mamdouh
Ibrahim, Brian Foote, Jean-Pierre Briot, Gregor Kiczales,
Satoshi
Matsuoka, and Takuo Watanabe, organizers
Brian
Foote
The Craftsmen vs. the
Scavengers:
The Ruminations of a
Foot Soldier on the Reuse Revolution
Workshop
on the Reusable Component Marketplace
OOPSLA
'89 New Orleans, LA
John
T. Mason, organizer
Brian
Foote
Class Warfare: Classes
vs. Prototypes
Workshop
on Objects Without Classes
OOPSLA
'89 New Orleans, LA
David
Ungar, organizer
Brian
Foote and Ralph E. Johnson
Reflective Facilities in
Smalltalk-80
OOPSLA
'89, New Orleans, LA
October
1-6 1989 pages 327-335
SIGPLAN
Notices, Volume 24, Number 10, October 1989
Brian
Foote
Reflective Facilities in
Smalltalk-80
Presentation
to the Spring 1989 Meeting of the
Midwest
Association for Programming Languages and Systems (MAPLAS)
University
of Wisconsin, Madison, WI
Brian
Foote
Domain Specific
Frameworks Emerge as a System Evolves
Workshop
on Methodologies and Object-Oriented Programming
OOPSLA
'88, San Diego, CA
Norman
L. Kerth, organizer
Brian
Foote
Designing Reusable
Realtime Frameworks
Workshop
on Realtime Systems
OOPSLA
'88 San Diego, CA
John
Gilbert, organizer
Ralph E. Johnson and Brian Foote
Designing Reusable
Classes
Journal of Object-Oriented Programming
Volume 1, Number 2, June/July 1988
pages 22-35
Brian
Foote
Designing to Facilitate
Change with Object-Oriented Frameworks
Masters
Thesis, 1988 (Advisor: Ralph E.
Johnson)
Department
of Computer Science
University
of Illinois at Urbana-Champaign
Earle Heffley, Brian Foote, Tony Mui, and Emanuel Donchin
The Pearl II System
Hardware and Software
Behavioral Toxicology and Teratology, 1985
Brian Foote
Pearl II System
Subroutine Manual
CPL Technical Report, 1985
University of Illinois at Urbana-Champaign
Brian Foote
ZAP Z8000
Cross-Assembler Reference Manual
Supersoft, Inc., 1984
Brian Foote, Earle Heffley, and R. Michael Anderson
The Pearl II System (Presentation and Workshop)
Convention of the Human Factors Society, Norfolk, VA, 1984
Object-Oriented
Programming Languages
1984- Object Pascal/Classcal (Apple Lisa Toolkit)
1985- Smalltalk-80 (Berkeley, Apple Lisa/Mac, ParcPlace, VisualWorks, Digitalk, IBM/VA)
1987- C++ (cfront, MPW, IBM AIX C++, DOS/Windows (MS, Borland, Zortech, Symantec)
1989- Common Lisp/CLOS (PCL, Franz Allegro, Mac)
1990 Objective-C (NextSTEP)
1995- Java
Object-Oriented
Frameworks
Lisa Toolkit, MVC, MacApp, OWL, MFC, AWT, JFC
Professional
Organizations
1979-present IEEE Computer Society
1977-present Association for Computing Machinery
1977-present SIGPLAN
Professional
Activities
2002 Panels Chair, OOPSLA 2002, Seattle, WA
2001 Invited Speaker, NetObject Days, Erfurt, Germany
2001 Panel Organizer, OO Survivor, Tampa Bay, FL
2001 Program Committee Member, OOPSLA 2001, Tampa Bay, FL
2001 Workshop Organizer, Metadata and Adaptive Object Models, Smalltalk Solutions 2001
2000 Hillside Group, Fall Retreat, Minneapolis
2000 Panel Organizer, Worse-is-Better, OOPSLA2K, Minneapolis
2000 Workshop Organizer, Pattern Refactoring, OOPSLA2K, Minneapolis
2000 OOPSLA Tutorial Committee, OOPSLA2K, Minneapolis
2000 TOOLS Europe Program Committee
1999 Workshop Organizer, Metadata and Active Object-Models, OOPSLA ’99, Denver
1999 Workshop Organizer, System Envisioning, OOPSLA ’99, Denver
1999 Panel Organizer, The Show Trial of the Gang of Four, OOPSLA ’99, Denver
1999 Program Committee Member, PLoP ’99, Monticello
1998 Workshop Organizer, Metadata and Active Object-Models, OOPSLA ’98, Vancouver
1999 Program Committee Member, PLoP ’98, Monticello
1998-1999 Editor, Pattern Languages of Program Design 4, Addison-Wesley Longman
1997 Program Committee Member, PLoP ’97, Monticello
1996-1999 UIUC Patterns/Software Architecture Group Coordinator
1996 Conference Chair, PLoP ’96, Monticello
1996 Program Committee Member, Reflection ’96, San Francisco
1996 Local Arrangements Chair, Reflection ’96, San Francisco
1995 Local Arrangements Chair, PLoP ’95, Monticello
1994 Registration Coordinator, PLoP ’94, Monticello
1993-present UIUC Patterns/Software Architecture Group Member
1993 Assistant to the Program Chair, OOPSLA ’93, Washington
1993 Workshop Chair, Reflection and Metalevel Architectures, OOPSLA ’93, Washington
1992 Workshop Chair, Reflection and Metalevel Architectures, ECOOP ’92, Utrecht
1991 Workshop Organizer, Reflection and Metalevel Architectures, OOPSLA ’91, Phoenix
1990 Workshop Organizer, Reflection and Metalevel Arch., OOPSLA/ECOOP ’90, Ottawa
1986-2002 Participant, OOPSLA I-XVII
Consulting History
2000 Arthur Andersen, ePatterns (Patterns and e-Commerce) Workshop Mentor
1999- Illinois Dept. of Public Health (Smalltalk)
1999- Lucent, Patterns Course Development
1997-1998 Editor, Addison-Wesley Technology Exchange Co.
1994- University of Northern Colorado
1994- Queens College, Queens, NY
1991-1993 HBRL Inc., Potomac, MD
1985 University of Maryland, Baltimore, MD
1984 University of Manchester, Manchester, England
1984 Technion, Haifa, Israel
1984 NASA Langley Research Center, Langley, VA
1984-1988 ARD Corporation, Columbia, MD
1983-1985 National Institutes of Health, Bethesda, MD
1983-1991 Medical College of Pennsylvania, Philadelphia, PA
1983-1989 University of Connecticut Health Center, Fairfield, CT
1981-1989 SuperSoft, Inc., Sunnyvale, CA
1979 Stanford University/Palo Alto VA Hospital, CA