Karen Reid

Senior Lecturer
[Dept. of Computer Science]

Biography

Karen is a Senior Lecturer in Computer Science at the University of Toronto. She earned a BSc (Hon) and MSc in Computer Science from the University of Saskatchewan, but first completed an ARCT in piano performance from the Royal Conservatory of Music, and a BChMus from CMBC (now CMU) in Winnipeg. After a few years working on a PhD at the University of Toronto, Karen joined the department as Lecturer in 2001, and promoted to Senior Lecturer in 2006. In 2008 Karen was honoured to receive a Faculty of Arts and Science Outstanding Teaching Award.

Courses

I am on sabbatical from July 2008 -- June 2009 so I won't be teaching this year. I will still be around.

Past Courses

Undergraduate Projects

I am involved in supervising a number of undergraduate projects in the form of CSC 494/495 courses and also some funded projects. I am primarily interested in developing tools for use in the classroom and systems-oriented projects. Listed below are projects I am currently involved in. Descriptions of past projects can be found here.

Online Marking

We have been working on developing tools to help TAs grade programming assignments online since 2005.

OLM (short for OnLine Marking tool) aims to improve both the ease with which TAs grade programming assignments, and the quality of the feedback that the students receive. When a grader wants to mark an assignment, OLM displays the student's work in a two-pane browser view. The left pane shows the student's code, while the right pane shows a marking rubric. Graders can highlight sections of code using the mouse, then either apply a stock comment from the rubric, or enter a custom comment. Everything they do is stored on the server using AJAX, so that when marking is finished, the student can view the results in a similar read-only view.

We worked with Web-CAT in the summer of 2008 in the hopes of using it to allow students to submit assignments earlier, and get testing results back. We built a Python plugin for it, and did substantial work on an Eclipse plugin, but in the end we decided that it lacked some important features, and the development environment was too much of a hurdle to ask project students to work on.

Our current efforts are to take the best features from OLM and the testing ideas from Web-CAT and re-implement them in Ruby on Rails. The goal is to build a system that allows instructors to plugin different components based on their needs.

Here are two pictures from the three-day code sprint in January. The pictures show students working on two main projects: OLM, and Basie. Great fun, and hugely productive.

This project has been done with the collaboration of Jennifer Campbell and Greg Wilson, with funding from ITCDF grants and Google Summer of Code.

Operating System Visualization

Students in our third year Operating Systems course (CSC369) implement major components of a simple but realistic operating system, OS/161, on top of a hardware simulator. By instrumenting the simulator, we extract data that is used to display state information in a graphical form. This allows students to watch how the state changes as their code runs. The visualization tool currently provides a graphical representation of how physical memory is used by the operating system and the user-level threads that run on top of it. We will also provide students with ability examine the stack of the currently running thread, so that students can see how control switches between a user-level thread and the kernel.

We have made great progress on the prototype which is implemented in Java, but there is still lots of work to do. A longer term goal is to turn it into an Eclipse plugin.

Angela Demke Brown started this project, and we received funding from ITCDF to continue work on it.

Teaching Awards

Faculty of Arts and Science Outstanding Teaching Award: 2008

Computer Science Student Union Award for teaching excellence in Computer Science: 2003, 2006.

Publications

  • Karen Reid and Gregory V. Wilson: "DrProject: A Software Project Management Portal to Meet Educational Needs." Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education, March 2007. 5 pages.
  • Karen Reid and Gregory V. Wilson: "Learning by doing: Introducing version control as a way to manage student assignments." Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education, February 2005. 5 pages.
  • Ron Minnich and Karen Reid: "Supermon: High performance monitoring for Linux clusters." The Fifth Annual Linux Showcase and Conference, November 2001. 7 pages.
  • Karen Reid and Michael Stumm: "Overlapping Data Transfer with Application Execution on Clusters." Proceedings of the Second Workshop on Cluster-Based Computing, May 2000. 5 pages.