


OttawaCarleton Institute for Computer Science
Herzberg Building 5302
Telephone: (613) 5204333
Fax: (613) 5204334
Email: scs@carleton.ca
Web site: www.scs.carleton.ca
The Institute
Director of the Institute: Ivan Stojmenovic
Associate Director of the Institute: JeanPierre Corriveau
Students who wish to pursue studies in computer science
leading to an M.C.S. or a Ph.D. degree can do so in a joint
program offered by the School of Information Technology and
Engineering at the University of Ottawa and the School of
Computer Science at Carleton University under the auspices of
the OttawaCarleton Institute for Computer Science. The
Institute is responsible for supervising the program and for
providing a framework for interaction between the two
departments at the research level. In addition to the faculty
members from the two computer science departments, the
Institute also has members with computer science expertise from
other departments.
The M.C.S. is also available as part of ConGESE (Consortium
for Graduate Education in Software Engineering), a
collaborative program offering a specialization in software
engineering. This program is geared towards software
professionals working for participating industrial partners.
The ConGESE program imposes further regulations and
requirements on the existing program. The degree will in each
case specify the discipline of the participating unit with
Specialization in Software Engineering. Additional information
is available from the graduate supervisor and on the Web (by
searching for Congese).
Requests for information, and completed applications, should be sent to the
graduate supervisor of the academic unit in which the candidate expects to find
a supervisor.
The "home" department of each member is indicated by (SITE)
for the School of Information Technology and Engineering,
University of Ottawa; (ADM) for Faculty of Administration,
University of Ottawa; (MCG) for the Department of Mechanical
Engineering, University of Ottawa; (SCS) for the School of
Computer Science, Carleton University; (MAT) for the School of
Mathematics and Statistics, Carleton University; (SCE) for the
Department of Systems and Computer Engineering, Carleton
University; (C) for the Department of Civil and Environmental
Engineering, Carleton University; (BUS) for the School of
Business, Carleton University.
 D. Amyot, Software engineering, requirements engineering, feature interactions
(SITE)
 M. Barbeau, Telecommunications software, distributed systems, mobile
and wireless networks (SCS)
 Caroline Barrière, Natural language processing, lexical knowledge bases,
computational lexicography, knowledge acquisition and representation (SITE)
 L. Bertossi, Database systems, intelligent information systems, knowledge
representation (SCS)
 Gregor von Bochmann, Communication protocols, software engineering, formal
specifications, verification and validation, distributed applications and
systems management, multimedia, highspeed networks, realtime systems
(SITE)
 F. Bordeleau, Objectoriented system design, realtime and distributed
systems, software engineering (SCS)
 P. K. Bose, Applied geometric computing, computational geometry, data
structures, algorithm design and analysis, randomized algorithms, graph theory
(SCS)
 M. Bouchard, Signal processing, adaptive filtering, neural networks and
control, applied to speech, acoustics and audio (SITE)
 Sylvia Boyd, Combinatorial optimization, algorithm design and analysis,
graph theory, polyhedral combinatorics (SITE)
 Lionel Briand, Software verification and validation, software design
for testability and maintainability, software quality assurance and measurement
(SCE)
 J.P. Corriveau, Cognitive science, natural language understanding, CASE
and knowledgebased tools, objectoriented technology (SCS)
 Jurek Czyzowicz, (SITE/SCS  Adjunct)
 A. Dabrowski, (SITE)
 S. Dandamudi, Parallel and distributed systems, database systems, performance
evaluation, computer architecture, operating systems (SCS)
 F. Dehne, Computational complexity, design and analysis of algorithms,
computational geometry, parallel and systolic algorithms (SCS)
 D. Deugo, Largescale distributed object computing, evolutionary computation
(genetic algorithms, genetic programming, artificial life) and objectoriented
systems (SCS)
 J.D. Dixon, Algorithms in algebra and number theory, complexity theory,
group theory and representation (MAT)
 S. Dobrev, Design and analysis of algorithms, distributed algorithms,
combinatorial algorithms, fault tolerance, mobile computing, interconnection
networks, structural information in distributed computing (SITE)
 Eric Dubois, Digital signal processing, multidimensional signal processing,
