header2
bio projects contact
 
education
work

 

Eduation

University of British Columbia 2010, Bachelor of Computer Science
Received: Grace Hopper State Farm Scholarship 2010, Student Services Award for Volunteering 2009, Natural Sciences and Engineering Council Undergraduate Research Summer Award 2009

International Exchange: University of California – Irvine
Donald Bren School of Information & Computer Sciences, 2008 - 2009


University of British Columbia, Bachelor of Arts 1999

Technical
Vancouver Institute of Media Arts, Introduction to Maya 2006

Art Institute of Vancouver, Certificate: Media Arts Core Studies 2001

Simon Fraser University, Certificate in Magazine Editing 2000

Computer Science and Math Courses

UBC Winter 2009 - 2010  
CPSC 304 INTRODUCTION TO RELATIONAL DATABASES
Overview of database systems, ER models, logical database design and normalization, formal relational query languages, SQL and other commercial languages, transaction processing, concurrency control and recovery. 
CPSC 313 COMPUTER HARDWARE AND OPERATING SYSTEMS
Instruction sets, pipelining, code optimization, caching, virtual memory management, exception processing, execution time of programs.
CPSC 320 INTERMEDIATE ALGORITHM DESIGN AND ANALYSIS
Systematic study of basic concepts and techniques in the design and analysis of algorithms, illustrated from various problem areas. Topics include: models of computation; choice of data structures; graph-theoretic, algebraic, NP Complete and text processing algorithms. 
CPSC 426 COMPUTER ANIMATION
Motion in computer graphics for characters and their environments. Keyframing, inverse kinematics, parametric curves, particle systems, rigid body dynamics, contact and collision, controller-based active motion, motion capture.
CPSC 448B COMPUTER HARDWARE AND OPERATING SYSTEMS
Open ordinarily to Honours students in Computer Science, with the permission of the department head.
DoodleACharacter: Developed a user interface that allows users to doodle a biped character in 2D using overlapping circles. System generates a 3D character based on the user’s doodle which interfaces with ODE physics engine for walking in a physically-based world. Based on the ACM SIGGRAPH 2004 paper “Motion Doodles: An Interface for Sketching Character Motion”. Developed in Python and wxWidgets using Eclipse PyDev.

MATH 307 APPLIED LINEAR ALGEBRA
Applications of linear algebra to problems in science and engineering; use of computer algebra systems for solving problems in linear algebra. 

