Graduate Program in
Computer Science and Engineering

Supplemental Calendar 2012-2013

TABLE OF CONTENTS

INTRODUCTION

The Graduate Program in Computer Science and Engineering offers courses and opportunities for advanced studies and research leading to the degrees of Master of Science and Doctor of Philosophy in Computer Science as well as Master of Applied Science in Computer Engineering. The M.Sc. program covers a wide variety of subdisciplines. The M.A.Sc. program concentrates on Computer Systems Engineering and Interactive Systems Engineering. The Ph.D. program concentrates on Theoretical Computer Science (especially, algorithms, complexity, computability, logic, parallel, concurrent and distributed computing), Intelligent and Interactive Systems (especially, artificial intelligence, computer vision, human-computer interaction, information retrieval, robotics, speech, virtual reality) and Systems Software and Hardware (especially, communications, data mining, databases, networks, signal processing and software engineering).

FACILITIES

The Computer Science facility, which can be accessed remotely by dial-up and through the internet, consists of high-end Linux platform servers and workstations, colour x-terminals, Windows platform workstations and networked printers. Sun-Solaris based workstations are also available for some specialty applications. The laboratories are accessible 24 hours a day, 7 days a week. They include: Vision, Graphics and Robotics Labs equipped with multimedia hardware including video and audio facilities, some autonomous mobile robots, two CRS robot arms and a 6-sided Virtual Reality Cave driven by a cluster of high-end graphics servers. The Multimedia Lab has resources for creating and editing audio and broadcast-quality video and is equipped with Windows and MacOS X workstations. The Real-time Lab provides experience on design, construction, and verification of real-time systems. The Software Engineering Lab provides experience with various phases of the software development life cycle. X-terminals are available in each of the graduate student and faculty of offices in addition to a general-use lab equipped with multiplatform workstations. The labs are supported and maintained by the Department of Computer Science and Engineering's own technical staff.
 

ADMISSION INFORMATION AND REQUIREMENTS

INFORMATION

The Graduate Program in Computer Science welcomes outstanding graduates of recognized universities. Preference is given to applicants with strong academic backgrounds who appear promising as researchers.

Applications for admission to the program must be received by February 1st from all applicants, along with an application fee of $80. An application file will not be processed before the receipt of the application fee. Since the visa process may take a number of months, overseas students are advised to complete their applications well in advance. Late applications will be considered only if there are vacancies remaining in the graduate program.

You can apply electronically, download the application forms, or ask for an application package to be mailed to you at http://www.yorku.ca/web/futurestudents/graduate/programs/compsci.html.

Potential applicants may find the following document of frequently asked admissions questions useful: http://www.cs.yorku.ca/grad/faq.html.

REQUIREMENTS

Applications must include official copies of all academic transcripts, 3 letters of reference and a one page statement of purpose and previous experience. The statement of purpose should indicate the applicant's area(s) of interest in Computer Science.

The following are the minimum English Language test scores (if required): TOEFL 233/577 or YELT: 4.

English Language testing is required from all international students with the exception of those who have studied in English-speaking countries for at least 2 years or who have studied at English-speaking universities (this has to be verified) for at least 2 years or for those who have been in Canada for at least 2 years.

TOEFL scores are good for only 2 years. If you took a TOEFL test more than 2 years ago then you need to take it again.

The GRE general test + Computer Science subject test is highly recommended for applicants who did their work outside of Canada and the US. This is because we find it hard to evaluate many international degrees/universities.

The York university codes are: TOEFL: 0894, GRE: R0894

Master of Science Program

Graduates with an honours degree in Computer Science or equivalent, with at least a B+ average in the last two years of study, may be admitted as Candidates for the Masters program in Computer Science. In addition, those admitted must have completed the equivalent of a senior-level course in the area of theoretical computer science.

Master of Applied Science Program

Graduates with an honours undergraduate degree or equivalent (typically a four-year program with full-time enrolment) from an accredited university in Computer Engineering, with at least a B+ average in the last two years of study, may be admitted as Candidates for the Master of Applied Science (MASc) program in Computer Engineering. In addition, those admitted must have completed the equivalent of a senior-level project course or thesis in Computer Engineering. Significant industrial or research experience in Computer Engineering coupled with an honours undergraduate degree program or equivalent from an accredited university will be considered equivalent to an undergraduate Computer Engineering thesis.

Doctor of Philosophy Program

Applicants must have an M.Sc. degree equivalent to the M.Sc. Computer Science degree at York University. The York M.Sc. Computer Science degree is based upon course work and a defended thesis. A minimum average grade of B+ on all course work is required. In exceptional circumstances a M.Sc. degree in another related subject, such as Mathematics or Electrical Engineering may be sufficient, but in some cases students may then be considered for the M.Sc. program.

Applications must include a breadth statement and an extended abstract/copy of the M.Sc. thesis. The breadth statement indicates the graduate courses taken and is broken down in three groups (see the courses section below).

DEGREE REQUIREMENTS

Master of Science Program

Candidates for the M.Sc. degree must complete five graduate three-credit courses and successfully defend a Master's thesis if they wish to follow the Thesis Option or seven graduate three-credit courses and a project if they prefer the Project Option.

Upon acceptance as a Candidate to the M.Sc. program, the Candidate will be assigned an Academic Advisor who will advise the Candidate with respect to the degree requirements and assist with the Candidate's selection of a Thesis or Project Supervisor. The checkpoints in the M.Sc. program are listed in the following table, along with both desirable and acceptable completion times, measured from entry into the program. Students also are required to submit a Progress Report on April 15 and August 15 of their first year of study.

M.Sc. Program Checkpoints
Checkpoint Desired Acceptable 
Supervisor Selection 4 months 8 months
Courses Completed (Th) 8 months 8 months
Courses Completed (Pr) 16 months 16 months
Project Topic 5 months 9 months
Thesis Proposal 12 months 17 months
Thesis Examination 18 months 20 months

The Candidate has to choose between the Thesis or the Project option when he/she chooses Supervisor.

There is a breadth requirement on the selected graduate courses; at least one course must be from each of the following three groups:

No more than one third of the course requirement can be integrated with undergraduate courses (CSE5xxx courses). Details about these groups can be found in the Courses section of this document.

M.Sc. Thesis Option

Students that choose the Thesis Option must choose an area of specialization and submit a thesis on an approved subject. The thesis work will be supervised by a faculty member of the Graduate Program in Computer Science. Before work on the thesis starts, the Thesis Supervisory Committee must approve of the thesis topic. M.Sc. theses are evaluated according to FGS requirements. In particular, there is an oral examination conducted by the Thesis Examining Committee.

M.Sc. Project Option

Students that choose the Project Option must choose an area of specialization and submit a project report. The Project work is supervised by a faculty member of the Graduate Program in Computer Science. The project is a body of work similar to a thesis in quality but of more limited scope and/or degree of originality. Project topics may include implementation and evaluation of recent published ideas, development of novel software/hardware applications or improvements of algorithms. The student and the supervisor have to agree on the topic and the exact scope of the project early and the agreement submitted in writing to the Graduate Director. The Project Report is evaluated by the Supervisor and a Reader who must also be a member of the Graduate Program.

Master of Applied Science Program

Candidates for the M.A.Sc. degree in Computer Engineering must complete three graduate three-credit courses, a full-year, six-credit research project course (CSE6400 6.0), and write and successfully defend a Master's thesis. The CSE6400 project must be distinct from course assignments and the M.A.Sc. thesis.

Upon acceptance as a Candidate to the M.A.Sc. program, the Candidate will be assigned an Academic Advisor who will advise the Candidate with respect to the degree requirements and assist with the Candidate's selection of a Thesis Supervisor. Students are expected to complete their degree requirements in no more than five terms (twenty months). Students also are required to submit a Progress Report on April 15 and August 15 of their first year of study.