data compression, source coding, image/video processing and coding (SITE)
 A. El Saddik, Multimedia communications (SITE)
 A.E.F. Fahim, Nonlinear optimization, computer aided design and manufacturing
(CAD/CAM) methodology and software, flexible manufacturing cell (FMC) control
environment, robot control, expert systems for design and manufacturing
(MCG)
 A.P. Felty, Theorem proving, automated deduction, formal methods in software
engineering, computational logic (SITE)
 P. Flocchini, Distributed computing, distributed algorithms, sense of
direction, compact routing, cellular automata, discrete chaos (SITE)
 N.D. Georganas, Multimedia broadband communications, computercommunications
(SITE)
 V. Groza, (SITE)
 Robert Holte, Artificial Intelligence, machine learning, knowledge compilation,
heuristic search (SITE)
 N. Holtz, Computerassisted structural engineering (CVE)
 D.J. Howe, Automated reasoning, applied logic, formal methods in software
engineering, programming languages (SCS)
 D.I.A. Ionescu, Computers, artificial intelligence, image processing,
discrete event and realtime systems (SITE)
 N. Japkowicz, Artificial Intelligence, machine learning (SITE)
 A. Karmouch, Multimedia communications, multimedia realtime distributed
information systems and databases (SITE)
 G.E. Kersten, Expert systems, decision support systems (BUS  Adjunct)
 E. Kranakis, Cryptography, combinatorial analysis, computational geometry,
distributed computing, distributed and data networks (SCS)
 D. Krizanc, Parallel and distributed computing, analysis of algorithms
and use of randomization in computation (SCS  Adjunct)
 T. Kunz, Wireless and mobile computing, load balancing in distributed
systems, distributed programming environments for parallel and distributed
systems, distributed systems management, parallel and distributed debugging,
program understanding (SCE)
 R. Laganière, Computer vision, image processing (SITE)
 W.R. Lalonde, Symbolic processing languages, fifth generation machines,
learning systems, compilers, artificial intelligence (SCS)
 M. Lanthier, Behaviourbased robotics, artificial life, computational
geometry, shortest path computations, GIS applications, parallel and distributed
computing applications (SCS)
 T. Lethbridge, Humancomputer interaction/user interfaces, software engineering,
software visualization, software reverse engineering, knowledge representation
(SITE)
 M. Liu, Database systems, Web query and inference technologies, objectoriented
programming, and logic programming(SCS)
 L. Logrippo, Telecommunications software engineering, software specification
and verification with emphasis on distributed software (SITE  Adjunct)
 C.H. Lung, Software engineering, network traffic engineering, distributed
and parallel computing (SCE)
 A. Maheshwari, Data structures and algorithms, parallel computation,
computational geometry, graph algorithms (SCS)
 S.A. Mahmoud, Wireless communication systems, protocols for highspeed
networks, speech processing and computer network design (SCE)
 S. Majumdar, Parallel and distributed systems, performance evaluation,
operating systems (SCE)
 D. Makrakis, Computer Networks: Architectures, Protocols, Management,
Broadband Applications (SITE)
 S.J. Matwin, Artificial intelligence, knowledgebased systems, machine
learning, software reuse (SITE)
 D. R. McDonald, Applied probability, rare events in queueing networks,
applications to telecommunications (SITE)
 A. Miri, (SITE)
 P. Morin, Computational geometry, parallel algorithms, network algorithms
and cryptography (SCS)
 L.R. Morris, Digital signal processing, speech analysis and synthesis,
computer graphics (SCE)
 B.C. Mortimer, Errorcorrecting codes, combinatorics, algorithm design
and analysis, group theory (MAT)
 L. Moura, Combinatorial algorithms, combinatorial designs and their applications,
combinatorial optimization (SITE)
 J. Neilson, Distributed and parallel computing, including: operating
systems, performance models, and applications; simulation and
prototyping methodology; computer system performance engineering (SCS
 Adjunct)
 D. Nussbaum, Computational geometry, medical computing, parallel and
distributed computing, geographic information systems, robotics and machine
vision, data structures and algorithms (SCS)
 J. Oommen, Learning systems, stochastic automata, pattern recognition,
image processing, adaptive data structures (SCS)
 F. Oppacher, Artificial intelligence, genetic algorithms, evolutionary
