Ottawa-Carleton Institute for Computer Science


Herzberg Building 5302
Telephone: 520-4333
Fax: 520-4334
E-mail: scs@carleton.ca

The Institute



Director of the Institute:
B.J. Oommen
Associate Director of the Institute:
S.J. Matwin

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 Department of Computer Science at the University of Ottawa and the School of Computer Science at Carleton University under the auspices of the Ottawa-Carleton 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 sotware 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.

Requests for information, and completed applications, should be sent to the director or associate director of the Institute. A joint admissions committee examines all applications and assigns students to the most appropriate campus and supervisor.

Members of the Institute

The “home” department of each member is indicated by (CSI) for the Department of Computer Science, University of Ottawa; (ELG) for the Department of Electrical 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 Department of Mathematics and Statistics, Carleton University; (SCE) for the Department of Systems and Computer Engineering, Carleton University; (C) for the Department of Civil Engineering, Carleton University; (BUS) for the School of Business, Carleton University. M.D. Atkinson,* Complexity, Algorithms, Computational Algebra (SCS)
L.G. Birta, Simulation, Optimization, Numerical Algorithms (CSI)
Sylvia Boyd, Optimization, Combinatorics (CSI)
R.J. Buhr, Software Design, Design Visualization, Real-Time and Distributed Systems, Object-Oriented Systems, Software Architecture, Use Case-Maps (SCE)
J.W. Chinneck, Operations Research, Applied Optimization (SCE)
J.-P. Corriveau, Cognitive Science, Natural Language  Understanding, CASE Tools (SCS)
S.P. Dandamudi, Parallel and Distributed Systems, Database Systems, Performance Evaluation, Computer Architecture, Operating Systems (SCS)
N.W. Dawes,* Diagnosis and Pattern Recognition (SCE)
Frank Dehne, Computational Geometry, VLSI Algorithms (SCS)
J.D. Dixon, Algorithms, Algebra, Number Theory (MAT)
A.E.F. Fahim, Nonlinear Optimization, CAD/CAM Methodology and Software, FMC Control Environment, Robot Control, Expert Systems for Design and Manufacturing (MCG)
Frantisek Fiala, Combinatorial Algorithms, Vehicle Routing Problems, Graph Drawing (SCS)
N.D. Georganas,Computer Communications, Mobile Radio (ELG)
Morris Goldberg, Image Processing, Pattern Recognition (ELG)
R.C. Holte, Artificial Intelligence, Machine Learning, Knowledge Compilation (CSI)
N.M. Holtz,Computer-aided Structural Engineering (C)
G.E. Kersten, Knowledge-based Systems, Intelligent Decision Support, Problem Structuring and Representation (BUS)

Evangelos Kranakis, Cryptography, Computational Number Theory, Combinatorial Analysis, Computational Geometry, Distributed Computing, Data Networks, Mathematical Logic (SCS)
Moshe Krieger, Computer Architecture (ELG)
Danny Krizanc, Parallel and Distributed Computing, Analysis of Algorithms and Use of Randomization in Computation (SCS)
W.R. LaLonde, Object-Oriented Systems, Design and Analysis Tools, Animation Systems (SCS)
Luigi Logrippo, Software Methodology, Communications Protocols (CSI)
S.A. Mahmoud, Wireless Communication Systems, Software Project Management, Protocols for High Speed Networks, Speech Processing and Computer Network Design (SCE)
S.J. Matwin, Programing Languages, Expert Systems (CSI)
A. Mili, Formal Specification, Program Transformation (CSI)
B.C. Mortimer, Combinatorics, Algorithms, Groups Theory (MAT)
J. E. Neilson, Distributed and Parallel Computing including: Operating Systems, Performance Models, and Design  Tools; Simulation and Prototyping Methodology, Computer Systems Performance Engineering (SCS)
L.D. Nel, Object-Oriented Programing and Obect-Oriented Development, Computer Music and Multimedia (SCS)
J.B. Oommen, Learning Systems, Stochastic Automata, Syntactic Pattern Recognition, Adaptive Data Structures, Neural Networks (SCS)
Franz Oppacher, Artificial Intelligence, Genetic Algorithms, Evolutionary Computing, Machine Learing (SCS)
T.I. Ören, Simulation, Modelling (CSI)
E.J. Otoo, Databases, Algorithms (SCS)
Bernard Pagurek, Communications Network Management, Artificial Intelligence and Fault Management, Knowledge-Based Software Debugging (SCE)
R.L. Probert, Communications, Expert Systems (CSI)
J.R. Pugh,* Object-Oriented Development Environments (SCS)
Jacques Raymond, Computer Architecture, Graphics (CSI)
Ivan Rival, Combinatorics, Optimization, Algorithms (CSI)
J.-R. Sack, Algorithms and Complexity, Computational Geometry, Geographic Information Systems, Parallel Computing, Graphics (SCS)

