Undergraduate Students

Teaching

Undergraduate courses

This course is about problem solving and computation via algorithms.
We will cover a number of known algorithms (sorting, hashing, search,
indexing) and their applications. We will discuss methods for analyzing
existing algorithms and designing new algorithms.
Finally, the students will be introduced to complexity classes, in
particular the class of NP-completeness.

The topic of this course is the theory and practice of programming
languages. We will be focused on the design principles and programming
patterns of several programming languages from different programming
paradigms. We will pay particular attention to the program techniques in
functional programming, and why they are gaining greater importance in modern
programming.

Research

Open Data is the hottest addition to the Web. Back by various nations and
governments, millions of open data sets are being released by authoritative
sources. This is a vastly valuable opportunity for data scientists to gain
greater insights into a multitude of social and economic issues.

In collaboration with Toronto, we are
building an Internet scale data integration system specifically designed for
finding linkages in Open Data.

Your mobile phone knows more about what’s going on than you realize, and therefore, it should be able to make better recommendations that it’s doing now. In this project, we are building a new mobile based recommender system that can safely and privately observe its environment, deduce the situational context, and make more sensible recommendations to the user.

There are over 1.5 million IMDB movie entries, and roughly the same number of pixels on a mobile device. Is it possible to build an algorithm to map each movie to a single pixel for the purpose of data visualization? We are looking into ways of discovering graph structures based on a relational database, and then use the graph structure to generate a pixel level data visualization of (up to) millions of relational entities.

Computer Vision algorithms are challenging to implement. The data input is a big data stream, and the intermediate processors often require fine tuning. We are investigating the applications of streaming database technology to enable rapid development, deployment and tuning of computer vision workflow by the means of formal streaming algebra and structural optimization of algebraic expressions.

If computers can play Go brilliantly,
why can’t we use our mobile phones to solve general puzzles?

The reason is that we don’t have a great algebra (and an interface) to enable
user access to the powerful constraint solvers. This project is to investigate
the design and feasibility of such constraint solving interfaces (either as an
application, or a special purpose programming language).

2000

1998

Pu, Ken; ,
Education BASc, University of Toronto, Division of Engineering Science, 1998 MASc, University of Toronto, Department of Electrical and Computer Engineering, 2000. Thesis title:“Modeling and control of hierarchical discrete event,
, 1998, University of Ontario Institute of Technology