M.A.Sc. Program Checkpoints
Checkpoint Desired Acceptable 
Supervisor Selection 4 months 8 months
Courses Completed 8 months 8 months
Thesis Proposal 12 months 17 months
Thesis Examination 18 months 20 months

There is a breadth requirement on the selected graduate courses. At least one course must be from each of the two fields of specialization:

No more than one course integrated with an undergraduate course (CSE5XXX) can be used to satisfy degree program requirements.

A Candidate must conduct approved thesis research that demonstrates his/her research ability in the selected field of specialization under the general direction of a supervisor. Typically, the thesis will include a practical demonstration or implementation of the research work undertaken.

Doctor of Philosophy Program

Candidates for the Ph.D degree must complete at least three three-credit graduate courses to satisfy both breadth and depth requirements. No more than one third of the course requirement can be integrated with undergraduate courses (CSE5xxx courses). Candidates must successfully complete a qualifying examination consisting of a written report on the Candidate's field of interest and defend it. Candidates must present a dissertation proposal outlining the anticipated results of their dissertation. Candidates are required to enroll in either an industrial internship or a teaching practicum. Finally, Candidates must conduct a significant body of original research under the supervision of a supervisory committee and successfully defend the resulting dissertation. Students are expected to complete their requirements in no more than four years.

Upon acceptance as a Candidate to the Ph.D. program, the Candidate will be assigned an Academic Advisor who will advise the Candidate with respect to the degree requirements and assist with the Candidate's selection of a Dissertation Supervisor. The checkpoints in the Ph.D. program are listed in the following table, along with both desirable and acceptable completion times, measured from entry into the program. Students also are required to submit a Progress Report on April 15, August 15 and December 15 in each year of their studies.

Ph.D. Program Checkpoints 
Checkpoint Desired Acceptable 
Breadth statement before admittance before admittance
Dissertation Supervisor Selection 4 months 8 months
Breadth Requirement 12 months 16 months
Qualifying Examination 18 months 24 months
Dissertation Proposal 24 months 30 months
Industrial Internship/Teaching Practicum 30 months 36 months
Dissertation Examination 36 months 48 months

Breadth Statement

Each Candidate must demonstrate competence in a wide range of different subjects in Computer Science. Based on documentation presented by the Candidate during the application procedure, the admissions committee will determine groups(s) in which the Candidate will be required to take graduate courses in order to provide evidence of breadth. These groups are: In preparing their breadth statement, the Candidate should indicate relevant course, teaching and research experiences under each of these three groups.

Dissertation Supervisor Selection

The Candidate must identify a member of the graduate program who is willing to act as the Candidate's Dissertation Supervisor.

Breadth Requirement

Prior to specializing in a particular area, every Ph.D. Candidate should have a broad understanding of much of Computer Science. In order to ensure the Candidate is exposed to a broad range of topics in Computer Science, each Candidate is required to complete at least 3 graduate courses (9 credits) in Computer Science as a Candidate in the Ph.D. program. The Graduate Calendar lists course availability and Candidates should consult with their Academic Advisor or Dissertation Supervisor before choosing their course selections. Candidates may choose any graduate courses offered by the program subject to the following conditions: Note that due to the prerequisite structure of the advanced courses, a student with minimal previous experience may have to complete more than 3 courses. After completing the breadth requirement the Candidate and their Dissertation Supervisor in conjunction with the Graduate Director will select two or more additional faculty members (at least one of which should have main research interests outside of the area of the Candidate's dissertation) to act as the Candidate's Dissertation Supervisory Committee.

Qualifying Examination

Roughly half way through the second year of the program, the Candidate is expected to have mastered a general understanding of the area in which they plan to complete their Dissertation. Under the supervision of the Candidate's Dissertation Supervisory Committee, the Candidate prepares a written report summarizing the literature in the Candidate's chosen field of research. It is the responsibility of the Candidate's Dissertation Supervisory Committee to ensure that this report covers the chosen field in sufficient depth and breadth. In order to demonstrate the Candidate's understanding of their chosen field, the Candidate presents their area of research to the members of the Graduate Program and to other Candidates, and is examined orally by the Candidate's Dissertation Supervisory Committee as well as by other members of the graduate program. Upon completion of the Oral Examination the Supervisory Committee will determine either:

Dissertation Proposal

The Candidate presents a written proposal to their Dissertation Supervisory Committee outlining the anticipated results of their dissertation. The purpose of this proposal is to assess the scope and relevance of the problems the student plans to solve, and to ensure significant content to the dissertation. A substantial portion of research should have been successfully completed, and a clear plan for completing the remainder should be included in the document. Ideally the Candidate will have presented some preliminary results from their Dissertation in some external formal setting such as a conference publication, and reprints of these results should be included in the Dissertation Proposal document.

Industrial Internship/Teaching Practicum

All Ph.D. Candidates are required to enroll in either an Industrial Internship or a Teaching Practicum. Under the Industrial Internship option, the Candidate will spend a 3 to 6 month period working in an appropriate research position in industry. The position must be formally approved of by the Graduate Executive. Companies such as IBM, Hyrdro One, AECL, MDA Space Missions, etc., would be considered for possible Industrial Internships. Under the Teaching Practicum option, the Candidate will spend 3 to 6 months assisting an instructor in the preparation and delivery of a course, and possibly instructing an introductory or service course for the Department of Computer Science.

It is the responsibility of the Candidate's Dissertation Supervisory Committee to ensure the academic integrity of the industrial internship/teaching practicum. The Candidate's Dissertation Supervisory Committee must approve the internship/practicum before it begins and the committee will monitor the Candidate's progress during the internship/practicum.

i) Industrial Internship: Many graduate students plan to follow careers in industry, rather than in academia. This option provides students who plan to seek industrial employment after completion of their Ph.D. a chance to experience an industrial research setting. With the assistance of their supervisor, Candidates will identify an industrial position and industrial liaison willing to monitor the Industrial Internship. Before beginning the internship, the Candidate must prepare a document describing the expected duties and requirements of the internship. This document will be signed by the Candidate, the Candidate's Dissertation Supervisory Committee and an industrial liaison who will be willing to monitor the Candidate during the internship. This document must be approved by the Graduate Director before the start of the Industrial Internship.

The time spent taking part in an Industrial Internship will not be counted towards a Candidate's time taken towards graduation.

ii) Teaching Practicum: Graduate students who plan to follow careers in academia may wish to consider the Teaching Practicum option. Under this option the Candidate will receive considerable exposure to the preparation and delivery of instructional material to undergraduate students. Students interested in taking part in the Teaching Practicum option will work with an instructor in the Department of Computer Science (The Teaching Practicum Supervisor) in the preparation and delivery of an undergraduate course. The student, in collaboration with the Instructor will prepare a document describing the duties and requirements of the teaching practicum.

Before beginning a Teaching Practicum, the Candidate will prepare a document describing the proposed practicum. This document, signed by the Candidate, the Candidate's Dissertation Supervisory Committee, and the Teaching Practicum Supervisor must be approved by the Graduate Director before the Teaching Practicum may begin.

Evaluation: At the completion of the Industrial Internship/Teaching Practicum, the Candidate must submit a written report describing the Internship or Practicum to the Candidate's Dissertation Supervisory Committee. The Industrial Liaison (in the case of the Industrial Internship) or the Teaching Practicum Supervisor (in the case of the Teaching Practicum) will also be asked to submit a written description of the Candidate's performance. The Candidate's Dissertation Supervisory Committee will consider the proposal, the Candidate's report, and the written comments by the Liaison/Teaching Practicum Supervisor, plus any supporting documentation such as course evaluations to determine if the Candidate has met the requirements of this checkpoint. At either the committee or the Candidate's option, the Candidate may make an oral presentation to the committee which may then conduct an oral examination of the Candidate.

As a result of this presentation, the committee may decide that:

Dissertation and Oral Examination

