Herzberg Building 5302
Telephone: (613) 520-4333
Fax: (613) 520-4334
Web site: www.scs.carleton.ca
Director of the School: Douglas Howe
Supervisor of Graduate Studies: J.-P. Corriveau
The School of Computer Science offers degrees leading to a
Master of Computer Science or a Ph.D. in Computer Science
through the Ottawa-Carleton Institute for Computer Science. The
Institute is jointly administered by the School and the School
of Information Technology and Engineering at the University of
Ottawa. For further information, including admission and
program requirements, see the Institute's section of this
A program leading to the M.Sc. in Information and Systems
Science is offered in cooperation with the School of
Mathematics and Statistics and the Department of Systems and
Computer Engineering. For further information see the
Information and Systems Science section in this Calendar.
The research expertise of the School's faculty is
concentrated in the following areas:
Algorithms and Complexity
Computational geometry and algebra, combinatorial optimization, distributed
and parallel algorithms, multi-dimensional data structures, stochastic automata,
graph theory, partial orders, randomized algorithms, routing in networks, network
algorithms, online algorithms, network security, authentication, cryptography.
Knowledge-Based and Intelligent Systems
Evolutionary computation (genetic algorithms, genetic programming, artificial
life), logic programming, knowledge representation, natural language understanding
and cognitive science, learning systems, robotics, pattern recognition, swarm
and collective intelligence.
Automated reasoning, formal methods in software engineering, Web technologies,
electronic commerce, databases, telecommunications software and distributed
systems, mobile and wireless networks, satellite communications, software and
agent patterns, object-oriented systems and modeling, scenario modeling, generative
modeling, programming and quality engineering.
Parallel and Distributed Systems
Communication networks, interconnection networks. Parallel processing, coarse-grained
parallel computing, parallel geometric computing, parallel data mining, parallel
biochemistry applications, performance evaluation, mobile agents, peer-to-peer
In addition to its undergraduate laboratories, the School
maintains a number of state-of-the-art research laboratories
all integrated via a department and campus area network.
- Not all of the following courses are offered in a given
year. For an up-to-date statement of course offerings for
2003-2004 and to determine the term of offering, consult
the Registration Instructions and Class Schedule booklet,
published in the summer and also available online at
Course Designation System
Carleton's course designation system has been restructured.
The first entry of each course description below is the new
alphanumeric Carleton course code, followed by its credit value
in brackets. The old Carleton course number (in parentheses) is
included for reference, where applicable.
The complete list of courses available through the
Ottawa-Carleton Institute for Computer Science is provided in
the Institute's section of this Calendar. The following courses
are offered by the School of Computer Science.
- COMP 5001 [0.5 credit] (formerly 95.501) (CSI 5113)
- Foundations of Programming Languages
- An advanced study of programming paradigms from a practical perspective.
Paradigms may include functional, imperative, concurrent, distributed, generative,
aspect- and object-oriented, and logic programming. Emphasis will be on underlying
principles. Specific topics may include: types, modules, inheritance, semantics,
continuations, abstraction and reflection.
- Prerequisite: COMP 3007 or the equivalent.
- COMP 5003 [0.5 credit] (formerly 95.503) (CSI 5308)
- Principles of Distributed Computing
- Formal models; semantics of distributed computations; theoretical issues
in design of distributed algorithms; computational complexity; reducibility
and equivalence of distributed problems. Related topics: systolic systems
and computations, oligarchical systems and control mechanisms.
- Prerequisite: COMP 4001 or equivalent.
- COMP 5005 [0.5 credit] (formerly 95.505) (CSI 5390)
- Learning Systems for Random Environments
- A course on computerized adaptive learning for random environments and its
applications. Topics include a mathematical review, learning automata which
are deterministic/stochastic, with fixed/variable structures, of continuous/discretized
design, with ergodic/absorbing properties and of estimator families.
- Prerequisite: MATH 2600 or MATH 3500, or SYSC 5503 or the equivalent.
- COMP 5006 [0.5 credit] (formerly 95.506) (CSI 5306)
- Natural Language Understanding
- Introduction to current research in natural language processing, with emphasis
on semantics and pragmatics rather than syntactic issues, and on analyzing
text rather than single sentences. Topics include: meaning representation,
representation of pragmatic information, speech act theory, flexible parsing,
anaphor and reference, contextual meaning.
- Prerequisite: COMP 4007 or COMP 4106 or the equivalent.
- COMP 5008 [0.5 credit] (formerly 95.508) (CSI 5164)
- Computational Geometry
- A study of the design and analysis of algorithms to solve geometric problems
with an emphasis on applications such as robotics, graphics, and pattern recognition.
Topics include: visibility problems, hidden line and surface removal, path
planning amidst obstacles, convex hulls, polygon triangulation, point location.
- Prerequisite: COMP 3804 or the equivalent.
- COMP 5009 [0.5 credit] (formerly 95.509) (CSI 5141)
- Associative Data Structures and Advanced Databases
- Concepts and advanced topics in the design, implementation and analysis
of physical storage schemes with emphasis on their application to specialized
database and information retrieval systems. Topics include: associative searching
techniques; multidimensional storage structures; algorithms for spatial data
modeling; formulation and optimization of database queries.
- Prerequisites: COMP 3005 and COMP 3804, or the equivalent.
- COMP 5100 [0.5 credit] (formerly 95.510) (CSI 5180)
- Topics in Artificial Intelligence
- Several areas in knowledge-based systems are covered, including recent approaches
to machine learning and data mining, inference methods, knowledge-based and
fuzzy systems, heuristic search, and natural language processing.
- Prerequisite: COMP 3007 or the equivalent
- Precludes: COMP 4106 or the equivalent.
- COMP 5101 [0.5 credit] (formerly 95.511) (CSI 5311)
- Distributed Databases and Transaction Processing Systems
- Principles involved in the design and implementation of distributed databases
and distributed transaction processing systems. Topics include: distributed
computing concepts, computing networks, distributed and multi-database system
architectures and models, atomicity, synchronization and distributed concurrency
control algorithms, data replication, recovery techniques, and reliability
in distributed databases.
- Precludes additional credit for COMP 4101.
- Prerequisites: COMP 3005, COMP 4001, and COMP 4003 or equivalent.
- COMP 5102 [0.5 credit] (formerly 95.512) (CSI 5312)
- Distributed Operating Systems
- Design issues of advanced multiprocessor distributed operating systems:
multiprocessor system architectures; process and object models; synchronization
and message passing primitives; memory architectures and management; distributed
file systems; protection and security; distributed concurrency control; deadlock;
recovery; remote tasking; dynamic reconfiguration; performance measurement,
modeling, and system tuning.
- Prerequisite: COMP 3000 or equivalent.
- COMP 5104 [0.5 credit] (formerly 95.514) (CSI 5314)
- Object-Oriented Software Development
- This course addresses current issues in object-oriented software engineering
(modeling and programming). Possible topics include object-oriented languages,
models and methodologies, CASE tools, design patterns, real-time performance,
testing approaches and patterns, generative and meta programming.
- Prerequisite: COMP 2004 or equivalent.
- COMP 5105 [0.5 credit] (formerly 95.515) (CSI 5132)
- Parallel Processing Systems
- Introduction to the issues involved in designing and using parallel processing
systems. Topics include: taxonomy and applications of parallel systems; SIMD
systems; multiprocessor systems; multicomputer systems; computation versus
communication issues in parallel processing; scheduling parallel systems;
spinning versus blocking; interconnection networks; hot-spot contention.
- Prerequisite: permission of the School.
- COMP 5106 [0.5 credit] (formerly 95.516) (CSI 5123)
- Languages for Parallel Computing
- Survey of major language paradigms for parallel computing: sequential imperative,
parallel imperative, logic, functional (reduction and dataflow), object and
message-passing based languages; communicating sequential processes; and massive
data-level parallelism. Topics include: detection, determinism, data partitioning,
task scheduling, task granularity, synchronization methods, resource management,
- Prerequisite: COMP 5001
- COMP 5107 [0.5 credit] (formerly 95.517) (CSI 5185)
- Statistical and Syntactic Pattern Recognition
- Topics include a mathematical review, Bayes decision theory, maximum likelihood
and Bayesian learning for parametric pattern recognition, non-parametric methods
including nearest neighbor and linear discriminants. Syntactic recognition
of strings, substrings, subsequences and tree structures. Applications include
speech, shape and character recognition.
- Prerequisites: Permission of the School.
- COMP 5203 [0.5 credit] (formerly 95.523) (CSI 5173)
- Data Networks
- Mathematical and practical aspects of design and analysis of communication
networks. Topics include: basic concepts, layering, delay models, multi-access
communication, queuing theory, routing, fault-tolerance, as well as advanced
topics on high-speed networks, ATM, mobile wireless networks, and optical
- Prerequisite: COMP 4804 or permission of the School.
- COMP 5204 [0.5 credit] (formerly 95.524) (CSI 5124)
- Computational Aspects of Geographic Information Systems
- Computational perspective of geographic information systems (GIS). Data
representations and their operations on raster and vector devices: e.g., quadtrees,
grid files, digital elevation models, triangular irregular network models.
Analysis and design of efficient algorithms for solving GIS problems: visibility
queries, point location, facility location.
- Prerequisite: COMP 3804 or the equivalent.
- COMP 5206 [0.5 credit] (formerly 95.526) (CSI 5183)
- Evolutionary Computation and Artificial Life
- Study of algorithms based upon biological theories of evolution, applications
to machine learning and optimization problems. Possible topics: Genetic Algorithms,
Classifier Systems, and Genetic Programming. Recent work in the fields of
Artificial Life (swarm intelligence, distributed agents, behavior-based AI)
and of connectionism is also studied.
- Prerequisites: COMP 3007 or the equivalent.
- Precludes: COMP 4107 or the equivalent.
- COMP 5305 [0.5 credit] (CSI 5129)
- Advanced Database Systems
- In-depth study on several new developments in database systems shaping the
future of information systems, including complex object, object-oriented,
object-relational, and semi-structured databases. Examines their data structures,
query languages, implementation and applications.
- Prerequisites: COMP 3005 or the equivalent.
- COMP 5400 [0.5 credit] (formerly 95.540) (CSI 5310)
- Software Patterns
- This course surveys current developments in software patterns, three-part
rules expressing relations between software contexts, problems and solutions.
Pattern categories discussed include architectural, design, analysis, refactoring,
general-purpose, anti-patterns, and idioms. Students are required to apply
existing patterns and to develop and defend new ones.
- Prerequisites: COMP 3004 or equivalent.
- COMP 5401 [0.5 credit] (formerly 95.541) (CSI 5389)
- Electronic Commerce Technologies
- Basic e-commerce models. Internet infrastructure and tools. TCP/IP, Web
servers, search engines. Cryptography. Public key infrastructure. Key management
and certificate authorities. Secure Socket Layer and secure electronic transactions.
Content presentation: XML. Open trading protocol. Intelligent mobile agents.
Auctions and negotiations. Case studies.
- Prerequisites: COMP 2005 and COMP 4104
- COMP 5402 [0.5 credit] (formerly 95.542) (CSI 5142)
- Wireless Networks and Protocols
- Focus is on the link and network layer protocols of wireless networks; applications
of wireless networks may be discussed. Topics may include: protocol implementation,
mobile IP, resource discovery, wireless LANs/PANs, and Spreadspectrum. Precludes
additional credit for SYSC 5306.
- Prerequisite: COMP 3203 or equivalent.
- COMP 5403 [0.5 credit] (formerly 95.543) (CSI 5143)
- Real-Time System Development
- An advanced course in real-time OO system development that deals with modeling
systems at different abstraction levels. A systematic and traceable modeling
process is introduced. Topics include: modeling notations (including UML-RT),
development process, design patterns, and system testing. Expect a substantial
design project. Precludes additional credit for SYSC 5806.
- Prerequisite: COMP 5104 or equivalent.
- COMP 5404 [0.5 credit] (formerly 95.544) (CSI 5144)
- Computer-Aided Program Verification
- Automatic verification techniques for concurrent, reactive, and real-time
programs. Possible topics: temporal logics, the basic model-checking algorithm,
symbolic model checking, compositional techniques, exploiting abstraction
and symmetry, models based on partial orders, model-checking for the mu-calculus,
applications to communication protocols, computer security and digital circuits.
- Prerequisite: COMP 4004 or equivalent.
- COMP 5406 [0.5 credit]
- Network Security and Applied Cryptography
- Advanced methodologies selected from symmetric and public key cryptography,
key distribution, identification, authentication, secret-sharing, pseudo random
number generation, anonymity, intrusion detection, firewalls, defending network
attacks and performance in communication networks.
- Prerequisites:COMP 3203 and COMP 4109, or equivalent; or permission of the
- COMP 5407 [0.5 credit]
- Authentication and Software Security
- Specialized topics in security including advanced authentication techniques,
user interface aspects, electronic and digital signatures, security infrastructures
and protocols, software vulnerabilities affecting security, untrusted software
and hosts, protecting software and digital content.
- Prerequisites: COMP 3000 and COMP 4108, or equivalent; or permission of
- COMP 5408 [0.5 credit] (CSI 5121)
- Advanced Data Structures
- Simple methods of data structure design and analysis that lead to efficient
data structures for several problems. Topics include randomized binary search
trees, persistence, fractional cascading, self-adjusting data structures,
van Emde Boas trees, tries, randomized heaps, and lowest common ancestor queries.
Prerequisite: COMP 4804 or equivalent.
- COMP 5409 [0.5 credit] (CSI 5127)
- Applied Computational Geometry
- Computer-based representation and manipulation of geometric objects. Design
and analysis of efficient algorithms for solving geometric problems in applied
fields such as Computer-Aided Design and Manufacturing, Cartography, Materials
Science, and Geometric Network Design.
Prerequisite: COMP 4804 or equivalent.
- COMP 5703 [0.5 credit] (formerly 95.573) (CSI 5163)
- Algorithm Analysis and Design
- Topics of current interest in the analysis and design of sequential and
parallel algorithms for non-numerical, algebraic and graph computations. Lower
bounds on efficiency of algorithms. Complexity classes. Also offered at the
undergraduate level, with different requirements, as COMP 4804, for which
additional credit is precluded.
- Prerequisite: permission of the School.
- COMP 5704 [0.5 credit] (formerly 95.574) (CSI 5131)
- Parallel Algorithms and Their Implementation
- Multiprocessor architectures from an application programmer's perspective:
programming models, processor arrays and hypercube multiprocessors, algorithmic
paradigms, efficient parallel problem solving, limits of parallelism, software
scalability and portability. Student projects in selected application areas:
image processing, robotics, graphics, animation, etc. Programming experience
on parallel processing equipment.
- Prerequisite: COMP 4804 or the equivalent.
- COMP 5802 [0.5 credit] (formerly 95.582)
- Introduction to Information and Systems Science
- An introduction to the process of applying computers in problem solving.
Emphasis is placed on the design and analysis of efficient computer algorithms
for large, complex problems. Applications in a number of areas are presented:
data manipulation, databases, computer networks, queuing systems, optimization.
(Also listed as MATH 5802, SYSC 5802, ISYS 5802)
- MATH /COMP 5807 [0.5 credit] (formerly 70./95.587) (CSI 5104)
- Formal Language and Syntax Analysis
- Computability, unsolvable and NP-hard problems. Formal languages, classes
of languages, automata. Principles of compiler design, syntax analysis, parsing
(top-down, bottom-up), ambiguity, operator precedence, automatic construction
of efficient parsers, LR, LR (O), LR(k), SLR, LL(k); syntax directed translation.
- Prerequisite: COMP 3002, or MATH 4805 or MATH 5605, or the equivalent.
- COMP 5900 [0.5 credit] (formerly 95.590) (CSI 5140)
- Selected Topics in Computer Science
- Selected topics, not covered by other graduate courses, will be offered.
Details will be available at the time of registration from the school.
- COMP 5901 [0.5 credit] (formerly 95.591) (CSI 5901)
- Directed Studies (M.C.S.)
- A course of independent study under the supervision of a member of the School
of Computer Science.
- COMP 5902 [0.5 credit] (formerly 95.592) (CSI 5900)
- Graduate Project (M.C.S./M.Sc. [ISS])
- COMP 5903 [1.0 credit] (formerly 95.593) (CSI 6900)
- Intensive Graduate Project (M.C.S.)
- A one or two session course. For M.C.S. non-thesis option students only.
Not to be combined for credit with COMP 5902.
- COMP 5904 [0.0 credit] (CSI 5902)
- Master's Seminar
- To complete this course, the student must attend 5 graduate seminars at
Carleton, and 5 at SITE within a year. The student must also make one presentation
in the context of this graduate seminar.
- COMP 5905 [2.5 credits] (formerly 95.595) (CSI 7999)
- M.C.S. Thesis
- MATH /SYSC/ COMP 5908 [1.5 credits] (formerly 70/94/95.598)
- M.Sc. Thesis in Information and Systems Science
- COMP 6100 [0.5 credit] (formerly 95.610) (CSI 7131)
- Advanced Parallel and Systolic Algorithms
- This course is a continuation of COMP 5704.
- Prerequisite: COMP 5704.
- COMP 6104 [0.5 credit] (formerly 95.614) (CSI 7314)
- Advanced Topics in Object-Oriented Systems
- Advanced object-oriented software engineering, in particular the issues
of reuse and testing. Sample topics include: interaction modeling; class and
cluster testing; traceability; design patterns and testing; the C++ standard
template library. Students will carry out research.
- Prerequisite: COMP 5104 or permission of instructor.
- COMP 6601 [0.5 credit] (formerly 95.661) (CSI 7160)
- Advanced Topics in the Theory of Computing
- COMP 6602 [0.5 credit] (formerly 95.662) (CSI 7170)
- Advanced Topics in Distributed Computing
- COMP 6603 [0.5 credit] (formerly 95.663) (CSI 7161)
- Advanced Topics in Programming Systems and Languages
- COMP 6604 [0.5 credit] (formerly 95.664) (CSI 7162)
- Advanced Topics in Computer Applications
- COMP 6605 [0.5 credit] (formerly 95.665) (CSI 7163)
- Advanced Topics in Computer Systems
- COMP 6901 [0.5 credit] (formerly 95.691) (CSI 7901)
- Directed Studies (Ph.D.)
- COMP 6902 [0.5 credit] (formerly 95.692) (CSI 7900)
- Graduate Project (Ph.D.)
- COMP 6907 [0.0 credit] (CSI 9998)
- Doctoral Comprehensive
- A committee must be assembled and approve at least 3 topics for written
examination: typically, a major and two minor areas. An oral examination occurs
if the written exam is passed. Both elements must take place within the first
4 terms following initial registration in the program.
- The comprehensive may be failed, passed conditionally (i.e., with extra
course requirements) or passed unconditionally. If failed this course may
be retaken at most one time.
- COMP 6908 [0.0 credit]
- Doctoral Proposal
- Within 8 terms following initial registration in the program, a document
generally defining the problem addressed, relating it to the literature, and
outlining the hypotheses, goals, research methodology, initial results and
validation approach must be submitted to an examination committee and successfully
- COMP 6909 [8.5 credits] (formerly 95.699) (CSI 9999)
- Ph.D. Thesis