Author: University of Alberta. Dept. of Computing Science.