Nicola Santoro, Distributed Computing, Fault-Tolerance, Discrete Chaos, Reactive Environments (SCS)
Philip Scott, Logic, Theoretical Computer Science, Category Theory (CSI)
J.B. Sidney, Combinatorics, Complexity, Computational Geometry (ADM)
D.R. Skuce, Artificial Intelligence, Logic Programing (CSI)
Ivan Stojmenovic, Computational Geometry, Multiple-valued Logics, Parallel Computing (CSI)
Stan Szpakowicz, Logic Programing, Computational Linguistics (CSI)
D.A. Thomas,*Artificial Intelligence, Fifth Generation Machines (SCS)
Hasan Ural, Software Reliability and Testing, Data Communication Protocols, Applications of Logic Programing (CSI)
Jorge Urrutia, Algorithms, Combinatorics, Geometry And Algorithms (CSI)
Rémi Vaillancourt, Numerical Methods (CSI)
G.M. White, Networking, Office Automation (CSI)
C.M. Woodside, Performance Modelling, Performance of Distributed Software, Software Design, Queuing Theory (SCE)
Negib Zaguia, Optimization, Theory of Algorithms, Theory of Ordered Sets (CSI)

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 half courses, two of which must be at the fourth-year level, as well as eight half courses in mathematics, one of which must be at the third- or fourth-year level. 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 high-level languages

Mathematics
Calculus, linear algebra, algebraic structures or discrete mathematics, probability and statistics, numerical analysis. Applicants who have a general (pass) bachelor’s degree, or who otherwise lack the required undergraduate preparation, may be admitted to a qualifying-year 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: 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 non-thesis 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  (or the equivalent), fulfil the graduate seminar requirement, and complete a thesis. Students in the non-thesis option must take 4.0 credits (or the equivalent), 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:

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 full-time or part-time study.

A candidate may be permitted to carry out thesis work off campus provided that 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 full-time 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. Part-time 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 supervisor of graduate studies. A thesis supervisor and a 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 full-time 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 second-class 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 second-class standing and demonstrate significant promise for advanced research.

Program Requirements

Guidelines for Completion of the Doctoral Degree

The following completion times are estimates based on full-time study, and are intended to provide guidance only.

During the first term, the thesis supervisor and the student must select courses. Course selection must  be submitted for approval to the director or associate director of the Institute. An advisory committee comprised of three to five faculty members must be established before the end of the second term. The committee is responsible for the comprehensive examination, the thesis proposal, and for guiding the student’s research. The advisory committee must be approved by the director or associate director of the Institute. Comprehensive examinations must be taken within the first 12 months. All course requirements must be completed within the first 24 months. The student must submit a written thesis proposal and defend it in an oral examination. The expected completion time for the Ph.D. program is nine to 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 Ottawa-Carleton Institute for Computer Science seminar series.

Residence Requirement

Students must fulfil a residence requirement of at least four terms of full-time study.

Graduate Courses


The courses in the following list are offered by various departments indicated by the prefix of the course code as follows:

Carleton University

70    Department of Mathematics and Statistics

94    Department of Systems and Computer
Engineering

95    School of Computer Science

97    Department of Electronics

University of Ottawa
CSI Department of Computer Science ELG Department of Electrical Engineering MAT Department of Mathematics

Software Engineering

94.480 Software Engineering

95.404 Systems Software

95.490 Advanced Topics in Computer Science

94.531 (ELG6131)
System Design with Ada

94.571 (CSI5117)
Operating System Methods for Real-Time Applications

94.573 (ELG6173)
Integrated Database Systems

94.579 (ELG6179)
Advanced Topics in Software Engineering

94.586 (ELG6186)
Object-Oriented Design of Real-Time and Distributed Systems

95.501 (CSI5113)
Foundations of Programing Languages

95.502 (CSI5119)
User-Interface Facilities

95.514 (CSI5314)
Object-Oriented Systems

95.516 (CSI5123)
Languages for Parallel Computing

95.614 (CSI7314)
Advanced Topics in Object-Oriented Systems

95.663 (CSI7161)
Advanced Topics in Programing Systems and Languages

CSI5107 (95.569)
Program Construction and Fault Tolerance


CSI5109 (95.571)
Specification Methods for Distributed Systems

CSI5111 (95.551)
Software Testing: Theory and Practice

CSI5118 (95.578)
Design of Compilers and Translators