computing, machine learning (SCS)
 L. OrozcoBarbosa, Computer architecture, computer networks and performance
evaluation (SITE)
 B. Pagurek, Communications network management, artificial intelligence
and fault management, knowledgebased software debugging (SCE)
 D. Panario, Computer algebra, analytic combinatorics, analysis of algorithms,
cryptography, analytic, computational and combinatorial number theory
(MAT)
 P. Payeur, 3D modeling for robotics, computer vision, autonomous systems
(SITE)
 D. C. Petriu, Performance evaluation, software engineering (SCE)
 E.M. Petriu, Robotic sensing and perception, neural networks (SITE)
 R.L. Probert, Quality engineering of communications protocols and communications
software, accelerated techniques for software engineering (SITE)
 J. Pugh, Objectoriented programming systems, user interfaces, computer
graphics (SCS  Adjunct)
 J. Raymond, Teleeducation, intranet (SITE)
 G. Roth, Computer vision, image processing, evolutionary algorithms,
virtual reality and multimedia, computer graphics (SCS  Adjunct)
 J.R. Sack, Algorithms and complexity, computational geometry, graphics,
pattern recognition, robotics (SCS)
 N. Santoro, Distributed computing, fault tolerance, discrete chaos, reactive
environments (SCS)
 P. Scott, Logic, theoretical computer science, category theory (SITE)
 B. Selic, Software engineering, realtime systems, objectoriented modeling,
quality of service (SCS  Adjunct)
 J.B. Sidney, Combinatorial optimization, job shop scheduling (SITE)
 D.R. Skuce, Applications of artificial intelligence, expert systems,
intelligent help and text retrieval, natural language understanding (SITE)
 M. Smid, Computational geometry, data structures, geometric networks,
randomized algorithms, applications of computational geometry in manufacturing
and in the analysis of terrains (SCS)
 B. Stevens, Combinatorics (MAT)
 I. Stojmenovic, Wireless networks and mobile computing, algorithms (SITE)
 S. Szpakowicz, Computational linguistics, knowledge acquisition, decision
support systems (SITE)
 D.A. Thomas, Artificial intelligence, fifth generation machines (SCS
 Adjunct)
 M. Turcotte, Bioinformatics, algorithm design, applications of machine
learning (SITE)
 H. Ural, Software reliability, verification and testing, communication
protocols, distributed computing (SITE)
 R. Vaillancourt, Differential equations, numerical and applied mathematics,
scientific computation, image compression (JPEG, MPEG), wavelets, chirplets
(SITE)
 P. van Oorschot, Authentication, network security, software security,
software protection, cryptography and cryptographic protocols, digital signatures,
public key infrastructure (PKI) and key management, software tamper resistance,
automated obfuscation, encryption (SCS)
 H.L. Viktor, Data mining, information fusion and data warehousing
(SITE)
 G.A. Wainer, DEVS formalism, RealTime modeling, cellular models, modeling
and simulation methodologies and tools, parallel/distributed/Webbased simulation,
RealTime operating systems (SCE)
 M. Weiss, Electronic commerce, network communities, agent patterns
(SCS)
 G.M. White, Information systems, dynamic workflow systems, timetabling
and scheduling (SITE)
 T. White, Mobile agents, swarm and collective intelligence, evolutionary
computing, Internet applications, peertopeer computing (SCS)
 A.W. Williams, Software testing, multiplatform software development,
software engineering (SITE)
 C.M. Woodside, Performance modeling, performance of distributed software,
software design, queueing theory (SCE)
 D.J. Wright, Voice over packet networks, business case for broadband
networks, electronic commerce, telelearning (ADM)
 M.C.E. Yagoub, Artificial neural networks for communication systems,
optimization methods (SITE)
 T. Yamakami, Quantum complexity, theory of relativization, cryptography,
averagecase complexity, logic, and recursion theory (SITE)
 O. W. Yang, Computer communications network and protocol design, modeling,
performance evaluation, queueing theory internetworking, photonic and IP networks
(SITE)
 J. Yao, Microwave photoinics, fibreoptic communications, fibreoptic
sensors, optical signal processing (SITE)
 N. Zaguia, (SITE)
 J. Zhao, Image and video processing, multimedia communications (SITE)