All entering Ph.D. Candidates plan a research program with their supervisor at the start of their degree studies, and must successfully complete a significant body of original research of high calibre in Computer Science, under the general direction of a Supervisor and the Dissertation Supervisory Committee, in one of the three major groups offered by the Program, and describe it in an appropriate dissertation. The research must be of such calibre that it satisfies departmental standards. Dissertation research should be of such quality that it would be publishable in prominent Computer Science journals. After the formal submission of the dissertation, an oral examination is held, centered on the dissertation research. In addition to the defense of their dissertation before the Dissertation Examining Committee, the Candidate is required to present their dissertation research to a Departmental Colloquium. The colloquium will be held at least one week prior to the oral examination.

The Dissertation Examination Committee is selected by the Graduate Director in consultation with the Candidate's Supervisor and includes at least:

In addition to the University Regulations, the External Examiner will submit a written appraisal of the dissertation before the Oral Examination.

Progress

Research progress is monitored by meetings of the Candidate's Dissertation Supervisory Committee. In the event of failure to achieve satisfactory progress the Candidate will normally be required to withdraw from the program. In exceptional circumstances the Dissertation Supervisory Committee may petition the Graduate Director on behalf of the Candidate for additional time to complete a particular checkpoint. Should the petition be successful, the extension would be for a limited and specified period of time.

Residency Requirements

Students must maintain a continuous registration in the Program. A year (12 months) consists of three terms: fall, winter, and summer. Students are expected to complete the Master's Programs in no more than five terms (20 months) and the Doctoral Program in no more than twelve terms (48 months). Leaving for more than 4 weeks a term requires the permission of both the program director and the dean of FGS. According to Faculty regulations, beyond the second year of M.Sc. or M.A.Sc. study, full-time students are automatically converted to part-time, and are no longer eligible for financial support.

FINANCIAL SUPPORT

Master of Science Program

Every full-time M.Sc. student is considered for financial support for their first five terms (20 months) in the program. The financial support for each full-time M.Sc. student in the Program is approximately $25,000/year. Excellent applicants will be considered for entrance scholarships of $6,000 each. Students who are awarded an external scholarship can receive up to $33,000/year.

Support for the first two terms is automatic. Continued support for the remaining three terms is conditional on the student's satisfactory progress as evidenced partly by their progress reports submitted at the end of each term. The ultimate level of support depends on the student's academic record, on the availability of funds, and on whether they are supported by an external granting body. All applicants are strongly encouraged to apply for external support.

Master of Applied Science Program

Every full-time M.A.Sc. student is considered for financial support for their first five terms (20 months) in the program. The financial support for each full-time M.A.Sc. student in the Program is approximately $25,000/year. Excellent applicants will be considered for entrance scholarships of $6,000 each. Students who are awarded an external scholarship can receive up to $33,000/year.

Support for the first two terms is automatic. Continued support for the remaining three terms is conditional on the student's satisfactory progress as evidenced partly by their progress reports submitted at the end of each term. The ultimate level of support depends on the student's academic record, on the availability of funds, and on whether they are supported by an external granting body. All applicants are strongly encouraged to apply for external support.

Doctor of Philosophy Program

Every full-time Ph.D. student is considered for financial support for their first twelve terms (48 months) in the program. The financial support for each full-time Ph.D. student in the Program is approximately $27,000/year. Excellent applicants will be considered for entrance scholarships of $3,000 each. Students who are awarded an external scholarship can receive up to $35,000/year.

Support for the first two terms is automatic. Continued support for the remaining terms is conditional on the student's satisfactory progress as evidenced partly by their progress reports submitted at the end of each term. The ultimate level of support depends on the student's academic record, on the availability of funds, and on whether they are supported by an external granting body. All applicants are strongly encouraged to apply for external support.

Funding Details

Internal financial support can include the following components:

Teaching Assistantships: Teaching assistantships (TA) are normally offered to all full-time Ph.D. students and all full-time 1st year M.Sc. students. Currently a full teaching assistantship is valued approximately at $12,000. Each full TA requires the tutoring of undergraduate students and/or grading of assignments and tests. A full TA requires 270 hours of work. Note: there is a graduate financial assistance benefit of $590/term (i.e. up to $1770/year) for students who hold a TA; this benefit is in addition to the financial support amounts mentioned above.

Scholarships: York Graduate Scholarships (YGS) of $6,000 per student are available to first-year Master's students, who are admitted with a grade of "A" or better. YGS of $3,000 per student are available to excellent first-year PhD students. YGS are also open to visa students.

Graduate Assistantships: Students who have maintained a B+ average or better over the last 2 complete years of study are eligible for graduate assistantships. Formal arrangements for work of graduate assistants are made with the Program Director after admission.

Research Assistantships: Additional funds in the form of research assistantships are available to students. This is financial support from a faculty member's research grant. Normally, a student will receive such support from their thesis supervisor. This support entails the expectation of some assistance provided by the student towards the granting faculty member's research.

International Student Tuition Scholarships: These scholarships help international students cover their higher tuition fees; they are currently valued at $4,800 per year; normally, all full-time international graduate students receive them.

Bursaries: Funds are available to visa students, to assist them on the payment of fees. Such Bursaries are awarded by the Faculty of Graduate Studies based on the need and academic standing.

The type of assistantship(s) that each student receives is determined by the program and communicated to the student at the beginning of each term. It should be noted that no full-time graduate student can accept more than a total of 10 hours paid work per week (on average).

EXTERNAL SCHOLARSHIPS

Students are encouraged to apply for external scholarships, fellowships, and other awards. (See the descriptions of two such scholarships below. For more details and other grants see the FGS Calendar.) Since some scholarships will only support a graduate student for their first year of study, students should apply for such grants when they apply to the graduate program at York. It is the policy of the Program to fund students having an external scholarship to a level up to $10,000 above the normal support rate.

NSERC Scholarships: Applicants must be either Canadian citizens or permanent residents. NSERC Scholarships are intended to assist in the provision of highly qualified scientists and engineers by providing financial support to excellent students working towards a master's or doctoral degree in the natural sciences and engineering. Application forms are available from the Graduate Program Office as well at the FGS Office, York Lanes Offices Suite 283, in early September. The Program deadline for applications is mid October.

Ontario Graduate Scholarships: Applicants must be Canadian citizens, permanent residents, or (rarely) visa students, and must have an overall average of at least A- during each of their last two years. The Program deadline for applications is mid October.

COURSES

Not all courses listed are offered each year. For breadth requirements, graduate courses are classified into three major groups. The second digit in the course number indicates the group to which the course belongs.

Some special topics courses (xx9x) will be offered each year depending on the availability of faculty members and their interests.

Group 1: Theory of Computing and Scientific Computing

CSE5101 3.0 Advanced Data Structures The course discusses advanced data structures: heaps, balanced binary search trees, hashing tables, red--black trees, B--trees and their variants, structures for disjoint sets, binomial heaps, Fibonacci heaps, finger trees, persistent data structures, etc. When feasible, a mathematical analysis of these structures will be presented, with an emphasis on average case analysis and amortized analysis. If time permits, some lower bound techniques may be discussed, as well as NP-completeness proof techniques and approximation algorithms.

CSE5111 3.0 Automata, Computability and Complexity This course is intended to give students a detailed understanding of the basic concepts of abstract machine structure, information flow, computability, and complexity. The emphasis will be on appreciating the significance of these ideas and the formal techniques used to establish their properties. Topics chosen for study include: models of finite and infinite automata, the limits to computation, and the measurement of the intrinsic difficulty of computational problems.

CSE5290 3.0 Algorithms for Bioinformatics Bioinformatics deals with the computation of biological information. This course presents an introduction to the basic concepts of molecular genetics; concepts and algorithms for sequence comparison; examples of algorithms for protein structure prediction; and biological data mining.

