Gregor Kiczales

Professor

Office
ICCS
311
Office Phone #
604-822-4806

Academic Information

Undergraduate Study M.I.T. (1978-1983); Research Staff, MIT Lab for Computer Science (1980-1983); Member of Technical Staff, Symbolics Inc. (1983-1984); Member of Research Staff, Xerox PARC (1984-1999); Manager, Software Design Area, Xerox PARC (1992-1999); Principal Scientist, Xerox PARC (1996-1999); Professor, University of British Columbia (1999-); Xerox/Sierra Systems/NSERC Software Design Chair, UBC (1999-).

Interests

My research is directed at enabling programmers to write programs that, as much as possible, look like the design. My belief is that programs that clearly express the design structure they implement are easier to maintain, because questions about what a part of the program does, why it does that, and what other parts of the program depend on that behavior become easier to answer.

In pursuit of this goal, most of my research has been in programming language design and implementation, but I am also interested in programming environments, design and coding styles, and software engineering principles.

A key theme underlying my work is mechanisms that support crosscutting program modules. These are units of code that deliberately cut across each other's modularity boundaries. My belief is that this kind of modularity, when grounded in proper principles, can make complex systems significantly easier to develop and maintain. The goal of my work is to discover these principles and the mechanisms that can support them.

Research Interests

programming languages
computer science education

Research Groups

SPL: Software Practices Lab

Latest Courses

2022 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2021 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2020 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2020 Summer

CPSC 110 - Computation, Programs, and Programming

2019 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2018 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2018 Summer

CPSC 110 - Computation, Programs, and Programming

2017 Winter

CPSC 110 - Computation, Programs, and Programming

2016 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2015 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming

2014 Winter

CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming
CPSC 110 - Computation, Programs, and Programming