ENGLISH 301 TECHNICAL WRITING
Study of the principles of written communication in general business and professional activities, and practice in the preparation of abstracts, proposals, reports, and correspondence. 
UCI Winter 2008 - 2009
CS 112 COMPUTER GRAPHICS
Introduction to the fundamental principles of 3D computer graphics including polygonal modeling, geometric transformations, visibility algorithms, illumination models, texturing, and rasterization. Use of an independently-learned 3D graphics API to implement these techniques.
CS 113 COMPUTER GAME DEVELOPMENT
Introduction to the principles of interactive two- and three-dimensional computer game development. Concepts in computer graphics, algorithms, software engineering, art and graphics, music and sound, story analysis, and artificial intelligence are presented and are the basis for student work.
CS 114 ADVANCED GRAPHICS
Projects in advanced 3D graphics such as illumination, geometric modeling, visualization, and animation. Topics may include physically based and global illumination, solid modeling, curved surfaces, multiresolution modeling, image-based rendering, basic concepts of animation, and scientific visualization.
CS 117 PROJECT IN COMPUTER VISION
Topic for this year is recovering the 3D geometry of the world from images. The goal is to produce a working 3D capture system.
CS 125 NEXT GENERATION SEARCH SYSTEMS
Study concepts and techniques related to all aspects of Search Systems. Consider basic search technology and the state of art systems. Explore rapidly developing techniques for multimedia search, local search, event-search, and video-on-demand. This course explores the underlying principles and techniques required to develop Search Systems for the next generation of the Web. Functionality required for the next generation search approaches will be identified and principles and techniques to implement systems for the next generation search will be explored. In this course you will study, research, and implement some of these techniques.
CS 132 COMPUTER NETWORKS
An introductory course on computer network architectures. Layering approach of communication protocols is introduced, and the function of each layer is explained. Various examples are shown from long-haul networks and local area networks to B-ISDN and high speed networks.
CS 133 ADVANCED COMPUTER NETWORKS
Fundamental principles in computer networks are applied to obtain practical experience and skills necessary for designing and implementing computer networks, protocols, and network applications. Various network design techniques, simulation techniques, and UNIX network programming are covered.
CS 146 MULTITASK OPERATING SYSTEMS
User- and systems-level programming of modern Internet-connected, multi-user, multitasking operating systems. Shells, scripting, filters, pipelines, programmability, extensibility, concurrency, inter-process communication. Concrete examples of a modern operating system (Unix programmed in C) are used.
CS 171 INTRO ARTIFICIAL INTELLIGENCE
Different means of representing knowledge and uses of representations in heuristic problem solving. Representations considered include predicate logic, semantic nets, procedural representations, natural language grammars, and search trees.
ICS 80 C++ 4 JAVA PROGRAMMERS
This was a programming heavy course focused on implementing fundamental algorithms in C++. The course covered the C++ language in depth, topics included how the language is parsed and compiled, the linker, classes, passing objects as parameter, pointers, polymorphism and parent/child classes, event simulation, dynamically linked libraries and other C++ fundamentals.
MATH 2D CALCULUS III
Analytic geometry in 2 and 3 dimensions, partial and directional derivatives, chain rule, maxima and minima, second derivative test, Lagrange multipliers, multiple integrals with applications. Differential and integral calculus of real-valued functions of several real variables, including applications.
UBC Winter & Summer 2007 - 2008  
CPSC 310 INTRO TO SOFTWARE ENGINEERING
Specification, design, implementation and maintenance of large, multi-module software systems. Principles, techniques, methodologies and tools for computer aided software engineering (CASE); human-computer interfaces, reactive systems, hardware-software interfaces and distributed applications.
CPSC 221 BASIC ALGORITHMS AND DATA STRUCTURES
Design and analysis of basic algorithms and data structures; algorithm analysis methods, searching and sorting algorithms, basic data structures, graphs and concurrency.
CPSC 213 INTRO TO COMPUTER SYSTEMS
Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks.
CPSC 211 INTRO TO SOFTWARE DEVELOPMENT
Software design and the development of robust abstractions; design practices, data abstractions, inheritance, testing, concurrency and distributed computing. 
CPSC 111 INTRO TO COMPUTATION
Basic programming constructs, data types, classes, interfaces, protocols and the design of programs as interacting software components.
STATS 203 STATISTICIAL METHODS
Organizing, displaying and summarizing data. Inference estimation and testing for elementary probability models.
MATH 101 CALCULUS II
The definite integral, integration techniques, applications, modeling, linear ODE's. 
MATH 221 INTRODUCTION TO LINEAR ALGEBRA
Systems of linear equations, operations on matrices, determinants, eigenvalues and eigenvectors, diagonalization of symmetric matrices. 
SFU Summer 2007
CMPT 120 INTRO TO PROGRAMMING
An elementary introduction to computing science and computer programming, fundamental concepts and terminology of computing science, acquire elementary skills for programming in a high-level language and be exposed to diverse fields within, and applications of computing science.
MACM 101 DISCRETE MATHEMATICS
Introduction to discrete mathematics; i
ntroduction to counting, induction, automata theory, formal reasoning, modular arithmetic.
MATH 150 CALCULUS I
Logarithmic and exponential functions, trigonometric functions, inverse functions. Limits, continuity, and derivatives. Techniques of differentiation, including logarithmic and implicit differentiation. The Mean Value Theorem. Applications of Differentiation including extrema, curved sketching, related rates, Newton’s method. Antiderivatives and applications. Conic sections, polar coordinates, parametric curves.