Computer Science (COMP) Courses
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.
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.
Principles of Distributed Computing
Formal models of distributed environment; theoretical issues in the design of distributed algorithms; message and time complexity; problem solving in distributed settings. Problems discussed may include: coordination and control, information diffusion, leader election, consensus, distributed data operations, computing by mobile entities.
Fault Tolerance
Hardware and software techniques for fault tolerance. Topics include modeling and evaluation techniques, error detecting and correcting codes, module and system level fault detection mechanisms, design techniques for fault-tolerant and fail-safe systems, software fault tolerance through recovery blocks, N-version programming, algorithm-based fault tolerance, checkpointing.
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.
Graphical Models and Applications
Bayesian networks, factor graphs, Markov random fields, maximum a posteriori probability (MAP) and maximum likelihood (ML) principles, elimination algorithm, sum-product algorithm, decomposable and non-decomposable models, junction tree algorithm, completely observed models, iterative proportional fitting algorithm, expectation- maximization (EM) algorithm, iterative conditional modes algorithm.
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.
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.
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.
Distributed Operating Systems
An advanced course on the software infrastructure supporting large-scale cloud computing applications. Topics may include: distributed file systems, distributed databases, overlay networks, container orchestration, coordination services, security and privacy services, and large-scale AI pipelines.
Wireless Ad Hoc Networking
Self-organized, mobile, and hybrid ad hoc networks. Physical, medium access, networks, transport and application layers, and cross-layering issues. Power management. Security in ad hoc networks. Topology control and maintenance. Data communication protocols, routing and broadcasting. Location service for efficient routing.
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.
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.
Algorithms in Bioinformatics
Fundamental mathematical and algorithmic concepts underlying computational molecular biology; physical and genetic mapping, sequence analysis (including alignment and probabilistic models), genomic rearrangement, phylogenetic inference, computational proteomics and systemics modelling of the whole cell.
Computer Security and Usability
This course focuses on designing and evaluating security and privacy software with particular attention to human factors and how interaction design impacts security. Topics include current approaches to usable security, methodologies for empirical analysis, and design principles for usable security and privacy.
Data Management for Business Intelligence
Application of computational techniques to support business such as decision making, business understanding, data analysis, business process automation, learning from data, producing and using business models, data integration, data quality assessment and cleaning, use of contextual data, etc.
Algorithms for Data Science
Algorithmic techniques to handle (massive/big) data arising from, for example, social media, mobile devices, sensors financial transactions. Algorithmic techniques may include locality-sensitive hashing, dimensionality reduction, streaming, clustering, VC-dimensions, external memory, core sets, link analysis and recommendation systems.
Machine Learning for Healthcare
Principles, techniques, technology and applications of machine learning for medical data such as medical imaging data, genomic data, physiological signals, speech and language.
Quantum Communications and Networking
Quantum communications and networking; the use of individual photons and teleportation to represent and transmit information. Theoretical (mathematical) principles. Practical aspects (implementation and software simulation) of quantum communications and networking.
Geometry Processing
Concepts, representations, and algorithms for processing 3D geometric datasets. Topics include shape representations (e.g., triangle meshes and implicit functions), and the geometry processing pipeline covering the acquisition (e.g., with laser scanning or depth cameras), reconstruction, manipulation, editing, analysis, and fabrication (3D printing) of geometric models.
Machine Learning
Broad introduction to the fundamental concepts, techniques and algorithms in machine learning. Many of these concepts use probability, statistics, linear algebra and calculus; since some of the algorithms are implemented, programming skills at a level sufficient to write a reasonable non-trivial computer program are desirable.
Mining Software Repositories
Introduction to the methods and techniques of mining software engineering data. Software repositories and their associated data. Data extraction and mining. Data analysis and interpretation (statistics, metrics, machine learning). Empirical case studies.
Trends in Big Data Management
In-depth study of recent research articles in the field of data management, with focus on data integration, Internet of Things, large scale data management, recommendation systems, text processing, and question answering. Students will work on a term-long project.
Internet of Things Security
Security issues related to the Internet of Things (IoT). IoT device software design and device lifecycle, device pairing and configuration, management and security infrastructure, smart home platforms, data and communication protocol security, IoT operating systems, malware, firmware in embedded systems, security administration and best practices.
Cryptography
Security in encryption algorithms. Encryption and decryption. Entropy, equivocation, and unicity distance. Cryptanalysis and computational complexity. Substitution, transposition, and product ciphers. Symmetric ciphers: block and stream modes. Modular arithmetic. Public key cryptosystems. Factorization methods. Elliptic curve, lattice-based, and homomorphic cryptography. Proofs of security.
Computer Animation
Theories and techniques in 3D modeling and animation. Animation principles, categories, and history. Forward and inverse kinematics. Motion capture, editing and retargeting. Flexible bodies. Particle animation. Behavioral animation. Human modeling. Facial animation. Cloth animation and other sub-topics.
Computer Graphics
Principles and advanced techniques in rendering and modelling. Research field overview. Splines, subdivision surfaces and hierarchical surface representations. Physics of light transport, rendering equation and Bidirectional Reflectance Distribution Function. Classical ray tracing, radiosity, global illumination and modern hybrid methods. Plenoptic function and image-based rendering.
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.
Computational Aspects of Geographic Information Systems
Through recent advances in navigation systems, mobile devices, and new software such as Mapquest and Google Earth, GIS is becoming increasingly important and exciting from a CS perspective. This course lays the algorithmic foundations to understand, use and further this technology.
Virtual Environments
Basic concepts. Virtual worlds. Hardware and software support. World modeling. Geometric modeling. Light modeling. Kinematic and dynamic models. Other physical modeling modalities. Multi-sensor data fusion. Anthropomorphic avatars. Animation: modeling languages, scripts, real-time computer architectures. Virtual environment interfaces. Case studies.
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.
Software Engineering
Topics of current interest in Software Engineering, such as requirements engineering, precise and advanced modelling, development processes, change management, standards, and emerging types of applications.
Visual Analytics
Principles, techniques, technology and applications of information visualization for data analysis. Topics include human visual perception, cognitive processes, static and dynamic models of image semantics, interaction paradigms, big data visual analysis case studies.
Human-Computer Interaction Models, Theories, and Frameworks
Emphasis on the application of theory to user interface design. Review of main theories of human behaviour relevant to HCI, including especially cognitive dimensions of notations framework, mental models, distributed cognition, and activity theory, and their application to design and development of interactive systems.
Mobile Commerce Technologies
Wireless networks support for m-commerce; m-commerce architectures and applications; mobile payment support systems; business models; mobile devices and their operating systems; mobile content presentation; security issues and solutions; relevant cross layer standards and protocols; case studies.
Software Usability
Design principles and metrics for usability. Qualitative and quantitative methods for evaluation of software system usability: Heuristic evaluation, usability testing, usability inspections and walkthroughs, cognitive walkthroughs, formal usability experimentation. Ethical concerns. Economics of usability. Integration of usability engineering lifestyle.
Automated Verification & Validation of Software
Topics in formal test derivation methods, test management, high-level, CASE-based verification and validation, data-flow and control-flow measures and metrics for assessing quality of designs and code, regression analysis and testing.
Wireless Networks and Mobile Computing
Computational aspects and applications of design and analysis of mobile and wireless networking. Topics include Physical, Link Layer, Media Access Control, Wireless, Mobile LANs, Ad-Hoc, Sensor Networks, Power Consumption optimization, Routing, Searching, Service Discovery, Clustering, Multicasting, Localization, Mobile IP/TCP, File Systems, Mobility Models, Wireless Apps.
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.
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.
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.
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.
Digital Watermarking
Overview of recent advances in watermarking of image, video, audio, and other media. Spatial, spectral, and temporal watermarking algorithms. Perceptual models. Use of cryptography in steganography and watermarking. Content authentication, copy control, intellectual property, digital rights management and other applications.
Evolving Information Networks
Convergence of social and technological networks with WWW. Interplay between information content, entities creating it and technologies supporting it. Structure and analysis of such networks, models abstracting their properties, link analysis, search, mechanism design, power laws, cascading, clustering and connections with work in social sciences.
Introduction to Deep Learning and Reinforcement Learning
Fundamentals of machine learning; multi-layer perceptron, universal approximation theorem, back-propagation; convolutional networks, recurrent neural networks, variational auto-encoder, generative adversarial networks; components and techniques in deep learning; Markov Decision Process; Bellman equation, policy iteration, value iteration, Monte-Carlo learning, temporal difference methods, Q learning, SARSA, applications.
Learning-based Computer Vision
Introduction to learning-based computer vision; statistical learning background; image processing and filtering primer; convolutional neural networks (CNNs), network layers, computer vision data sets and competitions; computer vision problems, in particular, image classification, detection and recognition, semantic segmentation, image generation, multi view problems and tracking.
Ubiquitous Sensing for Smart Cities
Sensor and actuator networks. Dedicated and non-dedicated sensing. Vehicular sensing and smart transportation. Software Defined Things. Sensing as a service. Machine and deep learning-based misbehaviour detection. IoT-data analytics ecosystems. Federated Learning. AI-based security solutions. Auction and game theory concepts in ubiquitous sensing.
AI-Enabled Communications
Wireless networking fundamentals. Device to-device communications. Networking with cognitive radio. Cyber physical systems (CPS). Self-organization. Supervised and unsupervised learning. Reinforcement learning. Deep learning.
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.
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.
Systems and Architectures for Electronic Commerce
E-commerce system architecture with a focus design patterns. Web servers and application frameworks. Web protocols, services, and client technologies. Scaleability through load balancing, clustering, and code optimization. Internationalization, accessibility, and privacy. Data mining and sharing approaches for digital targeted advertising. E-commerce development project.
Network Security and Cryptography
Advanced methodologies selected from symmetric and public key cryptography, network security protocols and infrastructure, identification, anonymity, privacy technologies, secret-sharing, intrusion detection, firewalls, access control technologies, and defending network attacks.
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.
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.
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.
Internet Measurements and Security
Measurement methodologies for understanding complex Internet phenomena and behaviors including: spread of vulnerabilities, remote network topologies, attack patterns, content popularity, Internet censorship, service quality, and adoption of security systems. Tools for efficient measurements, large-scale data analysis, stats, reproducibility of results. Ethical considerations.
Software Quality Engineering
Software quality issues. Quality components and metrics. Software process quality. Software reliability engineering. Software design for testability. Requirements capture and validation. Systematic design validation; grey-box approach, test design, implementation and management, case studies in validation and verification of communications software. Object-oriented design and test.
Database Analysis & Design
The dimensional and multidimensional data models for data warehousing. Data dependencies and decomposition. Structure and use of data definition and manipulation languages. Database economics, engineering, deployment and evolution. Issues in integrity, security, the Internet and distributed databases. Relationships to decision support systems.
Natural Language Processing
Overview of both rule-based or symbolic methods and statistical methods as approaches to Natural Language Processing (NLP), with more emphasis on the statistical ones. Applications such as information retrieval, text categorization, clustering, and statistical machine translation could be discussed.
Validation Methods for Distributed Systems
Review of formal specification and description techniques for distributed and open systems. Verification techniques. Correctness proofs. Verification of general properties of distributed systems. Analysis and relief strategies. Testing techniques. Test generation strategies. Test architectures.
Principles of Distributed Simulation
Distributed simulation principles and practices. Synchronization protocols: Optimistic vs Conservative, Deadlock detection in conservative simulations, Time warp simulation. Distributed interactive simulation: Data distribution management, Interest management, High Level Architectures (HLA), Run Time Infrastructure (RTI). Distributed web-based and agent based simulation. Real time applications.
Introduction to Convex Optimization
Linear, nonlinear and convex problems. Convex affine sets. Convex, quasiconvex and log-convex functions. Operations preserving convexity. Recognizing and formulating convex optimization problems. The Lagrange function, optimality conditions, duality, geometric and saddle-point interpretations. Least-norm, regularized and robust approximations. Statistical estimation, detector design. Adaptive antennas.
Principle of Intelligent Transportation Systems
Fundamental concepts of ITS. Computer information and communication for ITS. The backbone of ITS communication, network topologies and configurations. ITS models and cvaluation Methods. Advanced transportation management, advanced traveler information and advanced driver assistant systems. Smart mobility and GPS localization algorithms.
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.
Parallel Algorithms and Applications in Data Science
Multiprocessor architectures from an application programmer’s perspective: programming models, processor clusters, multi-core processors, GPU’s, algorithmic paradigms, efficient parallel problem solving, scalability and portability. Projects on high performance computing in Data Science, incl. data analytics, bioinformatics, simulations. Programming experience on parallel processing equipment.
Data Mining & Concept Learning
Concepts and techniques of data mining. Methods for data summarization and data preprocessing. Algorithms for finding frequent patterns and association analysis; classification; cluster analysis and anomaly detection. Model selection, model evaluation and statistical significance testing. Applications of data mining and coping with Big Data.
Principles of Formal Software Development
Methodologies in formal software specification, development, and verification. The use of theorem proving, automated deduction, and other related formal methods for software correctness. Applications in program verification and secure computation.
Combinatorial Algorithms
Design of algorithms for solving problems that are combinatorial in nature, involving exhaustive generation, enumeration, search and optimization. Algorithms for generating basic combinatorial objects and for solving hard optimization problems. Metaheuristic search, backtracking, branch-and-bound. Computing isomorphism of combinatorial objects.
Topics in Machine Learning
Applications of Combinatorial Optimization
Topics in combinatorial optimization with emphasis on applications in Computer Science. Topics include network flows, various routing algorithms, polyhedral combinatorics, and the cutting plane method.
Special Topics in Computer Science
Special topics not covered by other graduate courses. Details will be available from the School at the time of registration.
Directed Studies (M.C.S.)
A course of independent study under the supervision of a member of the School of Computer Science.
Graduate Project (M.C.S.)
A one- or two-session course. For M.C.S. non-thesis option students only.
M.C.S. Thesis
Master's Co-operative Work Term
Advanced Parallel and Systolic Algorithms
Continuation of COMP 5704.
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.
Advanced Topics in the Theory of Computing
Advanced Topics in Distributed Computing
Advanced Topics in Programming Systems and Languages
Advanced Topics in Computer Applications
Advanced Topics in Computer Systems
Directed Studies (Ph.D.)
Graduate Project (Ph.D.)
Doctoral Comprehensive
Committee assembled approves 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.
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 defended.
Ph.D. Thesis
Note: Not all courses listed are offered in a given year. For an up-to-date statement of course offerings for the current session and to determine the term of offering, consult the class schedule at central.carleton.ca.
Summer session: some of the courses listed in this Calendar are offered during the summer. Hours and scheduling for summer session courses will differ significantly from those reported in the fall/winter Calendar. To determine the scheduling and hours for summer session classes, consult the class schedule at central.carleton.ca