Prabhakar Ragde's former professorial duties


My research

Historically, my research areas started out in algorithm design/analysis and computational complexity. I worked on parallel algorithms, combinatorial optimization, randomized algorithms, graph-theoretic algorithms (notably those involving graphs of bounded pathwidth and treewidth), fixed-parameter-tractable algorithms, and computational complexity.

I found at one point that senior undergraduate students could not think algorithmically or write code from scratch; their early "objects-first" training seemed to be aggravating the problem. I designed and offered an alternative first-year sequence using functional programming, which became the basis of the courses that all Faculty of Mathematics students at the University of Waterloo take.

This led me to discover the fascinating world of functional programming, along with operational semantics and type theory. I spent time exploring the area of programming languages by reading, attending conferences such as POPL and ICFP, and teaching graduate courses. I was particularly interested in purely-functional algorithms and data structures and their relationship with persistent data structures and concurrent algorithms; and also the connections between type theory and formal logic, with applications to verified computation. I did not write any journal papers, but I presented at workshops associated with TFP, and served on program committees of workshops associated with ICFP.


My teaching

Some of my best course designs have been turned into flâneries; take a look.

Although I retired at the end of January 2026, I will teach CS 600 online for the MDSAI program in fall 2026, and Math 642 for the MMT program in winter 2027.

In winter 2006 and winter 2007, I developed a version of CS 245 (Logic and Computation) that is both more rigourous and more attuned to the rest of the CS curriculum than the ones normally taught. In fall 2007, Brad Lushman used my slides as a basis for his offering, and made a number of improvements. I keep his version online as a reference for students who might encounter a less-than-optimal conventional offering of the course. However, I think my CS 245E approach is better than what Brad or I did back then. This material is now available as a flânerie (link above).

A summary of my teaching history is available.


My committee duties

There are a lot of small tasks undertaken by various committees, at the department, Faculty, and university levels. There are also positions such as chair, director, and Dean, that are held by professors on a rotating basis. I never did any of those at a higher level than associate chair or associate Director, despite some urging to seek higher office. I used to have all the work I did listed here, but there's no point now. I'll just list some highlights.

At the university level, I served for nearly a decade on the University Tenure and Promotion Appeal Committee, in which capacity I sat as a nonvoting member on the Tenure and Promotion Committee for a Faculty other than my own. This taught me a lot about differences across the university and how things worked in other buildings. I also served on the University Appointments Review Committee, and the Hagey Committee, which selects and arranges an annual distinguished invited lecture.

There were a number of ad-hoc committees at the university level on which I served, notably a multi-year term on the Presidential Commission for Institutional Planning, which wrote the Fifth Decade report, one of a series of planning documents released every ten years. I also spent some time on committees of the Faculty Association, notably the Status of Women and Inclusivity Committee, which I chaired for a while, giving me a seat on the Board of Directors.

At the Faculty level, I spent time on the Faculty Tenure and Promotion Committee, on the Undergraduate Affairs Committee, and on the Student Appeal Committee.

In the School of Computer Science, which was the Department of Computer Science when I joined in September 1988, I served two terms as Associate Chair for Curricula, and returned twice to the equivalent School position of Associate Director of Undergraduate Studies to cover sabbatical leaves. I was also on the Curriculum Committee and equivalent Undergraduate Academic Plans Committee many times. I have also served on the departmental Tenure and Promotion Committee, on the Women in CS Committee, on the Equity, Diversity, and Inclusion Committee, and on Outreach and Undergraduate Recruiting, as well as numerous ad-hoc committees.

For three years (July 1993-1996), I held an at-large seat (originally gained by acclamation) on the Academic Policy Committee of the Mathematics Faculty. In that time, the committee did not hold a single meeting. My replacement was also acclaimed to the post. Years later, without the committee ever having met, I managed to get it written out of the revised Math Faculty bylaws.


Last updated 24 August 2026.
Prabhakar Ragde / plragde at uwaterloo.ca