Paul Gries is a Senior Lecturer in Computer Science at the University of Toronto. He earned a BA in 1992 and an M.Eng. in 1994, both from Cornell University, and worked as a software developer before coming to the University of Toronto to study computer science. He joined the faculty as a Lecturer in 1999.
Paul is universally admired for his skill and passion for teaching, and has been recognized with numerous teaching awards. He earned two Teaching Assistant Awards at Cornell University in 1992 and 1993, the University of Toronto Computer Science Student Union Award eight times, the University of Toronto Faculty of Arts and Science Dean’s Excellence Award eight times, the Students’ Administrative Council/Association of Part-time Undergraduate Students Teaching Award in 2005, and the Faculty of Arts and Science Outstanding Teaching Award in 2006.
Paul has introduced many innovations to our courses, always with an eye to the latest ideas in pedagogy and in the discipline of computer science. He has also been a major force in curriculum renewal. He has proposed and taught two new first-year courses that are alternatives to the traditional first-year sequence. These courses are designed to address the widely varying programming backgrounds of incoming first-year students. He also helped design another course that gives life science students the programming tools they need to excel at their careers. Most recently, he chaired the committee to redesign the computer science undergraduate curriculum at the University of Toronto.
He has co-authored several books on introductory computer science. His most recent text, Practical Programming (2009), has been translated into both Japanese and Korean, and is used at universities in Canada and abroad.
Paul has built many valuable educational tools, both for course management and for education. He developed a visual model of computer memory that demonstrates how computer programs manage and modify information. This model is used throughout the introductory sequence of computer science courses to help students understand how programs work and to help them write correct programs themselves. He has supervised the development of software tools to display these visualizations automatically. These tools are in use in both first- and second-year computer science courses. Paul worked with Wingware Inc. to tailor their professional programming tool to new programmers, and this free tool is now in use at many universities across North America.
For course management, Paul, along with his colleagues, developed a template for course websites. The template is used by many computer science instructors, thus providing a common interface for computer science students; this template is in use in other universities as well. Paul wrote an electronic marking system for TAs to give feedback on submitted programs, supervised the development of an automated marking system that is used in first-year computer science courses, and wrote a web-based remark request and response system. He proposed and helped implement a discussion board system for computer science that is now the primary means of communication with undergraduate computer science students.
Paul has made many contributions to computer science at the high school level. For three years he coordinated Computing Insights, a 3-week summer program for high school students interested in computer science. He created Computing Insights for Teachers, a 1-week summer program to help high school computer science teachers stay abreast of new developments in computer science. Paul has given several talks and workshops for the Association of Computer Science Education, ran several workshops for Professional Development Days for both the Toronto District School Board and the Toronto Catholic District School Board, and regularly volunteers to help with high school events run by the Department of Computer Science. In 2007, he was invited by the Ontario Ministry of Education to act as a consultant on the new high school curriculum for computer science.