Course description
The program includes graduate study and research in four areas: Software Engineering,
Theory of Computing, Computer Applications, Computer Systems.
Thesis Stream
The following list represents basic program requirements:
1. a minimum of five one-half credit courses
2. completion and defence of a thesis (COMP 5905)
3. attendance at 10 seminars and presentation of one seminar within the OCICS Graduate Seminar Series (COMP 5904)
Non-thesis Stream
Students with substantial relevant work experience may be permitted to do a graduate research project course in lieu of a thesis. The following list represents basic program requirements:
1. eight one-half credit courses
2. completion of an Intensive Graduate Project in Computer Science (COMP 5903)
3. attendance at 10 seminars and presentation of one seminar within the OCICS Graduate Seminar Series (COMP 5904)
* Co-op Stream
The course requirements are the same for those students under the thesis stream but after two terms of course work, applicants take two terms of Co-op work in industry.
COMP 5001 [0.5 credit] (CSI 5113)
Foundations of Programming Languages
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 on underlying principles. Topics may include: types, modules, inheritance, semantics, continuations, abstraction and reflection.
Prerequisite: COMP 3007 or the equivalent.
COMP 5002 [0.5 credit] (CSI 5128)
Swarm Intelligence
Collective computation, collective action, and principles of self-organization in social agent systems. Algorithms for combinatorial optimization problems, division of labour, task allocation, task switching, and task sequencing with applications in security, routing, wireless and ad hoc networks and distributed manufacturing.
COMP 5003 [0.5 credit] (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.
COMP 5005 [0.5 credit] (CSI 5390)
Learning Systems for Random Environments
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 equivalent.
COMP 5006 [0.5 credit] (CSI 5306)
Natural Language Understanding
Introduction to current research in natural language processing; 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 equivalent.
COMP 5008 [0.5 credit] (CSI 5164)
Computational Geometry
Study of design and analysis of algorithms to solve geometric problems; 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 equivalent.
COMP 5009 [0.5 credit] (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] (CSI 5180)
Topics in Artificial Intelligence
Areas in knowledge-based systems including recent approaches to machine learning and data mining, inference methods, knowledge-based and fuzzy systems, heuristic search, and natural language processing.
Precludes additional credit for COMP 4106.
Prerequisite: COMP 3007 or equivalent.
COMP 5101 [0.5 credit] (CSI 5311)
Distributed Databases and Transaction Processing Systems
Principles 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, 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] (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] (CSI 5314)
Object-Oriented Software Development
Issues in modeling and verifying quality and variability in object-oriented systems. Testable models in model-driven and test-driven approaches. System family engineering. Functional conformance: scenario modeling and verification, design by contract. Conformance to non functional requirements: goals, forces and tradeoffs, metrics.
Prerequisite: COMP 2004 or equivalent.
COMP 5105 [0.5 credit] (CSI 5132)
Parallel Processing Systems
Introduction to 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] (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, and debugging.
Prerequisite: COMP 5001.
COMP 5107 [0.5 credit] (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.
Prerequisite: permission of the School.
COMP 5203 [0.5 credit] (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, and advanced topics on high-speed networks, ATM, mobile wireless networks, and optical networks.
Prerequisite: COMP 4804 or permission of the School.
COMP 5204 [0.5 credit] (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] (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.
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 developments in database systems shaping the future of information systems, including complex object, object-oriented, object-relational, and semi-structured databases. Data structures, query languages, implementation and applications.
Prerequisites: COMP 3005 or the equivalent.
COMP 5306 [0.5 credit] (CSI 5100)
Data Integration
Materialized and virtual approaches to integration of heterogeneous and independent data sources. Emphasis on data models, architectures, logic-based techniques for query processing, metadata and consistency management, the role of XML and ontologies in data integration; connections to schema mapping, data exchange, and P2P systems.
Prerequisites: COMP 3005 or equivalent.
Precludes additional credit for COMP 5900 section 'G' offered fall term 2002 and 2004.
COMP 5307 [0.5 credit] (CSI 5101)
Knowledge Representation
KR is concerned with representing knowledge and using it in computers. Emphasis on logic-based languages for KR, and automated reasoning techniques and systems; important applications of this traditional area of AI to ontologies and semantic web.
Prerequisites: COMP 1805 and COMP 3005, or equivalents.
Precludes additional credit for COMP 5900 section 'X' offered in winter term from 2003-2004 to 2005-2006 inclusive.
COMP 5308 [0.5 credit] (CSI 5102)
Topics in Medical Computing
Introductory course on data structures, algorithms, techniques, and software development related to medical computing (in particular spatial modeling). Topics may include: computational geometry algorithms for cancer treatment, medical imaging, spatial data compression algorithms, dynamic programming for DNA analysis.
Prerequisite: COMP 3804 or equivalent. Precludes additional credit for COMP 5900 section 'Y' offered 2001-2002 to 2005-2006 inclusive.
COMP 5400 [0.5 credit] (CSI 5310)
Software Patterns
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] (CSI 5389)
Electronic Commerce Technologies
Introduction to business models and technologies. Search engines. Cryptography. Web services and agents. Secure electronic transactions. Value added e-commerce technologies. Advanced research questions.
Prerequisites: COMP 2005 and COMP 4104, or CSI 4128 and CSI 3140, or equivalent.
COMP 5402 [0.5 credit] (CSI 5142)
Protocols for Mobile and Wireless Networks
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] (CSI 5143)
Real-Time System Development
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] (CSI 5144)
Computer-Aided Program Verification
Automatic verification techniques for concurrent, reactive, and real-time programs. Topics may include 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] (CSI 5105)
Network Security and Cryptography
Advanced methodologies selected from symmetric and public key cryptography, network security protocols and infrastructure, identification, secret-sharing, anonymity, intrusion detection, firewalls, defending network attacks and performance in communication networks.
Prerequisites: COMP 3203 and COMP 4109, or equivalent, or permission of the instructor.
COMP 5407 [0.5 credit] (CSI 5116)
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 the instructor.
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] (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] (CSI 5131)
Parallel Algorithms and Applications in Bioinformatics
Multiprocessor architectures from an application programmer's perspective: programming models, processor clusters and multi-core processors, algorithmic paradigms, efficient parallel problem solving, limits of parallelism, software scalability and portability. Projects with an emphasis on high performance computing in bioinformatics. Programming experience on parallel processing equipment.
Prerequisite: COMP 3804 or the equivalent.
COMP 5802 [0.5 credit]
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.)
COMP 5807 [0.5 credit] (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. (Also listed as MATH 5807.)
Prerequisite: COMP 3002, or MATH 4805 or MATH 5605, or the equivalent.
COMP 5900 [0.5 credit] (CSI 5140)
Selected Topics in Computer Science
Selected topics, not covered by other graduate courses. Details will be available from the School at the time of registration.
COMP 5901 [0.5 credit] (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] (CSI 5900)
Graduate Project (M.C.S./M.Sc. [ISS])
COMP 5903 [1.0 credit] (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] (CSI 7999)
M.C.S. Thesis
COMP 5906 (CSI 6901) [0.0 credit]
Master's Co-operative Workterm 1
Prerequisites: registration in the Co-operative Education option of the Master of Computer Science program and permission of the School.
COMP 5907 (CSI 6902) [0.0 credit]
Master's Co-operative Workterm 2
Prerequisites: registration in the Co-operative Education option of the Master of Computer Science program and permission of the School.
MATH /SYSC/ COMP 5908 [1.5 credits]
M.Sc. Thesis in Information and Systems Science