Historically my research areas have been algorithm design/analysis and computational complexity. I have 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 am currently exploring the area of programming languages by reading, attending conferences such as POPL and ICFP, and teaching graduate courses. I am particularly interested in purely-functional algorithms and data structures and their relationship with persistent data structures and concurrent algorithms. I am also interested in the connections between type theory and formal logic, and applications to verified computation. I have presented at workshops associated with TFP, and been on program committees of workshops associated with ICFP.
Here are some representative publications.
P. Ragde. Proust: a nano proof assistant. Electronic Proceedings in Theoretical Computer Science, 230: 63-75, 2016.
P. Ragde. Simple balanced binary search trees. Electronic Proceedings in Theoretical Computer Science, 170: 78-87, 2014.
P. Ragde. Mathematics is imprecise. Electronic Proceedings in Theoretical Computer Science, 106: 40-49, 2012.
M. R. Fellows, C. Knauer, N. Nishimura, P. Ragde, F. Rosamond, U. Stege, D. M. Thilikos, and S. Whitesides. Faster fixed-parameter tractable algorithms for matching and packing problems. Algorithmica, 52(2): 167-176, 2008.
V. Dujmovic, M. Fellows, M. Hallett, M. Kitching, G. Liotta, C. McCartin, N. Nishimura, P. Ragde, F. Rosemand, M. Suderman, S. Whitesides, and D. R. Wood. On the parameterized complexity of layered graph drawing. Algorithmica, 52(2):267-292, 2008.
I am in the process of posting a number of flâneries, online writings based on recent course offerings.
I was on sabbatical Jan 1 - June 30, 2020, based in New York City. In fall 2020, I taught CS 245E for the third time, and CS 600 for the fourth time.
My fall 2019 offering of CS 842, "Dependent Types and Software Verification", will return (revised and expanded) as CS 747, "Software Verification Using Proof Assistants", in summer 2021.
I do not expect to teach any open enrollment courses in fall 2021.
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.
A summary of my teaching history is available, as are a few anecdotes. I also have a set of essays on teaching written several years ago (many adapted from blogs I did for specific courses, back when blogging was new).
As Director of Undergraduate Studies from September-December 2019, I chaired the School of Computer Science's Undergraduate Academic Plans Committee (UAPC), and sat on the Faculty of Mathematics Undergraduate Affairs Committee (UAC). I previously held this role, again in a bridging capacity, from July-Dec 2018.
I am on the University-level Steering Committee for Gender Equity Grants, and play a role in selecting grant recipients, as part of the University's commitment to the HeForShe IMPACT framework.
In the School of Computer Science, I served on the Women in CS Committee from July 2015 to June 2019, and am faculty advisor to the Computer Science Club. Prior to July 2015, I was for several years in the pool of chairs for PhD defences throughout the university. I have been on the Undergraduate Academic Plans Committee several times, most recently ending in July 2015. Prior to July 2014, I served on the Outreach and Undergraduate Recruiting committees.
For several years, until August 2016, I was the Math Faculty representative on the University Tenure and Promotion Appeals Committee (in which capacity I acted as an observer at meetings of the Promotion and Tenure Committee for a Faculty other than my own). I am currently a member of the pool of Math faculty members from which panels are chosen to hear student appeals.
I was on the University Diversity Advisory Committee as a representative of the Faculty Association from January 2011 to August 2015.
For several years, I was on the Instructional Technologies Advisory Committee, which advised the Associate Vice-President (Academic) on issues relating to teaching and learning. It gradually stopped meeting, and I have no idea when it ceased to exist (2012 or later).
From September 2009 to September 2010, I served on the Teaching Excellence Council as one of the Math Faculty representatives.
Prior to July 2010, I served on the university-level Senate Undergraduate Council and the faculty-level Undergraduate Affairs Committee, and on the School's Space Committee.
I was interim Director of First-Year Studies in Computer Science for the Faculty of Mathematics from January to July 2006. I could not serve a full term because of an impending six-month sabbatical starting July 2007. Dan Brown returned from his sabbatical and took over the position.
From September 2003 to August 2005, I was on the University Appointments Review Committee (which reviews for the Provost all offers of faculty appointments made by Deans at the University).
From the time that Math Faculty Council moved to a representative format (see below) to August 2005, I was an elected representative from Computer Science on what was then called Representative Council. This Council met monthly to oversee academic policy and plans within the Faculty of mathematics.
From January 2002 to September 2004, I was a member of the Academic Board of the Independent Studies programme, which meets to approve the thesis proposals of students hoping to earn a Bachelor of Independent Studies.
From December 2000 to November 2003, I served on the Hagey Committee, which every year selects a distinguished lecturer to deliver the Hagey Lecture.
Until March 2004, I was one of the faculty representatives on the Teaching and Learning Technology Roundtable, an advisory panel reporting to the Associate Provosts and meeting monthly to assess, coordinate, and facilitate the implementations of learning technologies at UW. The Roundtable was replaced by a Teaching and Learning Council composed of winners of the Distinguished Teaching Award, and later resurrected as ITAC (see above).
From July 1998 to July 2002, I was the Associate Chair for Curricula of the Department of Computer Science (what is now Director of Undergraduate Studies), and in that role was chair of CS's Curriculum Committee (what is now UAPC). During that period I spearheaded the development of the new Bachelor of Computer Science degree and was chief negotiator for CS in the creation of the Bachelor of Software Engineering degree. I served as a member of the Curriculum Committee from July 1998 to July 2007.
In the period September 2000 to July 2002, I was a member of the CS Governance Committee whose report led to the formation of the School of Computer Science, and the Mathematics Governance Committee that redrafted the committee structure and bylaws of Mathematics Faculty Council, notably moving it from a committee of a whole to a representative council. That reform was undone by a subsequent dean in 2009.
For something like three years, I sat on UW's Presidential Commission for Institutional Planning which commenced work in September 1994. The members of this commission were selected by the Provost, who chaired the committee; the mandate of the commission was to produce a White Paper on strategic and long-term planning for the entire University, and this was done, under the title "Building on Achievement", in fall 1997. This is also known as the "Fifth Decade" report.
I served on the Status of Women and Inclusivity Committee (SWIC) of the Faculty Association of UW from May 1995. From January to July 1997 I chaired this committee, which made me an ex-officio (nonvoting) member of the FAUW Board of Directors.
I was once the faculty advisor to the Gay and Lesbian Liberation Organization of Waterloo (GLLOW). Actually, the only reason I can claim this is that many years ago they needed someone to sign a form for CIBC that allowed GLLOW access to a bank account whose balance was approximately thirty dollars in the hole. That's all I ever did for them, but before doing it, I asked if I could put it on my CV. This is also how I became the faculty advisor for the Computer Science Club, though I took a more active role with them.
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.