CSE6111 3.0 Advanced Algorithm Design and Analysis This is an advanced theoretical computer science course directed at non-theory students with the standard undergraduate background. The goal is to survey the key theory topics that every computer science graduate student should know. In about two weeks for each selected topic, we will gain insights into the basics and study one or two example in depth. These might include: a deepening of student's knowledge of key algorithmic techniques, randomized algorithms, NPcompleteness, approximation algorithms, linear programming, distributed systems, computability, concurrency theory, cryptography, structural complexity, data structures, and quantum algorithms. Students will be expected to give a presentation on some topic new to them and solve some difficult problems in homework assignments. Prerequisite: CSE3101 3.0 and any fourth year theory course.

CSE6112 3.0 Parallel Algorithms This course discusses the recent advances in parallel computations. The course will begin with a classification and analysis of parallel models of computation including local memory, shared memory, data flow, and systolic arrays. The focus of the course will be on the design of parallel algorithms. Typical examples of parallel algorithms will include: graph algorithms, merging and sorting, and matrix computations. Much of the material will come from recent journal publications on the subject.

CSE6113 3.0 Computability This course discusses fundamental issues as well as recent advances in the area of computability. Topics of interest include: abstract computing devices; computable and semi-computable functions. Universal function and S-m-n Theorems. Recursion Theorem. Unsolvable problems; Rice's Theorem. Reducibilities; productive and creative sets. Godel's incompleteness Theorems and Church's undecidability result. Polynomial time reducibilities; NP-hard and NP-complete problems. On the length of formal proofs.

CSE6114 3.0 Computational Geometry The purpose of this course is to give a state of the art introduction to computational geometry so as to be beneficial both for students interested in theory and for students interested in its applied fields such as computer-aided design, computer graphics, and robotics, etc. The course will also use some program animation packages. Several techniques important to computational geometry will be emphasized: divide-&-conquer, amortization, multi-dimensional search, space sweep, duality and randomization. Topics include: convex hulls, Voronoi and Delaunay diagrams, arrangements, hidden surface removal, polygon triangulation, art gallery theorems, shortest paths, and lower-bounds.

CSE6115 3.0 Computational Complexity This course is an introduction to Computational Complexity, focusing on the computational resource requirements (such as time and space) which are required for important computational tasks. Topics include: the general theory of complexity classes, and specific complexity classes of interest such as problems which can be solved in polynomial time and the class NP; model-theoretic (Turing machine and circuit) and logical (expressibility) characterizations of complexity classes; relations between complexity classes, such as the cost of simulating nondeterminism by determinism; complexity hierarchies, reductions and NP-completeness; the Polynomial Space hierarchy, intractability. There will also be included a selection of other topics from the areas of cryptography and protocols, axiomatic complexity theory, randomized complexity, the approximability of optimization problems, circuit complexity, parallel complexity and the complexity of logical theories, and other current research topics in computational complexity theory.

CSE6116 3.0 Advanced Computational Complexity This course is an advanced course on Computational Complexity. Topics covered will include complexity classes, models of computation, lower bounds, parallel complexity, randomized algorithms, cryptography, along with techniques from combinatorics, probability theory, and logic. Additional topics will be choses to meet the interest of the students and the instructor.

CSE6117 3.0 Theory of Distributed Computing.  Can a given problem be solved in a distributed system? If so, how efficiently? This course investigates how the answers to these questions depend on aspects of the underlying distributed system including synchrony, fault-tolerance and the means of communication between processes. Topics include models of distributed systems, mutual exclusion, agreement problems, lower bounds and consensus hierarchy.

CSE6118 3.0 Combinatorial Optimization  This course investigates the algorithmic and computational complexity aspects of combinatorial optimization problems. Optimization problem areas include: Linear, non-Linear, Convex, Integer, and Semidefinite Programming, as well as their application to specific areas such as network flow, matching, and various graph optimization problems.

CSE6121 3.0 Advanced Data Structures and Algorithms. This course studies advanced data structures, their algorithms, techniques for analysis: including structures for dictionaries, disjoint sets, priority queues, average case and amortized analysis; algorithm design using dynamic programming, and "greedy" solutions; NP-completeness and approximation.
Degree credit exclusion: CSE5101 3.0

CSE6211 3.0 Numerical Linear Algebra This course is on matrix computations involving numerical linear algebra. It covers direct and iterative methods for solving linear systems of equations, and orthogonalization methods for linear least squares problems. Various algorithms are discussed for the solution of each problem. The related theory, and the benefits, disadvantages and pitfalls associated with each method are explained. The matrix computations are performed using the LINPACK software package throughout the course.

CSE6212 3.0 Sparse Matrices There has been significant development in the area of sparse matrix computations in the last fifteen years. This course will use a graph-theoretic approach to consider direct methods for solving such linear systems. The band, profile/envelope, and general sparse methods will be covered. The subject is intensely practical. A component of this course is to modify some existing sparse matrix software packages so that actual large practical problems will be solved.

CSE6221 3.0 Statistical Signal Processing Theory This course introduces theory and algorithms of stochastic signals and their applications to the real world. Discrete random variables, random vectors and stochastic processes are reviewed followed by signal processing methods used for detection, estimation and optimal filtering.

CSE6222 3.0 Coding and Information Theory This course introduces students to fundamentals of information theory, as well as methods for achieving information-theoretic results using source codes and channel codes. Students will learn Shannon's source coding and channel coding theorems, as well as the mathematical machinery required to prove these and other information theoretic results. Students will also be exposed to source coding techniques, as well as channel coding techniques for state-of-the-art systems. Advanced topics such as multiterminal (Slepian-Wolf) source coding and rateless codes will also be covered, time permitting.

Group 2: Artificial Intelligence and Interactive Systems

CSE5311 3.0 Logic Programming This course discusses core concepts and recent advances in the area of logic programming. Topics include logical foundations of logic programming systems, PROLOG as a logic programming system, constraints and dependencies, the closed-world assumption, and the problem of sound negation. Other topics will include sequential versus parallel implementations, the problem of non-logical control primitives, optimizing backtracking, and applications to knowledge-based programming.

CSE5323 3.0 Computer Vision This course will introduce the basic concepts in Computer Vision. Primarily a survey of current computational methods, we will begin by examining methods for measuring visual data (image based operators, edge detection, feature extraction), and low-level processes for feature aggregation (optic flow, segmentation, correspondence). Finally, we will consider some issues in "high-level" vision systems.

CSE5324 3.0 An Introduction to Robotics This course will introduce concepts in Robotics. The course will begin with a study of the mechanics of manipulators and robot platforms. Trajectory and course planning, environmental layout and sensing will be discussed. Finally, high-level concerns will be introduced. The need for real-time response and dynamic-scene analysis will be covered, and recent developments in robotics systems from an Artificial Intelligence viewpoint will be discussed.

CSE5325 3.0 Signals & Systems An introduction to the mathematical background in signals and systems required for computer vision and robotics; signal and image processing: sampling, discrete Fourier transform, filtering; linear system theory; Kalman filtering; feedback.

CSE5326 3.0 Topics in Artificial Intelligence This course will be an in-depth treatment of one or more specific topics within the field of Artificial Intelligence.

CSE5331 3.0 Introduction to Computer Graphics This course provides an introduction to computer graphics. The first half will cover window systems, display hardware, graphical primitives, scan conversion, two and three dimensional transformations and the mathematics of planar geometric projection. This will provide the groundwork for thinking and working in three dimensions. The second half of the course will concentrate on raster algorithms and on understanding the problems and approaches required to generate realistic looking images. Some of the topics include visible surface algorithms, modeling, shading, anti-aliasing, texture mapping, ray tracing and radiosity.

CSE5351A 3.0 Human-Computer Interaction This course introduces the concepts and technology necessary to design, manage and implement interactive software. Students work in small groups and learn how to design user interfaces, how to realize them and how to evaluate the end result. Both design and evaluation are emphasized.