CSI5181 (95.575)
Artificial Intelligence in Software Engineering

CSI5184 (95.584)
Logic Programing

CSI5507 (95.569)
La Construction et la Tolérance aux Fautes des Programmes

CSI5509 (95.571)
Méthodes Algébriques pour la Spécification de Systemes Répartis

CSI5518 (95.578)
Conception des compilateurs et traducteurs

CSI5584 (95.584)
Programmation logique

Theory of Computing

70.482 Introduction to Mathematical Logic

70/95.483 Topics in Applied Logic

70/95.484  Design and Analysis of Algorithms

70/95.485 Theory of Automata

70/95.486 Numerical Linear Analysis

95.409 Introduction to Parallel and Systolic Computing

70.565 (MAT5165)
Theory of Automata

70.585 (MAT5308)
Topics of Algorithm Design

94.505 (ELG6105)
Optimization Theory and Methods

95.503 (CSI5308)
Principles of Distributed Computing

95.504 (CSI5305)
Topics in Arithmetic Complexity

95.505 (CSI5390)
Learning Systems for Random Environments

95.508 (CSI5164)
Computational Geometry

95.517 (CSI5185)
Principles of Pattern Recognition

95.522 (CSI5172)
Network Reliability

95.523 (CSI5173)
Data Networks

95.528 (CSI5167)
Complexity of Boolean Functions

95.573 (CSI5163)
Algorithm Analysis and Design

95/70.587 (CSI5104)
Formal Language and Syntax Analysis

95.661 (CSI7160)
Advanced Topics in Theory of Computing

95.662 (CSI7170)
Advanced Topics in Distributed Computing

CSI5101 (95.561)
Formal Models of Computational Systems

CSI5107 (95.569)
Program Construction and Fault Tolerance

CSI5108 (95.570)
Software Specification and Verification





CSI5110 (95.577)
Principles of Formal Software Development

CSI5162 (95.572)
Order: Its Algorithms and Graphical Data Structures

CSI5164 (95.508)
Computational Geometry

CSI5165 (95.579)
Combinatorial Algorithms

CSI5166 (95.585)
Applications of Combinatorial Optimization

CSI5174T (95.564)
Validation Methods for Distributed Systems

CSI5507 (95.569)
La Construction et la Tolérance aux Fautes de Programmes

CSI5508 (95.570)
Spécification et Vérification de Logiciels

CSI5510 (95.577)
Principes de développement formel de logiciels

CSI5565 (95.579)
Algorithmes Combinatoires

Computer Applications

70/95.486 Numerical Linear Algebra

94.405 Discrete Simulation and Its Applications

95.402 Computer Graphics

95.403 Transaction Processing Systems
95.405 First Course in Robotics and Computer Vision

95.407 Applied Artifical Intelligence

70.569 (MAT5301)
Order: Its Algorithms and Graphical Data Structures
70.581  (MAT5303/ADM6385) Linear Optimization
70.583  (MAT5304/ADM6386) Nonlinear Optimization
70.584  (MAT5307/ADM6387) Topics in Operations Research
70.586 (MAT5180)
Numerical Analysis
70.588 (MAT5305)
Combinatorial Optimization I

70.589 (MAT5306)
Combinatorial Optimization II

94.501 (ELG6101)
Simulation and Modelling

94.503 (ELG6103)
Discrete Stochastic Models


94.504 (ELG6104)  
Mathematical Programing for Engineering Applications

94.505 (ELG6105)
Optimization Theory and Methods


94.535 (ELG6135)
Representations and Methods in Design Tools for Concurrent Systems

94.538 (ELG6138)
Computer Architecture and Parallel Processing

94.542 (ELG6142)
Advanced Dynamics with Applications to Robots

94.561 (ELG6161)
Neural Signal Processing

94.563 (ELG6163)
Digital Signal Processing Microprocesors, Software and Applications
95.506 (CSI5306)
Natural Language Understanding

95/94.507 (CSI5307)
Expert Systems

95.510 (CSI5180)
Topics in Artificial Intelligence

95.513 (CSI5313)
Cryptography

95.520 (CSI5182)
Cerebral Computations

95.524 (CSI5124)  
Computational Aspects of Geographic Information Systems

95.526 (CSI5183)
Genetic Algorithms and Artificial Life

95.664 (CSI7162)
Advanced Topics in Computer Applications

CSI5114 (95.554)
Automated Office Systems

CSI5125 (95.517)
Simulation

CSI5161 (95.566)  
Topics in System Simulation and Optimization

CSI5162 (95.572)
Order: Its Algorithms and Graphical Data Structures

CSI5181 (95.575)
Artificial Intelligence Applications in Software Engineering

