University of Toronto
Steve Engels
Associate Professor, Teaching Stream,
Dept. of Computer Science, University of Toronto

Last modified on May 26, 2006

Research Profile

I've dabbled in a few research areas over the years. Chances are, you're interested in my current research activities, but there are other options too, just in case:

Current Research -- Past Research -- Pre-UofT Research

Current Research

My current research interests revolve around video game design, app creation, open data and applications of artificial intelligence (largely related to game design). References to publications will be coming soon, but this section is in the midst of heavy renovation at the moment.

Games for the Blind

Over the past several years, I have been working with Daniel Zingaro (a blind lecturer in our department) on designing games for blind players. Our goal is to raise the standard of these games, by providing a set of best practices for potential game designers.

Games for Science Education

Our student research teams work with UofT's Science Unlimited program to create games that can supplement the high school science curriculum. We generate around half a dozen games each year, in the hope that we can create a complete corpus of activities that help science teachers in and out of the classroom.

Games for Seniors

I've done some work over the years with Dr. Jing Feng (and indirectly, with Dr. Ian Spence) on their research into video games to improve cognition. Based on their findings, we make games that act as the basis for further research. They provide the target, and we try to hit it :)

Automatic Music Generation

We have created software that can take in a piece of music, analyse the patterns in the notes, and generate original music in the same style, in real time, forever. We presented this research at the Game Developer's Conference in 2011, and have been working on it since then to improve the way it generates music at a high level.

3D Terrain Generation

Similar to the music generation project, we created a tool that allows a level designer to specify basic constraints that a level must have, before filling in the rest of the level with procedurally generated terrain. This tool allows levels to be stored very cheaply as simply contours, which would make it easier for game servers to transmit large-scale levels in a short amount of time. In addition, the type of terrain generated by this tool can be based on a corpus of example levels, which can make the style of the new level imitate the style of the original level.

Augmented Reality

Lately we've been working on making a real-time augmented reality product for mobile devices, which detects features in a room with the digital camera, and estimates the dimensions of the room based on the relative movement of these features.

Open Data

Open data (and big data in general) will be a really big thing in the not-so-distant-future. Large information datasets are a currency that some people hoard and are reluctant to share. But this is why it's exciting to have groups like the Canadian government release large datasets in the hope that people will generate cool apps from me :)

Past Research

My initial research interests at the University of Toronto were in applications of artifical intelligence techniques.


I hate the thought of identity theft, and wanted to find a way to prevent people from using my computer while I'm away from my desk, or impersonating me after hacking my account. We created a secondary security algorithm that tracks the cadence of a user's typing style, and would kick a current user out if the user's typing style didn't match that of the account owner.

Captcha Decoding

One day I wondered how hard it would be to remove the distortions from a Captcha text image. As it turns out, the distortions wern't the biggest obstacle to overcome. Getting a decent OCR tool that's available for free? Now that's hard.

Plagiarism Detection

What features do you use to figure out that two students have been cheating off each other for their assignment? We created a neural network that trains off student assignments, to figure out what features are good indicators for plagiarism. Not only does it create a strong classifier, it lets you know which features are important, and which ones aren't useful at all.

Steve's Research, before UofT

My research interests started in artificial intelligence, with leanings towards natural language processing. I did my master's degree at the University of Waterloo, under the supervision of Dale Schuurmans.

During that time, I was exploring the areas of machine learning, natural language and information extraction. I took a term as a graduate intern at Whizbang! Labs and took another term to teach.

The focus of my research was on the use of human learning techniques to improve the performance of language learning systems, particularly through the use of developmental learning heuristics. See the documents below for more information on these past research interests.

M.Math Thesis

Effects of Developmental Heuristics for Natural Language Learning

Supplementary Slides, Intro to Comp Sci course (CS 134, UWaterloo)

Explanation of Interfaces CS 134 Slides Postscript, Powerpoint
Davis Centre Simulation Document CS 134 Slides Powerpoint
Code for Sublist and Binary Tree Methods CS 134 Slides Postscript, Powerpoint
Maximum Sum Solutions CS 134 Document Word
So You Want To Do Formal Verification CS 134 Handout Postscript, Word
Verification of Selection Sort CS 134 Document Postscript
Verification of Quicksort CS 134 Document Word

Research Presentations

Corpus Tagging and Collocations Statistical NLP Presentation
Techniques for Tagging Parts of Speech Statistical NLP Presentation

Course Reports

Heuristic Methods for Planning Problems CS 686 Project Report
Use of Personality in Intelligent Agents CS 685 Project Report
Design of a Multimedia Web Crawler CS 748 Project Implementation

Stat NLP Tutorials

Maximum Entropy Markov Models My quick tutorial
Lagrangian multipliers My quick tutorial
Shrinkage My quick tutorial
The Viterbi algorithm My quick tutorial
CKY & Earley parsing My quick tutorial
Boosting My quick tutorial


Profile of an Information Extraction Company Summary of Fall 2000 Internship
Markov Indecision Processes Statistical Research Humour :)