|
York University,Toronto Ontario Canada |
Enroled: September 1996
Graduated: May 2000
Degree: Bachelor of Science, Honors with Distinction
Major: Double Majored in Computer Science and Pure
Mathematics
Computer Science - Computer Graphics, Artificial Intelligence, and
Robotics
Mathematics - Analysis, Modern Algebra, Geometry,
Logic
Summer 1999
Advisor: Professor
Wolfgang Stuerzlinger
I implemented a tracking system to allow multi-user interaction with a virtual
environment using laser pointers. The project involved using video capture
in DirectX to obtain images of the area where the laser pointers would
be. These frames of video were filtered and then analyzed, using a simple
blob detection algorithm, to find the locations of any laser pointer dots
in the frame. The tracking system used a 2nd degree polynomial approximation
to predict the position of each laser pointer spot, to localize the search.
We then experimented with pulsing the laser pointers, using controlled output
from the computer's parallel port, so that multiple users with laser pointers
could interact with the system, with each laser pointer's dot uniquely identified.
Summer 1998
Advisor: Professor
Walter Whiteley
I worked in the area of Projective Geometry, using this paradigm to describe
the balance of forces in rigid frameworks in the plane and 3-space.
| Course Code | Description | Instructor |
| Fall/Winter 1999 | ||
| COSC 4101 | Advanced Data Structures
Amortized and Self Adjusting Data Structures, Dictionaries- BST: binary trees and binary search trees, B-Trees, Red-Black Trees, 2-3-4 Trees, Splay Trees, Augmenting Data Structures, Dynamic Order Statistics, Interval Trees Priority Queues - Leftist Heaps, Skew Heaps, Binomial Heaps, Fibonacci Heaps Disjoint Set Union Computational Geometry - 2D Linear Programming, Art Gallery Theorems and Triangulations, Convex Hull, Closest Pair Problem Approximation Algorithms for NP Complete Problems - Vertex Cover, The Traveling Salesman Problem, Set Cover, Subset Sum Selected Topics - Randomized Algorithms |
Mirzain |
| COSC 4242 | Signals and
Systems Signal analysis is central to many disciplines of Science and Engineering like sound reproduction, medical diagnosis, power generation, communications, radiastronomy, imaging etc and although these disciplines are quite different, their basics are very similar. And since systems can often be described by the way they respond to signals, we tend to study signals and systems together. In this course we will concentrate on linear time invariant systems, the only kind of systems that we can study in detail. The fundamental tool we use is the Fourier transform. |
Spetsakis |
| COSC 4331 | Computer Graphics
This course provides an introduction to computer graphics for computer science students. The first half concentrates on graphics hardware, graphics primitives, scan conversion, two and three-dimensional transformations and perspective. The second half concentrates on raster algorithms and image synthesis. List of topics: Applications, Input & Output Devices, Interactive Graphics Programs, Graphics Pipeline, Basic Modeling & Data Structures, Transformation, Camera & Perspective, Basic Visibility, Raster Graphics, RGB Color, Basic Texturing, Basic Ray Tracing, Free-form surfaces, Visualization. |
Stuerzlinger |
| COSC 4401 | Topics in Artificial
Intelligence: Intelligent Agent Modeling and Design One of the central concerns of Artificial Intelligence is the design and implementation of autonomous agents - active entities that perceive their environment, reason, plan and execute appropriate actions to achieve their goals (in service of their users), and react to external changes. These may be robots or intelligent software agents that "live" on the Internet. This course covers agent programming languages (such as our own, ConGolog, and others such as AGENT-0), logical models of agency, issues in agent architecture, and applications of intelligent agents. |
Lesperance |
| COSC 4421 | Introduction
to Robotics This course introduces the basic concepts of robotic manipulators and autonomous systems. After a review of some fundamental mathematics the course examines the mechanics and dynamics of robotic manipulators; forward and inverse kinematics, force and velocity, inertia and control. We will then examine autonomous robots; locomotion, sensing and control. The Undergraduate Robotics Laboratory is equipped with a CRS+ robot arm and a RWI B12 mobile robot. |
Jenkin |
| COSC 4422 | Computer Vision
Camera Geometry and Lenses, Binary Images , Segmentation and Edges, Fourier Transforms and Filtering: linear and non-linear, Visual Motion and Optical Flow, Visual Motion and Structure, Calibration, Color |
Spetsakis |
| MATH 4010 | Real Analysis (full year) Survey of the real and complex number systems, and inequalities. Metric space topology. The Riemann-Stieltjes integral. Some topics of advanced calculus, including more advanced theory of series and interchange of limit processes. Lebesgue measure and integration. Fourier series and Fourier integrals. |
Madras |
| MATH 3020 | Algebra I (full year) Introduction to the basic concepts of abstract algebra, with applications: groups (cyclic, symmetric, Lagrange's theorem, quotients, homomorphism theorems); rings (congruences, quotients, polynomials, integral domains, PID's and UFD's); fields (field extensions, constructions with ruler and compass, coding theory). |
Pelletier |
| Fall/Winter 1998 | ||
| COSC 3101 | Design and
Analysis of Algorithms Sorting and Selection - Randomized QuickSort and Selection, Heap sort and priority queues, Lower bound on sorting, Special sorting algorithms: CountingSort, BucketSort, RadixSort ,Selecting the k-th smallest item Algorithm Design Techniques - Greedy Methods, Dynamic Programming Graph Algorithms - Breadth-First-Search (BFS) and shortest paths, Depth-First-Search (DFS), Dags and topological sorting, Strongly connected components, Minimum Spanning Trees, Single Source Shortest Paths , All Pairs Shortest Paths, Network Flow and Matching Selected Topics - NP-completeness |
Mirzain |
| COSC 3121 | Introduction
to Numerical Computation 1 The course begins with a general discussion of computer arithmetic and computational errors. Examples of ill-conditioned problems and unstable algorithms will be given. The first class of numerical methods we introduce are those for nonlinear equations, i.e., the solution of a single equation in one variable. We then turn to a discussion of the most basic problem of numerical linear algebra: the solution of a linear system of n equations in n unknowns. The Gaussian elimination algorithm will be discussed as well as the concepts of error analysis, condition number and iterative refinement. Then we discuss polynomial and spline interpolation. We then turn to the least squares methods for solving overdetermined systems of linear equations, with a brief introduction to approximation theory. The emphasis in the course will be on the how, why and when of numerical approximation techniques. We will also discuss the development of numerical algorithms, and the use of mathematical software. |
Muldoon |
| COSC 3201 | Digital Logic Design
Binary Systems, Boolean Algebra, Simplification of Boolean Functions, Combinational Logic and MSI Components, Synchronous Sequential Logic, Registers Counters and Memory, Algorithmic State Machines, Families of Integrated Circuits, Asynchronous Sequential Logic. |
Spetsakis |
| COSC 3221 | Operating
System Fundamentals This course is intended to teach students the fundamental concepts that underlie operating systems, including multiprogramming, concurrent processes, CPU scheduling, deadlocks, memory management, file systems, protection and security. Many examples from real systems are given to illustrate the application of particular concepts. At the end of this course, a student will be able to understand the principles and techniques required for understanding and designing operating systems. |
Warton |
| COSC 3311 | Software Design
The purpose of this course is to teach the fundamentals of software design. Software design will be taught using object-oriented methods. The Business Object Notation, Eiffel programming language, and design by contract will be used as the medium, but comparisons to other methods and languages, like UML, OMT, Java, and C++, will be made. The course will cover the following topics: software quality, modularity, maintenance, and reusability; models of software development; logical foundations of software design; principles of software design. Object-oriented concepts. Design-by-contract. Notations for OO specification; use of quantifiers in contracts; client-supplier vs inheritance. Case studies in specification and design; realizing quality factors in specifications. The mapping from specification to code. How to write a test plan; how to document a testing process; testing techniques. Alternative design methods will be discussed and contrasted with the methods applied in lecture. |
Paige |
| COSC 3401 | Introduction
to Symbolic Computation Functional Programming, LISP & PROLOG |
P. H. Roosen-Runge |
| COSC 3402 | Introduction
to Artificial Intelligence Introduction to the basic concepts of AI using PROLOG |
Stachniac |
| MATH 3010 | Vector Integral Calculus Integrability of continuous functions over suitable domains, iterated integrals and Fubini's theorem, counterexamples, change of variables, Jacobian determinants, polar and spherical coordinates, volumes, vector fields, divergence, curl, line and surface integrals, Green's and Stokes's theorems, differential forms, general Stokes's theorem. |
|
| MATH 3210 | Principles of Mathematical Analysis Rigorous presentation, with proofs, of fundamental concepts of analysis: limits, continuity, differentiation, integration, fundamental theorem, power series, uniform convergence. |
O'Brien |
| MATH 2222 | Linear Algebra II Linear transformations and their representation by matrices, change of basis and similarity, eigenvalues and eigenvectors, diagonalization, inner product spaces, orthogonality, the Gram-Schmidt algorithm, least squares approximations, abstract vector spaces, various applications. |
Medvedev |
| Fall/Winter 1997 | ||
| COSC 2001 | Introduction
to Theory of Computation Finite automata and regular expressions. Practical applications, e.g., text editors. Pushdown automata and context-free grammars. Practical applications, e.g., parsing and compilers. Turing machines. Turing machines as a general model of computers. Introduction to the halting problem and NP completeness. |
Turpin |
| COSC 2011 | Fundamentals
of Data Structures C++ introduction; Object-oriented design, Linked Lists (stacks, queues) , Sequences, Analysis of Algorithms, Big-Oh notation, Trees, Priority queue; heap, Dictionary, binary search tree, AVL tree, Hash Tables, Graphs, Graph Traversals, Directed graphs, Graph Shortest Path, Minimum Spanning Tree, Review; Sets, quicksort, selection. |
Liu |
| COSC 2021 | Computer Organization
Computers can be usefully viewed as having a structure organized into several levels, ranging from high-level programming languages such as Pascal or C to digital logic circuits. Each level provides specific resources for the programmer which are created by the structure at the next lower level. This course intends to provide students basic understanding of computers at the lowest levels of this structure. The ways in which data are represented in memory and transformed by machine instructions are explored. The major functional blocks of a computer including main memory, control unit, ALU, input/output bus structures, interrupt system, DMA channels, and peripheral devices are studied. Some assembler programming and microprogramming will be required. |
Roumani |
| COSC 2031 | C, UNIX and X Window System The programming language C is taught as a second programming language. The course assumes some programming experience - typically that obtained in the first-year computer science course. The emphasis is on practical exploration of a particular strength of C, rather than its use as a general-purpose language. C is a tool-making tool for working at a low-level; it is a programming language designed for, and used in, the writing of utilities that access the primitives of the underlying machine architecture and the operating system. The UNIX programming environment is considered at both a) the command level (man 1): shells, utilities, filters, etc., and b) the system call (man 2) and standard library (man 3) levels. The focus in [2b] is on some Unix operating system user-interface primitives, e.g. fork/exec, file descriptors, read/write, etc. The emphasis here, as in [1], is on practical exploration. The X Window System will be presented practically, and at the level of the Xlib C-language library interface. The emphasis here is also on practical exploration, but now with visual graphic feedback. There will also be some theoretical consideration of the protocol and server-client network-transparent architecture, and the X prime directive: "mechanism, not policy". |
Wallis |
| MATH 2320 | Discrete Mathematical Structures Algebraic and combinatorial structures required in Computer Science and other disciplines. Review of sets; induction; combinatorics; graph theory, trees; big Oh-notation, complexity of algorithms; recursive definitions, recurrence relations; posets; congruence relations. This course emphasizes analysis, problem solving and proofs. |
Paige |
| PHYS 2040 | Special Relativity and Modern Physics This course introduces the two pillars of modern physics - the special theory of relativity and quantum mechanics. The relativistic concepts of space, time and energy are derived from first principles. The quantum nature of radiation and matter is introduced. Content: |
|
| Fall/Winter 1996 | ||
| COSC 1020 | Introduction to Computer Science 1 | |
| COSC 1030 | Introduction to Computer Science 2 | |
| MATH 1000 | Differential Calculus (Honours Version)
Axioms for real numbers, limits, continuity and differentiability. This course covers slightly fewer topics than AS/SC/AK/MATH 1300 3.0, but covers them in greater depth. It should be taken by all those planning an Honours degree in Mathematics or a Specialized Honours degree in Statistics. MATH 1000 aims to develop the students' ability to think and write clearly, logically and precisely, and to read a mathematical text with understanding. One goal is learning how to write proofs. (Of course, we will not spend all our time proving things!) |
Ganong |
| MATH 1010 | Integral Calculus (Honours Version) Riemann integral, fundamental theorems of calculus, transcendental functions, integration techniques, sequences, series. This course covers fewer topics than AS/SC/AK/MATH 1310 3.0, but covers them in greater depth. It should be taken by all those planning an Honours degree in Mathematics or a Specialized Honours degree in Statistics |
Ganong |
| MATH 1025 | Applied Linear Algebra Topics include spherical and cylindrical coordinates in Euclidean 3-space, general matrix algebra, determinants, vector space concepts for Euclidean n-space (e.g., linear dependence and independence, basis, dimension, linear transformations, etc.), an introduction to eigenvalues and eigenvectors. |
|
| MATH 1090 | Sets and Logic Propositional logic, predicate calculus. |
|
| PHYS 1010 | PHYSICS Topics include linear, rotational and oscillatory motion; Newtonian mechanics; electrostatics; magnetostatics; electric current and induction; heat; geometric and physical optics and sound. Differential and integral calculus and vector algebra are used. This course covers fewer topics than PHYS 1410 6.0, but covers them in greater depth. It should be taken by all those likely to enrol in 2000-level PHYS courses. Content: |