CSE6323 3.0 Advanced Topics in Computer Vision An advanced topics course in computer vision which covers selected topics in greater depth. Topics covered will vary from year to year depending on the interests of the class and instructor. Possible topics include: stereo vision, visual motion, computer audition, fast image processing algorithms, vision based mobile robots and active vision sensors, and object recognition. Prerequisites: CSE5323 3.0 Introduction to Computer Vision

CSE6324 3.0 From Control to Actuators A "robot building course", this course will follow the issues involved in building a robot or robotic system from control to actuators. This includes microcomputer control, actuator design, high-level software models, and sensor inputs. Prerequisites: CSE5324 3.0 Introduction to Robotics, previous experience in electronics would be an asset.

CSE6325 3.0 Mobile Robot Motion Planning The focus of this course is on robot motion planning in known and unknown environments. Both theoretical (computational-geometric) models, as well as practical case studies will be covered in the course.

CSE6326 3.0 Principles of Human Perception and Performance in Human-Computer Interaction This course considers the role of human perception in human-computer interaction particularly computer generated graphics/sound and immersive virtual reality. Fundamental findings from sensory physiology and perceptual psychophysics are presented in the context of interface and display design.

CSE6327 3.0 Multimedia Communications: Coding Standards and Networking The course introduces the coding, networking, and system technologies used in multimedia communications. In coding, compression standards including the ITU H.26X and ISO MPEGs and JPEGs are introduced. Issues involved in transmitting multimedia over ATM, wireless, and IP networks are discussed. (subject to approval)

CSE6328 3.0 Speech and Language Processing  Introducing the latest technologies in speech and language processing, including speech recognition and understanding, key-word spotting, spoken language processing, speaker identification and verification, statistical machine translation, information retrieval, and other interesting topics. Prerequisites: CSE4451 3.0 or CSE4401 3.0.

CSE6329 3.0 Advanced Human-Computer Interaction (formerly CSE6390C 3.0) This course examines advanced concepts and technologies for Human-Computer Interaction. Students will learn about advanced input and output devices (e.g., for mobile computing and/or Virtual Reality), about advanced design methods, how to implement effective interfaces, and how to perform rapid, effective iterative user tests.

CSE6330 3.0 Critical Technical Practise: Computer Accessibility and Assistive Technology This course examines issues of technological design in computer accessibility and computational forms of assistive technology (hardware and/or software). Students learn to critically reflect on the hidden assumptions, ideologies and values underlying the design of these technologies, and to analyse and to design them.

CSE6331 3.0 Advanced Image Synthesis This course concentrates on raster algorithms for image synthesis. Some of the topics may include visible surface algorithms, modelling, shading, global illumination, anti-aliasing, and texture mapping. Prerequisites: CSE5331 3.0 Introduction to Computer Graphics.

CSE6332 3.0 Statistical Visual Motion Analysis A seminar course that examines statistical approaches to visual motion analysis, including 3-D structure and motion estimation, optical flow, segmentation and tracking using tools like Maximum Likelihood Estimation, Maximum A Posteriori, Least Squares and Expectation Maximization.

CSE6333 3.0 Multiple View Image Understanding This course considers how multiple images of a scene, as captured by multiple stationary cameras, single moving cameras or their combination, can be used to recover information about the viewed scene (e.g., three-dimensional layout, camera and/or scene movement). Theoretical and practical issues of calibration, correspondence/matching and interpretation will be considered. Prerequisite: CSE5323 3.0 Introduction to Computer Vision or permission of the instructor.

CSE6334 3.0 Image Sensor Technology The design of practical vision systems requires an understanding of the sensors that generate the images and their characteristics and limitations. Single-chip cameras are now challenging existing camera technologies for applications where high integration, cost-effectiveness and/or on-chip signal processing are important. This course introduces the design of electronic camera systems, including CCDs, single-chip cameras and sensors for non-visible wavelengths. The topics covered will range from the general operating principles to the complete system performance. Prerequisite: CSE5323 3.0 Introduction to Computer Vision (recommended) or permission of the instructor.

CSE6335 3.0 Topics in Virtual Reality This course considers how to present to a user a compelling illusion of being in an alternate (virtual) reality. It considers how humans perceive visual, audio, haptic and other perceptual inputs, and how technology can be used to stimulate these sense appropriately to simulate some virtual environment. Prerequisite: CSE4471 3.0 Introduction to Virtual Reality or equivalent is recommended.

CSE6336 3.0 Computer Supported Collaborative Work This course examines advanced concepts and technologies in computer systems that support collabortive work. Students will learn how people collaborate, computer supported collaborative work, technologies for collaborative systems, user interfaces and evaluation techniques targeted at collaboration. Selected collaborative technologies will be covered in depth. These may include shared display groupware, video conferencing, telepresence systems, chat or e-mails systems. Prerequisite: None.

CSE6340 3.0 Embodied Intelligence This course is intended as a follow-on from a first course on Artificial Intelligence. Whereas such first courses focus on the important foundations of AI, such a Knowledge Representation or Reasoning, this course will examine how these separate foundational elements can be integrated into real systems. This will be accomplished by detailing some general overall concepts that form the basis of intelligent systems in the real world, and then presenting a number of in-depth cases studies of a variety of systems from several applications domains. The embodiment of intelligence may be in a physical system (such as a robot) or a software system (such as in game-playing) but in both cases, the goal is to interact with, and solve a problem in, the real world.

CSE6351 3.0: Dynamic Systems A modern approach to the analysis and engineering applications of linear and nonlinear systems. Modeling and linearization of multi-input-- multi-output dynamic physical systems. State-variable and transfer function matrices. Emphasis on linear and matrix algebra. Numerical matrix algebra and computational issues in solving systems of linear algebraic equations, singular value decomposition, eigenvalue-eigenvector and least-squares problems. Analytical and numerical solutions of systems of differential and difference equations. Structural properties of linear dynamic physical systems, including controllability, observability and stability. Canonical realizations, linear state-variable feedback controller and asymptotic observer design. Design and computer applications to electronic circuits, control engineering, dynamics and signal processing.

CSE6352 3.0: Digital Signal Processing This course addresses the mathematics, applications and implementation of the digital signal processing algorithms widely used in areas such as multimedia telecommunications and speech and image processing. Topics include discrete-time signals and systems, discrete-time Fourier transforms and Z-transforms, discrete Fourier transforms and fast Fourier transforms, digital filter design and implementation, and multi-rate signal processing. The course will include introductory discussions of 2-dimensional signal processing, linear prediction, adaptive filtering, and selected application areas.

CSE6353 3.0: Digital Image and Video Processing The course studies image processing, image understanding, and video sequence analysis. Image processing deals with deterministic and stochastic image digitization, enhancement. restoration, and reconstruction. This includes image representation, image sampling, image quantization, image transforms (e.g., DFT, DCT, Karhunen-Loeve), stochastic image models (Gauss fields, Markov random fields, AR, ARMA) and histogram modeling. Image understanding covers image multiresolution, edge detection, shape analysis, texture analysis, and recognition. This includes pyramids, wavelets, 2D shape description through contour primitives, and deformable templates (e.g., 'snakes'). Video processing concentrates on motion analysis. This includes the motion estimation methods, e.g., optical flow and block-based methods, and motion segmentation. The course emphasizes experimenting with the application of algorithms to real images and video. Students are encouraged to apply the algorithms presented to problems in a variety of application areas, e.g., synthetic aperture radar images, medical images, entertainment video image, and video compression.

Group 3: Systems: Software and Hardware

CSE5421 3.0 Operating System Design An operating system has four major components: process management, input/output, memory management, and the file system. This project-oriented course puts operating system principles into action. This course presents a practical approach to studying implementation aspects of operating systems. A series of projects is included, making it possible for students to acquire direct experience in the design and construction of operating system components. A student in this course must design and implement some components of an operating system and have each interact correctly with existing system software. The programming environment is C++ under Unix. At the end of this course, a student will be able to design and implement the basic components of operating systems.