Master of Computer Science
Admission Requirements
Applicants should have an Honours bachelor's degree in
computer science or the equivalent, with at least high honours
standing. By equivalent is meant an Honours degree in a program
which includes at least twelve computer science halfcredits,
two of which must be at the 4000level, as well as eight half
credits in mathematics, one of which must be at the 3000 or
4000level. These courses must include the topics indicated
below:
 Computer Science
 Data structures/file management, operating systems,
computer architecture, algorithm design and analysis,
assembly language and two highlevel languages
 Mathematics
 Calculus, linear algebra, algebraic structures or
discrete mathematics, probability and statistics, numerical
analysis. Applicants who have a general (3year) bachelor's
degree, or who otherwise lack the required undergraduate
preparation, may be admitted to a qualifyingyear program.
Refer to the General Regulations section of this Calendar
for regulations governing the qualifying year.
Program Requirements
The program includes graduate study and research in four
broad areas identified as follows:
 Software Engineering
 Theory of Computing
 Computer Applications
 Computer Systems
Within these areas, the program emphasizes problems of
current practical significance and has close links to the
scientific and industrial communities.
Normally, students in the program will be expected to
complete a thesis; however, students who have substantial
relevant work experience may be permitted to take the
nonthesis option, which must include a graduate research
project course. Each candidate submitting a thesis will be
required to undertake an oral defence of the thesis.
Students in the thesis option must take 2.5 credits, fulfil
the graduate seminar requirement, and complete a thesis.
Students in the nonthesis option must take 4.0 credits, plus a
graduate project (a project is equal to 1.0 credit and may be
completed in one or two terms), and fulfil the graduate seminar
requirement. The course selections must be approved by the
student's academic adviser, and must include at least:
 0.5 credit in software engineering
 0.5 credit in the theory of computing
 0.5 credit in either computer applications or computer
systems
The graduate seminar requirement includes a seminar
presentation and participation in at least ten sessions in the
joint graduate student seminar series.
Both course and thesis work may be completed either by
fulltime or parttime study.
A candidate may be permitted to carry out thesis work off
campus provided suitable arrangements are made for supervision
and experimental work, and prior approval is given by the
Institute.
Guidelines for Completion of Master's Degree
The following completion times are estimates only, based on
fulltime study, and are intended to provide guidance only.
Students are strongly urged to check with the supervisor of
graduate studies to determine the exact requirements of the
degree program and other related information. Parttime
students should calculate the completion times requirement by
doubling the time estimates given below.
Students should complete the course work within the first
two terms.
Selection of courses should be done in consultation with the student's faculty
advisor. Approval from the Graduate Supervisor of the Institute is only required
for courses not listed as valid OCICS courses. Subject to the approval of theGraduate
Supervisor, M.C.S. students may take courses in other relevant disciplines.
At least half of the course credits of an M.C.S. student must be valid OCICS
courses. At most, two Fourth Year undergraduate courses may be taken with the
permission of the Graduate Supervisor. A thesis supervisor and thesis topic
must be selected by the end of the second term. The supervisor of graduate studies
should be formally notified of this selection. The expected completion time
for the M.C.S. degree is four to six terms of fulltime study depending on the
type of thesis and the area of research.
Doctor of Philosophy
Admission Requirements
A master's degree in Computer Science (or the equivalent)
with high secondclass standing is normally required for
admission into the Ph.D. program. Students who are currently
registered in the M.C.S. program may, in exceptional cases, be
permitted to transfer into the Ph.D. program if they have
completed all course requirements with at least high
secondclass standing and demonstrate significant promise for
advanced research.
Program Requirements
 A minimum of 1.5 credits at the graduate level in at
least three different research areas (see OCICS course
grouping by area). The admission committee and the
student's advisory committee may impose additional program
requirements according to the student's background and
research topic. The thesis weight will be of 8.5
credits.
 Presentation of at least two seminars in the
OttawaCarleton Institute for Computer Science seminar
series: Minimally, the student must make one presentation
for the graduate seminar, as well as one presentation for
the departmental seminar.
 A comprehensive examination (COMP 6907) involving
