 |
Graduate Program in
Computer Science and Engineering |
Supplemental Calendar 2012-2013
TABLE OF CONTENTS
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).
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.
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
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.
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.
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).
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.
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.
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.
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.
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 |
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.
The Candidate must identify a member of the graduate program who is
willing to act as the Candidate's Dissertation Supervisor.
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.
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:
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.
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:
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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
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.
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
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
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