CSE5422 3.0 Performance Evaluation of Computer Systems This course introduces the concept of modelling a computer system, using queuing theory techniques and simulation techniques, then it examines the practical applications of these concepts in some case studies. These case studies are chosen to have a practical impact.

CSE5423 3.0 Programming Language Design The course focuses on the linguistics of programming languages; that is, on the common, unifying themes that are relevant to programming languages in general. Both algorithmic and nonalgorithmic language categories are examined. Current techniques for the formal specification of the syntax and semantics of programming languages are studied. Skills are developed in the critical and comparative evaluation of programming languages.

CSE5424 3.0 Language Processors An introductory course in language processors, focusing on the architecture and implementation of programming language compilers. Topics to be covered will include: compiler organization, compiler-writing tools, finite automata and regular expressions, context-free grammars, scanning and parsing, semantic checking, run-time organization, implementation of a run-time model, storage allocation, code generation, and optimization. Students will be required to implement a compiler for an imperative language in a group project.

OSC5431 3.0 Mobile Communications This course provides an overview of the latest technology, developments and trends in wireless mobile communications, and addresses the impact of wireless transmission and user mobility on the design and management of wireless mobile systems.

CSE5441 3.0 Real-Time Systems Theory Specification and verification techniques for real-time systems with many interacting components. Formal design of real-time systems using (a) programming languages with unambiguous semantics of time-related behaviour and (b) scheduling algorithms.

CSE5442 3.0 Real-Time Systems Practice Introduction to the correct use and applications of real-time programming languages. Examples of real-time programming languages are studied in detail and applied to the solution of typical real-time programming problems (e.g., communication networks, avionic systems and process control).

CSE6411 3.0 Programming Logic for Complex Systems This course covers program verification methods for a class of programs, commonly referred to as reactive programs. Reactive programs typically never terminate and are run in order to maintain some interaction with the environment. An adequate description of reactive systems must refer not only to initial and final states, but also to the ongoing behavior as a (possibly infinite) sequence of states and events. The purpose of this course is to investigate the use of logical calculi for the specification, design and verification of reactive systems. Topics include: modeling of discrete event systems, semantics of real-time languages, logical and discrete calculi (e.g. temporal logic) for specifying and verifying safety, liveness, deadlock, priority and fairness properties of reactive programs, and prolog tools for automating verification.

CSE6412 3.0 Data Mining This course introduces fundamental concepts of data mining. It presents various data mining techniques, algorithms and applications. Topics include association rule mining, classification models, sequential pattern mining and clustering. Prerequisites: an introductory course in database systems. Students who receive credit for this course may not also receive credit for CSE6490C 3.0.

CSE6421 3.0 Advanced Database Systems This course provides and introduction to and an in-depth study on several new developments in database systems and intelligent information systems. Topics include: internet databases, data warehousing and OLAP, object-relational, object-oriented, and deductive databases.
Degree credit exclusion: CSE5411 3.0

CSE6422 3.0 Parallel and Distributed Computing This course investigates fundamental problems in writing efficient and scalable parallel and distributed applications with emphasis on operating systems support and performance evaluation techniques.

CSE6423 3.0 Parallel Computing on Networks of Workstations The advent of high-speed low-cost networks is making clusters of workstations attractive as a platform for parallel computing. This course investigates strategies for exploiting parallelism on workstation clusters, with an emphasis on distributed shared memory (DSM). The course discussion will center on fundamental DSM issues such as cache coherence and memory consistency. Students will study some of the key work in this area, and learn how to build a distributed shared memory system. The course will involve implementation work on an actual DSM system running on a cluster of workstations, and weekly readings of selected papers.

CSE6431 3.0 Software Re-Engineering  Industrial software systems are usually large and complex, while knowledge of their structure is either lost or inadequately documented. This course presents techniques that aid the comprehension and design recovery of large software systems.

CSE6432 3.0 Adaptive Software Systems; Adaptive software systems are software systems that change their behaviour and structure to cope wiht changes in the environment conditions or user requirements. This course covers basic and advanced concepts in engineering adaptive systmes and has a special focus on self-optimization.

CSE6441 3.0 Methods for Large-Scale Software Development This course studies the application of mathematical methods to the construction of large-scale software systems. It considers issues relevant to large-scale design and the application of mathematics. It involves a large-scale software project in which industrial-strength tools are applied.

CSE6442 3.0 Object Oriented Software Construction This course will focus on the principles, notations, methods and tools needed for the production of quality maintainable software using the full power of object orientation. Main topics include: fundamental software engineering principles, how to specify code using abstract data types and classes, how to develop implementations seamlessly and reversibly from specifications, the production of reliable code via contracts, design methods (BON and UML) and formal methods for verifying the correctness of industrial strength programs.

CSE5501 3.0 Computer Architecture This course presents the core concepts of computer architecture and design ideas embodied in many machines and emphasizes a quantitative approach to cost/performance tradeoffs. This course concentrates on uniprocessor systems.

CSE6501 3.0 Introduction to Parallel Computer Architectures This course will introduce the basic concepts in parallel and non-von Neumann architectures. It covers the following topics: algorithm-architecture mapping, algorithm analysis, parallelism extractions, technology constrains, architecture design, and system development.

CSE6502 3.0 Computational Aspects of VLSI This course is on automated design of VLSI systems and application algorithms. It covers the Mead-Conway VLSI design methodology; area-time trade offs for VLSI oriented computation; layout algorithms; parallel network models, such as hypercube, shuffle-exchange and mesh-of-trees; systolic algorithms; VLSI design tools, such as circuit extraction, design rule checking, placement and routing.

Group 4: Computer Systems Engineering

Descriptions of the following courses are listed above in course groups 1, 2 or 3.

CSE5341 3.0 Real-Time Systems: Theory

CSE5342 3.0 Real-Time Systems: Practice

CSE5421 3.0 Operating System Design

CSE5422 3.0 Performance Evaluation of Computer Systems

CSE5431 3.0 Mobile Communications

CSE5501 3.0 Computer Architecture

CSE6117 3.0 Theory of Distributed Computing

CSE6222 3.0 Coding and Information Theory

CSE6327 3.0 Multimedia Communications:Coding Standards and Networking

CSE6341 3.0 Methods for Large-Scale Software Development

CSE6342 3.0 Object Oriented Software Construction

CSE6351 3.0 Dynamic Systems

CSE6422 3.0 Parallel and Distributed Computing

CSE6423 3.0 Parallel Computing on Networks of Workstations

CSE6431 3.0 Software Re-Engineering

CSE6501 3.0 Introduction to Parallel Computer Architectures

CSE6502 3.0 Computational Aspects of VLSI

CSE6590A 3.0 High-Performance Computer Networks

Group 5: Interactive Systems Engineering

Descriptions of the following courses are listed above in course groups 1, 2, 3 or 4.

CSE5323 3.0 Computer Vision

CSE5324 3.0 An Introduction to Robotics

CSE5331 3.0 An Introduction to Computer Graphics

CSE5351 3.0 Human-Computer Interaction

CSE6118 3.0 Combinatorial Optimization

CSE6221 3.0 Statistical Signal Processing Theory

CSE6323 3.0 Advanced Topics in Computer Vision

CSE6325 3.0 Mobile Robot Motion Planning

CSE6326 3.0 Principles of Human Perception and Performance in Human-Computer Interaction

CSE6327 3.0 Multimedia Communications

CSE6328 3.0 Speech and Language Processing

CSE6329 3.0 Advanced Human-Computer Interaction

CSE6330 3.0 Critical Technical Practise: Computer Accessibility and Assistive Technology

CSE6331 3.0 Advanced Image Synthesis

CSE6332 3.0 Statistical Visula Motion Analysis

CSE6333 3.0 Multiple View Image Understanding

CSE6334 3.0 Image Sensor Technology

CSE6335 3.0 Topics in Virtual Reality

CSE6351 3.0 Dynamic Systems

CSE6352 3.0 Digital Signal Processing