CSI5304 (95.562)
Knowledge Engineering

CSI5386 (95.555)
Natural Language Processing

CSI5387 (95.576)
Concept Learning Systems

CSI5514 (95.554)
Bureautique
CSI5580 (95.510)
Sujet en intelligence artificielle

CSI5581 (95.575)
Applications de l’intelligence artificielle dans le développement des systèmes

CSI5787 (95.576)
Apprentissage Symbolique Automatique


ELG5162 (92.505)
Knowledge-Based Systems: Principles and Design

ELG5163 (92.510)
Machine Vision

ELG5196 (92.579)
Automata and Neural Networks: Applications in Machine Perception

ELG5199 (92.514)
Design of Multimedia Distributed Database Systems

ELG5373 (92.515)
Secure Communications and Data Encryption

Computer Systems

94.457 Introduction to the Architecture of Computer Systems

94.470 Introduction to Telecommunications

95.408 Performance Modelling

94.506 (ELG6106)
Design of Real-Time and Distributed Systems

94.511 (ELG6111)
Design of High Performance Software

94.519 (ELG6119)
Teletraffic Engineering

94.521 (ELG6121)
Computer Communications

94.527 (ELG6127)
Distributed Processing Systems

94.538 (ELG6138)
Computer Architecture and Parallel Processing

94.558 (ELG6158)
Digital Systems Architecture

94.563 (ELG6163)
Digital Signal Processing Microprocessors, Software and Applications

94.571 (CSI5117)
Operating System Methods for Real-Time Applications

94.576 (ELG6176)
Analytical Performance Models of Computer Systems

94.577 (ELG6177)
Teleprocessing Software Design

94.581 (ELG6181)
Advanced Topics in Computer Communications

94.587 (ELG6187)
Advanced Topics in Computer Systems

95.503 (CSI5308)
Principles of Distributed Computing

95.509 (CSI5141)
Associative Data Structures and Advanced Databases


95.511 (CSI5311)
Distributed Databases and Transaction Processing Systems

95.512 (CSI5312)
Distributed Operating Systems

95.515 (CSI5132)
Parallel Processing Systems

95.517 (CSI5185)
Principles of Pattern Recognition

95.523 (CSI5173)
Data Networks

95.574 (CSI5131)
Parallel Algorithms and their VLSI Implementation

95.610 (CSI7131)
Advanced Parallel and Systolic Algorithms

95.662 (CSI7170)
Advanced Topics in Distributed Computing
95.665 (CSI7163)
Advanced Topics in Computer Systems

97.587 (ELG6387)
Microprocessor Electronics

CSI5109 (95.571)
Specification Methods for Distributed Systems

CSI5114 (95.554)
Automated Office Systems

CSI5133 (95.568)
Simulation and Testing of Logic Circuits

CSI5135 (95.565)
High Level Language Machines

CSI5170 (95.580)
Distributed Data Processing

CSI5171 (95.583)
Software for Communication Networks

CSI5174 (95.564)
Validation Methods for Distributed Systems

CSI5388 (95.581)
Topics in Machine Learning

CSI5509 (95.571)
Méthodes Algébriques pour la Spécification de Systems Répartis

CSI5514 (95.554)
Bureautique

CSI5535 (95.565)
Les machines de haut niveau

ELG5192 (92.577)
Microprocessor-based Systems

ELG5193 (92.578)
Multi-microprocessor Systems

ELG5194 (92.573)
Design and Testing of Reliable Digital Systems

ELG5197 (92.512)
Introduction to Embedded Systems

ELG5198 (92.513)
Parallel Processing with VLSI

ELG5374 (92.567)
Computer-Communication Networks


ELG5378 (92.559)
Image Processing Techniques and Image Communications

Theses, Projects and Topics

95.590 (CSI5140)
Selected Topics in Computer Science

95.591 (CSI5901)
Directed Studies (M.C.S.)

95.592 (CSI5900)
Graduate Project (M.C.S.)

95/70/94.595 (CSI7999) M.C.S. Thesis

95.661 (CSI7160)
Advanced Topics in the Theory of Computing

95.662 (CSI7170)
Advanced Topics in Distributed Computing

95.663 (CSI7161)
Advanced Topics in Programing Systems and Languages

95.664 (CSI7162)
Advanced Topics in Computer Applications

95.665 (CSI7163)
Advanced Topics in Computer Systems

95.691 (CSI7901)
Directed Studies (Ph.D)

95.692 (CSI7900)
Graduate Project (Ph.D)

95.699 (CSI9999)
Ph.D. Thesis

CSI9998 Examen général de doctorat/Ph.D. Comprehensive Examination