breadth and depth components.
 A written thesis proposal (COMP 6908) defended at an
oral examination.
 A research thesis (COMP 6909) defended at an oral
examination.
Guidelines for Completion of Doctoral Degree
The following completion times are estimates based on
fulltime study.
During the first term, the student and his or her faculty adviser should select
graduate courses related to their area(s) of research and interests. Approval
from the Graduate Supervisor of the Institute is only required for courses not
listed as valid OCICS courses. Subject to the approval of the Graduate Supervisor,
Ph.D. students may take courses in other relevant disciplines. At least half
of the course credits of a Ph.D. student must be valid OCICS courses. An advisory
committee comprised of three to five faculty members must be established before
the student registers in the comprehensive examination. The committee is responsible
for the comprehensive examination, the thesis proposal, and for guiding the
student's research. The advisory committee must include at least one representative
from SITE. The advisory committee must be approved by the director or associate
director of the Institute. Comprehensive examinations (see COMP 6907) must be
taken within the first 4 terms. All course requirements must be completed within
the first 6 terms. Within the first 8 terms, the student must submit a written
thesis proposal and defend it in an oral examination (see COMP 6908). The expected
completion time for the Ph.D. program is approximately twelve terms depending
on the type of thesis and the area of research. Before the completion of the
program, the student is expected to present at least two seminars in the OttawaCarleton
Institute for Computer Science seminar series.
Residence Requirement
Students must fulfil a residence requirement of at least
four terms of fulltime study.
Graduate Courses
 Not all of the following courses are offered in a given