CSE6353 3.0 Digital Image and Video Processing

CSE6390D 3.0 Computational Model of Visual Perception

MATH6602 3.0 Stochastic Processes Description available from the York Mathematics Department.

MATH6651 3.0 Advanced Numerical Methods Description available from the York Mathematics Department.

PHYS5170 3.0 Advanced Optics Description available from the York Physics Department.

Special Topics Courses

Some special topics courses are offered each year depending on the availability of faculty members and their interests., CSE6190A 3.0 Online Computing This course will investigate the rapid growing field of online computing in many areas of Computer Science. We cover, in this course, two major parts: Methodologies and Applications. In the first half of the course, we cover amortized competitive analysis, probabilistic and randomized methods, potential functions. Then we apply these methods to problems arising from data structure, operating system scheduling, distributed and parallel computing, dynamic online scheduling, robot mappings and navigations, combinatorial online problems. Our main emphasis will be on a philosphical linkage between these problems: the competitive analysis approach for computation with imperfect information. This has been a method successfully applied to many interesting problems in different fields of computer science.

CSE6190B 3.0 Coarse Grained Parallel Computing This course will investigate three aspects in parallel computation: routing, algorithms and scheduling with an emphasis on asymptotic optimal executions of parallel algorithms on parallel machines. This includes both theoretical analytic results and experimental measurements.

CSE6390A 3.0 Knowledge Representation This course examines some of the techniques used to represent knowledge in artificial intelligence, and the associated methods of automated reasoning. The emphasis will be on the compromises involved in providing a useful but tractable representation and reasoning service to a knowledge-based system. The topics may include: formal models of knowledge and belief, systems of limited reasoning, languages of limited expressive power, defaults and exceptions, meta-level representation and reasoning, reasoning about action, and theories of rational agency.

CSE6390B 3.0 Scheduling in Hard Real-Time Systems This course discusses concepts and methods for satisfying timing constraints in large, complex hard-real-time systems. Topics include: characteristics of hard-real-time systems, timing constraints, periodic and asynchronous processes, run-time and pre-run-time scheduling, cyclic executives, priority scheduling, preemptive and non-preemptive scheduling, synchronization, schedulability analysis, resource management, and real-time programming language constructs.

CSE6390D 3.0 Computational Modeling of Visual Perception Same as PSYC6750B 3.0. The process of computational modeling is developed in stages, including: statement of the computational problem, selection of representations, probabilistic formulation, statistical analysis, algorithm development, model evaluation and refinement. Constraints from psychophysical and physiological data are applied, particularly in selecting and evaluating representations and algorithms.

CSE6490A 3.0 Concurrent Object-Oriented Languages The integration of the two paradigms of Object-Oriented Programming (OOP) and concurrent programming has been the subject of much research since the early 1980's. This course studies the approaches to integration, current research issues, and a review of some of the existing concurrent object-oriented systems. In this respect, the emphasis will be on C++ based systems.

CSE6490B 3.0 Issues in Information Integration This course explores the challenges and research issues that arise in scaling current information systems technology to a widely-distributed heterogeneous database environment. The focus of the course is on using semantic information to integrate information sources, optimize query processing and provide cooperative response to a user in such systems. Topics to be covered in this course:
- Heterogeneous database systems
- Management of uncertain (disjunctive) information
- Integrating relational and object-oriented database models
- Dynamic query processing
- Semantic query caching
- Semantic query optimization
- Cooperative answering systems

CSE6490C 3.0 Decision Support Systems This course introduces technologies for analysis and exploration of data in order to support high-level decision making. The course concentrates on two such technologies: On-Line Analytical Processing and Data Mining (exploratory data analysis). Prerequisite: a course in Data Base.

CSE6490D 3.0 Software Reuse Systematic software reuse is viewed as a possible means to reduce software development costs while improving software quality. Reuse has the potential to increase productivity by reducing the time and effort needed to develop software, increase reliability because systems will be developed with thoroughly tested and proven components, reduce costs by sharing knowledge and practices needed to develop and maintain software, and establish a more standard and consistent approach to software development and evolution by using common components and procedures. There are numerous technical and non-technical barriers to software reuse. This course will review the technical issues in software reuse, including those of software classification, storage, and retrieval.

CSE6490E 3.0 Reasoning in Databases This course studies semantics, reasoning tasks, and decision problems relevant to database design, queries, optimization, and mining. Focus is on the computational complexities and decidability of, correspondences among, and implementation approaches to these tasks.
Prerequisites: CSE2001, CSE3101, CSE3421.

CSE6590A 3.0 High-Performance Computer Networks This course focuses on high performance computer networks. It presents a comprehensive study of modern high speed communication networks that is capable of providing data, voice, and video services. It also covers mobile and wireless communication networks. Topics to be covered in this course may include:
- principles of queueing theory (M/M/1, M/D/1, networks of queues, ..)
- ATM switches architecture
- ATM performance (buffer management, losses, admission policies, delay,..)
- Optical links
- Wireless networks
- Multiple access techniques for wireless networks
- Standards for wireless systems
- Security and privacy
- wireless/conventional internetworking

Miscellaneous Cources

CSE5910 3.0 Software Foundations This course introduces object-oriented programming and the basic principles of software development to non-CS students already familiar with programming. Web technologies for the collection and dissemination of knowledge will be introduced and studied.

Prerequisite: a course in programming

Note: this course cannot be used to satisfy the course requirements of a Computer Science M.Sc. or Ph.D. program.

CSE6000 MSc Thesis Research

CSE6001 MSc Project Research

CSE6002 3.0 Directed Reading

CSE6004 3.0 MASc Thesis Research

CSE6400 6.0 Computer Engineering Research Project An introduction to research methods in computer engineering. Under direction of the Computer Engineering Research Project Committee, students engage in supervised research under a member of the research program. A final oral presentation and written report are required. Successful completion of this course is required for the MASc Computer Engineering degree.

CSE7000 PhD Dissertation

GRADUATE FACULTY MEMBERS & THEIR RESEARCH INTERESTS

MOKHTAR ABOELAZE: Ph.D. (Purdue). Associate Professor of Computer Science. Computer architecture. Parallel processing (multiprocessors and vector processors). Systolic arrays. Performance evaluation of computer systems and networks.

ROBERT S. ALLISON: Ph.D. (York). Associate Professor of Computer Science. Biological and computational vision especially stereopsis. Eye movement measurement and analysis. Virtual environments.

AIJUN AN: Ph.D. (Regina). Associate Professor of Computer Science. Data mining, machine learning, artificial intelligence, and software engineering.

ESHRAT ARJOMANDI: Ph.D. (Toronto). Professor of Computer Science. Most recently her research has concentrated on efficient memory allocation and garbage collection techniques in programming languages. She is also interested in object-oriented programming techniques and how these techniques may be utilized in concurrent programming.

AMIR ASIF: Ph.D (Carnegie Mellon). Associate Professor of Computer Science.  Statistical Signal Processing with Applications in image and video processing multimedia, bioinformatics, and physical sciences.

MELANIE BALJKO: Ph.D. (Toronto). Assistant Professor of Computer Science. Computational Linguistics and Human-Computer Interaction, specifically: computational models of human-human multimodal communicative processes; computer-mediated human-human communication; augmentative and alternative communication (AAC); computational devices for individuals with communication disorders.

FRANCK VAN BREUGEL: Ph.D. (Free University, Amsterdam). Associate Professor of Computer Science. Concurrent programming languages: design, implementation, verification and programming.

NICHOLAS CERCONE: Ph.D. (Alberta). Professor of Computer Science. Knowledge representation, knowledge-based-systems, natural language understanding, knowledge discovery, data analysis, data mining, rough sets and soft computing

LUIZ CYSNEIROS: Ph.D.  (PUC-Rio de Janeiro):  Assistant Professor at ITEC/Arts program.  Elicitation and representation of Non-Functional Requirements.

