Ottawa-Carleton Institute for Computer Science Herzberg Building 538 Telephone: 788-4333 Fax: 788-4334 The Institute Director of the Institute: S.P. Dandamudi 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. 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, (SCS), Complexity, Algorithms, Computational Algebra L.G. Birta, (CSI), Simulation, Optimization, Numerical Algorithms Sylvia Boyd, (CSI), Optimization, Combinatorics R.J. Buhr, (SCE), Software Design, Design Visualization, Real-Time and Distributed Systems, Object-Oriented Systems T.-Y. Cheung, (CSI), Distributed Computing, Optimization, Databases J.W. Chinneck, (SCE), Operations Research, Applied Optimization J.-P. Corriveau, (SCS), Cognitive Science, Natural Language Understanding, CASE Tools S.P. Dandamudi, (SCS), Parallel and Distributed Systems, Database Systems, Performance Evaluation, Computer Architecture, Operating Systems N.W. Dawes, (SCE), Diagnosis and Pattern Recognition Frank Dehne, (SCS), Computational Geometry, VLSI Algorithms J.D. Dixon, (MAT), Algorithms, Algebra, Number Theory A.E.F. Fahim, (MCG), Nonlinear Optimization, CAD/CAM Methodology and Software, FMC <%8>Control Environment, Robot Control, Expert Systems for Design and Manufacturing Frantisek Fiala, (SCS), Optimization, Combinatorics N.D. Georganas, (ELG), Computer Communications, Mobile Radio Morris Goldberg, (ELG), Image Processing, Pattern Recognition R.C. Holte, (CSI) Artificial Intelligence, Machine Learning, Knowledge Compilation N.M. Holtz, (C) Computer-aided Structural Engineering G.M. Karam, (SCE), Concurrent and Real-Time Systems, Software Engineering, Communications Software A.R. Kaye, (SCE), Broadband Networks, BISDN, ATM, Performance Evaluation, Traffic Management and Design G.F. Kersten, (BUS), Knowledge-based Systems, Intelligent Decision Support, Problem Structuring and Representation Evangelos Kranakis, (SCS), Cryptography, Computational Number Theory, Combinatorial Analysis, Computational Geometry, Distributed Computing, Mathematical Logic Moshe Krieger, (ELG), Computer Architecture Danny Krizanc, (SCS), Parallel and Distributed Computing, Analysis of Algorithms and Use of Randomization in Computation W.R. LaLonde, (SCS), Object-Oriented Systems, Design and Analysis Tools, Animation Systems Luigi Logrippo, (CSI), Software Methodology, Communications Protocols S.A. Mahmoud, (SCE), Wireless Communication Systems, Protocols for High Speed Networks, Speech Processing and Computer Network Design S.J. Matwin, (CSI), Programing Languages, Expert Systems A. Mili, (CSI), Formal Specification, Program Transformation L.R. Morris, (SCE), Signal Processing, Speech Analysis, Graphics B.C. Mortimer, (MAT), Combinatorics, Algorithms, Groups Theory J. E. Neilson, (SCS), Distributed and Parallel Computing (including Operating Systems, Performance Models, and Applications), Simulation and Prototyping Methodology, Computer Systems Performance Engineering L.D. Nel, (SCS), Network Reliability and Performance, Digital Signal Processing, Computer Music J.B. Oommen, (SCS), Learning Systems, Stochastic Automata, Pattern Recognition, Image Processing, Adaptive Data Structures Franz Oppacher, (SCS), Artificial Intelligence, Genetic Algorithms, Evolutionary Computing, Machine Learing T.I. Oren, (CSI), Simulation, Modelling R.B. Osborne, (SCS), Speculative Computation, Parallel Processing, Programing Languages E.J. Otoo, (SCS), Databases, Algorithms Bernard Pagurek, (SCE), Queuing, Databases R.L. Probert, (CSI), Communications, Expert Systems J.R. Pugh, (SCS), Object-Oriented Programing Systems, User Interfaces, Computer Graphics Jacques Raymond, (CSI), Computer Architecture, Graphics Irwin Reichstein, (SCS), Numerical Applications, Microcomputers Ivan Rival, (CSI), Combinatorics, Optimization, Algorithms J.-R. Sack, (SCS), Algorithms and Complexity, Sequential and Parallel Computing, Computational Geometry, Geographic Information Systems, Medical Computing Nicola Santoro, (SCS), Distributed Computing, Fault-Tolerance, Discrete Chaos, Reactive Environments Philip Scott, (CSI), Logic, Theoretical Computer Science, Category Theory J.B. Sidney, (ADM), Combinatorics, Complexity, Computational Geometry D.R. Skuce, (CSI), Artificial Intelligence, Logic Programing Ivan Stojmenovic, (CSI), Computational Geometry, Multiple-valued Logics, Parallel Computing Stan Szpakowicz, (CSI), Logic Programing, Computational Linguistics D.A. Thomas, (SCS), Artificial Intelligence, Fifth Generation Machines Hasan Ural, (CSI), Software Reliability and Testing, Data Communication Protocols, Applications of Logic Programing Jorge Urrutia, (CSI), Algorithms, Combinatorics, Geometry And Algorithms Rémi Vaillancourt, (CSI), Numerical Methods G.M. White, (CSI), Networking, Office Automation C.M. Woodside, (SCE), Performance Modelling, Performance of Distributed Software, Software Design, Queuing Theory Negib Zaguia, (CSI), Optimization, Theory of Algorithms, Theory of Ordered Sets Master of Computer Science Admission Requirements Applicants should have an honours bachelor's degree in computer science or 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 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: * Programing Systems and Languages Database systems, operating systems, software methodology, software translators, language design * Theory of Computing Analysis of algorithms, automata theory, formal languages, complexity, computability, logic and program schemata * Computer Applications Artifical intelligence, graphics, picture and signal processing, modelling and simulation, numerical analysis, optimization * Computer Systems Computer architecture, networks and distributed processing, computer communications, mini- and microcomputers 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 five half courses or equivalent, fulfil the graduate seminar requirement, and complete a thesis. Students in the non-thesis option must take ten half courses, and fulfil the graduate seminar requirement. The course selections must be approved by the student's academic adviser, and must include at least: * One half course in programing systems and languages * One half course in the theory of computing * One half course in either computer applications or computer systems The graduate seminar requirement includes a seminar presentation and participation in at least thirteen seminars 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. Doctor of Philosophy Admission Requirements A Master's degree in Computer Science (or 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 <%1>completed all course requirements with at least high second-class standing and demonstrate significant promise for advanced research. Program Requirements * A minimum of five half courses, or equivalent, at the graduate level which must include: one half course in programing systems and languages; one half course in the theory of computing; one half course in either computer applications or computer systems * Presentation of at least two seminars in the Computer Science Institute seminar series * A comprehensive examination involving breadth and depth components * A written thesis proposal defended at an oral examination * A research thesis, defended at an oral examination 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 University of Ottawa CSI Department of Computer Science ELG Department of Electrical Engineering MAT Department of Mathematics Programing Systems and Languages 94.480 Software Engineering 95.404 Systems Software 95.490 Advanced Topics in Computer Science 94.531 (ELG6131) System Design with Ada 94.573 (CSI5115) Integrated Database Systems 94.579 (CSI5112) Advanced Topics in Software Engineering 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 CSI5107 (95.569) Program Construction and Fault Tolerance CSI5111 (95.551) Software Testing: Theory and Practice CSI5118 (95.578) Design of Compilers and Translators CSI5184 (95.584) Logic Programing CSI5507 (95.569) La Construction et la Tolérance aux Fautes des Programmes 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 95.503 (CSI5308) Principles of Distributed Computing 95.504 (CSI5305) Topics in Arithmetic Complexity 95.505 (CSI5390) Automata Models of Learning Systems 95.508 (CSI5164) Computational Geometry 95.522 (CSI5172) Network Reliability 95.528 (CSI5167) Complexity of Boolean Functions 95.573 (CSI5163) Algorithm Analysis and Design 95/70.587 (CSI5104) Formal Language and Syntax Analysis 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 CSI5109 (95.571) Algebraic Specification Methods for Distributed Systems CSI5110 (95.577) Principles of Formal Software Development CSI5162 (95.572) Topics in the Theory of Computing CSI5165 (95.579) Combinatorial Algorithms CSI5166 (95.585) Applications of Combinatorial Optimization CSI5174T (95.564) Specification and Validation of Communication Software CSI5507 (95.569) La Construction et la Tolérance aux Fautes de Programmes CSI5508 (95.570) Spécification et Vérification de Logiciels CSI5509 (95.571) Méthodes Algébriques pour la Spécification de Systemes Répartis 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) Topics in Combinatorial Mathematics 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 (CSI5120) Simulation and Modelling 94.504 (ADM6371) Mathematical Programing for Engineering Applications 94.505 (CSI5150) Optimization Theory and Methods 94.534 (ELG6134) Mini-Micro Applications 94.535 (ELG6135) Representations and Methods in Design Tools for Concurrent Systems 94.542 (ELG6142) Advanced Dynamics with Applications to Robots 94.553 (ELG6153) Stochastic Processes 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 CSI5114 (95.554) Automated Office Systems CSI5161 (95.566) Topics in System Simulation and Optimization CSI5181 (95.575) Artificial Intelligence Applications in Software Development 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 ELG5119 (92.519) Stochastic Processes Computer Systems 94.457 Introduction to the Architecture of Computer Systems 94.470 Introduction to Telecommunications 95.408 Performance Modelling 94.511 (ELG6111) Computer System Design for Performance 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.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 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.574 (CSI5131) Parallel Algorithms and their VLSI Implementation 95.610 (CSI7131) Advanced Parallel and Systolic Algorithms 95.662 (CSI7170) Advanced Topics in Distributed Computing 97.587 (ELG6387) Microprocessor Electronics 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 CSI5388 (95.581) Topics in Machine Learning CSI5514 (95.554) Bureautique CSI5535 (95.565) Les machines de haut niveau ELG5192 (92.577) Microprocessor-based Systems ELG5193 (92.578) Multi-microprocessor Systems ELG5374 (92.567) Computer-Communication Networks ELG5378TH (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