Undergraduate Programs Calendar 2007-08


12.13.9 Computer Science (COMP)

McConnell Engineering Building, Room 318
3480 University Street
Montreal, QC  H3A 2A7
Telephone: (514) 398-7071
Fax: (514) 398-3883

Undergraduate Student Affairs Office
Lorne Trottier Building, Room 2060
3630 University Street
Montreal, QC H3A 2B2
Telephone: (514) 398-7071
Fax: (514) 398-4653

E-mail: ugrad-sec@cs.mcgill.ca
Website: www.cs.mcgill.ca

Director

Sue Whitesides

Emeritus Professor

Christopher Paige

Professors

David M. Avis; B.Sc.(Wat.), Ph.D.(Stan.)

Luc P. Devroye; M.S.(Louvain), Ph.D.(Texas) (James McGill Professor)

Laurie Hendren; B.Sc., M.Sc.(Qu.), Ph.D.(C'nell)

Tim H. Merrett; B.Sc.(Qu.), D.Phil.(Oxf.)

Monroe M. Newborn; B.E.E.(R.P.I.), Ph.D.(Ohio St.), F.A.C.M.

Prakash Panangaden; M.Sc.(IIT, Kanpur), M.S.(Chic.), Ph.D.(Wis.)

Bruce Reed; B.Sc., Ph.D.(McG.) (Canada Research Chair)

Denis Thérien; B.Sc.(Montr.), M.Sc., Ph.D.(Wat.) (James McGill Professor)

Godfried T. Toussaint; B.Sc.(Tulsa), Ph.D.(Br. Col.)

Sue Whitesides; M.S.E.E.(Stan.), Ph.D.(Wis.)

Associate Professors

Xiao-Wen Chang; B.Sc., M.Sc.(Nanjing), Ph.D.(McG.)

Claude Crépeau; B.Sc., M.Sc.(Montr.), Ph.D.(MIT)

Gregory Dudek; B.Sc.(Qu.), M.Sc., Ph.D.(Tor.) (William Dawson Scholar) (on leave 2007-2008)

Nathan Friedman; B.A.(W.Ont.), Ph.D.(Tor.)

Michael Trevor Hallett; B.Sc.(Qu.), Ph.D.(Vic., BC) (on leave 2007-2008)

Michael Langer; B.Sc.(McG.), M.Sc.(Tor.), Ph.D.(McG.)

Doina Precup; B.Sc.(Cluj-Napoca), M.Sc., Ph.D.(Mass.)

Kaleem Siddiqi; B.Sc.(Lafayette), M.Sc., Ph.D.(Brown) (William Dawson Scholar)

Carl Tropper; B.Sc.(McG.), Ph.D.(Brooklyn Poly.)

Hans Vangheluwe; B.Sc., M.Sc., D.Sc.(Ghent, Belgium)

Assistant Professors

Mathieu Blanchette; B.Sc., M.Sc.(Montr.), Ph.D.(Wash.)

Patrick Hayden; B.Sc.(McG.), Ph.D.(Oxf.) (Canada Research Chair)

Bettina Kemme; B.Sc., M.Sc.(Erlangen-Nuremberg, Germany), Ph.D.(ETH, Zurich) (on leave 2007-2008)

Jörg Kienzle; Eng.Dip, Ph.D.(Swiss Fed. IT)

Xue Liu; B.Sc.(Tsinghua), M.Sc.(Tsinghua), Ph.D.(Ill.)

Muthucumaru Maheswaran; B.Sc.(Peradeniya), M.Sc., Ph.D.(Purd.)

Theodore J. Perkins; B.A.(Car.), M.Sc.(Wis.), Ph.D.(Mass.)

Brigitte Pientka; B.Sc., M.Sc.(Darmstadt), Ph.D.(Carn. Mell.)

Joelle Pineau; B.Sc. (Wat.), M.Sc., Ph.D.(Carn. Mell.)

Martin Robillard; B.Eng.(École Poly., Montr.), M.Sc., Ph.D.(Br. Col.)

Clark Verbrugge; B.A.(Qu.), Ph.D.(McG.)

Adrian Vetta; B.Sc., M.Sc.(LSE), Ph.D (MIT)

Faculty Lecturer

Joseph Vybihal; B.Sc., M.Sc.(McG.)

Associate Members

Daniel J. Levitin (Psychology), Thomas Richard Shultz (Psychology)

Adjunct Professors

Stefan Brands, Renato De Mori, Vincent Ferretti, Ioannis Rekleitis, Pascal Tesson

The study of computer science encompasses everything from pure theory to hands-on applications including the analysis of algorithms, programming languages, compilers, databases, operating systems, robotics, computer vision, artificial intelligence and computational biology.

The School of Computer Science (SOCS) currently offers eight undergraduate computing labs and two large open work areas consisting of workstations on the 3rd floor of the Lorne Trottier Building. In the McConnell Engineering Building, SOCS offers one general graduate laboratory and 15 laboratories dedicated to the following research areas: Advanced Networking, Artificial Intelligence, Computational Geometry, Computational Perception, Crypto and Quantum Information, Databases and Secondary Storage, Distributed Information Systems, Mobile Robotics and Vision, Modelling, Simulation and Design, Parallel and Distributed Simulation, Reasoning and Learning, Compilers, and Software Engineering.

The undergraduate teaching facilities consist of a network of over 250 Pentium IV, Pentium III and AMD class workstations equipped with 18" LCDs and running FreeBSD and GNU/Linux operating systems. The facility also includes seven Sun Enterprise servers, three Windows remote application servers, a central file server, backup server, mail server, and web server. Dialup Internet access is provided through the McGill Computing Centre.

All students planning to enter Computer Science programs should make an appointment with an academic adviser through the School's Undergraduate Student Affairs Office.

The School of Computer Science offers:

· A major program and an honours program in Computer Science through the Faculty of Science

· A major program in Software Engineering through the Faculty of Science

· A minor through the Faculty of Science and the Faculty of Engineering

· A joint major and a joint honours program with the Department of Mathematics and Statistics through the Faculty of Science (see section 12.13.20 "Mathematics and Statistics (MATH)")

· A joint major with the Department of Physics through the Faculty of Science (see section 12.13.28 "Physics (PHYS)")

· A major concentration and minor concentration through the Faculty of Arts

· A minor in Computational Molecular Biology

· Special programs involving Computer Science are also available in the Faculties of Management, Engineering and Music.

Some graduate courses in Computer Science are available to suitably qualified senior undergraduates. The School also offers graduate research studies leading to M.Sc. and Ph.D. degrees. For further details, consult the Graduate and Postdoctoral Studies Calendar.

The School's courses are available as electives to Engineering students. Engineering students interested in a Minor in Computer Science should consult Computer Science Courses and Minor Program, in section 8.6.5 in the Faculty of Engineering section.

Internship Opportunities

Students who want to get practical experience in industry before graduation are encouraged to participate in one of the following internship programs:

The Internship Year in Engineering and Science (IYES) is an academic program offered for a duration of 8, 12 or 16 months. It is reflected on the transcript and included in the program name (Bachelor of Science - Internship program). Eligible students usually take this program between their U2 and U3 years.

The Industrial Practicum (IP) has a duration of 4 months and is usually carried out starting in May. It will appear as a 0-credit, pass/fail course on your transcript.

For more information on these programs, consult "Internship Year in Engineering and Science (IYES) and Industrial Practicum (IP)", in section 12.12.4.

Research Opportunities

Several research opportunities are provided to interested students thorough the 396 project courses, as well as through NSERC undergraduate research assistantships in the School. Students who take 396 courses in more than one department can be eligible for the Dean's Multidisciplinary Undergraduate Research list. For more information, consult "Dean's Multidisciplinary Undergraduate Research List", in section 12.12.1.2.

Students intending to pursue a Major in Computer Science or Software Engineering should have a reasonable mathematical background and should have completed MATH 140 (or MATH 150), MATH 141 (or MATH 151) and MATH 133, or their CEGEP equivalents. These three mathematics courses should have been completed with at least an average of B-. A background in computer science is not necessary as students may start their studies with the introductory course COMP 202. However, taking COMP 202 in the Freshman Year, or completing an equivalent course in CEGEP, would be an asset and allows students to take more advanced courses earlier in their program.

More information about the admission process and the programs is available at www.cs.mcgill.ca.

MINOR IN COMPUTER SCIENCE

(24 credits)

The Computer Science Minor may be taken in conjunction with any program in the Faculties of Science and Engineering (with the exception of other programs in Computer Science). Students must obtain approval from the adviser of their main program. Approval must be given by the School of Computer Science for the particular selection of courses to be credited towards the Computer Science Minor. This should be done before registering for the final term of studies. All courses must be passed with a grade of C or better.

Students may receive credit towards their Computer Science Minor by taking certain approved courses outside the School of Computer Science. These courses must have a high computer science content. A student will not be permitted to receive more than six credits from such courses. These courses must be approved by the School of Computer Science in advance.

If a student's Major program requires Computer Science courses, up to six credits of Computer Science courses may be used to fulfill both Major and Minor requirements.

[Revised, Fall 2007: section begins.]

Required Courses

(12 credits)

COMP 202

(3)

Introduction to Computing 1

COMP 203

(3)

Introduction to Computing 2

COMP 206

(3)

Introduction to Software Systems

COMP 302

(3)

Programming Languages and Paradigms

Commplementar Courses (12 credits)

selected from:

COMP 251*

(3)

Data Structures and Algorithms

COMP 273

(3)

Introduction to Computer Systems

COMP 303

(3)

Software Development

COMP 304

(3)

Object-oriented Design

COMP 308

(1)

Computer Systems Lab

COMP 310

(3)

Operating Systems

COMP 321

(1)

Programming Challenges

COMP 322

(1)

Introduction to C++

COMP 330

(3)

Theoretical Aspects: Computer Science

COMP 335

(3)

Software Engineering Methods

COMP 350

(3)

Numerical Computing

or MATH 317

(3)

Numerical Analysis

COMP 360

(3)

Algorithm Design Techniques

COMP 409

(3)

Concurrent Programming

COMP 417

(3)

Intro Robotics and Intelligent Systems

COMP 420

(3)

Secondary Storage Algorithms and Data Structures

COMP 421

(3)

Database Systems

COMP 423

(3)

Data Compression

COMP 424

(3)

Topics: Artificial Intelligence 1

COMP 426

(3)

Automated Reasoning

COMP 435

(3)

Basics of Computer Networks

COMP 462

(3)

Computational Biology Methods

COMP 490

(3)

Intro to Probabilistic Analysis Algorithms

COMP 505

(3)

Advanced Computer Architecture

COMP 506

(3)

Advanced Analysis of Algorithms

COMP 507

(3)

Computational Geometry

COMP 512

(4)

Distributed Systems

COMP 520

(4)

Compiler Design

COMP 521

(4)

Modern Computer Games

COMP 522

(4)

Modelling and Simulation

COMP 523

(3)

Language-based Security

COMP 524

(3)

Theoretical Foundations of Programming Languages

COMP 526

(3)

Probabilistic Reasoning and AI

COMP 529

(4)

Software Architecture

COMP 533

(3)

Object-Oriented Software Development

COMP 535

(3)

Computer Networks 1

COMP 537

(3)

Internet Programming

COMP 540

(3)

Matrix Computations

COMP 557

(3)

Fundamentals of Computer Graphics

COMP 558

(3)

Fundamentals of Computer Vision

COMP 560

(3)

Graph Algorithms and Applications

COMP 561

(4)

Computational Biology Methods and Research

COMP 563

(3)

Molecular Evolution Theory

COMP 564

(3)

Computational Gene Regulation

COMP 566

(3)

Discrete Optimization 1

COMP 567

(3)

Discrete Optimization 2

COMP 575

(3)

Fundamentals of Distributed Algorithms

COMP 577

(3)

Distributed Database Systems

MATH 240

(3)

Discrete Structures 1

or from courses outside the School approved by the adviser, to a maximum of 6 credits.

* Note: COMP 251 is a prerequisite for many of the other complementary courses.

[Revised, Fall 2007: section ends.]

MINOR IN COMPUTATIONAL MOLECULAR BIOLOGY

(24 credits)

Computational molecular biology is the sub-discipline of bioinformatics that is located at the intersection of computer science and molecular biology. The focus of this area is on techniques for managing and analyzing molecular sequence data. This program will provide undergraduate students in the biological sciences with the skills from computer science to solve computational problems arising in molecular biology and genomics and will provide students with the necessary skills to build software tools from these algorithms.

The Minor in Computational Molecular Biology is not open to students in Computer Science or Joint Computer Science programs.

Required Courses

(24 credits)

COMP 202

(3)

Introduction to Computing 1

COMP 203

(3)

Introduction to Computing 2

COMP 251

(3)

Data Structures and Algorithms

COMP 360

(3)

Algorithm Design Techniques

COMP 462

(3)

Computational Biology Methods

COMP 563

(3)

Molecular Evolution Theory

COMP 564

(3)

Computational Gene Regulation

MATH 240

(3)

Discrete Structures 1

[Revised, Winter 2007: section begins.]

LIBERAL PROGRAM: CORE SCIENCE COMPONENT IN COMPUTER SCIENCE (45 credits)

Required Courses

(21 credits)

*COMP 202

(3)

Introduction to Computing 1

COMP 206

(3)

Introduction to Software Systems

COMP 250

(3)

Introduction to Computer Science

COMP 251

(3)

Data Structures and Algorithms

COMP 273

(3)

Introduction to Computer Systems

MATH 222

(3)

Calculus 3

MATH 240

(3)

Discrete Structures 1

*Students who have sufficient knowledge in a programming language do not need to tke COMP 202 but can replace it with an additional computer science complementary course.

Complementary Courses

(24 credits)

3 - 6 credits from:

MATH 223

(3)

Linear Algebra

MATH 318

(3)

Mathematical Logic

MATH 323

(3)

Probability

MATH 324

(3)

Statistics

MATH 340

(3)

Discrete Structures 2

At least 3 credits from:

COMP 330

(3)

Theoretical Aspects: Computer Science

COMP 350

(3)

Numerical Computing

COMP 360

(3)

Algorithm Design Techniques

At least 3 credits from:

COMP 302

(3)

Programming Languages and Paradigms

COMP 303

(3)

Software Development

The remaining complementary courses should be selected from any COMP courses at the 300-level or above except COMP 364, COMP 396, COMP 400 and COMP 431.
Note: Advanced COMP courses have more pre-requisites than the required courses for this program. Students have to make sure that they have the appropriate pre-requisites when choosing upper level courses.

[Revised, Winter 2007: section ends.]

FACULTY PROGRAM IN MATHEMATICS AND COMPUTER SCIENCE

under "Mathematics and Statistics (MATH)", in section 12.13.20.

FACULTY PROGRAM IN MATHEMATICS, STATISTICS AND COMPUTER SCIENCE

under "Mathematics and Statistics (MATH)", in section 12.13.20.

MAJOR IN COMPUTER SCIENCE

(60 credits)

Freshman Program students interested in Computer Science should try to take COMP 202 if possible, but it is not required for entry to the Major. A student entering the Major with insufficient programming background may take COMP 202, which will not count for credit toward the Major but will count for elective credit.

[Revised, Fall 2007: section begins.]

Required Courses

(42 credits)

COMP 250

(3)

Introduction to Computer Science

COMP 251

(3)

Data Structures and Algorithms

COMP 206

(3)

Introduction to Software Systems

COMP 273

(3)

Introduction to Computer Systems

COMP 302

(3)

Programming Languages and Paradigms

COMP 310

(3)

Operating Systems

COMP 330

(3)

Theoretical Aspects: Computer Science

COMP 350

(3)

Numerical Computing

COMP 360

(3)

Algorithm Design Techniques

MATH 222

(3)

Calculus 3

MATH 223

(3)

Linear Algebra

MATH 240

(3)

Discrete Structures 1

MATH 323

(3)

Probability

MATH 340

(3)

Discrete Structures 2

Complementary Courses

(18 credits)

15 credits from:

COMP 303

(3)

Software Development

COMP 304

(3)

Object-oriented Design

COMP 308

(1)

Computer Systems Lab

COMP 321

(1)

Programming Challenges

COMP 322

(1)

Introduction to C++

COMP 335

(3)

Software Engineering Methods

COMP 361

(3)

Systems Development Project

COMP 409

(3)

Concurrent Programming

COMP 417

(3)

Intro Robotics and Intelligent Systems

COMP 420

(3)

Secondary Storage Algorithms and Data Structures

COMP 421

(3)

Database Systems

COMP 423

(3)

Data Compression

COMP 424

(3)

Topics: Artificial Intelligence 1

COMP 426

(3)

Automated Reasoning

COMP 435

(3)

Basics of Computer Networks

COMP 462

(3)

Computational Biology Methods

COMP 490

(3)

Intro to Probabilistic Analysis Algorithms

COMP 505

(3)

Advanced Computer Architecture

COMP 506

(3)

Advanced Analysis of Algorithms

COMP 507

(3)

Computational Geometry

COMP 512

(4)

Distributed Systems

COMP 520

(4)

Compiler Design

COMP 521

(4)

Modern Computer Games

COMP 522

(4)

Modelling and Simulation

COMP 523

(3)

Language-based Security

COMP 524

(3)

Theoretical Foundations of Programming Languages

COMP 525

(3)

Formal Verification

COMP 526

(3)

Probabilistic Reasoning and AI

COMP 529

(4)

Software Architecture

COMP 531

(3)

Theory of Computation

COMP 533

(3)

Object-Oriented Software Development

COMP 535

(3)

Computer Networks 1

COMP 537

(3)

Internet Programming

COMP 540

(3)

Matrix Computations

COMP 547

(4)

Cryptography and Data Security

COMP 557

(3)

Fundamentals of Computer Graphics

COMP 558

(3)

Fundamentals of Computer Vision

COMP 560

(3)

Graph Algorithms and Applications

COMP 561

(4)

Computational Biology Methods and Research

COMP 563

(3)

Molecular Evolution Theory

COMP 564

(3)

Computational Gene Regulation

COMP 566

(3)

Discrete Optimization 1

COMP 567

(3)

Discrete Optimization 2

COMP 575

(3)

Fundamentals of Distributed Algorithms

COMP 577

(3)

Distributed Database Systems

ECSE 508

(3)

Multi-Agent Systems

3 credits of Mathematics selected from:

MATH 242

(3)

Analysis 1

MATH 243

(3)

Analysis 2

MATH 255

(3)

Honours Analysis 2

or any 300-level or above Mathematics course (excluding MATH 338, MATH 323, MATH 340)

[Revised, Fall 2007: section ends.]

[Revised, Fall 2007: section begins.]

MAJOR IN COMPUTER SCIENCE: COMPUTER GAMES OPTION

(62-69 credits)

This program is a specialization within Computer Science. It fulfills all the basic requirements of the Major in Computer Science. Complementary courses focus on topics that are important to understanding the technology behind computer games and to gaining experience in software development and design needed for computer game development.

Required Courses

(41-44 credits)

*COMP 202

(3)

Introduction to Computing 1

COMP 250

(3)

Introduction to Computer Science

COMP 251

(3)

Data Structures and Algorithms

COMP 206

(3)

Introduction to Software Systems

COMP 273

(3)

Introduction to Computer Systems

COMP 302

(3)

Programming Languages and Paradigms

COMP 308

(1)

Computer Systems Lab

COMP 310

(3)

Operating Systems

COMP 322

(1)

Introduction to C++

COMP 330

(3)

Theoretical Aspects: Computer Science

COMP 361

(3)

Systems Development Project

COMP 557

(3)

Fundamentals of Computer Graphics

MATH 222

(3)

Calculus 3

MATH 223

(3)

Linear Algebra

MATH 240

(3)

Discrete Structures 1

MATH 323

(3)

Probability

*Students who have sufficient knowledge in a programming language do not need to tke COMP 202.

Complementary Courses

(21-25 credits)

3 credits selected from:

COMP 350

(3)

Numerical Computing

COMP 360

(3)

Algorithm Design Techniques

6-8 credits selected from:

COMP 303

(3)

Software Development

COMP 304

(3)

Object-oriented Design

COMP 335

(3)

Software Engineering Methods

COMP 529

(4)

Software Architecture

COMP 533

(3)

Object-Oriented Software Development

6 credits selected from:

COMP 409

(3)

Concurrent Programming

COMP 421

(3)

Database Systems

COMP 535

(3)

Computer Networks 1

or COMP 435

(3)

Basics of Computer Networks

6-8 credits selected from:

COMP 424

(3)

Topics: Artificial Intelligence 1

COMP 507

(3)

Computational Geometry

COMP 521

(4)

Modern Computer Games

COMP 522

(4)

Modelling and Simulation

[Revised, Fall 2007: section ends.]

JOINT MAJOR IN MATHEMATICS AND COMPUTER SCIENCE

under "Mathematics and Statistics (MATH)", in section 12.13.20.

JOINT MAJOR IN PHYSICS AND COMPUTER SCIENCE

under "Physics (PHYS)", in section 12.13.28.

MAJOR IN SOFTWARE ENGINEERING

(69 credits)

[Revised, Fall 2007: section begins.]

Required Courses

(60 credits)

COMP 202

(3)

Introduction to Computing 1

COMP 206

(3)

Introduction to Software Systems

COMP 250

(3)

Introduction to Computer Science

COMP 251

(3)

Data Structures and Algorithms

COMP 273

(3)

Introduction to Computer Systems

COMP 302

(3)

Programming Languages and Paradigms

COMP 304

(3)

Object-oriented Design

COMP 310

(3)

Operating Systems

or ECSE 427

(3)

Operating Systems

COMP 330

(3)

Theoretical Aspects: Computer Science

COMP 360

(3)

Algorithm Design Techniques

COMP 361

(3)

Systems Development Project

ECSE 321

(3)

Introduction to Software Engineering

ECSE 428

(3)

Software Engineering Practice

ECSE 429

(3)

Software Validation

ECSE 495

(3)

Software Engineering Design Project

MATH 222

(3)

Calculus 3

MATH 223

(3)

Linear Algebra

MATH 240

(3)

Discrete Structures 1

MATH 323

(3)

Probability

MATH 324

(3)

Statistics

Complementary Courses

(9 credits)

selected from the following:

COMP 303

(3)

Software Development

COMP 308

(1)

Computer Systems Lab

COMP 321

(1)

Programming Challenges

COMP 322

(1)

Introduction to C++

COMP 335

(3)

Software Engineering Methods

COMP 350

(3)

Numerical Computing

COMP 409

(3)

Concurrent Programming

COMP 420

(3)

Secondary Storage Algorithms and Data Structures

COMP 421

(3)

Database Systems

COMP 424

(3)

Topics: Artificial Intelligence 1

COMP 435

(3)

Basics of Computer Networks

COMP 505

(3)

Advanced Computer Architecture

COMP 512

(4)

Distributed Systems

COMP 520

(4)

Compiler Design

COMP 521

(4)

Modern Computer Games

COMP 522

(4)

Modelling and Simulation

COMP 523

(3)

Language-based Security

COMP 525

(3)

Formal Verification

COMP 526

(3)

Probabilistic Reasoning and AI

COMP 529

(4)

Software Architecture

COMP 533

(3)

Object-Oriented Software Development

COMP 535

(3)

Computer Networks 1

COMP 537

(3)

Internet Programming

COMP 547

(4)

Cryptography and Data Security

COMP 558

(3)

Fundamentals of Computer Vision

COMP 560

(3)

Graph Algorithms and Applications

COMP 566

(3)

Discrete Optimization 1

COMP 575

(3)

Fundamentals of Distributed Algorithms

COMP 577

(3)

Distributed Database Systems

ECSE 200

(3)

Fundamentals of Electrical Engineering

ECSE 210

(3)

Circuit Analysis

ECSE 291

(2)

Electrical Measurement Laboratory

ECSE 303

(3)

Signals and Systems 1

ECSE 304

(3)

Signals and Systems 2

ECSE 322

(3)

Computer Engineering

ECSE 323

(5)

Digital Systems Design

ECSE 404

(3)

Control Systems

ECSE 411

(3)

Communications Systems

ECSE 420

(3)

Parallel Computing

ECSE 421

(3)

Embedded Systems

ECSE 422

(3)

Fault Tolerant Computing

ECSE 424

(3)

Human-Computer Interaction

ECSE 425

(3)

Computer Organization and Architecture

ECSE 426

(3)

Microprocessor Systems

ECSE 504

(3)

Computer Control

ECSE 508

(3)

Multi-Agent Systems

ECSE 522

(3)

Asynchronous Circuits and Systems

ECSE 526

(3)

Artificial Intelligence

ECSE 529

(3)

Image Processing and Communication

ECSE 530

(3)

Logic Synthesis

ECSE 532

(3)

Computer Graphics

or COMP 557

(3)

Fundamentals of Computer Graphics

MATH 315

(3)

Ordinary Differential Equations

MATH 381

(3)

Complex Variables and Transforms

[Revised, Fall 2007: section ends.]

HONOURS IN COMPUTER SCIENCE

(72 credits)

Honours students must maintain a CGPA of 3.00 and must have at least this average upon graduation as well.

Required Courses

(45 credits)

COMP 206

(3)

Introduction to Software Systems

COMP 250

(3)

Introduction to Computer Science

COMP 252

(3)

Algorithms and Data Structures

COMP 273

(3)

Introduction to Computer Systems

COMP 302

(3)

Programming Languages and Paradigms

COMP 310

(3)

Operating Systems

COMP 330

(3)

Theoretical Aspects: Computer Science

COMP 350

(3)

Numerical Computing

COMP 362

(3)

Honours Algorithm Design

COMP 400

(3)

Technical Project and Report

MATH 222

(3)

Calculus 3

MATH 223

(3)

Linear Algebra

MATH 240

(3)

Discrete Structures 1

MATH 323

(3)

Probability

MATH 340

(3)

Discrete Structures 2

or MATH 350

(3)

Graph Theory and Combinatorics

Complementary Courses

(27 credits)

24 credits of COMP and/or ECSE courses, 12 credits of which must be at the 500 level, from the list of complementary courses for the Major in Computer Science, with the addition of COMP 552 Combinatorial Optimization.

3 credits, any 300-level or above Mathematics course (excluding MATH 323, MATH 338, MATH 340, MATH 350)

JOINT HONOURS IN MATHEMATICS AND COMPUTER
SCIENCE
under "Mathematics and Statistics (MATH)", in section 12.13.20. Students must consult an Honours adviser in both Departments.

MINOR IN COGNITIVE SCIENCE

Students following Major or Honours programs in Computer Science may want to consider the Minor in Cognitive Science.


Search the Class Schedule by term for course sections offered. This includes class times, locations and instructors.

 

Search the Course Catalog
for all courses at McGill,
including the course description. Note: not all courses listed here are offered every term or year.

McGill University
www.mcgill.ca/student-records