year. For an uptodate statement of course offerings for
20032004, please consult the Registration Instructions and
Class Schedule booklet, published in the summer.
To determine the term of offering, consult the Registration
Instructions and Class Schedule booklet, or online at:
www.carleton.ca/cu/programs/sched_dates/
Subject to the approval of the Graduate Supervisor, Ph.D. students may take
courses in other relevant disciplines. The courses in the following list are
offered by the two departments forming OCICS.
Carleton University
COMP School of Computer Science
University of Ottawa
CSI School of Information Technology and Engineering
Software Engineering
COMP 5001 (CSI 5113)
COMP 5104 (CSI 5314)
COMP 5106 (CSI 5123)
COMP 5305 (CSI 5129)
COMP 5400 (CSI 5310)
COMP 5403 (CSI 5143)
COMP 6104 (CSI 7314)
COMP 6603 (CSI 7161)
CSI 5107 (COMP 5609) Program Construction and Fault Tolerance
CSI 5109 (COMP 5701) Specification Methods for Distributed Systems
CSI 5111 (COMP 5501) Software Quality Engineering
CSI 5115 (COMP 5503) Database Analysis and Design
CSI 5118 (COMP 5302) Automated Verification and Validation of Software
CSI 5122 (COMP 5301) Software Usability
CSI 5181 (COMP 5705) Artificial Intelligence in Software Engineering
CSI 5184 (COMP 5804) Logic Programming
CSI 5507(COMP 5609) La Construction et la Tolérance aux Fautes des Programmes
CSI 5509 (COMP 5701) Méthodes Algébriques pour la Spécification de Systemes
Répartis
CSI 5518(COMP 5708) Conception des compilateurs et traducteurs
CSI 5584 (COMP 5804) Programmation logique
Theory of Computing
COMP 5003 (CSI 5308)
COMP 5005 (CSI 5390)
COMP 5008 (CSI 5164)
COMP 5107 (CSI 5185)
COMP 5203 (CSI 5173)
COMP 5404 (CSI 5144)
COMP 5408 (CSI 5121)
COMP 5409 (CSI 5127)
COMP 5703 (CSI 5163)
COMP/MATH 5807 (CSI 5104)
COMP 6601 (CSI 7160)
COMP 6602 (CSI 7170)
CSI 5101 (COMP 5601) Formal Models of Computational Systems
CSI 5107 (COMP 5609) Program Construction and Fault Tolerance
CSI 5108 (COMP 5700) Software Specification and Verification
CSI 5110 (COMP 5707) Principles of Formal Software Development
CSI 5162 (COMP 5702) Order: Its Algorithms and Graphical Data Structures
CSI 5164 (COMP 5008) Computational Geometry
CSI 5165 (COMP 5709) Combinatorial Algorithms
CSI 5166(COMP 5805) Applications of Combinatorial Optimization
CSI 5169 (COMP 5304) Wireless Networks and Mobile Computing
CSI 5174 (COMP 5604) Validation Methods for Distributed Systems
CSI 5367 (COMP 5300) Structure in Complexity Theory
CSI 5507 (COMP 5609) La Construction et la Tolérance aux Fautes de Programmes
CSI 5508 (COMP 5700) Spécification et Vérification de Logiciels
CSI 5510 (COMP 5707) Principes de développement formel de logiciels
CSI 5565 (COMP 5709) Algorithmes Combinatoires
Computer Applications
COMP 5006 (CSI 5306)
COMP 5100 (CSI 5180)
COMP 5204 (CSI 5124)
COMP 5206 (CSI 5183)
COMP 5401 (CSI 5389)
COMP 5406 (CSI 5105)
COMP 5407 (CSI 5116)
COMP 6604 (CSI 7162)
CSI 5114 (COMP 5504) Automated Office Systems
CSI 5125 (COMP 5107) Simulation
CSI 5126 (COMP 5108) Algorithms in Bioinformatics
CSI 5161 (COMP 5606) Topics in System Simulation and Optimization
CSI 5162 (COMP 5702) Order: Its Algorithms and Graphical Data Structures
CSI 5181 (COMP 5705) Artificial Intelligence Applications in Software Engineering
CSI 5304 (COMP 5602) Knowledge Engineering
CSI 5380 (COMP 5405) Systems and Architectures for Electronic Commerce
CSI 5386 (COMP 5505) Natural Language Processing
CSI 5387 (COMP 5706) Data Mining and Concept Learning
CSI 5388 (COMP 5801) Topics in Machine Learning
CSI 5514 (COMP 5504) Bureautique
CSI 5580 (COMP 5100) Sujet en intelligence artificielle
CSI 5581 (COMP 5705) Applications de l'intelligence artificielle dans le développement
des systèmes
CSI 5787 (COMP 5706) Apprentissage Symbolique Automatique
Computer Systems
COMP 5003 (CSI 5308)
COMP 5009 (CSI 5141)
COMP 5101 (CSI 5311)
COMP 5102 (CSI 5312)
COMP 5105 (CSI 5132)
COMP 5107 (CSI 5185)
COMP 5203 (CSI 5173)
COMP 5401 (CSI 5389)
COMP 5402 (CSI 5142)
COMP 5403 (CSI 5143)
COMP 5406 (CSI 5105)
COMP 5407 (CSI 5116)
COMP 5704 (CSI 5131)
COMP 6100 (CSI 7131)
COMP 6602 (CSI 7170)
COMP 6605 (CSI 7163)
CSI 5109 (COMP 5701) Specification Methods for Distributed Systems
CSI 5114 (COMP 5504) Automated Office Systems
CSI 5133 (COMP 5608) Simulation and Testing of Logic Circuits
CSI 5169 (COMP 5304) Wireless Networks and Mobile Computing
CSI 5170 (COMP 5800) Distributed Data Processing
CSI 5171 (COMP 5303) Network Architectures, Services, Protocols and Standards
CSI 5174 (COMP 5604) Validation Methods for Distributed Systems
CSI 5380 (COMP 5405) Systems and Architectures for Electronic Commerce
CSI 5509 (COMP 5701) Méthodes Algébriques pour la Spécification de Systems
Répartis
CSI 5514 (COMP 5504) Bureautique
Theses, Projects and Topics
COMP 5900 (CSI 5140)
COMP 5901 (CSI 5901)
COMP 5902 (CSI 5900)
COMP 5903 (CSI 6900)
COMP 5904 (CSI 5902)
COMP 5905 (CSI 7999)
COMP 6601 (CSI 7160)
COMP 6602 (CSI 7170)
COMP 6603 (CSI 7161)
COMP 6604 (CSI 7162)
COMP 6605 (CSI 7163)
COMP 6901 (CSI 7901)
COMP 6902 (CSI 7900)
COMP 6907 (CSI 9998)
COMP 6908 (CSI 9997)
COMP 6909 (CSI 9999)

