School of Computer Science
Herzberg Bldg 5302
613-520-4333
http://scs.carleton.ca
- M.C.S. Computer Science
- M.C.S. Computer Science with Specialization in Bioinformatics (Specialization requirements listed under Bioinformatics)
- Ph.D. Computer Science
M.C.S. Computer Science
About the Program
The M.C.S. program leads to a graduate degree in Computer Science. The program combines breadth knowledge in computer science through course work and depth knowledge in the area of specialization through research (M.C.S. Thesis option) or through course work and a project (M.C.S. non-Thesis option).
- Software Engineering
- Theory of Computing
- Computer Systems
Within these areas, the program emphasizes problems of current practical significance and advances in computer science knowledge. The program fosters collaborative and interdisciplinary work with the scientific and industrial (private and public) communities.
Academic Regulations
See the General Regulations section of this Calendar.
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 that includes at least twelve computer science half-credits, two of which must be at the 4000-level, and eight half- credits in mathematics, one of which must be at the 3000- or 4000-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 (3-year) 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
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.
Thesis Option Requirements
2.5 credits in course work | 2.5 | |
Fulfilment of the graduate seminar requirement | ||
2.5 credits Thesis | 2.5 | |
Total Credits | 5.0 |
Non-Thesis Option Requirements
4.0 credits in course work | 4.0 | |
Fulfilment of the graduate seminar requirement | ||
1.0 credit in graduate project (a project may be completed in one or two terms) | 1.0 | |
Total Credits | 5.0 |
Notes:
- Course selections must be approved by the student's academic adviser, and must include at least (see OCICS course listing):
0.5 credit in software engineering 0.5 credit in the theory of computing 0.5 credit in either computer applications or computer systems - 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 suitable arrangements are made for supervision and experimental work, and prior approval is given by the Institute.
Co-operative Option
A co-operative option is also available to full-time students in the Masters of Computer Science. Co-operative education is based on the principle that academic studies combined with work experience are desirable for effective professional preparation.
In addition to all other requirements for the degree, students admitted to the co-operative option must satisfactorily complete two work terms placements with a suitable employer in order to graduate with a co-op designation on their transcripts and diplomas. It is desirable that the work placements be related to the student's research. Placements are subject to the approval of the Supervisor of Graduate Studies and of the student's research supervisor. These work terms are four months in duration and students will conduct job searches through the university's co-op office. During a work term, students will register in COMP 5913.While on a work term, students in this option are limited to taking one additional 0.5-credit course, or registering in their thesis.
Students in the co-op option normally apply for admission to the co-operative option during their first academic term. This option requires an initial study period of two academic terms, typically followed by two work terms and a final academic period to complete the remaining requirements of the degree. The student must submit a work term report or make a formal oral presentation upon the completion of each work placement, and receive a grade of Satisfactory in order to meet the requirements for the successful completion of that work term's requirement.
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 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 student's faculty advisor. Approval from the Graduate Supervisor of the Institute is only required for courses not listed as valid OCICS courses. Subject to the approval of the Graduate Supervisor, M.C.S. students may take courses in other relevant disciplines. At least half of the course credits of an M.C.S. student must be valid OCICS courses. At most, two Fourth Year undergraduate courses may be taken with the permission of the Graduate Supervisor. A thesis supervisor and 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.
Students wishing to pursue the co-op option normally apply for admission to the co-operative option during their first academic term. This option requires an initial study period of two academic terms, typically followed by two work terms and a final academic period to complete the remaining requirements of the degree. The student must submit a work term report or make a formal oral presentation upon the completion of each work placement, and receive a grade of Satisfactory in order to meet the requirements for the successful completion of that work term's requirement.
Ph.D. Computer Science
About the Program
The Ph.D. program leads to a Doctor of Philosophy degree in Computer Science. The program combines breadth knowledge in computer science through course work and depth knowledge in the area of specialization through research (Ph.D. Thesis option).
The Ph.D. areas of specialization are:
- Software Engineering
- Theory of Computing
- Computer Applications
- Computer Systems
Within these areas, the program emphasizes problems of current practical significance and advances in computer science knowledge. The program fosters collaborative and interdisciplinary work with the scientific and industrial (private and public) communities.
Academic Regulations
See the General Regulations section of this Calendar.
Admission Requirements
Admission to the Ph.D. in Computer Science requires a Masters in Computer Science with thesis, or equivalent including demonstrated significant research ability.
In exceptional cases, students who are currently in the M.C.S. program and who have completed all course requirements with a grade of no less than A in each course may be permitted to transfer into the Ph.D. program.
Program Requirements
A minimum of 1.5 credits at the graduate level in at least three different research areas (see OCICS course grouping by area). | ||
The admission committee and the student's advisory committee may impose additional program requirements according to the student's background and research topic. | ||
Thesis weight will be of 8.5 credits. | ||
Presentation of at least two seminars in the Ottawa-Carleton Institute for Computer Science seminar series: Minimally, the student must make one presentation for the graduate seminar, and one presentation for the departmental seminar. | ||
A comprehensive examination involving breadth and depth components: | ||
COMP 6907 [0.0] | Doctoral Comprehensive (comprehensive examination involving breadth and depth components) | |
A written thesis proposal defended at an oral examination: | ||
COMP 6908 [0.0] | Doctoral Proposal (written thesis proposal defended at an oral examination) | |
A research thesis defended at an oral examination: | ||
COMP 6909 [8.5] | Ph.D. Thesis (research thesis defended at an oral examination) |
Guidelines for Completion of Doctoral Degree
The following completion times are estimates based on full-time study.
- During the first term, the student and his or her faculty adviser should select graduate courses related to their area(s) of research and interests. Approval from the Graduate Supervisor of the Institute is only required for courses not listed as valid OCICS courses.
- Subject to the approval of the Graduate Supervisor, Ph.D. students may take courses in other relevant disciplines. At least half of the course credits of a Ph.D. student must be valid OCICS courses.
- An advisory committee comprised of three to five faculty members must be established before the student registers in the comprehensive examination. The committee is responsible for the comprehensive examination, the thesis proposal, and for guiding the student's research. The advisory committee must include at least one representative from EECS at the University of Ottawa. The advisory committee must be approved by the director or associate director of the Institute.
- Comprehensive examinations (see COMP 6907) must be taken within the first 4 terms.
- All course requirements must be completed within the first 6 terms.
- Within the first 8 terms, the student must submit a written thesis proposal and defend it in an oral examination (see COMP 6908).
- The expected completion time for the Ph.D. program is approximately 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 fulfill a residence requirement of at least four terms of full-time study.
Graduate Courses
Not all of the following courses are offered in a given year. For an up-to-date statement of course offerings or to determine the term of offering, consult central.carleton.ca
Subject to the approval of the Graduate Supervisor, M.C.S. and Ph.D. students may take courses in other relevant disciplines. The courses in the following list are offered by the two departments forming OCICS.
Carleton University
COMP School of Computer Science
University of Ottawa
CSI School of Electrical Engineering and Computer Science
Software Engineering
COMP 5001 (CSI 5113) | Foundations of Programming Languages | |
COMP 5104 (CSI 5314) | Object-Oriented Software Development | |
COMP 5106 (CSI 5123) | Languages for Parallel Computing | |
COMP 5400 (CSI 5310) | Software Patterns | |
COMP 6104 (CSI 7314) | Advanced Topics in Object-Oriented Systems | |
COMP 6603 (CSI 7161,CSI 7561) | Advanced Topics in Programming Systems and Languages | |
CSI 5107 (COMP 5609) | Program Construction and Fault Tolerance | |
CSI 5109 (COMP 5701) | Specification Methods for Distributed Systems | |
CSI 5111 (COMP 5501) | Software Quality Engineering | |
CSI 5112 (COMP 5207) | Software Engineering | |
CSI 5115 (COMP 5503) | Database Analysis and Design | |
CSI 5118 (COMP 5302) | Automated Verification and Validation of Software | |
CSI 5122 (COMP 5301) | Software Usability | |
CSI 5134 (COMP 5004) | Fault Tolerance | |
CSI 5143 (COMP 5403) | Real-time Systems Development | |
CSI 5184 (COMP 5804) | Logic Programming | |
CSI 5507 (COMP 5609) | Les programmes: construction et tolerance aux fautes | |
CSI 5509 (COMP 5701) | Methodes pour la specification de systemes repartis | |
CSI 5584 (COMP 5804) | Programmation logique |
Theory of Computing
COMP 5003 (CSI 5308) | Principles of Distributed Computing | |
COMP 5005 (CSI 5390) | Learning Systems for Random Environments | |
COMP 5008 (CSI 5164) | Computational Geometry | |
COMP 5107 (CSI 5185) | Statistical and Syntactic Pattern Recognition | |
COMP 5203 (CSI 5173) | Data Networks | |
COMP 5306 (CSI 5100) | Data Integration | |
COMP 5307 (CSI 5101) | Knowledge Representation | |
COMP 5308 (CSI 5102) | Topics in Medical Computing | |
COMP 5404 (CSI 5144) | Computer-Aided Program Verification | |
COMP 5408 (CSI 5121) | Advanced Data Structures | |
COMP 5409 (CSI 5127) | Applied Computational Geometry | |
COMP 5703 (CSI 5163) | Algorithm Analysis and Design | |
COMP 5807 (MATH 5807,CSI 5104) | Formal Language and Syntax Analysis | |
COMP 6601 (CSI 7160) | Advanced Topics in the Theory of Computing | |
COMP 6602 (CSI 7170,CSI 7970) | Advanced Topics in Distributed Computing | |
CSI 5107 (COMP 5609) | Program Construction and Fault Tolerance | |
CSI 5108 (COMP 5700) | Software Specification and Verification | |
CSI 5110 (COMP 5707) | Principles of Formal Software Development | |
CSI 5126 (COMP 5108) | Algorithms in Bioinformatics | |
CSI 5148 (COMP 5103) | Wireless Ad Hoc Networking | |
CSI 5149 (COMP 5007) | Graphical Models | |
CSI 5161 (COMP 5606) | Topics in System Simulation and Optimization | |
CSI 5162 (COMP 5702) | Order: Its Algorithms and Graphical Data Structures | |
CSI 5165 (COMP 5709) | Combinatorial Algorithms | |
CSI 5166 (COMP 5805) | Applications of Combinatorial Optimization | |
CSI 5169 (COMP 5304) | Wireless Networks and Mobile Computing | |
CSI 5174 (COMP 5604) | Validation Methods for Distributed Systems | |
CSI 5367 (COMP 5300) | Structure in Complexity Theory | |
CSI 5507 (COMP 5609) | Les programmes: construction et tolerance aux fautes | |
CSI 5508 (COMP 5700) | Specification et verification de logiciels | |
CSI 5510 (COMP 5707) | Principes de developpement formel de logiciels | |
CSI 5526 (COMP 5180) | Algorithmes en bioinformatique | |
CSI 5562 (COMP 5702) | Ordre: algorithmes et structures graphiques de donnees | |
CSI 5565 (COMP 5709) | Algorithmes combinatoires |
Computer Applications
COMP 5002 (CSI 5128) | Swarm Intelligence | |
COMP 5100 (CSI 5180,CSI 5580) | Topics in Artificial Intelligence | |
COMP 5204 (CSI 5124) | Computational Aspects of Geographic Information Systems | |
COMP 5206 (CSI 5183) | Evolutionary Computation and Artificial Life | |
COMP 5305 (CSI 5129) | Advanced Database Systems | |
COMP 5306 (CSI 5100) | Data Integration | |
COMP 5307 (CSI 5101) | Knowledge Representation | |
COMP 5308 (CSI 5102) | Topics in Medical Computing | |
COMP 5401 (CSI 5389, CSI 5789) | Electronic Commerce Technologies | |
COMP 5406 (CSI 5105) | Network Security and Cryptography | |
COMP 5407 (CSI 5116) | Authentication and Software Security | |
COMP 6604 (CSI 7162) | Advanced Topics in Computer Applications | |
CSI 5114 (COMP 5504) | Automated Office Systems | |
CSI 5126 (COMP 5108) | Algorithms in Bioinformatics | |
CSI 5145 (COMP 5109) | Statistical Approaches to Natural Language Processing | |
CSI 5146 (COMP 5202) | Computer Graphics | |
CSI 5147 (COMP 5201) | Computer Animation | |
CSI 5151 (COMP 5205) | Virtual Environments | |
CSI 5162 (COMP 5702) | Order: Its Algorithms and Graphical Data Structures | |
CSI 5168 (COMP 5309) | Digital Watermarking | |
CSI 5304 (COMP 5602) | Knowledge Engineering | |
CSI 5380 (COMP 5405) | Systems and Architectures for Electronic Commerce | |
CSI 5386 (COMP 5505) | Natural Language Processing | |
CSI 5387 (COMP 5706) | Data Mining and Concept Learning | |
CSI 5388 (COMP 5801) | Topics in Machine Learning | |
CSI 5514 (COMP 5504) | Bureautique | |
CSI 5526 (C0MP 5180) | Algorithmes en bioinformatique | |
CSI 5562 (COMP 5702) | Ordre: algorithmes et structures graphiques de donnees | |
CSI 5580 (COMP 5100) | Sujet en intelligence artificielle | |
CSI 5780 (COMP 5405) | Systemes et architectures des logiciels pour le commerce electronique | |
CSI 5787 (COMP 5706) | Fouille des donnees et apprentissage des concepts |
Computer Systems
COMP 5003 (CSI 5308) | Principles of Distributed Computing | |
COMP 5009 (CSI 5141) | Associative Data Structures and Advanced Databases | |
COMP 5101 (CSI 5311) | Distributed Databases and Transaction Processing Systems | |
COMP 5102 (CSI 5312) | Distributed Operating Systems | |
COMP 5107 (CSI 5185) | Statistical and Syntactic Pattern Recognition | |
COMP 5203 (CSI 5173) | Data Networks | |
COMP 5305 (CSI 5129) | Advanced Database Systems | |
COMP 5401 (CSI 5389, CSI 5789) | Electronic Commerce Technologies | |
COMP 5402 (CSI 5142) | Protocols for Mobile and Wireless Networks | |
COMP 5406 (CSI 5105) | Network Security and Cryptography | |
COMP 5407 (CSI 5116) | Authentication and Software Security | |
COMP 5704 (CSI 5131) | Parallel Algorithms and Applications in Bioinformatics | |
COMP 6100 (CSI 7131) | Advanced Parallel and Systolic Algorithms | |
COMP 6602 (CSI 7170,CSI 6970) | Advanced Topics in Distributed Computing | |
COMP 6605 (CSI 7163) | Advanced Topics in Computer Systems | |
CSI 5109 (COMP 5701) | Specification Methods for Distributed Systems | |
CSI 5114 (COMP 5504) | Automated Office Systems | |
CSI 5132 (COMP 5105) | Parallel Processing Systems | |
CSI 5133 (COMP 5608) | Simulation and Testing of Logic Circuits | |
CSI 5134 (COMP 5004) | Fault Tolerance | |
CSI 5143 (COMP 5403) | Real-time Systems Development | |
CSI 5147 (COMP 5201) | Computer Animation | |
CSI 5148 (COMP 5103) | Wireless Ad Hoc Networking | |
CSI 5161 (COMP 5606) | Principles of Distributed Simulation | |
CSI 5168 (COMP 5309) | Digital Watermarking | |
CSI 5169 (COMP 5304) | Wireless Networks and Mobile Computing | |
CSI 5170 (COMP 5800) | Distributed Data Processing | |
CSI 5171 (COMP 5303) | Network Architectures, Services, Protocols and Standards | |
CSI 5174 (COMP 5604) | Validation Methods for Distributed Systems | |
CSI 5380 (COMP 5405) | Systems and Architectures for Electronic Commerce | |
CSI 5509 (COMP 5701) | Methodes pour la specification de systemes repartis | |
CSI 5514 (COMP 5504) | Bureautique | |
CSI 5780 (COMP 5405) | Systemes et architectures des logiciels pour le commerce electronique |
Others
COMP 5900 (CSI 5140) | Selected Topics in Computer Science | |
COMP 5901 (CSI 5901) | Directed Studies (M.C.S.) | |
COMP 5902 (CSI 5900) | Graduate Project (M.C.S./M.Sc. [ISS]) | |
COMP 5903 (CSI 6900) | Intensive Graduate Project (M.C.S.) | |
COMP 5904 (CSI 5902) | Master's Seminar | |
COMP 5905 (CSI 7999) | M.C.S. Thesis | |
COMP 5913 | Master's Co-operative Workterm | |
COMP 6901 (CSI 7901) | Directed Studies (Ph.D.) | |
COMP 6902 (CSI 7900) | Graduate Project (Ph.D.) | |
COMP 6907 (CSI 9998) | Doctoral Comprehensive | |
COMP 6908 (CSI 9997) | Doctoral Proposal | |
COMP 6909 (CSI 9999) | Ph.D. Thesis |
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; 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.
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.
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.
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.
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.
Prerequisite(s): COMP 3005, COMP 4001, and COMP 4003 or equivalent.
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.
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.
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.
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
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
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.
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.
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.
Prerequisite(s): COMP 3005 or equivalent.
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.
Prerequisite(s): COMP 1805 and COMP 3005, or equivalents.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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./M.Sc. [ISS])
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.
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.
M.C.S. Thesis
M.Sc. Thesis in Information and Systems Science
Master's Co-operative Workterm
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
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.
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
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
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