SUPRAKASH DATTA: Ph.D. (Massachusetts). Assistant Professor of Computer Science. Parallel and distributed computation, performance evaluation, network modeling, and simulation, bioinformatics.

PATRICK W. DYMOND: Ph.D. (Toronto). Professor of Computer Science. Complexity theory, parallel algorithms and architectures.

ANDREW W. ECKFORD: Ph.D. (Toronto). Assistant Professor of Computer Science. Communications networks, sensor networks, error-control coding for wireless and other difficult channels, analysis of iterative decoding algorithms.

JEFF EDMONDS: Ph.D. (Toronto). Associate Professor of Computer Science. Complexity, lower bounds, algorithms, combinatorics, probability theory, scheduling.

JAMES ELDER: Ph.D. (McGill). Associate Professor of Psychology. Computer vision, biological vision.

PARKE GODFREY: Ph.D. (Maryland). Assistant Professor of Computer Science. Database systems.

JAREK GRYZ: Ph.D. (Maryland). Associate Professor of Computer Science. Database systems.

RAINER HERPERS Ph.D.(Kiel, Germany). Assistant Professor of Computer Science, Fachhochschule Bonn-Rhein-Sieg. Computer Vision, Medical image processing, Telematics in Medicine, Virtual Reality, Immersive Displays.

RICHARD HORNSEY: Ph.D.(Oxford). Associate Professor of Computer Science.  Integrated electronic sensors, biologically inspired image sensors, low vision enhancement systems, sensors for space applications.

JIMMY HUANG:Ph.D. (City, London UK).  Assistant Professor of Information Technology.  Information retrieval, Web search, data mining, Web mining, text mining, computational linguistics and bioinformatics.

MICHAEL R.M. JENKIN: Ph.D. (Toronto). Professor of Computer Science. Mobile robotics. Computer vision. Virtual Reality.

HUI JIANG: Ph.D (Tokyo). Assistant Professor of Computer Science. Speech recognition; language processing; multimedia communications; bioinformatics.

PETER KHAITER: Ph.D. (Rostov State University). Assistant Professor of Information Technology. Mathematical modeling of complex systems (socio-economic, ecological, environmental, industrial), Applications of optimum control and artificial intelligence in economic, environmental and industrial information systems, Modeling, economic assessment and management of natural resources, sustainable development.

YVES LESPERANCE: Ph.D. (Toronto). Associate Professor of Computer Science. Artificial Intelligence, knowledge representation and reasoning, intelligent agents.

MARIN LITOIU: Ph.D. (Concordia). Associate Professor Information Technology. Performance modeling and evaluation, capacity planning, software engineering, adaptive and autonomous systems, web services, Internet technologies.

JOSEPH W.H. LIU: Ph.D. (Waterloo). Professor of Computer Science. Sparse matrix technology. Large scale scientific computation. Vector/parallel computing. Scientific software development. Graph algorithms. Scientific visualization.

KELLY LYONS: Ph.D. (QUeens). Adjunct Professor of Computer Science. Collaboration, data management, software development, privacy.

SCOTT MACKENZIE: Ph.D. (Toronto). Associate Professor of Computer Science. Input devices and interactive techniques for advanced and mobile computing; human performance measurement, prediction, and modeling.

EVANGELOS E. MILIOS: Ph.D. (MIT). Associate Professor of Computer Science. Shape representation and matching. Sensor-based robot exploration and navigation. Knowledge-based signal processing and interpretation.

ANDRANIK MIRZAIAN: Ph.D. (Princeton). Associate Professor of Computer Science. Computational Geometry. Combinatorial optimization and graph algorithms. Computational robotics and program animation.

UYEN TRANG NGUYEN : Ph.D. (Toronto). Assistant Professor of Computer Science. Multipoint communications and traffic control in IP and broadband networks. Video multicast. Routing, security, and quality of service in wireless networks.

JONATHAN S. OSTROFF: Ph.D. (Toronto). Associate Professor of Computer Science. Design of real-time software for reactive systems such as safety critical medical systems, nuclear plants, communication systems and robots. The use of formal methods for modeling, specification and automated verification of complex systems. CASE tools for formal methods. Software engineering.

RICH PAIGE: Ph.D. (Toronto). Assistant Professor of Computer Science. Software engineering, method integration, tool integration, formal methods and theorem provers, high-level circuit design, compilers, object-oriented programming and design.

EUGENE ROVENTA: Ph.D. (Timisoara). Associate Professor of Computer Science (Glendon). Artificial Intelligence (Intelligent Computation, Logic Problem Solving, Knowledge Representation and Processing of Imprecise and / or Uncertain Knowledge) and Non Classical Measures.

ERIC RUPPERT: Ph.D. (Toronto). Associate Professor of Computer Science. Models of Distributed Computing, Distributed Algorithms, Computability and Computational Complexity.

ARTHUR RYMAN: Ph.D. (Oxford). Adjunct Professor of Computer Science. Architect for VisualAge for Java, IBM Application Development Technology Centre. Software engineering, software design technology.

MIKHAIL SOUTCHANSKI:Ph.D. (Toronto). Adjunct Professor of Computer Science. Artificial intelligence, cognitive robotics, knowledge representation and reasoning, reinforcement learning, logical formalizations of common sense reasoning, semantic web services.

MINAS E. SPETSAKIS: Ph.D. (Maryland). Associate Professor of Computer Science. Computer Vision. Robotics. Visual Motion.

ZBIGNIEW STACHNIAK: Ph.D. (Wroclaw, Poland). Associate Professor of Computer Science. Computational logic and Knowledge Representation: methodology of automated reasoning and theorem proving systems, computer science and applied logics. Logic Programming.

WOLFGANG STUERZLINGER : Ph.D. (Vienna University of Technology, Austria). Associate Professor of Computer Science. Human-computer interaction, virtual reality, user interfaces for 3D, shared display groupware, computer graphics, and real-time rendering.

GEORGE TOURLAKIS: Ph.D. (Toronto). Professor of Computer Science. Logic (classical, calculational, modal), Computability theory (computation with partial function oracles, arithmetical forcing), Complexity theory.

JOHN TSOTSOS: Ph.D. (Toronto). Professor of Computer Science. Canada Research Chair. Computational Vision with a current major focus being the modelling of visual attention.

VASSILIOS TZERPOS: Ph.D. (Toronto). Assistant Professor of Computer Science. Software engineering, in particular, software maintenance, reverse engineering and software clustering.

NATALIJA VLAJIC: Ph.D. (Ottawa). Assistant Professor of Computer Science. Mobile and wireless communication, data broadcasting, sensor networks, neural networks, pattern recognition, game theory.

WALTER J. WHITELEY: Ph.D. (MIT). Professor of Mathematics. Discrete geometry and its applications: rigidity (static and kinematics) of frameworks, protein flexibility and rigidity and structure determination; control of formations of autonomous agents; matroid theory, logic and invariant theory; diagrammatic and spatial reasoning; geometric constraints in parametric CAD.

RICHARD WILDES: Ph.D. (MIT).  Associate Professor of Computer Science.  Machine and Biological Perception (especially Vision), Image Processing, Robotics, Artificial Intelligence.

HUGH R. WILSON: Ph.D. (University of Chicago). ORDCF Professor of Biological & Computational Vision. Director, Centre for Vision Research. Psychophysical & computational studies of human form vision & motion perception Neural modeling & nonlinear dynamics in vision Functional brain imaging (fMRI) of the human visual system.

JIA XU: Ph.D. (Louvain). Associate Professor of Computer Science. Real-time systems, including real-time operating systems, real-time database systems, real-time communication systems, real-time embedded systems.

ZIJIANG YANG: Ph.D. (Toronto). Assistant Professor of Computer Science. Decision making support algorithms, performance analysis in the financial services industry, neural network algorithms, data mining. 

XIAOHUI YU: Ph.D. (Toronto). Assistant Professor Information Technology. Database systems.


Revised: September 2012