diff --git a/package.json b/package.json index d4fbf88..d838a5d 100644 --- a/package.json +++ b/package.json @@ -11,11 +11,13 @@ "test": "vitest run", "typecheck": "tsc --noEmit", "lint": "eslint .", - "format": "prettier --write ." + "format": "prettier --write .", + "scrape:courses": "node scripts/scrape-courses.ts" }, "dependencies": { "@dagrejs/dagre": "^3.0.0", "@xyflow/react": "^12.10.2", + "cheerio": "^1.2.0", "react": "^19.2.6", "react-dom": "^19.2.6", "react-router-dom": "^7.15.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fb7850..f5f8bc5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@xyflow/react': specifier: ^12.10.2 version: 12.10.2(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + cheerio: + specifier: ^1.2.0 + version: 1.2.0 react: specifier: ^19.2.6 version: 19.2.6 @@ -758,6 +761,9 @@ packages: bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@5.0.6: resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} @@ -774,6 +780,13 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.2.0: + resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} + engines: {node: '>=20.18.1'} + classcat@5.0.5: resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} @@ -788,10 +801,17 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-tree@3.2.1: resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -869,13 +889,41 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + electron-to-chromium@1.5.362: resolution: {integrity: sha512-PUY2DrLvkjkUuWqq+KPL2iWshrJsZOcIojzRQ7eXFacc9dWga7MGMJAa15VbiejSZB1PAXaRLAiKgruHP8LB1w==} + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + enhanced-resolve@5.22.0: resolution: {integrity: sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==} engines: {node: '>=10.13.0'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + entities@8.0.0: resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} engines: {node: '>=20.19.0'} @@ -1020,6 +1068,13 @@ packages: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1210,6 +1265,9 @@ packages: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} @@ -1225,6 +1283,15 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@8.0.1: resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} @@ -1309,6 +1376,9 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -1531,6 +1601,15 @@ packages: resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} engines: {node: '>=20'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-mimetype@5.0.0: resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} engines: {node: '>=20'} @@ -2266,6 +2345,8 @@ snapshots: dependencies: require-from-string: 2.0.2 + boolbase@1.0.0: {} + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -2282,6 +2363,29 @@ snapshots: chai@6.2.2: {} + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.2.2 + css-what: 6.2.2 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.2.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 10.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 7.26.0 + whatwg-mimetype: 4.0.0 + classcat@5.0.5: {} convert-source-map@2.0.0: {} @@ -2294,11 +2398,21 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + css-tree@3.2.1: dependencies: mdn-data: 2.27.1 source-map-js: 1.2.1 + css-what@6.2.2: {} + css.escape@1.5.1: {} csstype@3.2.3: {} @@ -2362,13 +2476,42 @@ snapshots: dom-accessibility-api@0.6.3: {} + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + electron-to-chromium@1.5.362: {} + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + enhanced-resolve@5.22.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 + entities@4.5.0: {} + + entities@6.0.1: {} + + entities@7.0.1: {} + entities@8.0.0: {} es-module-lexer@2.1.0: {} @@ -2519,6 +2662,17 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + ignore@5.3.2: {} ignore@7.0.5: {} @@ -2667,6 +2821,10 @@ snapshots: node-releases@2.0.46: {} + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + obug@2.1.1: {} optionator@0.9.4: @@ -2686,6 +2844,19 @@ snapshots: dependencies: p-limit: 3.1.0 + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + parse5@8.0.1: dependencies: entities: 8.0.0 @@ -2769,6 +2940,8 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.2 '@rolldown/binding-win32-x64-msvc': 1.0.2 + safer-buffer@2.1.2: {} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -2918,6 +3091,12 @@ snapshots: webidl-conversions@8.0.1: {} + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + whatwg-mimetype@5.0.0: {} whatwg-url@16.0.1: diff --git a/scripts/fixtures/MathStats_courses.html b/scripts/fixtures/MathStats_courses.html new file mode 100644 index 0000000..77c0de0 --- /dev/null +++ b/scripts/fixtures/MathStats_courses.html @@ -0,0 +1,1194 @@ + + + + +Mathematics and Statistics < Carleton University + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + + Print and PDF Options + + + + + + + + +
+

+School of Mathematics and Statistics
+(Faculty of Science)
+613-520-2155
+http://math.carleton.ca
+

+
+ + + +
+ + + +

This section presents the requirements for programs in:

+ +

 Program Requirements

+

Course Prerequisites

The following courses central to B.Math. programs have grade requirements in their prerequisites:

Course Categories for B.Math. Programs

2000-level Honours Sequence
The following courses constitute the 2000-level Honours Sequence:
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2100 [1.0]
Algebra
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
MATH 2907 [0.5]
Directed Studies (Honours)
3000-level Honours Sequence
The following courses constitute the 3000-level Honours Sequence. Courses in the 3000-level Honours Sequence have grade levels in their prerequisites
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
MATH 3106 [0.5]
Introduction to Group Theory (Honours)
MATH 3158 [0.5]
Rings and Fields (Honours)
MATH 3306 [0.5]
Elements of Set Theory (Honours)
MATH 3355 [0.5]
Number Theory and Applications (Honours)
MATH 3806 [0.5]
Scientific Computing I (Honours)
MATH 3807 [0.5]
Mathematical Software (Honours)
MATH 3855 [0.5]
Discrete Structures and Applications (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
Natural Science Electives
All courses with the following subject codes:
BIOC, BIOL, CHEM, ENSC, ERTH, ISAP, ISCI, PHYS
APPROVED ARTS OR SOCIAL SCIENCES ELECTIVES
All courses offered by the Faculty of Arts and Social Sciences and the Faculty of Public and Global Affairs are acceptable as Arts or Social Sciences Electives except for the following courses, which are only accepted for credit as free electives in any program of the School. See item 3 under Prohibited and Restricted Courses below concerning Computer Mathematics programs.
Business
BUSI 1001 [0.5]
Principles of Financial Accounting
BUSI 1004 [0.5]
Financial Accounting for Business Students
BUSI 1005 [0.5]
Managerial Accounting for Business Students
BUSI 1402 [0.5]
Introduction to Business Information and Communication Technologies
BUSI 2001 [0.5]
Intermediate Accounting I
BUSI 2002 [0.5]
Intermediate Accounting II
BUSI 2008 [0.5]
Management Accounting
BUSI 2402 [0.5]
Business Applications Development
BUSI 3001 [0.5]
Accounting for Business Combinations
BUSI 3008 [0.5]
Intermediate Management Accounting and Control
Economics
ECON 4005 [0.5]
Operations Research: Stochastic Models
Geography
GEOG 3102 [0.5]
Geomorphology
GEOG 3103 [0.5]
Watershed Hydrology
GEOG 3105 [0.5]
Climate and Atmospheric Change
GEOG 3108 [0.5]
Soil Properties
Field Studies
Directed Studies in Geography
GEOG 4101 [0.5]
Two Million Years of Environmental Change
Water Resources Engineering
GEOG 4104 [0.5]
Microclimatology
GEOG 4108 [0.5]
Permafrost
Geomatics
GEOM 2007 [0.5]
Vector GIS: Points, Lines and Polygons
GEOM 3002 [0.5]
Introduction to Remote Sensing
GEOM 3005 [0.5]
Geospatial Analysis
GEOM 3007 [0.5]
Cartographic Theory and Design
GEOM 4003 [0.5]
Remote Sensing of the Environment
GEOM 4008 [0.5]
Advanced Topics in Geographic Information Systems
GEOM 4009 [0.5]
Custom Geomatics Applications
Psychology
PSYC 2700 [0.5]
Introduction to Cognitive Psychology
PSYC 3506 [0.5]
Cognitive Development
PSYC 3700 [1.0]
Cognition (Honours Seminar)
PSYC 3702 [0.5]
Perception
PSYC 4001 [0.5]
Special Topics in Psychology

Prohibited and Restricted Courses

  1. MATH 1805 (no longer offered) or COMP 1805 can be counted only as a half-credit free elective in Mathematics and Statistics programs.
  2. The following courses may not be counted for academic credit (even as free electives) in any program offered by the School of Mathematics and Statistics: BIOL 3604, COMS 3001, CRCJ 3001, ECON 0005ECON 1401, ECON 1402, ECON 2201 (no longer offered), ECON 2202 (no longer offered), ECON 2210, ECON 2220 (no longer offered), ECON 2400 (no longer offered), ECON 3001, ECON 3210, ECON 4001, ECON 4002, ECON 4004, ECON 4025 (no longer offered), ECON 4706, ECON 4707, ECON 4713, ECOR 2606GEOG 2006, GEOG 3003, NEUR 2001, NEUR 2002, NEUR 3001, NEUR 3002PSCI 2702PSYC 2001, PSYC 2002 PSYC 3000 [1.0]SOCI 2004SOCI 3000 (no longer offered), SOCI 3002 (no loner offered), SOCI 3008SOCI 4009 (no longer offered), SOCI 4102SOWK 3001SYSC 2510.
    Students who have completed ECON 2201 (no longer offered) and ECON 2202 (no longer offered) and enter a B.Math. program may be exempted from taking STAT 2507 and STAT 2509 only with permission of the School of Mathematics and Statistics, and provided the grade in ECON 2201 (no longer offered) and ECON 2202 (no longer offered) is B- or higher in each.
  3. BUSI 1402, BUSI 2402, and COMP 1001 may not count for credit in a B.Math or a Computer Science and Mathematics B.Math Combined Honours program, even as free electives.
  4. Only one of MATH 3806, COMP 3806 (no longer offered), COMP 3800 (no longer offered), or MATH 3800 may count for credit in a B.Math. program.
+

Mathematics
B. Math. Honours (20.0 credits)

A. Credits Included in the Major CGPA (11.5 credits)
1.  2.5 credits in:2.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2152 [0.5]
Introductory Algebra II
2.  3.5 credits in:3.5
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2100 [1.0]
Algebra
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
3.  2.0 credits in:2.0
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3106 [0.5]
Introduction to Group Theory (Honours)
MATH 3158 [0.5]
Rings and Fields (Honours)
4.  0.5 credit from:0.5
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
5.  1.0 credit from 3000-level Honours Sequence1.0
6.  1.5 credits in MATH or STAT at the 4000-level or higher1.5
7.  0.5 credit in:0.5
MATH 4905 [0.5]
Honours Project (Honours)
B. Credits Not Included in the Major CGPA (8.5 credits)
8.  4.0 credits not in MATH, STAT or COMP, consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
9.  4.5 credits in free electives4.5
Total Credits20.0
+

Mathematics with Concentration in Stochastics
B. Math. Honours (20.0 credits)

Items 3, 4, 5 and 6 in the Mathematics degree requirements are replaced by:

3.  3.0 credits in:3.0
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
STAT 4501 [0.5]
Probability Theory (Honours)
4.  0.5 credit from:0.5
STAT 3553 [0.5]
Regression Modeling (Honours)
MATH 3801 [0.5]
Linear Programming
5.  0.5 credit in STAT at the 4000-level0.5
6.  1.0 credit in MATH or STAT at the 4000-level or higher1.0
Total Credits5.0
+

Computational and Applied Mathematics and Statistics with Concentration
B.Math. Honours (20.0 credits)

A. Credits included in the Major CGPA (14.5 credits)
1.  7.5 credits in:7.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
STAT 1500 [0.5]
Introduction to Statistical Computing
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
2.  6.5 credits in one of the concentrations described below, also included in the Major CGPA:6.5
3.  0.5 credit from: 0.5
MATH 4905 [0.5]
Honours Project (Honours)
STAT 4905 [0.5]
Honours Project (Honours)
B. Credits Not Included in the Major CGPA (5.5 credits)
4.  1.0 credit in Natural Science electives at the 1000 level or above1.0
5.  3.0 credits from Natural Science, or Approved Arts and Social Sciences electives3.0
6.  1.5 credits in free electives1.5
Total Credits20.0
+

Concentration in Applied Analysis (6.5 credits)

Requirements:
2a. 3.0 credits in:3.0
MATH 2100 [1.0]
Algebra
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3702 [0.5]
Mathematical Modelling (Honours)
MATH 3806 [0.5]
Scientific Computing I (Honours)
MATH 3855 [0.5]
Discrete Structures and Applications (Honours)
2b. 1.0 credit from:1.0
MATH 4700 [0.5]
Partial Differential Equations (Honours)
MATH 4701 [0.5]
Topics in Differential Equations (Honours)
MATH 4702 [0.5]
Industrial Mathematics (Honours)
MATH 4703 [0.5]
Dynamical Systems (Honours)
MATH 4708 [0.5]
Asymptotic Methods of Applied Mathematics (Honours)
MATH 4806 [0.5]
Scientific Computing II (Honours)
MATH 4816 [0.5]
Numerical Analysis for Differential Equations (Honours)
2c. 0.5 credit in MATH at the 4000 level0.5
2d. 2.0 credits in MATH or STAT at the 3000 level or above2.0
Total Credits6.5
+

Concentration in Applied Statistics and Probability (6.5 credits)

Requirements:
2a. 2.5 credits in:2.5
MATH 3107 [0.5]
Linear Algebra III
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
2b. 1.5 credits from:1.5
STAT 4500 [0.5]
Parametric Estimation (Honours)
STAT 4502 [0.5]
Survey Sampling (Honours)
STAT 4503 [0.5]
Applied Multivariate Analysis (Honours)
STAT 4504 [0.5]
Statistical Design and Analysis of Experiments (Honours)
STAT 4506 [0.5]
Nonparametric Statistics (Honours)
STAT 4508 [0.5]
Stochastic Models (Honours)
STAT 4509 [0.5]
Advanced Mathematical Modeling (Honours)
STAT 4555 [0.5]
Monte Carlo Simulation (Honours)
STAT 4601 [0.5]
Data Mining I (Honours)
STAT 4603 [0.5]
Time Series and Forecasting (Honours)
STAT 4604 [0.5]
Statistical Computing (Honours)
2c. 2.5 credits in MATH or STAT at the 3000 level or above2.5
Total Credits6.5
+

Concentration in Discrete Mathematics (6.5 credits)

Requirements:
2a. 3.0 credits in:3.0
MATH 2100 [1.0]
Algebra
MATH 3801 [0.5]
Linear Programming
MATH 3802 [0.5]
Combinatorial Optimization
MATH 3806 [0.5]
Scientific Computing I (Honours)
MATH 3855 [0.5]
Discrete Structures and Applications (Honours)
2b. 1.0 credit from:1.0
MATH 4109 [0.5]
Fields and Coding Theory (Honours)
MATH 4801 [0.5]
Topics in Combinatorics (Honours)
MATH 4802 [0.5]
Introduction to Mathematical Logic (Honours)
MATH 4803 [0.5]
Computable Functions (Honours)
MATH 4805 [0.5]
Theory of Automata (Honours)
MATH 4807 [0.5]
Game Theory (Honours)
MATH 4808 [0.5]
Graph Theory and Algorithms (Honours)
MATH 4811 [0.5]
Combinatorial Design Theory (Honours)
2c. 0.5 credit in MATH at the 4000 level0.5
2d. 2.0 credits in MATH or STAT at the 3000 level or above2.0
Total Credits6.5
+

Statistics
B. Math. Honours (20.0 credits)

A. Credits Included in the Major CGPA (13.0 credits)
1.  3.0 credits in:3.0
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2152 [0.5]
Introductory Algebra II
STAT 1500 [0.5]
Introduction to Statistical Computing
2.  1.0 credit in:1.0
COMP 1005 [0.5]
Introduction to Computer Science I
COMP 1006 [0.5]
Introduction to Computer Science II
3.  6.0 credits in:6.0
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3806 [0.5]
Scientific Computing I (Honours)
STAT 4905 [0.5]
Honours Project (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
STAT 4500 [0.5]
Parametric Estimation (Honours)
4.  1.0 credit from:1.0
MATH 2100 [1.0]
Algebra
or
MATH 3107 [0.5]
Linear Algebra III
and 0.5 credit from:
3000-level Honours Sequence, or:
MATH 3705 [0.5]
Mathematical Methods I
MATH 3801 [0.5]
Linear Programming
MATH 3807 [0.5]
Mathematical Software (Honours)
MATH 3809 [0.5]
Introduction to Number Theory and Cryptography
or Mathematics or Statistics at the 4000-level or higher
5.  0.5 credit from the 3000-level Honours Sequence or MATH or STAT at the 4000-level or higher0.5
6.  1.5 credits in STAT at the 4000-level1.5
B. Credits Not Included in the Major CGPA (7.0 credits)
7.  4.0 credits not in MATH, STAT or COMP, consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
8.  3.0 credits in free electives3.0
Total Credits20.0
+

Statistics with Concentration in Actuarial Science
B. Math. Honours (20.0 credits)

A. Credits Included in the Major CGPA (14.0 credits)
1.  3.0 credits in:3.0
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2152 [0.5]
Introductory Algebra II
STAT 1500 [0.5]
Introduction to Statistical Computing
2.  0.5 credit in:0.5
COMP 1005 [0.5]
Introduction to Computer Science I
3.  6.5 credits in:6.5
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3806 [0.5]
Scientific Computing I (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 2660 [0.5]
Mathematics for Finance (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
STAT 4500 [0.5]
Parametric Estimation (Honours)
STAT 4601 [0.5]
Data Mining I (Honours)
STAT 4905 [0.5]
Honours Project (Honours)
4.  1.0 credit in:1.0
MATH 3107 [0.5]
Linear Algebra III
and 0.5 credit from:
3000-level Honours Sequence, or:
MATH 3705 [0.5]
Mathematical Methods I
MATH 3801 [0.5]
Linear Programming
MATH 3807 [0.5]
Mathematical Software (Honours)
MATH 3809 [0.5]
Introduction to Number Theory and Cryptography
or Mathematics or Statistics at the 4000-level or higher
5.  1.0 credit in:1.0
STAT 3660 [0.5]
Actuarial Mathematics I
STAT 3661 [0.5]
Life Contingent Risk Modelling I
6.  2.0 credit in:2.0
STAT 4508 [0.5]
Stochastic Models (Honours)
STAT 4603 [0.5]
Time Series and Forecasting (Honours)
STAT 4660 [0.5]
Actuarial Mathematics II
STAT 4661 [0.5]
Life Contingent Risk Modelling II
B. Credits Not Included in the Major CGPA (6.0 credits):
7.  3.0 credits in:3.0
BUSI 1001 [0.5]
Principles of Financial Accounting
BUSI 2008 [0.5]
Management Accounting
ECON 1001 [0.5]
Introduction to Microeconomics
ECON 1002 [0.5]
Introduction to Macroeconomics
ECON 2020 [0.5]
Intermediate Microeconomics I: Producers and Market Structure
ECON 2102 [0.5]
Intermediate Macroeconomics I
8.  2.0 credits in:2.0
BUSI 2501 [0.5]
Business Finance
BUSI 3500 [0.5]
Applied Corporate Finance
BUSI 3502 [0.5]
Investments
BUSI 3512 [0.5]
Derivatives
or
ECON 3020 [0.5]
Intermediate Microeconomics II: Consumers and General Equilibrium
ECON 3050 [0.5]
Introduction to Financial Economics
ECON 4051 [0.5]
Financial Asset Pricing
ECON 4052 [0.5]
Corporate Financial Economics
9.  1.0 credit in Free electives1.0
Total Credits20.0
+

Mathematics
B. Math. (15.0 credits)

A. Credits Included in the Major CGPA (7.5 credits)
1.  0.5 credit in:0.5
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
2.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
or MATH 1004 [0.5]
Calculus for Engineering or Physics
or MATH 1052 [0.5]
Calculus and Introductory Analysis I
and
MATH 2007 [0.5]
Elementary Calculus II
or MATH 1005 [0.5]
Differential Equations and Infinite Series for Engineering or Physics
or MATH 2052 [0.5]
Calculus and Introductory Analysis II
3.  1.0 credit in:1.0
MATH 1107 [0.5]
Linear Algebra I
or MATH 1104 [0.5]
Linear Algebra for Engineering or Science
or MATH 1152 [0.5]
Introductory Algebra I
and
MATH 2107 [0.5]
Linear Algebra II
or MATH 2152 [0.5]
Introductory Algebra II
4.  2.0 credits in:2.0
MATH 2008 [0.5]
Intermediate Calculus
MATH 2108 [0.5]
Abstract Algebra I
MATH 2404 [0.5]
Ordinary Differential Equations I
STAT 2507 [0.5]
Introduction to Statistical Modeling I
5.  3.0 credits from:3.0
STAT 2509 [0.5]
Introduction to Statistical Modeling II
MATH or STAT at the 3000-level or higher
Excluding:
MATH 3101 [0.5]
Algebraic Structures with Computer Applications
STAT 3502 [0.5]
Probability and Statistics
B. Credits Not Included in the Major CGPA (7.5 credits)
6.  4.0 credits not in MATH, STAT or COMP, consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
7.  3.5 credits in free electives.3.5
Total Credits15.0
+

Computer Mathematics
B. Math. (15.0 credits)

A. Credits Included in the Major CGPA (10.5 credits)
1.  0.5 credit in:0.5
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
2.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
or MATH 1004 [0.5]
Calculus for Engineering or Physics
or MATH 1052 [0.5]
Calculus and Introductory Analysis I
and
MATH 2007 [0.5]
Elementary Calculus II
or MATH 1005 [0.5]
Differential Equations and Infinite Series for Engineering or Physics
or MATH 2052 [0.5]
Calculus and Introductory Analysis II
3.  1.0 credit in:1.0
MATH 1107 [0.5]
Linear Algebra I
or MATH 1104 [0.5]
Linear Algebra for Engineering or Science
or MATH 1152 [0.5]
Introductory Algebra I
and
MATH 2107 [0.5]
Linear Algebra II
or MATH 2152 [0.5]
Introductory Algebra II
4.  2.5 credits in:2.5
COMP 1005 [0.5]
Introduction to Computer Science I
COMP 1006 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
5.  2.5 credits in:2.5
MATH 2008 [0.5]
Intermediate Calculus
MATH 3804 [0.5]
Design and Analysis of Algorithms I
MATH 3825 [0.5]
Discrete Structures and Applications
STAT 2507 [0.5]
Introduction to Statistical Modeling I
STAT 2605 [0.5]
Probability Models
6.  0.5 credit from:0.5
MATH 2108 [0.5]
Abstract Algebra I
MATH 3101 [0.5]
Algebraic Structures with Computer Applications
7.  1.0 credit from:1.0
MATH 3801 [0.5]
Linear Programming
MATH 3802 [0.5]
Combinatorial Optimization
MATH 3800 [0.5]
Mathematical Modeling and Computational Methods
MATH 3807 [0.5]
Mathematical Software (Honours)
MATH 3809 [0.5]
Introduction to Number Theory and Cryptography
8.  1.0 credit in MATH or STAT at the 3000 level1.0
9.  0.5 credit in MATH or STAT at the 2000 level or higher0.5
B. Credits Not Included in the Major CGPA (4.5 credits)
10.  4.0 credits not in MATH, STAT or COMP, consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
11.  0.5 credit in free electives.0.5
Total Credits15.0
+

Statistics
B. Math. (15.0 credits)

A. Credits Included in the Major CGPA (8.0 credits)
1.  1.0 credit in:1.0
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
STAT 1500 [0.5]
Introduction to Statistical Computing
2.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
or MATH 1004 [0.5]
Calculus for Engineering or Physics
or MATH 1052 [0.5]
Calculus and Introductory Analysis I
and
MATH 2007 [0.5]
Elementary Calculus II
or MATH 1005 [0.5]
Differential Equations and Infinite Series for Engineering or Physics
or MATH 2052 [0.5]
Calculus and Introductory Analysis II
3.  1.0 credit in:1.0
MATH 1107 [0.5]
Linear Algebra I
or MATH 1104 [0.5]
Linear Algebra for Engineering or Science
or MATH 1152 [0.5]
Introductory Algebra I
and
MATH 2107 [0.5]
Linear Algebra II
or MATH 2152 [0.5]
Introductory Algebra II
4.  4.0 credits in:4.0
MATH 2008 [0.5]
Intermediate Calculus
STAT 2507 [0.5]
Introduction to Statistical Modeling I
STAT 2509 [0.5]
Introduction to Statistical Modeling II
STAT 3503 [0.5]
Regression Analysis
STAT 3504 [0.5]
Analysis of Variance and Experimental Design
STAT 3507 [0.5]
Sampling Methodology
STAT 3508 [0.5]
Elements of Probability Theory
STAT 3509 [0.5]
Mathematical Statistics
5.  0.5 credit from:0.5
BUSI 1402 [0.5]
Introduction to Business Information and Communication Technologies
COMP 1005 [0.5]
Introduction to Computer Science I
6.  0.5 credit in MATH or STAT at the 2000 level0.5
B. Credits Not Included in the Major CGPA (7.0 credits)
7.  4.0 credits not in MATH, STAT or COMP, consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
8.  3.0 credits in free electives.3.0
Total Credits15.0
+

Computer Science and Mathematics:
Concentration in Computing Theory and Numerical Methods
B. Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.0 credits)
1.  4.5 credits in:4.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
2.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 3805 [0.5]
Discrete Structures and Applications (Honours)
3.  0.5 credit from:0.5
COMP 4905 [0.5]
Honours Project
MATH 4905 [0.5]
Honours Project (Honours)
Concentration in Computing Theory and Numerical Methods
4.  3.0 credits in:3.0
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
MATH 3801 [0.5]
Linear Programming
MATH 3806 [0.5]
Scientific Computing I (Honours)
COMP 4804 [0.5]
Design and Analysis of Algorithms II
5.  0.5 credit from:0.5
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
6.  1.0 credit from:1.0
MATH 4109 [0.5]
Fields and Coding Theory (Honours)
MATH 4801 [0.5]
Topics in Combinatorics (Honours)
MATH 4802 [0.5]
Introduction to Mathematical Logic (Honours)
MATH 4803 [0.5]
Computable Functions (Honours)
MATH 4805 [0.5]
Theory of Automata (Honours)
MATH 4806 [0.5]
Scientific Computing II (Honours)
MATH 4807 [0.5]
Game Theory (Honours)
MATH 4808 [0.5]
Graph Theory and Algorithms (Honours)
MATH 4811 [0.5]
Combinatorial Design Theory (Honours)
MATH 4816 [0.5]
Numerical Analysis for Differential Equations (Honours)
MATH 4821 [0.5]
Quantum Computing (Honours)
MATH 4822 [0.5]
Wavelets and Digital Signal Processing (Honours)
7.  0.5 credit in COMP at the 3000 level or above.0.5
B. Credits Not Included in the Major CGPA (4.0 credits)
8.  4.0 credits not in MATH, STAT, or COMP consisting of:4.0
a. 1.0 credit in Natural Science electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
Total Credits20.0
Note:
The following courses offered by the School of Business and the Faculty of Engineering are treated as Computer Science courses in this program:
Business
BUSI 4400 [0.5]IS Management and Strategy
Engineering
SYSC 3303 [0.5]Real-Time Concurrent Systems
SYSC 4005 [0.5]Discrete Simulation/Modeling
SYSC 4310 [0.5]Computer Systems Architecture
+

Computer Science and Mathematics:
Concentration in Statistics and Computing
B. Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.5 credits)
1.  5.0 credits in:5.0
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
STAT 1500 [0.5]
Introduction to Statistical Computing
2.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 3805 [0.5]
Discrete Structures and Applications (Honours)
3.  0.5 credit from:0.5
COMP 4905 [0.5]
Honours Project
STAT 4905 [0.5]
Honours Project (Honours)
Concentration in Statistics and Computing:
4.  3.0 credits in:3.0
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3806 [0.5]
Scientific Computing I (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
5.  0.5 credit from:0.5
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
6.  1.0 credit in STAT at the 4000 level1.0
7.  0.5 credit in COMP at the 4000 level0.5
B. Credits Not Included in the Major CGPA (3.5 credits)
8.  3.5 credits not in MATH, STAT, or COMP consisting of:3.5
a. 1.0 credit in Natural Science electives
b. 2.5 credits from Natural Science, or Approved Arts and Social Sciences electives
Total Credits20.0
+

Mathematics and Physics
B.Sc. Double Honours (21.5 credits)

Note that the following courses have minimum grade requirements in their prerequisites. Refer to the section Course Prerequisites under the Mathematics and Statistics programs sections of the calendar.
MATH 2001 [0.5]Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]Multivariable Calculus and Fundamentals of Analysis II
MATH 2100 [1.0]Algebra
MATH 2454 [0.5]Ordinary Differential Equations (Honours)
STAT 2655 [0.5]Introduction to Probability with Applications (Honours)
A. Credits Included in the Major CGPA (17.0 credits)
1.  7.5 credits in: 7.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3702 [0.5]
Mathematical Modelling (Honours)
MATH 3705 [0.5]
Mathematical Methods I
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
2.  0.5 credit from: 0.5
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3106 [0.5]
Introduction to Group Theory (Honours)
PHYS 3007 [0.5]
Third Year Physics Laboratory: Selected Experiments and Seminars
PHYS 3606 [0.5]
Modern Physics II
3.  1.0 credit in 4000-level or higher MATH, STAT1.0
4.  1.0 credit from: 1.0
PHYS 1001 [0.5]
& PHYS 1002 [0.5]
Foundations of Physics I
Foundations of Physics II (recommended)
PHYS 1003 [0.5]
& PHYS 1004 [0.5]
Introductory Mechanics and Thermodynamics
Introductory Electromagnetism and Wave Motion
PHYS 1007 [0.5]
& PHYS 1008 [0.5]
Elementary University Physics I
Elementary University Physics II (with an average grade of B- or higher)
5.  2.0 credits in: 2.0
PHYS 2007 [0.5]
Second Year Physics Laboratory: Selected Experiments and Seminars
PHYS 2212 [0.5]
Wave Mechanics and Thermodynamics
PHYS 2305 [0.5]
Electricity and Magnetism
PHYS 2605 [0.5]
Modern Physics I
6.  3.0 credits in: 3.0
PHYS 3308 [0.5]
Electromagnetism
PHYS 3701 [0.5]
Elements of Quantum Mechanics
PHYS 3802 [0.5]
Advanced Dynamics
PHYS 4409 [0.5]
Thermodynamics and Statistical Physics
PHYS 4707 [0.5]
Introduction to Quantum Mechanics I
PHYS 4708 [0.5]
Introduction to Quantum Mechanics II
7.  1.0 credit in PHYS at the 4000-level1.0
8.  1.0 credit from:1.0
a. MATH 4905 or PHYS 4907 or PHYS 4908 plus 0.5 credit 4000-level MATH or PHYS
b. PHYS 4909 [1.0]
B. Credits Not Included in the Major CGPA (4.5 credits)
9.  1.0 credit from: 1.0
BIOL 1103 [0.5]
& BIOL 1104 [0.5]
Foundations of Biology I
Foundations of Biology II
CHEM 1001 [0.5]
& CHEM 1002 [0.5]
General Chemistry I
General Chemistry II
ERTH 1002 [0.5]
& ERTH 2312 [0.5]
The Earth and Life Odyssey: A Journey Through Billions of Years
Paleontology
10.  0.5 credit in: 0.5
COMP 1005 [0.5]
Introduction to Computer Science I
11.  0.5 credit from: 0.5
ISAP 1000 [0.5]
Seminar in Science
Approved courses outside the faculties of Science and Engineering and Design
12.  1.5 credits in approved courses outside the faculties of Science and Engineering and Design1.5
13.  1.0 credit in free electives1.0
Total Credits21.5
+

Economics and Mathematics
B.Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (15.5 credits)
1.  7.5 credits in:7.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3001 [0.5]
Real Analysis I (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
2.  0.5 credit from:0.5
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
3.  0.5 credit in:0.5
MATH 4905 [0.5]
Honours Project (Honours)
4.  1.0 credit in MATH or STAT at the 4000-level1.0
5.  4.0 credits in:4.0
ECON 1001 [0.5]
Introduction to Microeconomics
ECON 1002 [0.5]
Introduction to Macroeconomics
ECON 2020 [0.5]
Intermediate Microeconomics I: Producers and Market Structure
ECON 2102 [0.5]
Intermediate Macroeconomics I
ECON 3020 [0.5]
Intermediate Microeconomics II: Consumers and General Equilibrium
ECON 3102 [0.5]
Intermediate Macroeconomics II
ECON 4020 [0.5]
Advanced Microeconomic Theory
ECON 4021 [0.5]
Advanced Macroeconomic Theory
6.  2.0 credits in ECON at the 4000-level2.0
B. Credits Not Included in the Major CGPA (4.5 credits)
7.  1.0 credit in:1.0
COMP 1005 [0.5]
Introduction to Computer Science I
COMP 1006 [0.5]
Introduction to Computer Science II
8.  1.0 credit in Natural Science Electives1.0
9.  2.5 credits in free electives2.5
Total Credits20.0

Notes:

  1. An Honours Essay (ECON 4908 [1.0]) may be written by students with Overall and Major CGPAS of 9.50 or higher. In cases where a grade of B- or higher is earned on this essay, it may count for 1.0 credit in ECON at the 4000-level. Qualified students who choose to pursue the Honours Essay option must first complete an Honours Essay prospectus to the satisfaction of both their adviser and the Department of Economics Undergraduate Supervisor.
  2. The following courses do not count for credit in this program: ECON 1401, ECON 1402, ECON 2210, ECON 2220 (no longer offered), ECON 3001, ECON 3210, ECON 4001, ECON 4002, ECON 4004, ECON 4025 (no longer offered), ECON 4706, ECON 4707, and ECON 4713.
+

Economics and Statistics
B.Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.0 credits)
1.  9.0 credits in:9.0
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3107 [0.5]
Linear Algebra III
STAT 1500 [0.5]
Introduction to Statistical Computing
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
STAT 4502 [0.5]
Survey Sampling (Honours)
STAT 4503 [0.5]
Applied Multivariate Analysis (Honours)
2.  0.5 credit in:0.5
STAT 4905 [0.5]
Honours Project (Honours)
3.  0.5 credit in STAT at the 4000 level0.5
4.  4.0 credits in:4.0
ECON 1001 [0.5]
Introduction to Microeconomics
ECON 1002 [0.5]
Introduction to Macroeconomics
ECON 2020 [0.5]
Intermediate Microeconomics I: Producers and Market Structure
ECON 2102 [0.5]
Intermediate Macroeconomics I
ECON 3020 [0.5]
Intermediate Microeconomics II: Consumers and General Equilibrium
ECON 3102 [0.5]
Intermediate Macroeconomics II
ECON 4020 [0.5]
Advanced Microeconomic Theory
ECON 4021 [0.5]
Advanced Macroeconomic Theory
5.  2.0 credits in ECON at the 4000 level2.0
B. Credits Not Included in the Major CGPA (4.0 credits)
6.  1.0 credit in:1.0
COMP 1005 [0.5]
Introduction to Computer Science I
COMP 1006 [0.5]
Introduction to Computer Science II
7.  1.0 credit in Natural Science Electives1.0
8.  2.0 credits in free electives2.0
Total Credits20.0

Notes:

  1. An Honours Essay ECON 4908 [1.0] may be written by students with Overall and Major CGPAs of 9.50 or higher. In cases where a grade of B- or higher is earned on this essay, it may count for 1.0 credit in ECON at the 4000-level. Qualified students who choose to pursue the Honours Essay option must first complete an Honours Essay prospectus to the satisfaction of both their adviser and the Department of Economics Undergraduate Supervisor.
  2. MATH 2100 [1.0] may replace MATH 3107 and 0.5 credit in free electives in this program.
+

Program Requirements for Combined B.Math./M.Sc.

This "fast-track" program combines the requirements for Bachelor of Mathematics in Mathematics or Statistics, and Master of Science in Mathematics, into a sequence that will enable exceptional students to complete in four years of study.

Entry to this program directly from an Ontario High School requires both of the following:

  1. an average of 90 per cent or better on Grade 12 Mathematics: Advanced Functions and Grade 12 Mathematics: Calculus and Vectors;
  2. an average of 85 per cent or better over six credits in Grade 12 courses of University or University/College type.

Admission, continuation and graduation from the undergraduate portion of the program requires a Major CGPA of 11.0 or better and Overall CGPA of 10.00 or better.

Before entry into the fourth year of this program, students must: obtain a recommendation from the School of Mathematics and Statistics to continue, apply to graduate with a B.Math. degree, by the end of January of their third year, and submit an application for graduate studies to the School by mid-February.

Undergraduate Portion

Students may apply for admission to either the Mathematics or the Statistics versions of the program.

Mathematics (Combined B.Math./M.Sc.)
B.Math. (15.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  7.5 credits in:7.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3106 [0.5]
Introduction to Group Theory (Honours)
MATH 3158 [0.5]
Rings and Fields (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
2.  0.5 credit from:0.5
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
3.  0.5 credit from 3000-level Honours Sequence or MATH or STAT at the 4000-level or higher0.5
4.  1.5 credits at the 4000-level or higher in MATH or STAT1.5
B. Credits Not Included in the Major CGPA (5.0 credits)
5.  4.0 credits not in MATH, STAT or COMP, consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
6.  1.0 credit in free electives1.0
Total Credits15.0

Students wishing to specialize in Stochastics may, with the permission of the School, replace Credits Included in the Major CGPA of the Mathematics version with:

1.  6.0 credits in:6.0
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
2.  2.0 credits in:2.0
MATH 3001 [0.5]
Real Analysis I (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
3.  0.5 credit from:0.5
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
4.  1.5 credits at the 4000-level or higher in MATH or STAT1.5
Total Credits10.0
+

Statistics (Combined B.Math./M.Sc.)
B.Math. (15.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  8.5 credits in:8.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 1500 [0.5]
Introduction to Statistical Computing
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
2.  1.5 credits in MATH or STAT at the 4000 level or above1.5
B. Credits Not Included in the Major CGPA (5.0 credits)
3.  4.0 credits not in MATH, STAT, or COMP consisting of:4.0
a. 1.0 credit in Natural Science Electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
4.  1.0 credit in free electives1.0
Total Credits15.0
+

Graduate Portion - M.Sc.

During the graduate portion of the "fast-track" program, the student is registered as a graduate student and is covered by the regulations of the Faculty of Graduate Studies.

5.  1.5 credits at the 5000-level or higher in MATH or STAT1.5
6.  1.0 credit at the 5000-level or higher in mathematics or statistics or from another department or school1.0
7. Either:2.0
MATH 4905 or STAT 4905 and 1.5 credits in MATH or STAT at the 5000-level or higher
or
an M.Sc. thesis in Mathematics
Total Credits4.5
+

Minor in Mathematics (4.0 credits)

This minor is open to students in all undergraduate programs except programs of the School of Mathematics and Statistics.

Students are required to present a Minor CGPA of 4.00 or higher at graduation in order to be awarded a Minor in Mathematics.

Requirements
1.  1.0 credit from:1.0
MATH 1007 [0.5]
& MATH 2007 [0.5]
Elementary Calculus I
Elementary Calculus II
or
MATH 1004 [0.5]
& MATH 1005 [0.5]
Calculus for Engineering or Physics
Differential Equations and Infinite Series for Engineering or Physics
or
MATH 1052 [0.5]
& MATH 2052 [0.5]
Calculus and Introductory Analysis I
Calculus and Introductory Analysis II
2.  1.0 credit from:1.0
MATH 1107 [0.5]
Linear Algebra I
or MATH 1104 [0.5]
Linear Algebra for Engineering or Science
MATH 2107 [0.5]
Linear Algebra II
or
MATH 1152 [0.5]
& MATH 2152 [0.5]
Introductory Algebra I
Introductory Algebra II
3.  0.5 credit from:0.5
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
or
0.5 credit in MATH at 2000-level
4.  1.0 credit in MATH at the 2000-level or higher1.0
5.  0.5 credit in MATH at the 3000-level or higher0.5
6. The remaining requirements of the major discipline(s) and degree must be satisfied.
Total Credits4.0

Note: As a prerequisite, MATH 1800 opens more options at the 2000-level and above. It is recommended that students taking MATH 1800 do so as early as possible. 

+

Minor in Statistics (4.0 credits)

This minor is available to students in all undergraduate programs, with the exception of those enrolled in the School of Mathematics and Statistics or in the Bachelor of Data Science program.

Students are required to present a Minor CGPA of 4.00 or higher at graduation in order to be awarded a Minor in Statistics.

Requirements:
1.  0.5 credit from:0.5
MATH 1004 [0.5]
Calculus for Engineering or Physics
MATH 1007 [0.5]
Elementary Calculus I
MATH 1009 [0.5]
Mathematics for Business
MATH 1052 [0.5]
Calculus and Introductory Analysis I
2.  0.5 credit from:0.5
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
MATH 1107 [0.5]
Linear Algebra I
MATH 1119 [0.5]
Linear Algebra: with Applications to Business
MATH 1152 [0.5]
Introductory Algebra I
3.  1.0 credit from:1.0
STAT 2507 [0.5]
& STAT 2509 [0.5]
Introduction to Statistical Modeling I
Introduction to Statistical Modeling II
or
STAT 3502 [0.5]
& STAT 2509 [0.5]
Probability and Statistics
Introduction to Statistical Modeling II
or
STAT 2601 [0.5]
& STAT 2602 [0.5]
Business Statistics
Statistical Models for Business Analytics and Finance
or
STAT 2601 [0.5]
& STAT 2509 [0.5]
Business Statistics
Introduction to Statistical Modeling II
or
ECON 2210 [0.5]
& ECON 3210 [0.5]
Introductory Statistics for Economics
Introductory Econometrics
4.  1.5 credits in:1.5
STAT 3503 [0.5]
Regression Analysis
STAT 3504 [0.5]
Analysis of Variance and Experimental Design
STAT 3507 [0.5]
Sampling Methodology
5.  0.5 credit from:0.5
BUSI 1402 [0.5]
Introduction to Business Information and Communication Technologies (Business students only)
STAT 1500 [0.5]
Introduction to Statistical Computing
6. The remaining requirements of the major discipline(s) and degree must be satisfied.
Total Credits4.0
+
+ +
+ +
+

Mathematics (MATH) Courses

+

Note:

• See also the course listings under Statistics (STAT) in this Calendar.

Prerequisites for First-year Mathematics Courses in B.Math. Programs

Students who do not have the required Ontario Grade 12 Mathematics courses or equivalents may take MATH 0005 Precalculus: Functions and Graphs and MATH 0006 Precalculus: Trigonometric Functions and Complex Numbers in lieu of Advanced Functions, MATH 0107 Algebra and Geometry in lieu of the algebra component of Calculus and Vectors. These 0000-level mathematics courses serve as alternate prerequisites for MATH 1052 Calculus and Introductory Analysis I and MATH 1152 Introductory Algebra I. These courses would be in addition to the minimum 15.0 credits required for B.Math programs, or 20.0 credits required for B.Math Honours programs.

+MATH 0005 [0.5 credit]
+Precalculus: Functions and Graphs

+Review of algebraic manipulations. Polynomials: the remainder theorem, and the factor theorem; graphing. Real and Complex roots. Absolute values. Inequalities. Functions, including composition of functions, and Inverse functions. Logarithmic and exponential functions.
+
Not available for degree credit for students who have successfully completed: Grade 12 Mathematics - Advanced Functions, or an equivalent High School functions course.
Prerequisite(s): Grade 11 Functions (University/College Preparation), or equivalent.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 0006 [0.5 credit]
+Precalculus: Trigonometric Functions and Complex Numbers

+Angles and the unit circle, radian measure. Definitions of trigonometric functions. Fundamental relations, Law of Sines and Cosines. Analytic trigonometry, graphs, inverse functions. Trigonometric identities and equations. Applications in science and engineering. Complex numbers in polar form, de Moivre's Theorem, n-th roots of complex numbers.
+
Prerequisite(s): Grade 11 Functions (University/College Preparation), or MATH 0005, or equivalent.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 0009 [0.5 credit]
+Calculus and Vectors

+Limits and continuity. Differentiation rules. Trigonometric, logarithmic, and exponential functions, and their derivatives. Curve sketching. Optimization problems. Introduction to vectors. Dot and cross products. Projections. Equations of lines and planes. Intersection points and distances between points, lines, and planes.
+
Precludes additional credit for MATH 0007.
Prerequisite(s): Grade 12 Mathematics (Advanced Functions); or both MATH 0005 and MATH 0006; or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 0107 [0.5 credit]
+Algebra and Geometry

+Vectors in the plane and in 3-space. Linear combinations and linear independence. Equations of lines and planes in space. Solution of systems of linear equations. Proofs by induction. Binomial Theorem. Logic.
+
Prerequisite(s): Grade 11 Functions (University/College Preparation) or equivalent.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1004 [0.5 credit]
+Calculus for Engineering or Physics

+Limits. Differentiation of the elementary functions. Rules of differentiation. Inverse trigonometric functions. Applications of differentiation: max-min problems, curve sketching, approximations. Definite and indefinite integrals, techniques of integration. Applications to areas and volumes.
+
Precludes additional credit for BIT 1000, BIT 1100, BIT 1200, MATH 1002 (no longer offered), MATH 1007, MATH 1052.
Prerequisite(s): Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005 and MATH 0006, or equivalent. Restricted to students in the Faculty of Engineering, or in certain B.Sc. and B.A.S. programs where specified.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1005 [0.5 credit]
+Differential Equations and Infinite Series for Engineering or Physics

+First-order differential equations. Second-order linear equations with constant coefficients, undetermined coefficients, variation of parameters. Sequences and series, convergence tests, estimation of sums. Power series, Taylor series, remainders. Fourier series.
+
Precludes additional credit for BIT 2004 (no longer offered), BIT 2007 (no longer offered), MATH 1002 (no longer offered), MATH 2007, MATH 2052, and MATH 2404.
Prerequisite(s): i) MATH 1004; and ii) MATH 1104 (or MATH 1107), either previously or concurrently; or equivalents; or permission of the School. Restricted to students in the Faculty of Engineering, or in certain B.Sc. programs where specified.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1007 [0.5 credit]
+Elementary Calculus I

+Limits. Differentiation of the elementary functions, including trigonometric functions. Rules of differentiation. Applications of differentiation: max-min problems, curve sketching, approximations. Introduction to integration: definite and indefinite integrals, areas under curves, fundamental theorem of calculus.
+
Precludes additional credit for BIT 1000, BIT 1100, BIT 1200, MATH 1002 (no longer offered), MATH 1004, MATH 1401/ECON 1401, MATH 1402/ECON 1402, MATH 1052.
Prerequisite(s): Ontario Grade 12 Mathematics: Advanced Functions; or MATH 0005 and MATH 0006; or equivalent.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1009 [0.5 credit]
+Mathematics for Business

+An introductory course of mathematics for business. Thorough review of basic arithmetic and algebra. Elementary functions, their graphs, properties and applications in business models. Limits. Derivatives of elementary functions. Systems of linear equations/inequalities. Geometric series.
+
Precludes additional credit for BIT 1000, BIT 1100, BIT 1200, BUSI 1705 (no longer offered), MATH 1401/ECON 1401, MATH 1052. This course is not acceptable for (substitute) credit in any of the following degree programs: B.Math., and also B.Sc., B.C.S., B.Eng., B.I.D.
Prerequisite(s): Restricted to B.Com. and B.I.B students.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1052 [0.5 credit]
+Calculus and Introductory Analysis I

+Properties of the real numbers. Limits. Sequences and series. Elementary functions. Continuity. Derivatives. Extreme values. Mean Value Theorem. L’Hospital’s rules. Antiderivatives. An emphasis is placed on proofs and theory.
+
Precludes additional credit for BIT 1000, BIT 1100, BIT 1200, MATH 1002 (no longer offered), MATH 1004, MATH 1007, MATH 1009, MATH 1401/ECON 1401, MATH 1402/ECON 1402.
Prerequisite(s): i) Grade 12 Mathematics: Advanced Functions, and Grade 12 Mathematics: Calculus and Vectors, with grades of at least 75% in each; or MATH 0005 and MATH 0006 with grades of at least B in each; or equivalents; and ii) MATH 1800 (may be taken concurrently); or permission of the School of Mathematics and Statistics.
Lectures three hours a week, tutorial one and one half hours a week.
+
+MATH 1104 [0.5 credit]
+Linear Algebra for Engineering or Science

+Systems of linear equations. Matrix algebra. Determinants. Invertible matrix theorem. Cramer’s rule. Vector space R^n; subspaces, bases. Eigenvalues, diagonalization. Linear transformations, kernel, range. Complex numbers (including De Moivre’s theorem). Inner product spaces and orthogonality. Applications.
+
Precludes additional credit for BIT 1001, BIT 1101, BIT 1201, MATH 1102 (no longer offered), MATH 1107, MATH 1119, MATH 1401/ECON 1401, MATH 1402/ECON 1402, MATH 1152. Note: MATH 1119 is not an acceptable substitute for MATH 1104.
Prerequisite(s): Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School. Restricted to students in the Faculty of Engineering, the School of Computer Science, or in certain B.Sc. and B.A.S. programs where specified.
Lectures three hours a week and tutorial one hour a week.
+
+MATH 1107 [0.5 credit]
+Linear Algebra I

+Systems of linear equations; vector space of n-tuples, subspaces, bases; matrix transformations, kernel, range; matrix algebra and determinants. Dot product. Complex numbers (including de Moivre's Theorem, and n-th roots). Eigenvalues, diagonalization and applications. Note: MATH 1119 is not an acceptable substitute for MATH 1107.
+
Precludes additional credit for BIT 1001, BIT 1101, BIT 1201, MATH 1102 (no longer offered), MATH 1104, MATH 1119, MATH 1401/ECON 1401, MATH 1402/ECON 1402, MATH 1152.
Prerequisite(s): Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.
Lectures three hours a week and tutorial one hour a week.
+
+MATH 1119 [0.5 credit]
+Linear Algebra: with Applications to Business

+Introduction to systems of linear equations, geometric interpretation in two and three dimensions, introduction to matrices, vector addition and scalar multiplication, linear dependence, matrix operations, rank, inversion, invertible matrix theorem, determinants. Use of illustrative examples related to business.
+
Precludes additional credit for , but is not an acceptable substitute for: BIT 1001, BIT 1101, BIT 1201, MATH 1102 (no longer offered), MATH 1104, MATH 1107. BUSI 1704 (no longer offered), MATH 1109 (no longer offered), MATH 1401/ECON 1401, MATH 1402/ECON 1402, MATH 1152. This course is not acceptable for (substitute) credit in any of the following degree programs: B.Math., and also B.Sc., B.C.S., B.Eng., B.I.D.
Prerequisite(s): Ontario Grade 12 Mathematics of Data Management; or Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent, or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1152 [0.5 credit]
+Introductory Algebra I

+Properties of numbers. Modular arithmetic. Fields, including complex numbers and finite fields. Vector spaces. Matrix algebra. Solutions of linear systems. Linear dependence. Spanning sets. Bases. Subspaces. The rank-nullity theorem. Linear transformations. An emphasis is placed on proofs and theory.
+
Precludes additional credit for BIT 1001, BIT 1101, BIT 1201, MATH 1102 (no longer offered), MATH 1104, MATH 1107, MATH 1119, MATH 1401/ECON 1401, MATH 1402/ECON 1402.
Prerequisite(s): i) Grade 12 Mathematics: Advanced Functions, and Grade 12 Mathematics: Calculus and Vectors, with grades of at least 75% in each; or MATH 0005, MATH 0006, and MATH 0107 with grades of at least B in each; or equivalents; and ii) MATH 1800 (may be taken concurrently); or permission of the School of Mathematics and Statistics.
Lectures three hours a week, tutorial one and a half hours a week.
+
+MATH 1401 [0.5 credit]
+Elementary Mathematics for Economics I

+Functional relations: functional forms and error terms. Graphing economic magnitudes: scatter diagrams, time-series graphs, functional relationships. Applied calculus: mechanics of differentiation and integration, elasticity, consumer/producer surplus. Applied algebra: solving systems of linear equations and Keynesian national-income analysis. Problem solving approaches.
+
Precludes additional credit for BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, ECON 1401, MATH 1007, MATH 1009, MATH 1052, MATH 1104, MATH 1107, MATH 1119, MATH 1152.
Prerequisite(s): Ontario Grade 12 U Advanced Functions, or MATH 0005, or equivalent; and ECON 1000 or FYSM 1003, which may be taken concurrently with MATH 1401/ECON 1401.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1402 [0.5 credit]
+Elementary Mathematics for Economics II

+Calculus: including partial differentiation, definite and indefinite integrals, techniques of integration, and unconstrained optimization. Vectors and matrices: scalar multiplication, inner product, linear dependence, matrix operations, rank, invertible matrix theorem, and determinants. Economic applications such as profit maximization, comparative statics, and the Leontief input-output model.
+
Precludes additional credit for BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, ECON 1402, MATH 1007, MATH 1009, MATH 1052, MATH 1104, MATH 1107, MATH 1119, MATH 1152.
Prerequisite(s): ECON 1000 or FYSM 1003 with a grade of C- or higher, and ECON 1401/MATH 1401 with a grade of C- or higher.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 1800 [0.5 credit]
+Introduction to Mathematical Reasoning

+Elementary logic, propositional and predicate calculus, quantifiers, sets and functions, bijections and elementary counting, the concept of infinity, relations, well ordering and induction. The practice of mathematical proof in elementary number theory and combinatorics.
+
Precludes additional credit for MATH 1805 (no longer offered), COMP 1805.
Prerequisite(s): Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 2001 [0.5 credit]
+Multivariable Calculus and Fundamentals of Analysis I

+Functions of several variables, limits, continuity, partial derivatives and the derivative, higher order partial derivatives, maxima and minima, Lagrange multipliers. Inverse and implicit function theorems, Riemann integral in several variables, change of coordinates.
+
Precludes additional credit for BIT 2005 (no longer offered), MATH 2000 (no longer offered), MATH 2004, MATH 2008, and MATH 3009.
Prerequisite(s): i) MATH 2052 with a grade of C+ or higher, or (MATH 2007 or MATH 1005 with a grade of B+ or higher and permission of the School); and ii) MATH 2152 with a grade of C+ or higher, or MATH 1107 or MATH 1104 with a grade of B+ or higher; and iii) MATH 1800 with a grade of C+ or higher; or permission of the School.
Lectures three hours a week, tutorial one and a half hours a week.
+
+MATH 2002 [0.5 credit]
+Multivariable Calculus and Fundamentals of Analysis II

+Vector fields, parametric curves and surfaces, line integrals and Green's theorem, surface integrals, Stokes' theorem and divergence theorem. Real number axioms, limit superior and inferior, completeness. Topology of n-dimensional Euclidean space. Sequences, subsequences, compactness.
+
Precludes additional credit for BIT 2005 (no longer offered), MATH 2000 (no longer offered), MATH 2004, MATH 2008, and MATH 3009.
Prerequisite(s): MATH 2001 with a grade of C- or higher; or permission of the School.
Lectures three hours a week, tutorial one and a half hours a week.
+
+MATH 2004 [0.5 credit]
+Multivariable Calculus for Engineering or Physics

+Curves and surfaces. Polar, cylindrical and spherical coordinates. Partial derivatives, gradients, extrema and Lagrange multipliers. Exact differentials. Multiple integrals over rectangular and general regions. Integrals over surfaces. Line integrals. Vector differential operators. Green’s Theorem, Stokes’ theorem, Divergence Theorem. Applications.
+
Precludes additional credit for BIT 2005, BIT 2010, MATH 2000 (no longer offered), MATH 2001, MATH 2002, and MATH 2008.
Prerequisite(s): i) MATH 1005 or MATH 2007; and ii) MATH 1104 or MATH 1107; or permission of the School. Restricted to students in the Faculty of Engineering, or in certain B.Sc. programs where specified.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 2007 [0.5 credit]
+Elementary Calculus II

+Techniques of integration, improper integrals. Polar coordinates, parametric equations. Indeterminate forms, sequences and series, Taylor's formula and series.
+
Precludes additional credit for BIT 2007 (no longer offered), MATH 1002 (no longer offered), MATH 1005, MATH 2052.
Prerequisite(s): i) MATH 1004, or a grade of C- or higher in MATH 1007; or MATH 1052 and permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 2008 [0.5 credit]
+Intermediate Calculus

+Partial differentiation, chain rule, gradient, line and multiple integrals with applications, transformations of multiple integrals.
+
Precludes additional credit for BIT 2005 (no longer offered), MATH 2000 (no longer offered), MATH 2001, MATH 2002, and MATH 2004.
Prerequisite(s): one of MATH 1005, MATH 2052, or MATH 2007, and one of MATH 1104, MATH 1107, or MATH 1152.
Lectures three hours a week and one hour tutorial.
+
+MATH 2052 [0.5 credit]
+Calculus and Introductory Analysis II

+Definite, indefinite integrals. Improper integrals. The fundamental theorem of calculus. An introduction to differential equations. Sequences and series of functions. Power series. Taylor’s formulae. Uniform convergence. An emphasis is placed on proofs and theory.
+
Precludes additional credit for BIT 2007, MATH 1002 (no longer offered), MATH 1005, MATH 2007.
Prerequisite(s): (i) MATH1052 with a grade of C- or higher or (MATH1007 or MATH1004 with a grade of B+ or higher and permission of the School), and (ii) MATH1800 with a grade of C+ or higher; or permission of the School.
Lectures three hours a week, tutorial one and one half hours a week.
+
+MATH 2100 [1.0 credit]
+Algebra

+Introduction to group theory: permutation groups, Lagrange's theorem, normal subgroups, homomorphism theorems. Introduction to ring theory: ring of polynomials, integral domains, ideals, homomorphism theorems. Hermitian forms, spectral theorem for normal operators, bilinear and quadratic forms, classical groups.
+
Precludes additional credit for MATH 2108 and MATH 3101.
Prerequisite(s): i) MATH 2152 with a grade of C+ or higher, or (MATH 2107 with a grade of B+ or higher and permission of the School); and ii) MATH 1800 with a grade of C+ or higher; or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 2107 [0.5 credit]
+Linear Algebra II

+Finite-dimensional vector spaces (over R and C), subspaces, linear independence and bases. Linear transformations and matrices. Inner product spaces (over R and C); Orthonormal bases. Eigenvalues and diagonalization. Bilinear and quadratic forms; principal axis theorem.
+
Precludes additional credit for MATH 1102 (no longer offered), MATH 2152.
Prerequisite(s): i) MATH 1104, or a grade of C- or higher in MATH 1107 or MATH 1109; and ii) a grade of C- or higher in MATH 1007 or equivalent; or MATH 1152 and permission of the School. Note: in item i), MATH 1119 is NOT acceptable as a substitute for MATH 1109.
Lectures three hours a week and one hour tutorial.
+
+MATH 2108 [0.5 credit]
+Abstract Algebra I

+Sets and relations, number theory, group theory, ring theory, cardinal numbers.
+
Precludes additional credit for MATH 3101 and MATH 2100.
Prerequisite(s): i) MATH 2152 or MATH 2107; and ii) MATH 1800 (MATH 1800 may be taken concurrently, with permission of the School); or COMP 1805; or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 2152 [0.5 credit]
+Introductory Algebra II

+Linear transformations. Determinants. Eigenvalues and eigenspaces. Diagonalization and other canonical forms. Inner products. An emphasis is placed on proofs and theory.
+
Precludes additional credit for MATH 1102 (no longer offered) and MATH 2107.
Prerequisite(s): (i) MATH1152 with a grade of C- or higher or (MATH1107 or MATH1104 with a grade of B+ or higher and permission of the School), and (ii) MATH1800 with a grade of C+ or higher; or permission of the School.
Lectures three hours a week, tutorial one and a half hours a week.
+
+MATH 2210 [0.5 credit]
+Introduction to Geometry

+An introduction to classical geometry; Euclidean plane geometry; plane tiling; polytopes in three and four dimensions; curved surfaces; Euler characteristic. This course is intended for a general audience, and is available to B.Math. students for credit only as a free elective.
+
Prerequisite(s): Grade 12 Mathematics and second-year standing.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 2404 [0.5 credit]
+Ordinary Differential Equations I

+First-order equations, linear second- and higher-order equations, linear systems, stability of second-order systems.
+
Precludes additional credit for BIT 2004 (no longer offered), MATH 1005, MATH 2454.
Prerequisite(s): MATH 2052 and MATH 1152 (or MATH 1107 and MATH 2007).
Lectures three hours a week and one hour tutorial.
+
+MATH 2454 [0.5 credit]
+Ordinary Differential Equations (Honours)

+Existence and uniqueness theorems. First-order equations, linear second- and higher-order equations, linear systems, stability of second-order systems.
+
Precludes additional credit for MATH 2404, BIT 2004 (no longer offered).
Prerequisite(s): MATH 2052 or MATH 2007 or MATH 1005 with a grade of C+ or higher, and MATH 2152 or MATH 2107 with a grade of C+ or higher.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 2800 [0.5 credit]
+Discrete Mathematics and Algorithms

+An introduction to discrete mathematics and algorithms in the context of the computational sciences. Basic number theory and counting methods, algorithms for strings, trees and sequences. Applications to DNA and protein sequencing problems. Analysis and complexity of algorithms.
+
Also listed as CMPS 2800.
Precludes additional credit for Only one of (MATH 1805 (no longer offered) or COMP 1805) or MATH 2800/CMPS 2800 may count for credit in a B.Math. program.
Prerequisite(s): COMP 1006 and at least one of MATH 1007, MATH 1107, or STAT 2507.
Lectures three hours a week.
+
+MATH 2907 [0.5 credit]
+Directed Studies (Honours)

+Available only to Honours students whose program requires a 0.5 credit not offered by the School of Mathematics and Statistics.
+
+MATH 3001 [0.5 credit]
+Real Analysis I (Honours)

+Metric spaces and their topologies, continuous maps, completeness, compactness, connectedness, introduction to Banach spaces.
+
Prerequisite(s): (MATH 2001 and MATH 2002) with a grade of C- or higher; or (MATH 3009 and MATH 1800) each with a grade of B or higher, and permission of the instructor; or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3002 [0.5 credit]
+Real Analysis II (Honours)

+Function spaces, pointwise and uniform convergence, Weierstrass approximation theorem, Lebesgue measure and Lebesgue integral on the real line, Hilbert space, Fourier series.
+
Prerequisite(s): MATH 3001 with a grade of C- or higher, or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3003 [0.5 credit]
+Advanced Differential Calculus (Honours)

+Review of multivariable differentiation and integration. Vector fields, differential forms and exterior algebra. Introduction to manifolds and tangent bundles. Stokes’ Theorem. Applications such as differential equations and the calculus of variations.
+
Prerequisite(s): MATH 3001 with a grade of C- or higher, or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3007 [0.5 credit]
+Functions of a Complex Variable

+Analytic functions, contour integration, residue calculus, conformal mapping. Intended for non-engineering students.
+
Precludes additional credit for MATH 3057 and PHYS 3807.
Prerequisite(s): one of MATH 2004, MATH 2008 or MATH 2009, or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3008 [0.5 credit]
+Ordinary Differential Equations (Honours)

+Analytic ordinary differential equations: series solutions of ordinary differential equations about ordinary and regular singular points. Asymptotic solutions. Sturm-Liouville theory. Bessel and Legendre functions. Fourier series.
+
Precludes additional credit for MATH 3404 and PHYS 3808.
Prerequisite(s): i) (MATH 2001 and MATH 2002) with a grade of C- or higher, or (MATH 3009 with a grade of B or higher, and permission of the instructor); and ii) MATH 2454 with a grade of C- or higher, or (MATH 2404 with a grade of B or higher, and permission of the instructor).
Lectures three hours a week and one hour tutorial.
+
+MATH 3009 [0.5 credit]
+Introductory Analysis

+The real number system, sequences and series, functions of a single real variable, derivatives, the definite integral, uniform convergence.
+
Precludes additional credit for MATH 2000 (no longer offered), MATH 2001, and MATH 2002.
Prerequisite(s): one of MATH 2004, MATH 2008, MATH 2009, or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3057 [0.5 credit]
+Functions of a Complex Variable (Honours)

+Analytic functions, contour integration, residue calculus, conformal mappings.
+
Precludes additional credit for MATH 3007 and PHYS 3807.
Prerequisite(s): MATH 2001 and MATH 2002 with a grade of C- or higher; or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3101 [0.5 credit]
+Algebraic Structures with Computer Applications

+Introduction to algebraic structures: groups, rings, fields, lattices, and Boolean algebras; with applications of interest to students in Computer Science. This course may not be used to meet the 3000-level course requirements in any B.Math or B.Math Honours program in Mathematics and Statistics.
+
Precludes additional credit for MATH 2108 and MATH 2100.
Prerequisite(s): i) MATH 2107 or MATH 2152; and ii) either COMP 1805 or MATH 1800 (MATH 1800 may be taken concurrently, with permission of the School); or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3106 [0.5 credit]
+Introduction to Group Theory (Honours)

+Homomorphism theorems; groups acting on sets; permutation groups and groups of matrices; Sylow theory for finite groups; finitely generated abelian groups; generators and relations; applications.
+
Precludes additional credit for MATH 3108.
Prerequisite(s): MATH 2100 with a grade of C- or higher; or (MATH 2108 or MATH 3101 with a grade of B or higher; and MATH 1800 with a grade of B or higher; and permission of the instructor); or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3107 [0.5 credit]
+Linear Algebra III

+Similarity and unitary triangularization of matrices. Direct methods of solving a system of linear equations. Iterative techniques. Bounds for eigenvalues. Power method and deflation techniques of approximation. Emphasis is primarily on computational aspects.
+
Prerequisite(s): i) a grade of C- or higher in MATH 2152 or MATH 2107; and ii) credit in MATH 2052 or MATH 2007; or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3108 [0.5 credit]
+Abstract Algebra II

+Groups and rings. Permutations. Finite symmetry groups. Polynomials, unique factorization domains. Quotient rings, ideals. Field extensions, finite fields. Polynomial equations. Geometric constructions - three famous problems: duplication of the cube, trisection of an arbitrary angle, quadrature of the circle.
+
Precludes additional credit for MATH 3106 and MATH 3158.
Prerequisite(s): MATH 2108, or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3158 [0.5 credit]
+Rings and Fields (Honours)

+Rings, integral domains, Euclidean and principal ideal domains, fields, polynomial rings over a field, algebraic extensions of fields, the fundamental theorem of Galois theory, finite fields, applications.
+
Precludes additional credit for MATH 3108.
Prerequisite(s): MATH 2100 with a grade of C- or higher, or (MATH 2108 or MATH 3101 with a grade of B or higher and MATH 1800 with a grade of B or higher and permission of the instructor), or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3206 [0.5 credit]
+Plane Projective Geometry

+Axioms of Desarguesian geometry, principle of duality; projectivities, perspectivities, and the fundamental theorem; collineations (homologies and elations); correlations (polarities and conics); algebraic model; projective curves; introduction to finite projective planes.
+
Precludes additional credit for MATH 3256.
Prerequisite(s): MATH 2100 or MATH 2108 or MATH 3101.
Lectures three hours a week and one hour tutorial.
+
+MATH 3210 [0.5 credit]
+Euclidean and Non-Euclidean Geometry

+Euclidean isometry and similarity groups; geometry of circles; inversion; hyperbolic geometry: Poincare disk model of the hyperbolic plane.
+
Precludes additional credit for MATH 3205.
Prerequisite(s): MATH 2100 or MATH 2108 or MATH 3101.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3306 [0.5 credit]
+Elements of Set Theory (Honours)

+Axioms of set theory. Development of the systems of natural numbers and the real numbers. Axiom of choice, Zorn's lemma, well-ordering. The Schröder-Bernstein theorem, cardinal numbers, ordinal numbers, transfinite induction, cardinal and ordinal arithmetics.
+
Prerequisite(s): MATH 2100 with a grade of C- or higher; or (MATH 2108 or MATH 3101 with a grade of B or higher; and MATH 1800 with a grade of B or higher; and permission of the instructor); or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3355 [0.5 credit]
+Number Theory and Applications (Honours)

+Congruences, distribution of primes, arithmetic functions, primitive roots, quadratic residues, quadratic reciprocity law, continued fractions, Diophantine equations, and applications: public key cryptography, primality testing and factoring in relation to cryptography.
+
Precludes additional credit for MATH 3809.
Prerequisite(s): MATH 2100 with a grade of C- or higher; or (MATH 2108 or MATH 3101 with a grade of B- or higher; and permission of the instructor); or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3404 [0.5 credit]
+Ordinary Differential Equations II

+Series solutions of ordinary differential equations of second order about regular singular points; asymptotic solutions. Systems of ordinary differential equations of first order; matrix methods. Existence and uniqueness theorems. Nonlinear autonomous systems of order 2; qualitative theory. Numerical solutions of ordinary differential equations.
+
Precludes additional credit for MATH 3008.
Prerequisite(s): MATH 2404, MATH 2008; and MATH 2152 or MATH 2107.
Lectures three hours a week and one hour tutorial.
+
+MATH 3702 [0.5 credit]
+Mathematical Modelling (Honours)

+Introduction to techniques for construction, interpretation and validation of mathematical models. Continuous and discrete, deterministic and probabilistic models arising in a range of physical, natural and other practical application settings. Analytic techniques including variational principles, dimensional analysis, scaling, self-similarity, and model reduction.
+
Prerequisite(s): MATH 2404 or MATH 2454, MATH 2000 or MATH 2004 or MATH 2008.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3705 [0.5 credit]
+Mathematical Methods I

+Laplace transforms, series solutions of ordinary differential equations, the Frobenius method. Fourier series and Fourier transforms, solutions of partial differential equations of mathematical physics, boundary value problems, applications.
+
Precludes additional credit for PHYS 3808. This course may be taken for credit as a 3000-level Honours Mathematics course by students in any Honours program in the School of Mathematics and Statistics.
Prerequisite(s): i) MATH 1005 or MATH 2404, and ii) MATH 2002 or MATH 2004 or MATH 2008 or MATH 3009; or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3800 [0.5 credit]
+Mathematical Modeling and Computational Methods

+Design and analysis of mathematical models for problems in science. Computational methods, including function evaluation, interpolation, solution of linear equations, root finding, integration, solution of differential equations, Fourier series and Monte Carlo methods.
+
Includes: Experiential Learning Activity
Precludes additional credit for MATH 3806.
Prerequisite(s): i) MATH 1107 or MATH 1104; ii) MATH 1005 or MATH 2007; and iii) knowledge of a computer language.
Lectures three hours a week, laboratory one hour a week.
+
+MATH 3801 [0.5 credit]
+Linear Programming

+Systems of linear inequalities, formulation of linear programming problems, geometric method, the simplex method, duality theory, complementary slackness, sensitivity analysis, branch-and-bound method and cutting plane method for integer linear programming, applications and extensions.
+
Precludes additional credit for ECON 4004, SYSC 3200.
Prerequisite(s): MATH 2152 or MATH 2107, or permission of the School.
Lectures three hours a week and one hour tutorial.
+
+MATH 3802 [0.5 credit]
+Combinatorial Optimization

+Network flow problems, network simplex method, max-flow min-cut problem, integral polyhedra, minimum-weight spanning tree problem, maximum matching problem, maximum stable set problem, introduction to approximation algorithms.
+
Prerequisite(s): MATH 3801 or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3804 [0.5 credit]
+Design and Analysis of Algorithms I

+An introduction to the design and analysis of algorithms. Topics include: recurrence relations, sorting and searching, divide-and-conquer, dynamic programming, greedy algorithms, NP-completeness.
+
Also listed as COMP 3804.
Prerequisite(s): i) one of COMP 2402 or SYSC 2100; and ii) one of COMP 2804 or MATH 3855 or MATH 3825 or COMP 3805.
Lectures and tutorials three to four and a half hours a week.
+
+MATH 3806 [0.5 credit]
+Scientific Computing I (Honours)

+Introduction to computer arithmetic. Computational methods for polynomial interpolation, integration, nonlinear equations, ordinary and partial differential equations, and linear system solvers. Focus on implementation in an efficient complied language and standard numerical libraries.
+
Includes: Experiential Learning Activity
Precludes additional credit for MATH 3800.
Prerequisite(s): i) (MATH 2001 and MATH 2002) or MATH 2004 or MATH 2008; and ii) MATH 1152 with a grade of C- or higher, or (MATH 1107 or MATH 1104 with a grade of B or higher and permission of the instructor); and iii) MATH 2454 or MATH 2404 or MATH 1005; and iv) COMP 1405 or COMP 1005 or STAT 1500; or permission of the school.
Lectures three hours a week, laboratory one hour a week.
+
+MATH 3807 [0.5 credit]
+Mathematical Software (Honours)

+Implementation of numerical methods using numerical software packages. Development of scientific and/or operations research applications using application programming interfaces of numerical or optimization libraries. Functional programming for data analysis and machine learning. Experience working with Python, C++, or Java is essential.
+
Includes: Experiential Learning Activity
Also listed as COMP 3807.
Prerequisite(s): A grade of C- or higher in MATH 3806.
Lectures three hours a week, laboratory one hour a week.
+
+MATH 3808 [0.5 credit]
+Mathematical Analyses of Games of Chance

+This course covers mathematics used in the modern casino gaming industry. The topics include probabilities, odds, house advantages, variance and risks, optimal strategies, random walks and gambler's ruin, and gaming revenue estimation. Examples are taken from various games such as Roulette, Blackjack, and Poker.
+
Prerequisite(s): one of STAT 2655, STAT 2605, STAT 2507, STAT 2606, STAT 3502, or MATH 3825 or MATH 3855.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3809 [0.5 credit]
+Introduction to Number Theory and Cryptography

+Congruences, distribution of primes, general cryptographic systems, public key cryptographic systems and authentification using number theory, primality testing and factoring in relation to cryptography, continued fractions and Diophantine equations.
+
Prerequisite(s): MATH 2108 or MATH 3101 or MATH 2100; knowledge of a computer language.
Lectures three hours a week and one hour tutorial.
+
+MATH 3819 [0.5 credit]
+Modern Computer Algebra

+Algorithms for multiplication, division, greatest common divisors and factorization over the integers, finite fields and polynomial rings. Basic tools include modular arithmetic, discrete Fourier transform, Chinese remainder theorem, Newton iteration, and Hensel techniques. Some properties of finite fields and applications to cryptography.
+
Includes: Experiential Learning Activity
Prerequisite(s): MATH 2108 or MATH 3101 or MATH 2100, COMP 1005 or equivalent; or permission of the School.
Lectures three hours a week, tutorial/laboratory one hour a week.
+
+MATH 3825 [0.5 credit]
+Discrete Structures and Applications

+Enumeration: elementary methods, inclusion and exclusion, recurrence relations, generating functions and applications. Graph theory and algorithms: connectivity, planarity, Hamilton paths and Euler trails. Error-correcting codes.
+
Precludes additional credit for MATH 3805 (no longer offered), and MATH 3855 and COMP 3805.
Prerequisite(s): MATH 2108 or MATH 3101.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3855 [0.5 credit]
+Discrete Structures and Applications (Honours)

+Enumeration: inclusion and exclusion, recurrence relations, generating functions and applications. Graph theory: connectivity, planarity, Hamilton paths and Euler trails. Error-correcting codes. Designs and finite geometries. Symmetry and counting.
+
Also listed as COMP 3805.
Precludes additional credit for MATH 3805 (no longer offered) and MATH 3825.
Prerequisite(s): MATH 2100 with a grade of C- or higher; or (MATH 2108 or MATH 3101) with a grade of B or higher.
Lectures three hours a week, tutorial one hour a week.
+
+MATH 3907 [0.5 credit]
+Directed Studies

+Available only to students whose program requires a 0.5 credit not offered by the School of Mathematics and Statistics.
+
+MATH 3999 [0.0 credit]
+Co-operative Work Term Report (Honours)

+On completion of each work term, the student must submit to the School of Mathematics and Statistics a written report on the work performed. Graded Sat or Uns.
+
Includes: Experiential Learning Activity
Prerequisite(s): registration in the Co-operative Education Option of an Honours program offered by the School of Mathematics and Statistics, and permission of the School.

+
+MATH 4002 [0.5 credit]
+Fourier Analysis (Honours)

+Fourier series, Fourier integrals; introduction to harmonic analysis on locally compact abelian groups, Plancherel Theorem, Pontryagin duality; selected applications.
+
Prerequisite(s): MATH 3001 or permission of the School.
Lectures three hours a week.
+
+MATH 4003 [0.5 credit]
+Functional Analysis (Honours)

+Banach spaces and bounded linear operators, Hahn-Banach extension and separation, dual spaces, bounded inverse theorems, uniform boundedness principle, applications. Compact operators.
+
Prerequisite(s): MATH 4007 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5008, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4007 [0.5 credit]
+Measure and Integration Theory (Honours)

+Lebesgue measure and integration on the real line; sigma algebras and measures; integration theory; Lp spaces; Fubini's theorem; decomposition theorems and Radon-Nikodym derivatives.
+
Prerequisite(s): MATH 3001 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5007, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4102 [0.5 credit]
+Group Representations and Applications (Honours)

+An introduction to the group representations and character theory, with selected applications.
+
Prerequisite(s): MATH 3106, or a grade of B or higher in MATH 3108.
Also offered at the graduate level, with different requirements, as MATH 5102, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4105 [0.5 credit]
+Rings and Modules (Honours)

+Fundamental concepts in rings and modules, structure theorems, applications.
+
Prerequisite(s): MATH 3158 or permission of the School.
Lectures three hours a week.
+
+MATH 4106 [0.5 credit]
+Group Theory (Honours)

+Fundamental principles as applied to abelian, nilpotent, solvable, free and finite groups; representations.
+
Prerequisite(s): MATH 3106 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5106, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4107 [0.5 credit]
+Commutative Algebra (Honours)

+Fields, including algebraic and transcendental extensions, Galois theory, valuation theory; Noetherian commutative rings, including Noether decomposition theorem and localization.
+
Prerequisite(s): MATH 3158 or permission of the School.
Lectures three hours a week.
+
+MATH 4108 [0.5 credit]
+Homological Algebra and Category Theory (Honours)

+Axioms of set theory; categories, functors, natural transformations; free, projective, injective and flat modules; tensor products and homology functors, derived functors; dimension theory.
+
Prerequisite(s): MATH 3158 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5108, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4109 [0.5 credit]
+Fields and Coding Theory (Honours)

+Introduction to field theory, emphasizing the structure of finite fields, primitive elements and irreducible polynomials. The influence of computational problems will be considered. Theory and applications of error-correcting codes: algebraic codes, convolution codes, decoding algorithms, and analysis of code performance.
+
Prerequisite(s): MATH 2100, or MATH 3101 or MATH 2108 or equivalent; or permission of the School.
Lectures three hours a week.
+
+MATH 4205 [0.5 credit]
+Introduction to General Topology (Honours)

+Topological spaces, maps, subspaces, product and identification topologies, separation axioms, compactness, connectedness.
+
Prerequisite(s): MATH 3001 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5205, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4206 [0.5 credit]
+Introduction to Algebraic Topology (Honours)

+An introduction to homotopy theory. Topics include the fundamental group, covering spaces and the classification of two-dimensional manifolds.
+
Prerequisite(s): MATH 3106 and MATH 4205; or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5206, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4207 [0.5 credit]
+Foundations of Geometry (Honours)

+A study of at least one modern axiom system of Euclidean and non-Euclidean geometry, embedding of hyperbolic and Euclidean geometries in the projective plane, groups of motions, models of non-Euclidean geometry.
+
Prerequisite(s): MATH 3106 (may be taken concurrently) or permission of the School.
Lectures three hours a week.
+
+MATH 4208 [0.5 credit]
+Introduction to Differentiable Manifolds (Honours)

+Introduction to differentiable manifolds; Riemannian manifolds; vector fields and parallel transport; geodesics; differential forms on a manifold; covariant derivative; Betti numbers.
+
Prerequisite(s): MATH 3002 or permission of the School.
Lectures three hours a week.
+
+MATH 4305 [0.5 credit]
+Analytic Number Theory (Honours)

+Dirichlet series, characters, Zeta-functions, prime number theorem, Dirichlet's theorem on primes in arithmetic progressions, binary quadratic forms.
+
Prerequisite(s): MATH 3057 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5305, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4306 [0.5 credit]
+Algebraic Number Theory (Honours)

+Algebraic number fields, bases, algebraic integers, integral bases, arithmetic in algebraic number fields, ideal theory, class number.
+
Prerequisite(s): MATH 3158 (may be taken concurrently) or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5306, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4600 [0.5 credit]
+Case Studies in Operations Research (Honours)

+Applications of the principles of Operations Research to practical problems in business, management, and science. Students present at least one case and analyze cases in the published literature. Cases may also be presented by visiting practitioners.
+
Includes: Experiential Learning Activity
Precludes additional credit for Students in Honours Mathematics/Statistics programs may only take course as a free option.
Prerequisite(s): STAT 2509 (or STAT 2559) and MATH 3801; or permission of the School.
Seminars three hours a week.
+
+MATH 4700 [0.5 credit]
+Partial Differential Equations (Honours)

+Initial/boundary value problems for first-order and linear second-order partial differential equations. Solution methods including characteristics, separation of variables, Fourier and Laplace transforms, Green’s functions. Applications such as wave dynamics, reaction-diffusion systems.
+
Prerequisite(s): MATH 3057 and one of MATH 2454 or MATH 3705, or permission of the School.
Lectures three hours a week.
+
+MATH 4701 [0.5 credit]
+Topics in Differential Equations (Honours)

+Topics in the theory and application of differential equations; for example, hyperbolic systems, fluid dynamics, nonlinear wave equations, optimal mass transport, control theory, calculus of variations.
+
Prerequisite(s): i) MATH 2454; and ii) one of MATH 3001 or MATH 3057; or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5407, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4702 [0.5 credit]
+Industrial Mathematics (Honours)

+Project based and application driven course involving in-depth study of mathematical models. Fields of application will vary, drawn from areas such as ecology, epidemiology, mechanics, finance, transportation, communication and manufacturing. Focus will be on the development, analysis and validity of models.
+
Prerequisite(s): MATH 3702, or permission of the school.
Lectures three hours a week.
+
+MATH 4703 [0.5 credit]
+Dynamical Systems (Honours)

+Basic concepts of dynamical systems. Vector formulation for systems. Theory of autonomous systems in one, two and higher dimensions. Limit sets, stability. Phase plane, qualitative interpretation, limit cycles and attractors. Parametric dependence, bifurcations and chaos. Applications.
+
Prerequisite(s): MATH 3001 and MATH 3008 or permission of the School.
Lectures three hours a week.
+
+MATH 4708 [0.5 credit]
+Asymptotic Methods of Applied Mathematics (Honours)

+Asymptotic series: properties, matching, application to differential equations. Asymptotic expansion of integrals: elementary methods, methods of Laplace, stationary phase and steepest descent, Watson’s lemma, Riemann-Lebesgue lemma. Perturbation methods: regular and singular perturbation for differential equations, multiple scale analysis, boundary layer theory, WKB theory.
+
Prerequisite(s): (MATH 3057 or MATH 3007) and (MATH 2454 or MATH 3705), or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5408, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4801 [0.5 credit]
+Topics in Combinatorics (Honours)

+An in-depth study of one or more topics from: generating functions, Polya's theory of counting, block designs, coding theory, partially ordered sets and Ramsey theory.
+
Prerequisite(s): MATH 2100 and MATH 3855 or permission of the School.
Lectures three hours a week.
+
+MATH 4802 [0.5 credit]
+Introduction to Mathematical Logic (Honours)

+Symbolic logic, propositional and predicate calculi, set theory and model theory, completeness.
+
Prerequisite(s): MATH 2100 or permission of the School.
Lectures three hours a week.
+
+MATH 4803 [0.5 credit]
+Computable Functions (Honours)

+Recursive functions and computability, algorithms, Church's thesis, Turing machines, computational logic, NP-completeness.
+
Also listed as COMP 4803.
Prerequisite(s): MATH 2100 or MATH 3855 or permission of the School.
Lectures three hours a week.
+
+MATH 4805 [0.5 credit]
+Theory of Automata (Honours)

+Finite automata and regular expressions, properties of regular sets, context-free grammars, pushdown automata, deterministic context-free languages. Turing machines, the Chomsky hierarchy. Undecidability, intractable problems.
+
Also listed as COMP 4805.
Prerequisite(s): MATH 3106 or MATH 3158 or MATH 3855 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5605, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4806 [0.5 credit]
+Scientific Computing II (Honours)

+Computational methods in numerical linear algebra including solvers for large linear systems, numerical optimization and eigenvalue problems. Application to topics such as scientific machine learning or parallel computing. Focus on implementation in an efficient compiled language and standard numerical libraries.
+
Also listed as COMP 4806.
Prerequisite(s): i) MATH 3806; and ii) MATH 2152 or MATH 2107 with a grade of C- or higher, or permission of the school.
Lectures three hours a week.
+
+MATH 4807 [0.5 credit]
+Game Theory (Honours)

+One-player games, two-player zero-sum games, multi-player games, games in normal form, games in extensive form, utility theory, Nash equilibrium and Nash arbitration scheme, games in characteristic function form, cooperative solutions, dominations, stable sets, core, Shapley value, applications of game theory.
+
Prerequisite(s): MATH 3801 or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5607, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4808 [0.5 credit]
+Graph Theory and Algorithms (Honours)

+Paths, circuits, Eulerian and Hamiltonian graphs, connectivity, colouring problems, matching, Ramsey theory, network flows.
+
Prerequisite(s): MATH 3106 or MATH 3158 or MATH 3855 or permission of the School.
Lectures three hours a week.
+
+MATH 4809 [0.5 credit]
+Mathematical Cryptography (Honours)

+Topics covered include: a general survey of public key cryptography; classical applications of finite fields and number theory; relevant background in geometry and algebraic curves; computational issues concerning elliptic curves; elliptic curve cryptosystems; security issues.
+
Prerequisite(s): MATH 3158, or permission of the School.
Lectures three hours a week.
+
+MATH 4811 [0.5 credit]
+Combinatorial Design Theory (Honours)

+Existence and construction of combinatorial designs: finite geometries, pairwise balanced designs, balanced incomplete block designs, Steiner triple systems, symmetric designs, PBD closure, latin squares, transversal designs, and applications to information theory.
+
Prerequisite(s): MATH 3855, or permission of the School.
Lectures three hours a week.
+
+MATH 4816 [0.5 credit]
+Numerical Analysis for Differential Equations (Honours)

+Floating point arithmetic; numerical solution of ODEs; finite difference methods for PDEs; stability, accuracy and convergence: von Neumann analysis, CFL condition, Lax Theorem. Finite element methods: boundary value problems and elliptic PDEs. Spectral and pseudo-spectral methods.
+
Prerequisite(s): MATH 2454 and MATH 3806, or permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5806, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4821 [0.5 credit]
+Quantum Computing (Honours)

+Space of quantum bits; entanglement. Observables in quantum mechanics. Density matrix and Schmidt decomposition. Quantum cryptography. Classical and quantum logic gates. Quantum Fourier transform. Shor's quantum algorithm for factorization of integers.
+
Precludes additional credit for COMP 4114.
Prerequisite(s): MATH 2152 (or MATH 2107) with a grade of C+ or better, and permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5821, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4822 [0.5 credit]
+Wavelets and Digital Signal Processing (Honours)

+Lossless compression methods. Discrete Fourier transform and Fourier-based compression methods. JPEG and MPEG. Wavelet analysis. Digital filters and discrete wavelet transform. Daubechies wavelets. Wavelet compression.
+
Prerequisite(s): MATH 2152 (or MATH 2107) with a grade of C+ or better, and permission of the School.
Also offered at the graduate level, with different requirements, as MATH 5822, for which additional credit is precluded.
Lectures three hours a week.
+
+MATH 4905 [0.5 credit]
+Honours Project (Honours)

+Consists of a written report on some approved topic or topics in the field of mathematics, together with a short lecture on the report.
+
Includes: Experiential Learning Activity
Prerequisite(s): B.Math.(Honours) students only.

+
+MATH 4907 [0.5 credit]
+Directed Studies (Honours)

+
Prerequisite(s): B.Math.(Honours) students only.

+
+
+
+

Statistics (STAT) Courses

+
+STAT 1500 [0.5 credit]
+Introduction to Statistical Computing

+Basics of programming in R and introduction to statistical software; generating statistical plots; computing descriptive statistics; performing basic statistical procedures; fundamentals of numerical analysis; optimization; generating random numbers, performing simple simulations and simulation-based inference.
+
Includes: Experiential Learning Activity
Prerequisite(s): Ontario Grade 12 Mathematics: Advanced Functions, or MATH 0005, or equivalent.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 2210 [0.5 credit]
+Inferential Data Science Foundations I

+Theoretical foundations to data science using open source software. Empirical distribution functions, point estimation, interval estimation, tests of hypotheses, maximum likelihood and method of moments. Formal tools are developed, and concepts are demonstrated using simulation. Abstract concepts are made concrete through visualization and numerical computation.
+
Precludes additional credit for STAT 3508, STAT 3558.
Prerequisite(s): MATH 2007 (or MATH 1005 or MATH 2052); and DATA 2500; and DATA 1519 (or STAT 2509 or STAT 2559).
Lectures three hours a week, laboratory one hour a week.
+
+STAT 2507 [0.5 credit]
+Introduction to Statistical Modeling I

+A data-driven introduction to statistics. Basic descriptive statistics, introduction to probability theory, random variables, discrete and continuous distributions, contingency tables, sampling distributions, distribution of sample mean, Central Limit Theorem, interval estimation and hypothesis testing. A statistical software package will be used.
+
Includes: Experiential Learning Activity
Precludes additional credit for BIT 2000, BIT 2009, BIT 2100 (no longer offered), BIT 2300 (no longer offered), DATA 1517, ECON 2201 (no longer offered), ECON 2210, ENST 2006, GEOG 2006, STAT 2601, STAT 2606, and STAT 3502. May not be counted for credit in any program if taken after successful completion of STAT 2559.
Prerequisite(s): an Ontario Grade 12 university-preparation Mathematics or equivalent, or permission of the School of Mathematics and Statistics.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 2509 [0.5 credit]
+Introduction to Statistical Modeling II

+A data-driven approach to statistical modeling. Basics of experimental design, analysis of variance, simple linear regression and correlation, nonparametric procedures. A statistical software package will be used.
+
Includes: Experiential Learning Activity
Precludes additional credit for DATA 1519, ECON 2202, ECON 2220 (no longer offered), ECON 3210, STAT 2602, STAT 2607.
Prerequisite(s): STAT 2507 or STAT 2601 or STAT 2606 or STAT 3502; or permission of the School.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 2559 [0.5 credit]
+Basics of Statistical Modeling (Honours)

+Estimation and hypothesis testing for one and two samples, analysis of categorical data, basics of experimental design, analysis of variance, simple linear regression and correlation. Nonparametric procedures. A statistical software package will be used.
+
Includes: Experiential Learning Activity
Precludes additional credit for DATA 1519.
Prerequisite(s): STAT 2655 or permission of the School.
Lectures three hours a week, tutorial/laboratory one hour a week.
+
+STAT 2601 [0.5 credit]
+Business Statistics

+Introduction to statistical computing, descriptive statistics, probability concepts, interval estimation and hypothesis testing, categorical data analysis. Introduction to simple regression, multiple regression, and time series. Emphasis on the development of an ability to interpret results of statistical analyses with applications from business.
+
Includes: Experiential Learning Activity
Precludes additional credit for BIT 2000, BIT 2009, BIT 2100 (no longer offered), BIT 2300 (no longer offered), DATA 1517, ECON 2201 (no longer offered), ECON 2210, ENST 2006, GEOG 2006, STAT 2507, STAT 2606 (no longer offered) and STAT 3502.
Prerequisite(s): MATH 1009. Restricted to B.Com. and B.I.B students.
Lectures three hours a week and laboratory one hour a week.
+
+STAT 2602 [0.5 credit]
+Statistical Models for Business Analytics and Finance

+Analysis of variance, multiple regression (including polynomial regression), logistic and Poisson regression, probit models, time series (including decomposition into components, exponential smoothing, model diagnostics and ARIMA models), Monte Carlo simulation.
+
Includes: Experiential Learning Activity
Precludes additional credit for DATA 1519, STAT 2607 (no longer offered).
Prerequisite(s): STAT 2601.
Lectures three hours a week and laboratory one hour a week.
+
+STAT 2605 [0.5 credit]
+Probability Models

+Basic probability; discrete random variables with focus on binomial and Poisson random variables; continuous random variables, transformation theorem, simulating continuous random variables; exponential random variable, normal random variable, sums of random variables, central limit theorem. Elements of Markov chains, and introduction to Poisson processes.
+
Precludes additional credit for STAT 2655 and STAT 3502.
Prerequisite(s): MATH 1007 or MATH 1004 or MATH 1002 (no longer offered) or MATH 1052, and MATH 1104 or MATH 1107 or MATH 1102 (no longer offered) or MATH 1152. Restricted to students in Bachelor of Computer Science and Bachelor of Mathematics in Computer Mathematics.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 2655 [0.5 credit]
+Introduction to Probability with Applications (Honours)

+Probability axioms, basic combinatorial analysis, conditional probability and independence, discrete and continuous random variables, joint and conditional distributions, expectation and moments, probability and moment generating functions, Chebyshev's inequality and weak law of large numbers, central limit theorem, sampling distributions, simulation and applications to descriptive statistics.
+
Precludes additional credit for STAT 2605.
Prerequisite(s): MATH 2052 with a grade of C+ or higher or MATH 2007 or MATH 1005 with a grade of B+ or higher; and MATH 2152 with a grade of C+ or higher or MATH 2107 with a grade of B+ or higher; or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 2660 [0.5 credit]
+Mathematics for Finance (Honours)

+Interest rates, growth of money, discount functions, yield rates, time value of money, annuities, cash flows and portfolios, loans, mortgages, bonds, immunization, swaps, hedging and investment strategies, stocks and financial markets, arbitrage.
+
Prerequisite(s): i) one of MATH 2052 or MATH 2007 or MATH 1005, grade of C+ or higher; and ii) one of MATH 1152 or MATH 1107 or MATH 1104, grade of C+ or higher; or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 2907 [0.5 credit]
+Directed Studies (Honours)

+Available only to Honours students whose program requires a 0.5 credit not offered by the School of Mathematics and Statistics.
+
+STAT 3502 [0.5 credit]
+Probability and Statistics

+Axioms of probability; conditional probability and independence; random variables; distributions: binomial, Poisson, hypergeometric, normal, gamma; central limit theorem; sampling distributions; point estimation: maximum likelihood, method of moments; confidence intervals; testing of hypotheses: one and two populations; engineering applications: acceptance sampling, control charts, reliability.
+
Includes: Experiential Learning Activity
Precludes additional credit for BIT 2000, BIT 2009, BIT 2100 (no longer offered), BIT 2300 (no longer offered), DATA 1517, ECON 2201 (no longer offered), ECON 2210, STAT 2507, STAT 2605, STAT 2601, and STAT 2606.
Prerequisite(s): MATH 2004 and enrolment in the Faculty of Engineering or B.Sc. programs of the Department of Physics [except Double Honours Mathematics and Physics].
Lectures three hours a week and one hour laboratory.
+
+STAT 3503 [0.5 credit]
+Regression Analysis

+Review of simple and multiple regression with matrices, Gauss-Markov theorem, polynomial regression, indicator variables, residual analysis, weighted least squares, variable selection techniques, nonlinear regression, correlation analysis and autocorrelation. Computer packages are used for statistical analyses.
+
Includes: Experiential Learning Activity
Precludes additional credit for STAT 3553.
Prerequisite(s): i) DATA 1519 or STAT 2509 or STAT 2602 or STAT 2607 or ECON 2202 or ECON 2220 or equivalent; and ii) MATH 1152 or MATH 1107 or MATH 1119 or equivalent; or permission of the School.
Lectures three hours a week and one hour laboratory.
+
+STAT 3504 [0.5 credit]
+Analysis of Variance and Experimental Design

+Single and multifactor analysis of variance, orthogonal contrasts and multiple comparisons, analysis of covariance; nested, crossed and repeated measures designs; completely randomized, randomized block, Latin squares, factorial experiments, related topics. Computer packages are used for statistical analyses.
+
Includes: Experiential Learning Activity
Precludes additional credit for STAT 4504.
Prerequisite(s): STAT 3503 or permission of the School.
Lectures three hours a week and one hour laboratory.
+
+STAT 3506 [0.5 credit]
+Stochastic Processes and Applications (Honours)

+Conditional probability and conditional expectation; Stochastic modeling; discrete time Markov chains including classification of states, stationary and limiting distributions; exponential distribution and the Poisson processes; queueing models; applications to computer systems, operations research and social sciences.
+
Prerequisite(s): STAT 2655 with a grade of C- or higher; or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3507 [0.5 credit]
+Sampling Methodology

+The sample survey as a vehicle for information collection in government, business, scientific and social agencies. Topics include: planning a survey, questionnaire design, simple random, stratified, systematic and cluster sampling designs, estimation methods, problem of non-response, related topics.
+
Includes: Experiential Learning Activity
Prerequisite(s): one of: STAT 2507, STAT 2509, STAT 2601, STAT 2602, STAT 2606, STAT 2607, ECON 2201, ECON 2202, ECON 2210, or equivalent; or permission of the School.
Lectures three hours a week and one hour laboratory.
+
+STAT 3508 [0.5 credit]
+Elements of Probability Theory

+Discrete and continuous distributions, moment-generating functions, marginal and conditional distributions, transformation theory, limiting distributions.
+
Precludes additional credit for ECON 4002, STAT 2210, STAT 3558 and STAT 3608.
Prerequisite(s): i) MATH 2008 (or MATH 2004 or MATH 2009); and ii) one of STAT 2507, STAT2601, STAT 2606, ECON 2200, or ECON 2201 or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3509 [0.5 credit]
+Mathematical Statistics

+Point and interval estimation, sufficient statistics, hypothesis testing, chi-square tests with enumeration data.
+
Precludes additional credit for STAT 3559, STAT 4321.
Prerequisite(s): STAT 3508 or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3553 [0.5 credit]
+Regression Modeling (Honours)

+Linear regression - theory, methods and application(s). Normal distribution theory. Hypothesis tests and confidence intervals. Model selection. Model diagnostics. Introduction to weighted least squares and generalized linear models.
+
Includes: Experiential Learning Activity
Precludes additional credit for STAT 3503.
Prerequisite(s): i) STAT 2559 with a grade of C- or higher, or STAT 2210 with a grade of C or higher; and ii) a grade of C- or higher in MATH 1152 or MATH 1107 or MATH 1104; or permission from the School of Mathematics and Statistics.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 3558 [0.5 credit]
+Elements of Probability Theory (Honours)

+Random variables and moment-generating functions, concepts of conditioning and correlation; laws of large numbers, central limit theorem; multivariate normal distribution; distributions of functions of random variables, sampling distributions, order statistics.
+
Precludes additional credit for ECON 4002, STAT 2210, STAT 3508 and STAT 3608.
Prerequisite(s): i) STAT 2655 with a grade of C- or higher; and ii) (MATH 2001 and MATH 2002 with a grade of C- or higher), or (a grade of C+ or higher in MATH 2008 or MATH 2004, and permission of the instructor); or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3559 [0.5 credit]
+Mathematical Statistics (Honours)

+Empirical distribution functions, Monte Carlo methods, elements of decision theory, point estimation, interval estimation, tests of hypotheses, robustness, nonparametric methods.
+
Precludes additional credit for STAT 3509, STAT 4321.
Prerequisite(s): STAT 3558 with a grade of C- or higher; or (STAT 3508 with a grade of B or higher, and permission of the instructor); or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3660 [0.5 credit]
+Actuarial Mathematics I

+Severity, frequency models, loss models, risk measures, value at risk, stochastic processes, Poisson process, characteristics of actuarial models, creating new univariate distributions, heavy-tailed distributions, mixed distributions, coverage modifications.
+
Prerequisite(s): STAT 2655, or permission from the school.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3661 [0.5 credit]
+Life Contingent Risk Modelling I

+Introduction to life insurance; traditional and modern insurance contracts; underwriting; premiums; present value random variable; force of mortality; life tables; insurance benefits; annuities; premium calculation, reserves.
+
Prerequisite(s): STAT 2660 and STAT 3660, or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 3907 [0.5 credit]
+Directed Studies

+Available only to students whose program requires a 0.5 credit not offered by the School of Mathematics and Statistics.
+
+STAT 3999 [0.0 credit]
+Co-operative Work Term

+
Includes: Experiential Learning Activity
+
+STAT 4321 [0.5 credit]
+Inferential Data Science Foundations II

+Inferential data science tools extending to big data using open-source software. Asymptotic properties of likelihoods, parametric and non-parametric approaches, bootstrap, jackknife estimation, frequentist and Bayesian perspectives. Formal tools are developed. Concepts are demonstrated using simulation. Abstract concepts are made concrete through visualization and numerical computation.
+
Precludes additional credit for STAT 3509 or STAT 3559.
Prerequisite(s): STAT 2210.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 4322 [0.5 credit]
+Learning from Big Data

+A data-first tour of advanced statistical models. Focus will be on a series of large real world forecasting and prediction competitions. Tools and workflows for statistical modelling are explored.
+
Prerequisite(s): DATA 3500 and STAT 2210.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 4500 [0.5 credit]
+Parametric Estimation (Honours)

+Preliminaries on probability theory; exact and asymptotic sampling distributions; unbiasedness, consistency, efficiency, sufficiency and completeness; properties of maximum likelihood estimators; least squares estimation of location and scale parameters based on order statistics and sample quantiles; Best Asymptotically Normal (BAN) estimators.
+
Prerequisite(s): STAT 3559 or permission of the School.
Also offered at the graduate level, with different requirements, as STAT 5600, for which additional credit is precluded.
Lectures three hours a week.
+
+STAT 4501 [0.5 credit]
+Probability Theory (Honours)

+Introduction to probability, characteristic functions, probability distributions, limit theorems.
+
Prerequisite(s): STAT 3506 and STAT 3558 or permission of the School.
Lectures three hours a week.
+
+STAT 4502 [0.5 credit]
+Survey Sampling (Honours)

+Basic concepts in sampling from finite populations; simple random sampling; stratified sampling; choice of sampling unit; cluster and systematic sampling; introduction to multistage sampling; ratio estimation; sampling with unequal probabilities and with replacement; replicated sampling; related topics.
+
Prerequisite(s): i) STAT 2559 or STAT 2509 or DATA 1519; and ii) either STAT 3559, or a grade of C + or better in STAT 3509 or STAT 2210; or permission of the School.
Lectures three hours a week.
+
+STAT 4503 [0.5 credit]
+Applied Multivariate Analysis (Honours)

+Selected topics in regression and correlation non-linear models. Multivariate statistical methods, principal components, factor analysis, multivariate analysis of variance, discriminant analysis, canonical correlation, analysis of categorical data.
+
Prerequisite(s): STAT 3553 or (STAT 3509 and STAT 3503) or permission of the School.
Also offered at the graduate level, with different requirements, as STAT 5509, for which additional credit is precluded.
Lectures three hours a week.
+
+STAT 4504 [0.5 credit]
+Statistical Design and Analysis of Experiments (Honours)

+An extension of the designs discussed in STAT 2559 to include analysis of the completely randomized design, designs with more than one blocking variable, incomplete block designs, fractional factorial designs, multiple comparisons; and response surface methods.
+
Includes: Experiential Learning Activity
Precludes additional credit for STAT 3504 and ECON 4706. PSYC 3000 is precluded for additional credit for students registered in a Mathematics program.
Prerequisite(s): STAT 3553 or STAT 3503; or permission of the School of Mathematics and Statistics.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 4506 [0.5 credit]
+Nonparametric Statistics (Honours)

+Classical nonparametric techniques; nonparametric density estimation; nonparametric regression analysis: kernel estimators, orthogonal series estimators, smoothing splines; estimation of statistical functionals; nonparametric bootstrap; jackknife; elements of high dimensional statistical inference; multiple testing and false discovery. Statistical software will be used.
+
Prerequisite(s): STAT 3559 or permission of the School.
Also offered at the graduate level, with different requirements, as STAT 5516, for which additional credit is precluded.
Lectures three hours a week.
+
+STAT 4507 [0.5 credit]
+Statistical Inference (Honours)

+Sufficient statistics, simple and composite hypotheses, most powerful and similar region test, distribution-free tests, confidence intervals, goodness-of-fit and likelihood ratio tests, large sample theory, Bayesian and likelihood methods, sequential tests.
+
Prerequisite(s): STAT 4500 or permission of the School.
Also offered at the graduate level, with different requirements, as STAT 5501, for which additional credit is precluded.
Lectures three hours a week.
+
+STAT 4508 [0.5 credit]
+Stochastic Models (Honours)

+Review of discrete Markov chains and Poisson processes; continuous time Markov chains; pure jump Markov processes, and birth and death processes including the Q-matrix approach; the Kolmogorov equations; renewal theory; introduction to Brownian motion; queueing theory.
+
Prerequisite(s): STAT 3506 or permission of the School.
Also offered at the graduate level, with different requirements, as STAT 5701, for which additional credit is precluded.
Lectures three hours a week.
+
+STAT 4509 [0.5 credit]
+Advanced Mathematical Modeling (Honours)

+Real-life situations in the physical, social, and life sciences are often modeled using mathematical tools. This course will examine various models and techniques used in their analysis, e.g., matrix procedures in connection with population models. Students will use a computer package to obtain numerical results.
+
Prerequisite(s): i) MATH 2454 and STAT 2655 (or MATH 2404 and STAT 2605) and ii) STAT 3506; or permission of the School.
Also offered at the graduate level, with different requirements, as STAT 5601, for which additional credit is precluded.
Lectures three hours a week.
+
+STAT 4555 [0.5 credit]
+Monte Carlo Simulation (Honours)

+Basic ideas and algorithms of Monte Carlo; simulation of basic stochastic processes. Brownian motion and the Poisson process, applications to financial modelling, queueing theory. Output analysis; variance reduction. Markov chain Monte Carlo methods; Gibbs sampling, simulated annealing and Metropolis-Hastings samplers with applications.
+
Includes: Experiential Learning Activity
Precludes additional credit for STAT 3555 (no longer offered).
Prerequisite(s): STAT 3558, or a grade of B or higher in STAT 3508, or permission of the School.
Lectures three hours a week, tutorial/laboratory one hour a week.
+
+STAT 4601 [0.5 credit]
+Data Mining I (Honours)

+Data visualization; knowledge discovery in datasets; unsupervised learning: clustering algorithms; dimension reduction; supervised learning: pattern recognition, smoothing techniques, classification. Computer software will be used.
+
Includes: Experiential Learning Activity
Prerequisite(s): STAT 3553 or STAT 3503 or MATH 3806, or permission of the School.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 4603 [0.5 credit]
+Time Series and Forecasting (Honours)

+Time series regression. Nonstationary and stationary time series models. Nonseasonal and seasonal time series models. ARIMA (Box-Jenkins) models. Smoothing methods. Parameter estimation, model identification, diagnostic checking. Forecasting techniques. A statistical software package will be used.
+
Includes: Experiential Learning Activity
Precludes additional credit for ECON 4713.
Prerequisite(s): STAT 3553 or STAT 3503, or permission of the School.
Lectures three hours a week.
+
+STAT 4604 [0.5 credit]
+Statistical Computing (Honours)

+Statistical computing techniques, pseudo-random number generation, tests for randomness, numerical algorithms in statistics; optimization techniques; environments for data analysis, efficient programming techniques; statistics with mainstream software.
+
Includes: Experiential Learning Activity
Prerequisite(s): STAT 3553 or STAT 3503 or permission of the School.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 4607 [0.5 credit]
+Bayesian Statistical Analysis (Honours)

+Probability basics for Bayesian statistics. Bayesian inference for simple exponential families. Markov Chain Monte Carlo for posterior inference. Empirical Bayes. Hierarchical Bayes. Bayesian inference for the multivariate normal model. Bayesian linear regression. More advanced topics may be included. Computer software will be used.
+
Includes: Experiential Learning Activity
Prerequisite(s): STAT 3553 or permission of the School.
Lectures three hours a week, laboratory one hour a week.
+
+STAT 4660 [0.5 credit]
+Actuarial Mathematics II

+Empirical models, complete data, grouped data, credibility theory, failure time, accuracy, kernel estimation, goodness of fit tests, Bayesian analysis, inference for loss models, frequentist estimation, model selection.
+
Prerequisite(s): STAT 3660 with C+ or higher, or permission of the school.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 4661 [0.5 credit]
+Life Contingent Risk Modelling II

+Policy values; multiple state models; formulae for probability; Markov multiple state models; pension mathematics; yield curves; interest rate risk; emerging costs for life insurance; equity linked insurance; deterministic and stochastic pricing; reserving, participating, and universal life insurance.
+
Precludes additional credit for STAT 3662 (no longer offered).
Prerequisite(s): STAT 3661 with a grade of C+ or higher; or permission of the School.
Lectures three hours a week, tutorial one hour a week.
+
+STAT 4905 [0.5 credit]
+Honours Project (Honours)

+Consists of a written report on some approved topic or topics in the field of statistics, together with a short lecture on the report.
+
Includes: Experiential Learning Activity
Prerequisite(s): B.Math.(Honours) or B.Data Science (Honours) students only.
+
+STAT 4907 [0.5 credit]
+Directed Studies (Honours)

+
Prerequisite(s): B.Math.(Honours) students only.
+
+
+

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

+ +
+

Regulations

+

In addition to the program requirements described here, students must satisfy the University regulations common to all undergraduate students, including the process of Academic Continuation Evaluation (see the Academic Regulations of the University section of this Calendar).

+

Students should consult with the School of Mathematics and Statistics when planning their program and selecting courses.

+
+
+

B.Sc. Regulations

The regulations presented in this section apply to all Bachelor of Science programs. In addition to the requirements presented here, students must satisfy the University regulations common to all undergraduate students including the process of Academic Continuation Evaluation (see the Academic Regulations of the University section of this Calendar).

Breadth Requirement for the B.Sc.

Students in a Bachelor of Science program must present the following credits at graduation:

  1. 2.0 credits in Science Continuation courses not in the major discipline; students completing a double major are considered to have completed this requirement providing they have 2.0 credits in Science Continuation courses in each of the two majors;
  2. 2.0 credits in courses outside of the faculties of Science and Engineering and Design (may include ISAP 1000)

In most cases, the requirements for individual B.Sc. programs, as stated in this Calendar, contain these requirements, explicitly or implicitly.

Students admitted to B.Sc. programs by transfer from another institution must present at graduation (whether taken at Carleton or elsewhere):

  1. 2.0 credits in courses outside of the faculties of Science and Engineering and Design (may include ISAP 1000) if the student received fewer than 10.0 transfer credits; or,
  2. 1.0 credit in courses outside of the faculties of Science and Engineering and Design (may include ISAP 1000) if the student received 10.0 or more transfer credits.

Declared and Undeclared Students

Degree students are considered "Undeclared" if they have been admitted to a degree, but have not yet selected and been accepted into a program within that degree. The status "Undeclared" is available only in the B.A. and B.Sc. degrees. Undeclared students must apply to enter a program upon or before completing 3.5 credits.

Change of Program within the B.Sc. Degree

To transfer to a program within the B.Sc. degree, applicants must normally be Eligible to Continue (EC) in the new program, by meeting the CGPA thresholds described in Section 3.1.9 of the Academic Regulations of the University. 

Applications to declare or change programs within the B.Sc. degree must be made online through Carleton Central by completing a Change of Program Elements (COPE) application form within the published deadlines. Acceptance into a program, or into a program element or option, is subject to any enrolment limitations, and/or specific program, program element or option requirements as published in the relevant Calendar entry.

Minors, Concentrations, and Specializations

Students may add a Minor, Concentration, or Specialization by completing a Change of Program Elements (COPE) application form online through Carleton Central. Acceptance into a Minor, Concentration, or Specialization normally requires that the student be Eligible to Continue (EC) and is meeting the minimum CGPAs described in Section 3.1.9 of the Academic Regulations of the University, as well as being subject to any specific requirements of the intended Minor, Concentration, or Specialization as published in the relevant Calendar entry.

Experimental Science Requirement

Students in a B.Sc. degree program must present at graduation at least two full credits of Experimental Science chosen from two different departments or institutes from the list below:

Approved Experimental Science Courses
Biochemistry
BIOC 2200 [0.5]
Cellular Biochemistry
BIOC 3103 [0.5]
Experimental Biochemistry I: Principles and Practices
BIOC 3104 [0.5]
Experimental Biochemistry II: Research Experience
BIOC 4001 [0.5]
Methods in Biochemistry
BIOC 4201 [0.5]
Advanced Cell Culture and Tissue Engineering
Biology
BIOL 1103 [0.5]
Foundations of Biology I
BIOL 1104 [0.5]
Foundations of Biology II
BIOL 2001 [0.5]
Animals: Form and Function
BIOL 2002 [0.5]
Plants: Form and Function
BIOL 2104 [0.5]
Introductory Genetics
BIOL 2200 [0.5]
Cellular Biochemistry
BIOL 2600 [0.5]
Ecology
Chemistry
CHEM 1001 [0.5]
General Chemistry I
CHEM 1002 [0.5]
General Chemistry II
CHEM 2103 [0.5]
Physical Chemistry I
CHEM 2203 [0.5]
Organic Chemistry I
CHEM 2204 [0.5]
Organic Chemistry II
CHEM 2302 [0.5]
Analytical Chemistry I
CHEM 2303 [0.5]
Analytical Chemistry II
CHEM 2800 [0.5]
Foundations for Environmental Chemistry
Earth Sciences
ERTH 1002 [0.5]
The Earth and Life Odyssey: A Journey Through Billions of Years
ERTH 2102 [0.5]
Mineralogy to Petrology
ERTH 2404 [0.5]
Engineering Geoscience
ERTH 2802 [0.5]
Field Geology I
ERTH 3111 [0.5]
Vertebrate Evolution: Mammals, Reptiles, and Birds
ERTH 3112 [0.5]
Vertebrate Evolution: Fish and Amphibians
ERTH 3204 [0.5]
Mineral Deposits
ERTH 3205 [0.5]
Physical Hydrogeology
Food Sciences
FOOD 3001 [0.5]
Food Chemistry
FOOD 3002 [0.5]
Food Analysis
FOOD 3005 [0.5]
Food Microbiology
Geography
GEOG 1010 [0.5]
Global Environmental Systems
GEOG 3108 [0.5]
Soil Properties
Neuroscience
NEUR 3206 [0.5]
Sensory and Motor Neuroscience
NEUR 3207 [0.5]
Systems Neuroscience
NEUR 4600 [0.5]
Advanced Lab in Neuroanatomy
Physics
PHYS 1001 [0.5]
Foundations of Physics I
PHYS 1002 [0.5]
Foundations of Physics II
PHYS 1003 [0.5]
Introductory Mechanics and Thermodynamics
PHYS 1004 [0.5]
Introductory Electromagnetism and Wave Motion
PHYS 1007 [0.5]
Elementary University Physics I
PHYS 1008 [0.5]
Elementary University Physics II
PHYS 2007 [0.5]
Second Year Physics Laboratory: Selected Experiments and Seminars
PHYS 3007 [0.5]
Third Year Physics Laboratory: Selected Experiments and Seminars
PHYS 3606 [0.5]
Modern Physics II
PHYS 3608 [0.5]
Modern Applied Physics
+

Course Categories for B.Sc. Programs

Science Geography Courses
GEOG 1010 [0.5]
Global Environmental Systems
GEOG 2006 [0.5]
Introduction to Quantitative Research
GEOG 2013 [0.5]
Weather and Water
GEOG 2014 [0.5]
The Earth's Surface
GEOG 3003 [0.5]
Quantitative Geography
GEOG 3010 [0.5]
Field Methods in Physical Geography
GEOG 3102 [0.5]
Geomorphology
GEOG 3103 [0.5]
Watershed Hydrology
GEOG 3104 [0.5]
Principles of Biogeography
GEOG 3105 [0.5]
Climate and Atmospheric Change
GEOG 3106 [0.5]
Aquatic Science and Management
GEOG 3108 [0.5]
Soil Properties
GEOG 4000 [0.5]
Field Studies
GEOG 4005 [0.5]
Directed Studies in Geography
GEOG 4013 [0.5]
Cold Region Hydrology
GEOG 4017 [0.5]
Global Biogeochemical Cycles
GEOG 4101 [0.5]
Two Million Years of Environmental Change
GEOG 4103 [0.5]
Water Resources Engineering
GEOG 4104 [0.5]
Microclimatology
GEOG 4108 [0.5]
Permafrost
Science Psychology Courses
PSYC 2001 [0.5]
Introduction to Research Methods in Psychology
PSYC 2002 [0.5]
Introduction to Statistics in Psychology
PSYC 2700 [0.5]
Introduction to Cognitive Psychology
PSYC 3000 [1.0]
Design and Analysis in Psychological Research
PSYC 3506 [0.5]
Cognitive Development
PSYC 3700 [1.0]
Cognition (Honours Seminar)
PSYC 3702 [0.5]
Perception
PSYC 2307 [0.5]
Human Neuropsychology I
PSYC 3307 [0.5]
Human Neuropsychology II
Science Continuation Courses
A course at the 2000 level or above may be used as a Science Continuation credit in a B.Sc. program if it is not in the student's major discipline, and is chosen from the following:
BIOC (Biochemistry)
BIOL (Biology) except BIOL 4810 which may be used only as a free elective for any B.Sc. program. Biochemistry students may use BIOL 2005 only as a free elective.
CHEM (Chemistry)
COMP (Computer Science) A maximum of two half-credits at the 1000-level in COMP, excluding COMP 1001 may be used as Science Continuation credits.
ERTH (Earth Sciences), except ERTH 2415 which may be used only as a free elective for any B.Sc. program. Students in Earth Sciences programs may use ERTH 2401, ERTH 2402, and ERTH 2403 only as free electives.
Engineering. Students wishing to register in Engineering courses must obtain the permission of the Faculty of Engineering and Design.
ENSC (Environmental Science)
FOOD (Food Science and Nutrition)
GEOM (Geomatics)
HLTH (Health Sciences)
ISAP (Interdisciplinary Science Practice)
MATH (Mathematics)
NEUR (Neuroscience)
PHYS (Physics), except PHYS 2903
Science Geography Courses (see list above)
Science Psychology Courses (see list above)
STAT (Statistics)
TSES (Technology, Society, Environment) except TSES 2305. Biology students may use these courses only as free electives. Integrated Science and Environmental Science students may include these courses in their programs but may not count them as part of the Science Sequence.
Science Faculty Electives
Science Faculty Electives are courses at the 1000-4000 level chosen from:
BIOC (Biochemistry) except BIOC 1900 which may be used only as a free elective for any B.Sc. program.
BIOL (Biology) except BIOL 4810 which may be used only as a free elective for any B.Sc. program. Biology & Biochemistry students may use BIOL 1010 and BIOL 2005 only as free electives.
CHEM (Chemistry) except CHEM 1003, CHEM 1004 and CHEM 1007
COMP (Computer Science) except COMP 1001
ERTH (Earth Sciences) except ERTH 1004 and ERTH 2415. Earth Sciences students may use ERTH 2401, ERTH 2402 and ERTH 2403 only as free electives.
Engineering
ENSC (Environmental Science)
FOOD (Food Science and Nutrition)
GEOM (Geomatics)
HLTH (Health Science)
ISAP (Interdisciplinary Science Practice)
MATH (Mathematics)
NEUR (Neuroscience)
PHYS (Physics) except PHYS 1901, PHYS 1902, PHYS 1905, and PHYS 2903
Science Geography (see list above)
Science Psychology (see list above)
STAT (Statistics)
TSES (Technology, Society, Environment) Biology students may use these courses only as free electives.
Advanced Science Faculty Electives
Advanced Science Faculty Electives are courses at the 2000-4000 level chosen from the Science Faculty Electives list above.
Approved Courses Outside the Faculties of Science and Engineering and Design (may include ISAP 1000)
All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, and the Sprott School of Business are approved as Arts or Social Sciences courses EXCEPT FOR: All Science Geography courses (see list above), all Geomatics (GEOM) courses, all Science Psychology courses (see list above). ISAP 1000 may be used as an Approved Course Outside the Faculties of Science and Engineering and Design.
Free Electives
Any course is allowable as a Free Elective providing it is not prohibited (see below). Students are expected to comply with prerequisite requirements and enrolment restrictions for all courses as published in this Calendar.
Courses Allowable Only as Free Electives in any B.Sc. Program
BIOL 4810 [0.5]
Education Research in Undergraduate Science
CHEM 1003 [0.5]
The Chemistry of Food, Health and Drugs
CHEM 1004 [0.5]
Drugs and the Human Body
CHEM 1007 [0.5]
Chemistry of Art and Artifacts
ERTH 1004 [0.5]
Earth's Epic Tale: A Story Across Billions of Years
ERTH 2415 [0.5]
Natural Disasters
ISCI 1001 [0.5]
Introduction to the Environment
ISCI 2000 [0.5]
Natural Laws
ISCI 2002 [0.5]
Human Impacts on the Environment
PHYS 1901 [0.5]
Planetary Astronomy
PHYS 1902 [0.5]
From our Star to the Cosmos
PHYS 1905 [0.5]
Physics Behind Everyday Life
PHYS 2903 [0.5]
Physics Towards the Future
Prohibited Courses
The following courses are not acceptable for credit in any B.Sc. program:
COMP 1001 [0.5]
Introduction to Computational Thinking for Arts and Social Science Students
MATH 1009 [0.5]
Mathematics for Business
MATH 1119 [0.5]
Linear Algebra: with Applications to Business
MATH 1401 [0.5]
Elementary Mathematics for Economics I
MATH 1402 [0.5]
Elementary Mathematics for Economics II
all 0000-level courses
+
+
+

Co-operative Education

For more information about how to apply for the Co-op program and how the Co-op program works please visit the Co-op website.

All students participating in the Co-op program are governed by the Undergraduate Co-operative Education Policy.

Undergraduate Co-operative Education Policy

Admission Requirements

Students can apply to Co-op in one of two ways: directly from high school, or after beginning a degree program at Carleton.

If a student applies to a degree program with a Co-op option from high school, their university grades will be reviewed two terms to one year prior to their first work term to ensure they meet the academic requirements after their first or second year of study. The time at which the evaluation takes place depends on the program of study. Students will automatically receive an admission decision via their Carleton email account.

Students who did not request Co-op at the time they applied to Carleton can request Co-op after they begin their university studies. To view application instructions and deadlines, please visit carleton.ca/co-op.

To be admitted to Co-op, a student must successfully complete 5.0 or more credits that count towards their degree, meet the minimum CGPA requirement(s) for the student's Co-op option, and fulfil any specified course prerequisites. To see the unique admission and continuation requirements for each Co-op option, please refer to the specific degree programs listed in the Undergraduate Calendar. 

Participation Requirements

Co-op Participation Agreement

All students must adhere to the policies found within the Co-op Participation Agreement.

COOP 1000

Once a student has been admitted to the Co-op Program, they will be given access to register in COOP 1000. This zero-credit online course must be completed at least two terms prior to the student's first work term.

Communication with the Co-op Office

Students must maintain contact with the Co-op Office during their job search and while on a work term. All email communication will be conducted via the students' Carleton email account.

Employment

Although every effort is made to ensure a sufficient number of job postings for all Co-op students, no guarantee of employment can be made. The Co-op job search process is competitive, and success is dependent upon factors such as current market conditions, academic performance, skills, motivation, and level of commitment to the job search. It is the student's responsibility to apply for positions via the Co-op job board in addition to actively conducting a self-directed job search. Students who do not obtain a co-op work term are expected to continue with their academic studies. It should be noted that hiring priority for positions within the Federal Government of Canada is given to Canadian citizens.

Registration

  • Students must be registered as full-time during all fall and winter study terms beginning the term in which they enroll in COOP 1000.
  • Students will be registered in a Co-op Work Term course while at work. This course does not carry academic course credit, but is noted on academic transcripts.
  • Students may register in a 0.5 credit during a work term, provided the course is offered during the evening or is offered asynchronously online.
  • Students must have at least one term of full-time studies left to complete following their final co-op work term. Students cannot end their degree on a work term.

Work Term Assessment and Evaluation

Work Term Evaluation

Employers are responsible for submitting to Carleton University final performance evaluations for their Co-op students at the end of their work terms.

Work Term Assessment

In order to successfully complete the co-op work term, students must receive a Satisfactory (SAT) grade on their Co-op Work Term Report, which they must submit at the completion of each four-month work term.

Graduation with the Co-op Designation

In order to graduate with the Co-op Designation, students must satisfy all requirements of the degree program in addition to the successful completion of three or four work terms (the number is dependent upon the student's academic program). Students found in violation of the Co-op Participation Agreement may have the Co-op Designation withheld.

Note: Participation in the co-op option will add up to one additional year for a student to complete their degree program.

Voluntary Withdrawal from the Co-op Option

Students who are currently on a co-op work term or who have already committed to a co-op work term either verbally or in writing may not leave the position and/or withdraw from the co-op option until they have completed the work term and all related requirements.

Involuntary or Required Withdrawal from the Co-op Option

Students may be removed from the Co-op Program for any of the following reasons:

  1. Failure to achieve a grade of SAT in COOP 1000;
  2. Failure to attend all interviews for positions to which the student has applied;
  3. Declining more than one job offer during the job search;
  4. Reneging on a co-op position that the student has accepted either verbally or in writing;
  5. Continuing a job search after accepting a co-op position;
  6. Dismissal from a work term by the co-op employer;
  7. Leaving a work term without approval from the Co-op Management Team;
  8. Receipt of an unsatisfactory work term evaluation;
  9. Receiving a grade of UNS on the work term report.

International Students

All international students are required to possess a Co-op Work Permit issued by Immigration, Refugees and Citizenship Canada before they can begin working. The Co-operative Education Office will provide students with a letter of support to accompany their Co-op Work Permit application. Students are advised to discuss the application process and application requirements with the International Student Services Office.

Co-op Fees

All participating Co-op students are required to pay Co-op fees. For full details, please see the Co-op website.

+

Bachelor of Mathematics Honours, Combined B.Math./M.Sc.: Co-op Admission and Continuation Requirements 

+
  • Maintain full-time status in each study term;
  • Be eligible to work in Canada (for off-campus work);
  • Have successfully completed COOP 1000 .
+

In addition to:

  1. Registered as a full-time student in any B.Math. Honours program (excluding the Combined B.Math./M.Sc. "Fast Track" program);
  2. Successfully completed 5.0 or more credits;
  3. Obtained an Overall CGPA of at least 6.50 and a Major CGPA of at least 8.0. These CGPAs must be maintained throughout the duration of the degree.

B.Math. Honours students must successfully complete four (4) work terms to obtain the Co-op Designation.

Co-op Work Term Course: MATH 3999 or STAT 3999

Work/Study Pattern:

Year 1Year 2Year 3Year 4Year 5
TermPatternTermPatternTermPatternTermPatternTermPattern
FallSFallSFallSFallWFallS
WinterSWinterSWinterSWinterWWinterS
Summer SummerWSummerWSummerW
+

Legend
S
: Study
W: Work

+
+
+

Admissions Information

Admission Requirements are for the 2026-27 year only, and are based on the Ontario High School System. Holding the minimum admission requirements only establishes eligibility for consideration. The cut-off averages for admission may be considerably higher than the minimum. See also the General Admission and Procedures section of this Calendar. An overall average of at least 70% is normally required to be considered for admission. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. The overall average required for admission is determined each year on a program by program basis. Consult admissions.carleton.ca for further details.

Note: Courses listed as recommended are not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

+

Admissions Information

Admission requirements are based on the Ontario High School System. Prospective students can view the admission requirements through the Admissions website at admissions.carleton.ca. The overall average required for admission is determined each year on a program-by-program basis. Holding the minimum admission requirements only establishes eligibility for consideration; higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. All programs have limited enrolment and admission is not guaranteed. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Consult admissions.carleton.ca for further details.

Note: If a course is listed as recommended, it is not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

Degree

  • Bachelor of Mathematics (B. Math.) (Honours)
  • Bachelor of Mathematics (B.Math.)

Admission Requirements

B.Math Honours

First Year

The Ontario Secondary School Diploma (OSSD) or equivalent including a minimum of six 4U or M courses. The six 4U or M courses must include Advanced Functions, and Calculus and Vectors.

The overall admission cut-off average and/or the prerequisite course average may be considerably higher than the stated minimum requirements for admission to the combined B.Math./M.Sc. in Mathematics or Statistics.

Advanced Standing

Applications for admission beyond first year will be assessed on their merits. Applicants must normally be Eligible to Continue in their year level, in addition to meeting the CGPA thresholds described in Section 3.1.9 of the Academic Regulations of the University. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected.

B.Math

First Year

The Ontario Secondary School Diploma (OSSD) or equivalent including a minimum of six 4U or M courses. The six 4U or M courses must include Advanced Functions, and Calculus and Vectors. 

Advanced Standing

Applications for admission beyond first year will be assessed on their merits. Applicants must normally be Eligible to Continue (EC) in their year level. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected.

Co-op Option

Direct Admission to the First Year of the Co-op Option
Applicants must:

  1. meet the required overall admission cut-off average and prerequisite course average. These averages may be higher than the stated minimum requirements;
  2. be registered as a full-time student in the Bachelor of Mathematics Honours program;
  3. be eligible to work in Canada (for off-campus work placements).

Meeting the above requirements only establishes eligibility for admission to the program. The prevailing job market (and thus the availability of co-op placement) may limit enrolment in the co-op option.

Note: continuation requirements for students previously admitted to the co-op option and admission requirements for the co-op option after beginning the program are described in the Co-operative Education Regulations section of this Calendar.

+
+
+

Admissions Information

Admission Requirements are for the 2026-27 year only, and are based on the Ontario High School System. Holding the minimum admission requirements only establishes eligibility for consideration. The cut-off averages for admission may be considerably higher than the minimum. See also the General Admission and Procedures section of this Calendar. An overall average of at least 70% is normally required to be considered for admission. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. The overall average required for admission is determined each year on a program by program basis. Consult admissions.carleton.ca for further details.

Note: Courses listed as recommended are not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

+

Admissions Information

Admission requirements are based on the Ontario High School System. Prospective students can view the admission requirements through the Admissions website at admissions.carleton.ca. The overall average required for admission is determined each year on a program-by-program basis. Holding the minimum admission requirements only establishes eligibility for consideration; higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. All programs have limited enrolment and admission is not guaranteed. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Consult admissions.carleton.ca for further details.

Note: If a course is listed as recommended, it is not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

Degrees

  • B.Sc. (Honours)
  • B.Sc. (Major)
  • B.Sc. 

Admission Requirements

B. Sc. Honours 

First Year

The Ontario Secondary School Diploma (OSSD) or equivalent including a minimum of six 4U or M courses. For most programs including Biochemistry, Bioinformatics, Biotechnology, Chemistry, Combined Honours in Biology and Physics, Chemistry and Physics, Computational Biochemistry, Food Science, Nanoscience, Neuroscience and Biology, Neuroscience and Mental Health, and Psychology, the six 4U or M courses must include Advanced Functions, and two of Biology, Chemistry, Earth and Space Sciences, or Physics. (Calculus and Vectors is strongly recommended).

Specific Honours Admission Requirements
For the Honours programs in Earth Sciences, Environmental Science, Geomatics, Integrated Science, and Physical Geography, Calculus and Vectors may be substituted for Advanced Functions.

For the Honours programs in Physics and Applied Physics, and for double Honours in Mathematics and Physics, Calculus and Vectors is required in addition to Advanced Functions and one of 4U Physics, Chemistry, Biology, or Earth and Space Sciences. For all programs in Physics, 4U Physics is strongly recommended.

For Honours in Psychology, a 4U course in English is recommended.

For Honours in Environmental Science, a 4U course in Biology and Chemistry is recommended.

Advanced Standing

Applications for admission beyond first year will be assessed on their merits. Applicants must normally be Eligible to Continue in their year level, in addition to meeting the CGPA thresholds described in Section 3.1.9 of the Academic Regulations of the University. Advanced standing will be granted only for those subjects deemed appropriate for the program and stream selected.

B.Sc. Major and B.Sc. 

First Year

The Ontario Secondary School Diploma (OSSD) or equivalent including a minimum of six 4U or M courses. The six 4U or M courses must include Advanced Functions and two of Calculus and Vectors, Biology, Chemistry, Earth and Space Science, or Physics (Calculus and Vectors is strongly recommended). For the B.Sc. Major in Physics, 4U Physics is strongly recommended. 

Advanced Standing

Applications for admission beyond first year will be assessed on their merits. Applicants must normally be Eligible to Continue (EC) in their year level. Advanced standing will be granted only for those subjects deemed appropriate for the program and stream selected.

Co-op Option

Direct Admission to the First Year of the Co-op Option
Applicants must:

  1. meet the required overall admission cut-off average and prerequisite course average. These averages may be higher than the stated minimum requirements;
  2. be registered as a full-time student in the Bachelor of Science Honours program;
  3. be eligible to work in Canada (for off-campus work placements).

Note that meeting the above requirements only establishes eligibility for admission to the program. The prevailing job market may limit enrolment in the co-op option.

Note: continuation requirements for students previously admitted to the co-op option and admission requirements for the co-op option after beginning the program are described in the Co-operative Education Regulations section of this Calendar.

+
+
+
+ +
+ +
+ + + + + + + + + + +Back to Top + + + + + diff --git a/scripts/fixtures/cs_courses.html b/scripts/fixtures/cs_courses.html new file mode 100644 index 0000000..4e69be9 --- /dev/null +++ b/scripts/fixtures/cs_courses.html @@ -0,0 +1,916 @@ + + + + +Computer Science < Carleton University + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + + Print and PDF Options + + + + + + + + +
+

+School of Computer Science
+(Faculty of Science)
+613-520-4333
+http://scs.carleton.ca
+

+
+ + + +
+ + + +

This section presents the requirements for programs in:

+ +

Program Requirements

+

Course Categories (B.C.S.)

The following categories of courses are used in defining the program requirements in Computer Science.

Industrial Applications Internship Courses

The following courses may only be taken by students participating in one of the School's industrial partnerships and can only be used as free electives in the B.C.S.:

COMP 1910 [0.5]Internship
COMP 1911 [0.5]Internship
COMP 2910 [0.5]Internship
COMP 2911 [0.5]Internship
COMP 3910 [0.5]Internship
COMP 3911 [0.5]Internship
COMP 4910 [0.5]Internship
COMP 4911 [0.5]Internship

Computer Science (COMP)

In addition to the courses with subject code COMP, the following courses offered by the Faculty of Engineering and Design are relevant to the B.C.S. program and the Combined Honours programs. These courses are counted as Computer Science credits in B.C.S., Minor in Computer Science, and Combined Honours program requirements:

SYSC 3303 [0.5]Real-Time Concurrent Systems
SYSC 4005 [0.5]Discrete Simulation/Modeling
SYSC 4106 [0.5]The Software Economy and Project Management

Breadth Electives

All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, the Sprott School of Business and the Faculty of Science except for courses in COMP, CSEC, DATA, MATH, STAT, the Faculty of Engineering and Design, and the Prohibited Courses category.

Free Electives

All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, the Faculty of Engineering and Design, the Sprott School of Business and the Faculty of Science except for courses in the Prohibited Courses category. Free electives can include COMP, CSEC, DATA, MATH and STAT courses.

Natural Science Electives

This category is defined with the B.Math. programs. See the Course Categories section on the Mathematics Program page of this Calendar for details.

Prohibited Courses

The following courses cannot be used for credit in the B.C.S., the Computer Science Minor, or any Combined Computer Science program. Note that any courses cross-listed with those on the list are also prohibited. Please carefully check the requirements. Consult an advisor before adding a minor that contains a prohibited course as a core requirement.

BUSI 1401 [0.5]Foundations of Information Systems
BUSI 2401 [0.5]Introduction to Data Analytics
BUSI 2402 [0.5]Business Applications Development
BUSI 3400 [0.5]Database Design
CGSC 1005 [0.5]Computational Methods in Cognitive Science
COMP 1001 [0.5]Introduction to Computational Thinking for Arts and Social Science Students
ECON 1401/MATH 1401 [0.5]Elementary Mathematics for Economics I
ECON 1402/MATH 1402 [0.5]Elementary Mathematics for Economics II
MATH 1009 [0.5]Mathematics for Business
MATH 1119 [0.5]Linear Algebra: with Applications to Business
all 0000-level courses
and all courses in BIT, IMD, IRM, MPAD, NET, OSS, PLT and ITEC except for the following: BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, BIT 2000, BIT 2004 (no longer offered), BIT 2005 (no longer offered), BIT 2007 (no longer offered), BIT 2100 (no longer offered), BIT 2300 (no longer offered), MPAD 2400, MPAD 2501 (no longer offered), MPAD 3300, MPAD 3501, MPAD 4001, MPAD 4501, MPAD 4502, MPAD 4503, MPAD 4504.
+

Course Categories (B.Cyber)

The following categories of courses are used in defining the program requirements in the Bachelor of Cybersecurity program.

Free Electives

All courses offered by the Faculty of Arts and Social Sciences, the Faculty of Public and Global Affairs, the Faculty of Engineering and Design, the Sprott School of Business, and the Faculty of Science except for courses in the Prohibited Courses category. Free electives can include COMP, CSEC, DATA, MATH and STAT courses.

Prohibited Courses

The following courses cannot be used for credit in the B.Cyber. program. Note that any courses cross-listed with those on the list are also prohibited. Please carefully check the requirements. Consult an advisor before adding a minor that contains a prohibited course as a core requirement.

BUSI 1401 [0.5]Foundations of Information Systems
BUSI 2401 [0.5]Introduction to Data Analytics
BUSI 2402 [0.5]Business Applications Development
BUSI 3400 [0.5]Database Design
CGSC 1005 [0.5]Computational Methods in Cognitive Science
COMP 1001 [0.5]Introduction to Computational Thinking for Arts and Social Science Students
ECON 1401/MATH 1401 [0.5]Elementary Mathematics for Economics I
ECON 1402/MATH 1402 [0.5]Elementary Mathematics for Economics II
MATH 1009 [0.5]Mathematics for Business
MATH 1119 [0.5]Linear Algebra: with Applications to Business
all 0000-level courses
and all courses in BIT, IMD, IRM, MPAD, NET, OSS, PLT and ITEC except for the following: BIT 1000, BIT 1001, BIT 1100, BIT 1101, BIT 1200, BIT 1201, BIT 2000, BIT 2004 (no longer offered), BIT 2005 (no longer offered), BIT 2007 (no longer offered), BIT 2100 (no longer offered), BIT 2300 (no longer offered), MPAD 2400, MPAD 2501 (no longer offered), MPAD 3300, MPAD 3501, MPAD 4001, MPAD 4501, MPAD 4502, MPAD 4503, MPAD 4504.
+

Bachelor of Computer Science Honours
+Bachelor of Computer Science Honours Streams

+

B.C.S. Honours students may either register in the B.C.S. Honours degree below, or in one of the B.C.S. Honours streams that follow.

+

Computer Science
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  0.5 credit in COMP at the 2000-level or above0.5
3.  2.0 credits in COMP at the 4000-level2.0
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits in:1.5
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
0.5 credit in MATH at the 2000-level or above
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Breadth Electives5.0
7.  4.0 credits in free electives.4.0
Total Credits20.0
+

Computer Science
Algorithms Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  2.0 credits in:2.0
COMP 3803 [0.5]
Introduction to Theory of Computation
COMP 4001 [0.5]
Distributed Computing
COMP 4801 [0.5]
Algorithms for Data Mining, Web, and Social Networks
COMP 4804 [0.5]
Design and Analysis of Algorithms II
3.  0.5 credit in COMP at the 4000-level0.5
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits in:1.5
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
0.5 credit in MATH at the 2000-level or above
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Breadth Electives5.0
7.  4.0 credits in free electives4.0
Total Credits20.0
+

Computer Science
Artificial Intelligence and Machine Learning Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.5 credits)
1. 6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2. 1.5 credits in:1.5
COMP 3105 [0.5]
Introduction to Machine Learning
COMP 3106 [0.5]
Introduction to Artificial Intelligence
COMP 4107 [0.5]
Neural Networks
3.  1.5 credits in COMP at the 4000-level1.5
B. Credits Not Included in the Major CGPA (10.5 credits)
4. 1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
5. 0.5 credit from:0.5
STAT 2605 [0.5]
Probability Models
or 0.5 credit in MATH at the 2000-level or above
6. 0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  5.0 credits in Breadth Electives5.0
8.  3.5 credits in free electives3.5
Total Credits20.0
+

Computer Science
Computer Game Development Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  1.0 credit in:1.0
COMP 3501 [0.5]
Foundations of Game Programming and Computer Graphics
COMP 4501 [0.5]
Advanced Facilities for Real-Time Games
3.  1.0 credit from:1.0
COMP 1501 [0.5]
Introduction to Computer Game Design
COMP 2501 [0.5]
Computer Game Design and Development
COMP 3008 [0.5]
Software Structures for User Interfaces
COMP 3106 [0.5]
Introduction to Artificial Intelligence
COMP 3203 [0.5]
Principles of Computer Networks
COMP 4509 [0.5]
Computer Graphics
4.  1.5 credits in COMP at the 4000-level 1.5
B. Credits Not Included in the Major CGPA (10.0 credits)
4.  1.5 credits in:1.5
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
0.5 credit in MATH at the 2000-level or above
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Breadth electives5.0
7.  3.0 credits in free electives3.0
Total Credits20.0
+

Computer Science
Cybersecurity Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (10.0 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  2.0 credits in:2.0
COMP 2108 [0.5]
Applied Cryptography and Authentication
COMP 3008 [0.5]
Software Structures for User Interfaces
COMP 3203 [0.5]
Principles of Computer Networks
COMP 4108 [0.5]
Computer Systems Security
3.  1.5 credits in COMP at the 4000-level1.5
B. Credits Not Included in the Major CGPA (10.0 credits)
4.  1.5 credits in:1.5
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
0.5 credit in MATH at the 2000-level or above
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Breadth Electives5.0
7.  3.0 credits in free electives3.0
Total Credits20.0
+

Computer Science
Management and Business Systems Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.0 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  0.5 credit in COMP at the 2000-level or above0.5
3.  2.0 credits in COMP at the 4000-level2.0
B. Credits Not Included in the Major CGPA (11.0 credits)
4.  1.5 credits in:1.5
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
0.5 credit in MATH at the 2000-level or above
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  1.5 credit from:1.5
BUSI 1003 [0.5] Survey of Accounting & 0.5 credit in BUSI at the 2000-level & 0.5 credit in free electives, or
BUSI 1001 [0.5] Principles of Financial Accounting & BUSI 1800 [0.5] Introduction to Business & BUSI 2008 [0.5] Management Accounting
7.  2.0 credits in:
BUSI 2121 [0.5]Introduction to Organizational Behaviour (7. 2.0 credits in:)2.0
BUSI 2301 [0.5]
Introduction to Supply and Operations Management
BUSI 2503 [0.5]
Introduction to Finance
BUSI 3402 [0.5]
Systems Analysis and Design
8.  1.0 credit in:1.0
ECON 1001 [0.5]
Introduction to Microeconomics
ECON 1002 [0.5]
Introduction to Macroeconomics
9.  1.5 credit in BUSI at the 3000-level or above1.5
10.  3.0 credits in free electives.3.0
Total Credits20.0
+

Computer Science
Software Engineering Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CGPA (9.5 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  0.5 credit in:0.5
COMP 3008 [0.5]
Software Structures for User Interfaces
3.  1.5 credits in:1.5
COMP 4004 [0.5]
Software Quality Assurance
SYSC 3303 [0.5]
Real-Time Concurrent Systems
SYSC 4106 [0.5]
The Software Economy and Project Management
4.  1.0 credit in COMP at the 4000-level1.0
B. Credits Not Included in the Major CGPA (10.5 credits)
5.  1.5 credits from:1.5
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
0.5 credit in MATH at the 2000-level or above
6.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  5.0 credits in Breadth Electives5.0
8.  3.5 credits in free electives.3.5
Total Credits20.0
+

Computer Science
User Experience and User Interfaces (UX/UI) Stream
B.C.S. Honours (20.0 credits)

A. Credits Included in the Major CPGA (9.5 credits)
1.  6.5 credits in:6.5
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
COMP 3804 [0.5]
Design and Analysis of Algorithms I
2.  1.5 credits in:1.5
COMP 2008 [0.5]
User Interaction Design and Prototyping
COMP 3008 [0.5]
Software Structures for User Interfaces
COMP 4008 [0.5]
Evaluation and Research Methods for Human-Computer Interaction
3.  1.5 credits in COMP at the 4000-level1.5
B. Credits Not Included in the Major CGPA (10.5 credits)
4.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
5.  1.0 credit in:1.0
STAT 2507 [0.5]
Introduction to Statistical Modeling I
STAT 2509 [0.5]
Introduction to Statistical Modeling II
7.  5.0 credits in Breadth Electives5.0
8.  3.5 credits in free electives3.5
Total Credits20.0
+

Industrial Applications Internship Option (4.0 credits)  

Only available to students already accepted by an approved industry partner and pursuing a Bachelor of Computer Science Honours program. Enrolment is limited. Registration in the internship option is by permission of the School only.

Internship Courses (4.0 credits)4.0
COMP 1910 [0.5]
Internship
COMP 1911 [0.5]
Internship
COMP 2910 [0.5]
Internship
COMP 2911 [0.5]
Internship
COMP 3910 [0.5]
Internship
COMP 3911 [0.5]
Internship
COMP 4910 [0.5]
Internship
COMP 4911 [0.5]
Internship
Total Credits4.0
+

Computer Science
B.C.S. Major (20.0 credits)

A. Credits Included in the Major CGPA (7.5 credits)
1.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3007 [0.5]
Programming Paradigms
2.  1.0 credit in COMP at the 3000-level or above1.0
3.  0.5 credit in COMP at the 4000-level0.5
B. Credits Not Included in the Major CGPA (12.5 credits)
4.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
5.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
6.  5.0 credits in Breadth Electives5.0
7.  6.0 credits in free electives.6.0
Total Credits20.0
+

Computer Science and Mathematics
+B.Math. Combined Honours

+

Students must register in one of the two concentrations below, each of which adds 5.0 credits to the Major CGPA.

+

Computer Science and Mathematics:
Concentration in Computing Theory and Numerical Methods
B. Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.0 credits)
1.  4.5 credits in:4.5
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
2.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 3805 [0.5]
Discrete Structures and Applications (Honours)
3.  0.5 credit from:0.5
COMP 4905 [0.5]
Honours Project
MATH 4905 [0.5]
Honours Project (Honours)
Concentration in Computing Theory and Numerical Methods
4.  3.0 credits in:3.0
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
MATH 3801 [0.5]
Linear Programming
MATH 3806 [0.5]
Scientific Computing I (Honours)
COMP 4804 [0.5]
Design and Analysis of Algorithms II
5.  0.5 credit from:0.5
MATH 3001 [0.5]
Real Analysis I (Honours)
MATH 3002 [0.5]
Real Analysis II (Honours)
MATH 3003 [0.5]
Advanced Differential Calculus (Honours)
MATH 3057 [0.5]
Functions of a Complex Variable (Honours)
MATH 3008 [0.5]
Ordinary Differential Equations (Honours)
6.  1.0 credit from:1.0
MATH 4109 [0.5]
Fields and Coding Theory (Honours)
MATH 4801 [0.5]
Topics in Combinatorics (Honours)
MATH 4802 [0.5]
Introduction to Mathematical Logic (Honours)
MATH 4803 [0.5]
Computable Functions (Honours)
MATH 4805 [0.5]
Theory of Automata (Honours)
MATH 4806 [0.5]
Scientific Computing II (Honours)
MATH 4807 [0.5]
Game Theory (Honours)
MATH 4808 [0.5]
Graph Theory and Algorithms (Honours)
MATH 4811 [0.5]
Combinatorial Design Theory (Honours)
MATH 4816 [0.5]
Numerical Analysis for Differential Equations (Honours)
MATH 4821 [0.5]
Quantum Computing (Honours)
MATH 4822 [0.5]
Wavelets and Digital Signal Processing (Honours)
7.  0.5 credit in COMP at the 3000 level or above.0.5
B. Credits Not Included in the Major CGPA (4.0 credits)
8.  4.0 credits not in MATH, STAT, or COMP consisting of:4.0
a. 1.0 credit in Natural Science electives
b. 3.0 credits from Natural Science, or Approved Arts and Social Sciences electives
Total Credits20.0
Note:
The following courses offered by the School of Business and the Faculty of Engineering are treated as Computer Science courses in this program:
Business
BUSI 4400 [0.5]IS Management and Strategy
Engineering
SYSC 3303 [0.5]Real-Time Concurrent Systems
SYSC 4005 [0.5]Discrete Simulation/Modeling
SYSC 4310 [0.5]Computer Systems Architecture
+

Computer Science and Mathematics:
Concentration in Statistics and Computing
B. Math. Combined Honours (20.0 credits)

A. Credits Included in the Major CGPA (16.5 credits)
1.  5.0 credits in:5.0
MATH 1052 [0.5]
Calculus and Introductory Analysis I
MATH 1152 [0.5]
Introductory Algebra I
MATH 1800 [0.5]
Introduction to Mathematical Reasoning
MATH 2001 [0.5]
Multivariable Calculus and Fundamentals of Analysis I
MATH 2002 [0.5]
Multivariable Calculus and Fundamentals of Analysis II
MATH 2052 [0.5]
Calculus and Introductory Analysis II
MATH 2100 [1.0]
Algebra
MATH 2152 [0.5]
Introductory Algebra II
STAT 1500 [0.5]
Introduction to Statistical Computing
2.  6.0 credits in:6.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
COMP 3005 [0.5]
Database Management Systems
COMP 3804 [0.5]
Design and Analysis of Algorithms I
COMP 3805 [0.5]
Discrete Structures and Applications (Honours)
3.  0.5 credit from:0.5
COMP 4905 [0.5]
Honours Project
STAT 4905 [0.5]
Honours Project (Honours)
Concentration in Statistics and Computing:
4.  3.0 credits in:3.0
MATH 2454 [0.5]
Ordinary Differential Equations (Honours)
MATH 3806 [0.5]
Scientific Computing I (Honours)
STAT 2559 [0.5]
Basics of Statistical Modeling (Honours)
STAT 2655 [0.5]
Introduction to Probability with Applications (Honours)
STAT 3558 [0.5]
Elements of Probability Theory (Honours)
STAT 3559 [0.5]
Mathematical Statistics (Honours)
5.  0.5 credit from:0.5
STAT 3506 [0.5]
Stochastic Processes and Applications (Honours)
STAT 3553 [0.5]
Regression Modeling (Honours)
6.  1.0 credit in STAT at the 4000 level1.0
7.  0.5 credit in COMP at the 4000 level0.5
B. Credits Not Included in the Major CGPA (3.5 credits)
8.  3.5 credits not in MATH, STAT, or COMP consisting of:3.5
a. 1.0 credit in Natural Science electives
b. 2.5 credits from Natural Science, or Approved Arts and Social Sciences electives
Total Credits20.0
+

Cybersecurity 
B.Cyber. Honours (20.0 credits)

A. Credits Included in the Major CGPA (11.5 credits)
1.  5.0 credits in:5.0
COMP 1405 [0.5]
Introduction to Computer Science I
COMP 1406 [0.5]
Introduction to Computer Science II
COMP 1805 [0.5]
Discrete Structures I
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
COMP 2406 [0.5]
Fundamentals of Web Applications
COMP 2804 [0.5]
Discrete Structures II
COMP 3000 [0.5]
Operating Systems
COMP 3004 [0.5]
Object-Oriented Software Engineering
2.  2.5 credits in:2.5
COMP 2109 [0.5]
Introduction to Security and Privacy
COMP 3008 [0.5]
Software Structures for User Interfaces
COMP 3203 [0.5]
Principles of Computer Networks
CSEC 2108 [0.5]
Cryptographic Algorithms and Protocols
CSEC 3108 [0.5]
Systems Security
3.  1.0 credit from:1.0
COMP 3002 [0.5]
Compiler Construction
COMP 3301 [0.5]
Technical Writing for Computer Science
COMP 4004 [0.5]
Software Quality Assurance
COMP 4203 [0.5]
Wireless Networks and Security
MATH 2108 [0.5]
Abstract Algebra I
4.  3.0 credits in:3.0
CSEC 4000 [0.5]
Operating Systems Security
CSEC 4100 [0.5]
Human Factors in Security
CSEC 4200 [0.5]
Network Security
CSEC 4300 [0.5]
Software Security
CSEC 4900 [0.5]
Selected Topics in Security I
CSEC 4901 [0.5]
Selected Topics in Security II
B. Credits Not Included in the Major CGPA (8.5 credits)
5.  1.0 credit in:1.0
MATH 1007 [0.5]
Elementary Calculus I
MATH 1104 [0.5]
Linear Algebra for Engineering or Science
6.  0.5 credit in:0.5
STAT 2507 [0.5]
Introduction to Statistical Modeling I
7.  7.0 credits in free electives7.0
Total Credits20.0
+

Minor in Computer Science (4.0 credits)

Only students pursuing an undergraduate program requiring at least 20.0 credits to graduate and who have completed at least 4.0 credits toward their degree with a minimum Overall CGPA of 7.0 may be admitted to the Minor in Computer Science, except for the following:

  • Bioinformatics B.Sc. Honours
  • Cognitive Science with Concentration in Cognition and Computation Bachelor of Cognitive Science Honours
  • Computational Biochemistry B.Sc. Honours
  • Computer Science B.C.S. Honours, including all streams
  • Computer Science and Mathematics: Concentration in Computing Theory and Numerical Methods B.Math. Combined Honours
  • Computer Science and Mathematics: Concentration in Statistics and Computing B.Math. Combined Honours
  • Computer Systems Engineering Bachelor of Engineering
  • Cybersecurity B.Cyber. Honours
  • Data Science B.D.S. Honours
  • Economics B.Econ. Honours with Concentration in Computational Analysis
  • Information Resource Management B.I.T.
  • Interactive Multimedia and Design B.I.T.
  • Linguistics with Concentration in Computer Science B.Sc. Honours
  • Psycholinguistics and Communication Difference with Concentration Computer Science B.Sc. Honours
  • Network Technology B.I.T.
  • Optical Systems and Sensors B.I.T.
  • Software Engineering Bachelor of Engineering

Enrolment is limited. Students who are required to leave the Minor due to a low Minor CGPA may not return to the Minor at any subsequent date.

Students are required to present a Minor CGPA of 4.00 or higher at graduation in order to be awarded a Minor in Computer Science.

Requirements
1.  2.5 credits in:2.5
COMP 1005 [0.5]
Introduction to Computer Science I
COMP 1006 [0.5]
Introduction to Computer Science II
COMP 2401 [0.5]
Introduction to Systems Programming
COMP 2402 [0.5]
Abstract Data Types and Algorithms
COMP 2404 [0.5]
Introduction to Software Engineering
2.  1.0 credit from:1.0
COMP 1805 [0.5]
Discrete Structures I (and/or COMP at the 2000-level or above)
3.  0.5 credit in COMP at the 3000-level or above0.5
4. Course equivalencies and transfer credits can be used for at most 2.0 credits of the minor; the remaining 2.0 credits must be courses listed in the COMP section of this Calendar
5. The remaining requirements of the major discipline(s) and degree must be satisfied.
Total Credits4.0
+
+ +
+ +
+

Computer Science (COMP) Courses

+

Notes:

  1. Some of the following Computer Science courses are cross-listed from other parts of the Calendar. In every such case, only one course is actually offered and the two numbers are alternate identifiers for this single course. Students in the B.C.S. program should register in such a course under the Computer Science (COMP) number.
+COMP 1001 [0.5 credit]
+Introduction to Computational Thinking for Arts and Social Science Students

+An introduction to computational thinking and its applications to the arts and social sciences. Students will gain computational thinking skills by exploring data representation, basic programming concepts, a selection of algorithms, and advanced usage of software packages for the arts and social sciences.
+
Precludes additional credit for COMP 1004 (no longer offered). This course cannot be taken for credit by students in Business, Engineering, Computer Science, Cybersecurity, Data Science, Mathematics or Science.
Lectures three hours a week.
+
+COMP 1005 [0.5 credit]
+Introduction to Computer Science I

+Introduction to computer science and programming. Topics include: algorithm design; control structures; variables and types; linear collections; functions; debugging and testing. Special attention is given to procedural programming in a modern language, computational thinking skills, and problem decomposition.
+
Includes: Experiential Learning Activity
Also listed as COMP 1405.
Precludes additional credit for BIT 1400, CGSC 1005, ECOR 1031, ECOR 1041 (no longer offered), ECOR 1042 (no longer offered), ECOR 1051 (no longer offered), ECOR 1606 (no longer offered), ITEC 1400, ITEC 1401, SYSC 1005 (no longer offered).
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 1006 [0.5 credit]
+Introduction to Computer Science II

+A second course in programming emphasizing problem solving and computational thinking in an object-oriented language. Topics include abstraction, mutable data structures, methods, inheritance, polymorphism, recursion, program efficiency, testing and debugging.
+
Includes: Experiential Learning Activity
Also listed as COMP 1406.
Precludes additional credit for BIT 2400, BUSI 2402, ITEC 2400, ITEC 2401, SYSC 2004.
Prerequisite(s): COMP 1005 or COMP 1405.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 1008 [0.5 credit]
+Math for Game Programmers

+Math for building 3D games. Points, vectors, normals. Dot and cross products. Transformations and inverses in left- and right-handed systems. Uses for controlling objects, cameras, and texture manipulation. Bounding boxes, planes, frustums for collision detection and visibility, fast billboarding techniques, point and sphere sweeping. Quaternions.
+
Prerequisite(s): one Grade 12 university preparation mathematics course.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 1405 [0.5 credit]
+Introduction to Computer Science I

+Introduction to computer science and programming, for computer science students. Topics include: algorithm design; control structures; variables and types; linear collections; functions; debugging and testing. Special attention is given to procedural programming in a modern language, computational thinking skills, and problem decomposition.
+
Includes: Experiential Learning Activity
Also listed as COMP 1005.
Precludes additional credit for BIT 1400, CGSC 1005, ECOR 1031, ECOR 1041 (no longer offered), ECOR 1042 (no longer offered), ECOR 1051 (no longer offered), ECOR 1606 (no longer offered), ITEC 1400, ITEC 1401, SYSC 1005 (no longer offered).
Prerequisite(s): restricted to students registered in the B.C.S. program, B.Cyber. program, B.D.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 1406 [0.5 credit]
+Introduction to Computer Science II

+A second course in programming for BCS students, emphasizing problem solving and computational thinking in an object-oriented language. Topics include abstraction, mutable data structures, methods, inheritance, polymorphism, recursion, program efficiency, testing and debugging.
+
Includes: Experiential Learning Activity
Also listed as COMP 1006.
Precludes additional credit for BIT 2400, BUSI 2402, ITEC 2400, ITEC 2401, SYSC 2004.
Prerequisite(s): COMP 1005 or COMP 1405. Restricted to students registered in the B.C.S. program, B.Cyber. program, B.D.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 1501 [0.5 credit]
+Introduction to Computer Game Design

+Introduction to game design and prototyping. Topics include: formal theories of fun; the mechanics-dynamics-aesthetics framework; game economies; game balance; statistical tools for analyzing game mechanics; game settings; and storytelling. Special attention is given to the attributes of games and what makes a game fun.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 1005 or COMP 1405.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 1601 [0.5 credit]
+Introduction to Mobile Application Development

+Introduction to developing mobile applications using the Mac OS X platform. Topics include: the Objective-C programming language; development tools; framework API's; and the Quartz graphic system. Extensive practical experience with development for Apple mobile devices such as the iPhone.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 1005 or COMP 1405.
Lecture/lab four hours a week.
+
+COMP 1805 [0.5 credit]
+Discrete Structures I

+Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.
+
Includes: Experiential Learning Activity
Precludes additional credit for MATH 1800.
Prerequisite(s): one Grade 12 university preparation mathematics course.
Lectures three hours a week, tutorial one hour a week.
+
+COMP 1910 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. This course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): Permission of the School and registration in internship option.
+
+COMP 1911 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 1910 and registration in internship option.
+
+COMP 2008 [0.5 credit]
+User Interaction Design and Prototyping

+Introduction to the principles of interaction design, including the human-centred design process, creative ideation, requirements gathering, prototyping, ethical considerations in design, rapid usability evaluation, and iterative design in a variety of user interaction paradigms.
+
Includes: Experiential Learning Activity
Precludes additional credit for IMD 3004.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 2108 [0.5 credit]
+Applied Cryptography and Authentication

+Practical aspects of cryptography. Topics include: stream and block ciphers; modes of operation; hash functions; message and user authentication; authenticated key establishment protocols; random number generation; entropy; proof of knowledge; secret sharing; key distribution; pitfalls deploying public-key encryption and digital signatures.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 3109 (no longer offered), COMP 4109 (no longer offered), CSEC 2108.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-, and COMP 2804.
Lectures three hours a week.
+
+COMP 2109 [0.5 credit]
+Introduction to Security and Privacy

+A tour of Internet security and privacy. Societal impacts and case studies. Topics from: protection goals of stakeholders; history of public key cryptography; programming languages and security; security engineering and testing; cybercrime and malware; Internet privacy and anonymity; government surveillance; regulation; ethics; blockchain applications.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-, and COMP 2401 with a minimum grade of C-.
Lectures three hours a week.
+
+COMP 2401 [0.5 credit]
+Introduction to Systems Programming

+Introduction to system-level programming with fundamental OS concepts, procedures, primitive data types, user-defined types. Topics may include process management, memory management, process coordination and synchronization, inter-process communication, file systems, networking, pointers, heap and stack memory management, and system/library calls.
+
Precludes additional credit for SYSC 1006, SYSC 2006.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 2402 [0.5 credit]
+Abstract Data Types and Algorithms

+Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees and graphs. Special attention is given to abstraction, interface specification and hierarchical design using an object-oriented programming language.
+
Precludes additional credit for SYSC 2100.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week.
+
+COMP 2404 [0.5 credit]
+Introduction to Software Engineering

+Introduction to object-oriented software development, with emphasis on the design and implementation of maintainable, reusable software. Topics include abstraction, modularity, encapsulation, and an introduction to design patterns.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 3010, SYSC 3110.
Prerequisite(s): COMP 2401 with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 2406 [0.5 credit]
+Fundamentals of Web Applications

+Introduction to Internet application development; emphasis on computer science fundamentals of technologies underlying web applications. Topics include: scripting and functional languages, language-based virtual machines, database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 4504.
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 2501 [0.5 credit]
+Computer Game Design and Development

+Introduction to the practical development of computer games and engine architecture. Topics include: vector and matrix operations; coordinate systems and transformations; physical simulation; collision detection; AI; path planning; hardware-accelerated real-time rendering. Special attention is given to implementation of real-time rendering in a low-level language.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2401 with a minimum grade of C-, and (MATH 1104 or MATH 1107).
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 2601 [0.5 credit]
+Mobile Applications

+Development of applications for mobile environments taking advantage of gesture-based input and using location and presence services. Topics include introduction to low-level network services and mobile platforms, description of architectural patterns, principles of mobile development and interaction styles for network service usage.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 1601.
Lecture/lab four hours a week.
+
+COMP 2801 [0.5 credit]
+Introduction to Robotics

+A course on programming simulated mobile robots with various sensors such as wheel encoders, distance sensors, cameras, compasses, accelerometers, and laser range finders. Topics include: programming robot behaviour; performing position estimation; implementing algorithms related to navigation, mapping, path planning, area coverage, and localization.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 1807 (no longer offered).
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-.
Lecture/lab four hours a week.
+
+COMP 2804 [0.5 credit]
+Discrete Structures II

+A second course in discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability, basic statistics, recurrence relations, randomized algorithms. Material is illustrated through examples from computing.
+
Prerequisite(s): COMP 1805 with a minimum grade of C-, or permission of the School of Computer Science for those in Combined Honours in Computer Science and Mathematics.
Lectures three hours a week.
+
+COMP 2910 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 1911 and registration in internship option.
+
+COMP 2911 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2910 and registration in internship option.
+
+COMP 3000 [0.5 credit]
+Operating Systems

+Operating system implementation course stressing fundamental issues in design and how they relate to modern computer architectures. Assignments involve the modification and extension of a multitasking operating system.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 4001.
Prerequisite(s): COMP 2401 with a minimum grade of C- and COMP 2402.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 3002 [0.5 credit]
+Compiler Construction

+The structure, organization and design of the phases of a compiler are considered: lexical translators, syntactical translators, scope handlers, type checkers, code generators and optimizers. Components of a compiler will be implemented.
+
Prerequisite(s): COMP 2402.
Lectures three hours a week.
+
+COMP 3004 [0.5 credit]
+Object-Oriented Software Engineering

+Development of object-oriented software systems: theory and practice. Topics include: Computer ethics, software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 3020, SYSC 3120, SYSC 4120.
Prerequisite(s): COMP 2401 with a minimum grade of C-, (COMP 2404 or SYSC 3010 or SYSC 3110) with a minimum grade of C-, and (COMP 2406 or SYSC 4504).
Lectures three hours a week.
+
+COMP 3005 [0.5 credit]
+Database Management Systems

+Introduction to the concepts of database management systems and database design. Topics may include: entity-relationship modelling, normalization, reduction to relational schemas, SQL, file and data organization, indexing, hash tables, join algorithms, query processing, query optimization, and concurrency control.
+
Precludes additional credit for BUSI 3400.
Prerequisite(s): COMP 1805 with a minimum grade of C-, and either COMP 2402 or (SYSC 2004 and SYSC 2100).
Lectures three hours a week.
+
+COMP 3007 [0.5 credit]
+Programming Paradigms

+An introduction to alternative programming paradigms such as functional, constraint-based, concurrent, and logic programming.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 3101.
Prerequisite(s): COMP 1805 with a minimum grade of C-, COMP 2401 with a minimum grade of C-, COMP 2402, (COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or SYSC 4504).
Lectures and tutorials three to four and a half hours a week.
+
+COMP 3008 [0.5 credit]
+Software Structures for User Interfaces

+Concepts and principles related to building user interfaces, and applications in implementing interfaces in “front-end” programming contexts. Topics may include: reactive programming, input and output factors, application interfaces and infrastructure, typical patterns used to implement them, and organization and management of these aspects within software.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 4130.
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or SYSC 4504).
Lectures three hours a week.
+
+COMP 3105 [0.5 credit]
+Introduction to Machine Learning

+An introduction to methods for automated learning of relationships on the basis of empirical data. Includes topics in supervised and unsupervised machine learning and deeper knowledge of specific algorithms and their applications. Evaluation and quantification of performance of ML systems. Discussion of data ethics.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 4105 (no longer offered), SYSC 4415.
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 2804 and (MATH 1104 or MATH 1107).
Lectures three hours a week.
+
+COMP 3106 [0.5 credit]
+Introduction to Artificial Intelligence

+Principles and tools used in Artificial Intelligence. Fundamentals of Knowledge Representation and Reinforcement Learning and Nature-Based computing. Methods for non-adversarial problem solving including non-exhaustive and heuristic-based strategies for searching the state space. Methods for adversarial problem solving, modeled as two-person and multi-person games.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 4106 (no longer offered), SYSC 4416.
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 2804.
Lectures three hours a week.
+
+COMP 3203 [0.5 credit]
+Principles of Computer Networks

+This is an introductory course to the field of Network Computing. Topics include: Protocol Architectures and Internetworking, Types of Networks, Communication Protocols, End-System and Network Traffic Management, Structure of Routing and Congestion Control.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 3512, SYSC 4602.
Prerequisite(s): COMP 2401 with a minimum grade of C-, and COMP 2402.
Lectures and tutorials three to four and a half hours a week.
+
+COMP 3301 [0.5 credit]
+Technical Writing for Computer Science

+Technical communication for computer science majors, concentrating on writing scientific papers and technical reports. Principles of clarity and precision in writing and communication. Practical exercises and readings from recent technical publications will be used.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110).
Lectures three hours a week.
+
+COMP 3400 [0.5 credit]
+Computational Logic and Automated Reasoning

+Applications of formal logic in computer science. Symbolic logics such as classical predicate calculus are used to represent domain knowledge, to model computational problems and to solve them by means of automated reasoners. Applications include artificial intelligence, software engineering, data management and hardware verification.
+
Prerequisite(s): COMP 2804.
Lectures three hours a week.
+
+COMP 3501 [0.5 credit]
+Foundations of Game Programming and Computer Graphics

+The theory and practice of 3D graphics for computer games. Topics include: vectors and quaternions; hierarchical transformations; camera and perspective; hardware-accelerated real-time rendering; texture and texture mapping; illumination; and particle systems. Additional topics may include rigid-body motion, character animation, shadows, and screen-space special effects.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110).
Lectures three hours a week.
+
+COMP 3803 [0.5 credit]
+Introduction to Theory of Computation

+Theoretical aspects of computer science. Topics include: formal languages and automata theory, computability theory.
+
Precludes additional credit for COMP 2805 (no longer offered).
Prerequisite(s): COMP 2804.
Lectures three hours a week.
+
+COMP 3804 [0.5 credit]
+Design and Analysis of Algorithms I

+An introduction to the design and analysis of algorithms. Topics include: divide-and-conquer, dynamic programming, linear programming, greedy algorithms, graph algorithms, NP-completeness.
+
Also listed as MATH 3804.
Prerequisite(s): COMP 2402 and one of (COMP 2804 or COMP 3805 or MATH 3825 or MATH 3855).
Lectures and tutorials three to four and a half hours a week.
+
+COMP 3805 [0.5 credit]
+Discrete Structures and Applications (Honours)

+Enumeration: inclusion and exclusion, recurrence relations, generating functions and applications. Graph theory: connectivity, planarity, Hamilton paths and Euler trails. Error-correcting codes. Designs and finite geometries. Symmetry and counting.
+
Also listed as MATH 3855.
Precludes additional credit for MATH 3805 (no longer offered) and MATH 3825.
Prerequisite(s): MATH 2100 or a grade of B or higher in MATH 2108 or MATH 3101.
Lectures three hours a week and one hour tutorial.
+
+COMP 3807 [0.5 credit]
+Mathematical Software

+Implementation of numerical methods using numerical software packages. Development of scientific and/or operations research applications using application programming interfaces of numerical or optimization libraries. Functional programming for data analysis and machine learning. Experience working with Python, C++, or Java is essential.
+
Includes: Experiential Learning Activity
Also listed as MATH 3807.
Prerequisite(s): A grade of C- or higher in MATH 3806.

+
+COMP 3910 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2911 and registration in internship option.
+
+COMP 3911 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3910 and registration in internship option.
+
+COMP 3999 [0.0 credit]
+Co-operative Work Term

+
Includes: Experiential Learning Activity

+
+COMP 4000 [0.5 credit]
+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.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 3000 or SYSC 4001) and (COMP 3203 or SYSC 4602).
Also offered at the graduate level, with different requirements, as COMP 5102, for which additional credit is precluded.
Lectures three hours a week.
+
+COMP 4001 [0.5 credit]
+Distributed Computing

+Overview of distributed computing. Topics include: computational models, communication complexity, design and analysis of distributed algorithms and protocols, fault-tolerant protocols, synchronous computations. Applications may include: communication in data networks, control in distributed system (e.g., election, distributed mutual exclusion), manipulation of distributed data (e.g., ranking).
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 1805 with a minimum grade of C-, COMP 2401 with a minimum grade of C-, and (COMP 2406 or SYSC 4504).
Lectures three hours a week.
+
+COMP 4002 [0.5 credit]
+Real-Time 3D Game Engines

+The design and implementation of game engines for real-time 3D games including topics such as camera control, environmental effects, articulated models, terrain, vegetation, collision detection, particles, emitters, triggers, portals, waypoints, mirrors, and shadows.
+
Prerequisite(s): COMP 2404 or SYSC 3010 or SYSC 3110.
Lectures three hours a week.
+
+COMP 4003 [0.5 credit]
+Transaction Processing Systems

+Concepts and architectures of transaction processing systems and on-line transaction processing, with emphasis on data integration systems. Transaction properties and models, embedded-SQL, active rules, consistency maintenance, serializability, concurrency control, recovery, data integration systems and federated databases, introduction to transactions in web services and workflow systems.
+
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 3005.
Lectures three hours a week.
+
+COMP 4004 [0.5 credit]
+Software Quality Assurance

+Introduction to the theory and practice of Software Quality Assurance. Topics include: equivalence partitioning, test-driven testing, unit testing patterns, refactoring, software metrics, requirements engineering, scenario modeling and acceptance testing, model-based testing, state machine testing, software testing theory and tools.
+
Includes: Experiential Learning Activity
Precludes additional credit for SYSC 4101.
Prerequisite(s): COMP 3004.
Lectures three hours a week.
+
+COMP 4008 [0.5 credit]
+Evaluation and Research Methods for Human-Computer Interaction

+Fundamental Human-Computer Interaction (HCI) research and evaluation methods. Topics may include: HCI research methodologies, research ethics, expert evaluation, user studies, qualitative and quantitative data collection, statistical data analysis, information visualization, and specifying practical implications of findings.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2008, COMP 3008, and STAT 2509 with a minimum grade of C- in each.
Also offered at the graduate level, with different requirements, as HCIN 5403, for which additional credit is precluded.
Lectures three hours a week, tutorial one and a half hours a week.
+
+COMP 4009 [0.5 credit]
+Programming for Clusters and Multi-Core Processors

+Introduction to parallel architectures, programming languages and algorithms for processor clusters and multi-core processors. Distributed memory architectures, cluster computing, message passing parallel programming, multi-core processors, shared memory parallel programming, use of thread libraries, parallel performance analysis.
+
Prerequisite(s): COMP 2402 and (COMP 2404 or SYSC 3010 or SYSC 3110) and COMP 2804.
Lectures three hours a week.
+
+COMP 4010 [0.5 credit]
+Introduction to Reinforcement Learning

+Learn about designing and programming reinforcement learning agents to perform complex tasks in interactive environments. Topics include Markov decision processes, dynamic programming methods, Monte Carlo methods, temporal difference learning, prediction/control with function approximation, policy gradient, and deep reinforcement learning algorithms.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 2402, (COMP 2404 or SYSC 3010 or SYSC 3110), (MATH 1004 or MATH 1007), (MATH 1104 or MATH 1107), and (DATA 1517 or STAT 2507).
Lectures three hours a week.
+
+COMP 4102 [0.5 credit]
+Computer Vision

+The basic ideas and techniques of computer vision. The central theme is reconstructing 3D models from 2D images. Topics include: image formation, image feature extraction, camera models, camera calibration, structure from motion, stereo, recognition, augmented reality, image searching.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and (MATH 1104 or MATH 1107).
Lectures three hours a week.
+
+COMP 4107 [0.5 credit]
+Neural Networks

+An introduction to neural networks and deep learning. Theory and application of Neural Networks to problems in machine learning. Various network architectures will be discussed. Methods for improving optimization and generalization of neural networks. Neural networks for unsupervised learning.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 5206.
Prerequisite(s): (COMP 3105 or SYSC 4415) and (MATH 1104 or MATH 1107).
Lectures three hours a week.
+
+COMP 4108 [0.5 credit]
+Computer Systems Security

+Information security in computer and communications systems. Topics include: design principles; operating system security and access control; web and software security; malicious software, security infrastructure; secure email; network authentication; firewalls; intrusion detection; IP security; network attacks; wireless security.
+
Includes: Experiential Learning Activity
Precludes additional credit for CSEC 3108 and SYSC 4810.
Prerequisite(s): COMP 2108 and (COMP 3000 or SYSC 4001).
Lectures three hours a week.
+
+COMP 4111 [0.5 credit]
+Data Management for Business Intelligence

+Application of computational techniques to support business activities, such as decision making, business understanding, data analysis, business process automation, learning from data, producing and using data-centric business models, ontology-based data access and integration, data quality assessment and cleaning and use of contextual data.
+
Prerequisite(s): COMP 3005.
Also offered at the graduate level, with different requirements, as COMP 5111, for which additional credit is precluded.
Lectures three hours a week.
+
+COMP 4114 [0.5 credit]
+Quantum Computing and Information

+Introduction to the ideas and principles of quantum computing and information. Review of mathematical foundations. Discussion of quantum theory, architecture, and quantum gates. Basic algorithms in quantum computing. Theoretical computer science and computation. Applications of quantum computing to cryptography. Quantum information and error correction.
+
Precludes additional credit for MATH 4821, MATH 5821.
Prerequisite(s): COMP 2804.
Lectures three hours a week
+
+COMP 4115 [0.5 credit]
+Introduction to Natural Language Processing

+Introduction to the fundamental techniques and models of modern natural language processing. Topics include: word embedding, language models, machine translation, self-attention and transformer, question answering, and pre-trained models.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 3105 or SYSC 4415) and (MATH 1104 or MATH 1107).
Lectures three hours a week.
+
+COMP 4116 [0.5 credit]
+Multiagent Systems

+Multiagent systems is a branch of artificial intelligence that explores the interactions between multiple rational entities, where each may have access to different information and possibly conflicting priorities. This course takes an approach founded on economic game theory.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3106.
Lectures three hours a week.
+
+COMP 4202 [0.5 credit]
+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.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3804 or MATH 3804.
Also offered at the graduate level, with different requirements, as COMP 5204, for which additional credit is precluded.
Lecture three hours a week.
+
+COMP 4203 [0.5 credit]
+Wireless Networks and Security

+An introduction to wireless networks covering both networking issues and security aspects of modern wireless environments. Fundamentals of mobile LANs, ad hoc, sensor networks, secure routing, searching, clustering, multicasting, localization, mobile IP/TCP, confidentiality, key establishment, authentication, broadcasting, RFIDs, and rogue attacks.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3203 or SYSC 4602.
Lectures three hours a week.
+
+COMP 4206 [0.5 credit]
+Evolving Information Networks

+Convergence of social and technological networks. Interplay between information content, entities creating it and technologies supporting it. Structure and analysis of such networks, models abstracting their properties, techniques link analysis, search, mechanism design, power laws, cascading, clustering and connections with work in social sciences.
+
Prerequisite(s): COMP 1805, (COMP 2401 with a minimum grade of C-) and (COMP 2406 or SYSC 4504).
Also offered at the graduate level, with different requirements, as COMP 5310, for which additional credit is precluded.
Lecture three hours a week.
+
+COMP 4501 [0.5 credit]
+Advanced Facilities for Real-Time Games

+A practical course on the design and implementation of modern game engines and advanced facilities provided by these engines. Such facilities include systems for rendering 3D scenes; simulating physics; playing animations; game AI; and enabling multi-player games. Students will undertake a significant game development project.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3501.
Lectures three hours a week.
+
+COMP 4509 [0.5 credit]
+Computer Graphics

+An overview of computer graphics, with an emphasis on rendering. Topics include the following: visibility; ray tracing; graphics hardware; object and scene modeling; lighting, shading, and texture; animation.
+
Precludes additional credit for COMP 3009 (no longer offered).
Prerequisite(s): COMP 2401 with a minimum grade of C-, COMP 2402, (MATH 1004 or MATH 1007), and (MATH 1104 or MATH 1107).
Lecture three hours a week.
+
+COMP 4601 [0.5 credit]
+Intelligent Web-based Information Systems

+Introduction to the principles and practice of creation, delivery and analysis of multimedia content in web-based systems. Topics include analysis of webs of documents, social network analysis, recommender systems and problems of trust, reputation and influence in e-commerce systems.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or COMP 2601 or SYSC 4504).
Lecture/lab four hours a week.
+
+COMP 4602 [0.5 credit]
+Social Networking

+Introduction to virtual communities, overlay networks and social networking. Topics include architectural principles for heterogeneous social networking platforms, trust and reputation as social concepts, agent-based computing, and extraction of trends and patterns from information exchanged between community members.
+
Precludes additional credit for COMP 3601 (no longer offered).
Prerequisite(s): ((COMP 2404 or SYSC 3010 or SYSC 3110) and (COMP 2406 or SYSC 4504)) or COMP 2601.
Lectures/labs four hours per week.
+
+COMP 4701 [0.5 credit]
+Computing, Society, and Ethics

+This course examines ethical questions raised by computing technologies - both motivated by recent developments and through the lens of fiction. Students will identify possible ethical issues in future technologies and use formal ethics frameworks to evaluate the merits and pitfalls of different solutions.
+
Includes: Experiential Learning Activity
Prerequisite(s): Any two of COMP 2108, COMP 3004, COMP 3005, COMP 3008, (COMP 3105 or SYSC 4415), COMP 3106, COMP 3804.
Lectures three hours a week.
+
+COMP 4801 [0.5 credit]
+Algorithms for Data Mining, Web, and Social Networks

+Algorithm design techniques for modern data sets arising in, for example, data mining, web analytics, search engines and social networks. Topics may include locality-sensitive hashing, data streaming, clustering, recommendation systems, link analysis, dimensionality reduction, online algorithms, social network analysis, graph partitioning, and randomized algorithms.
+
Precludes additional credit for COMP 3801 (no longer offered).
Prerequisite(s): COMP 2804 with a minimum grade of B+.
Lecture three hours a week.
+
+COMP 4803 [0.5 credit]
+Computable Functions

+Recursive functions and computability, algorithms, Church's thesis, Turing machines, computational logic, NP-completeness.
+
Also listed as MATH 4803.
Prerequisite(s): MATH 2100 or COMP 3805 or permission of the School.

+
+COMP 4804 [0.5 credit]
+Design and Analysis of Algorithms II

+A second course on the design and analysis of algorithms. Topics include: advanced recurrence relations, algebraic complexity, advanced graph algorithms, amortized analysis, algorithms for NP-complete problems, randomized algorithms.
+
Prerequisite(s): COMP 3804 or MATH 3804.
Lectures three hours a week.
+
+COMP 4805 [0.5 credit]
+Theory of Automata

+Finite automata and regular expressions, properties of regular sets, context-free grammars, pushdown automata, deterministic context-free languages. Turing machines, the Chomsky hierarchy. Undecidability, intractable problems.
+
Also listed as MATH 4805.
Precludes additional credit for MATH 5605.
Prerequisite(s): COMP 3805 or MATH 3106 or MATH 3158 (or MATH 3100) or permission of the School.
Lectures three hours a week.
+
+COMP 4806 [0.5 credit]
+Scientific Computing II (Honours)

+Computational methods in numerical linear algebra including solvers for large linear systems, numerical optimization and eigenvalue problems. Application to topics such as scientific machine learning or parallel computing. Focus on implementation in an efficient compiled language and standard numerical libraries.
+
Also listed as MATH 4806.
Prerequisite(s): i) MATH 3806; and ii) MATH 2152 or MATH 2107 with a grade of C- or higher, or permission of the school.
Lectures three hours a week.
+
+COMP 4900 [0.5 credit]
+Special Topics in Computer Science

+Advanced topics in Computer Science offered by members of the School of Computer Science.
+
Prerequisite(s): permission of the School of Computer Science.
Lectures three hours a week and up to three hours of tutorials a week.
+
+COMP 4901 [0.5 credit]
+Directed Studies

+Independent study under the supervision of a member of the School of Computer Science. Students are required to obtain their supervisor's written approval prior to registration and are limited to two such courses in their program.
+
Prerequisite(s): permission of the School of Computer Science.

+
+COMP 4905 [0.5 credit]
+Honours Project

+Under the supervision of a faculty member, Honours students complete a major Computer Science project in fourth year. Permission to register is granted once an approved project proposal is submitted to the Department. See deadlines and details on the School website.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 4906.
Prerequisite(s): fourth-year standing in an Honours program and permission of the School of Computer Science.

+
+COMP 4906 [1.0 credit]
+Honours Thesis

+Independent research under the direct supervision of a faculty advisor. Permission to register is granted once an approved thesis proposal is submitted to the School of Computer Science. Evaluation is based on a written thesis and a poster presentation.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 4905.
Prerequisite(s): fourth-year standing in an Honours program with a minimum CGPA of 9.0 in the major and permission of the School of Computer Science.
+
+COMP 4910 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3911 and registration in internship option.
+
+COMP 4911 [0.5 credit]
+Internship

+The internship exposes students to industrial software development via placement in a local enterprise. The course may only be taken by students participating in one of the School's industrial partnerships and can only be used as a free elective in the B.C.S. program.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 4910 and registration in internship option.
+
+
+
+

Cybersecurity (CSEC) Courses

+
+CSEC 2108 [0.5 credit]
+Cryptographic Algorithms and Protocols

+Block ciphers and modes of operation; public-key encryption; cryptographic hash functions; digital signatures; password-based cryptography; randomness and guesswork; authentication and authenticated key establishment protocols; challenge-response protocols; elliptic curve cryptography; post-quantum algorithms.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 2108, COMP 3109 (no longer offered), COMP 4109 (no longer offered).
Prerequisite(s): (COMP 1006 or COMP 1406) with a minimum grade of C-, (COMP 2804 or STAT 2507), and MATH 1104.
Lectures three hours a week, tutorials one and a half hours a week.
+
+CSEC 3108 [0.5 credit]
+Systems Security

+Securing networked computer systems. Threat modelling. Operating system security and design principles. Access control. Software-based exploits, memory safety, non-functional testing in software development. Social engineering. Browser-server and transport-layer security. Middleperson attacks, end-to-end security. Public-key certificates. Case study: Bluetooth or Wi-Fi security.
+
Includes: Experiential Learning Activity
Precludes additional credit for COMP 4108 and SYSC 4810.
Prerequisite(s): CSEC 2108, (COMP 3000 or SYSC 4001), and (COMP 3203 or SYSC 4602).
Lectures three hours a week, tutorials one and a half hours a week.
+
+CSEC 3999 [0.0 credit]
+Co-operative Work Term

+
Includes: Experiential Learning Activity
+
+CSEC 4000 [0.5 credit]
+Operating Systems Security

+The course examines past, present, and emerging approaches for securing operating systems. The focus is to provide a foundation for understanding requirements to secure hosts at the operating system level and survey the landscape of available tools and techniques for implementing operating system security controls.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 3000 or SYSC 4001) and CSEC 3108.
Lectures three hours a week.
+
+CSEC 4100 [0.5 credit]
+Human Factors in Security

+Designing security mechanisms with human factors in mind. Evaluating software-based systems with focus on how interaction design affects security/privacy. Current approaches to usable security; user studies; methodologies for empirical analysis; design principles for usable security/privacy; case studies including authentication, anonymity systems.
+
Includes: Experiential Learning Activity
Prerequisite(s): COMP 3008 and CSEC 3108.
Lectures three hours a week.
+
+CSEC 4200 [0.5 credit]
+Network Security

+Security throughout network stack layers. Internet core security. VPNs and tunnelling protocols. Firewalls and Intrusion Detection Systems. Internet measurements. IoT security. Botnets. Securing network protocols, including email and web. Network monitoring. Traffic sniffers and vulnerability scanners.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 3000 or SYSC 4001), (COMP 3203 or SYSC 4602), and CSEC 3108.
Lectures three hours a week.
+
+CSEC 4300 [0.5 credit]
+Software Security

+Resilience of everyday software to vulnerabilities. Security engineering and the security development lifecycle. Static analysis and vulnerability analysis. Model checkers. Security testing, non-functional testing, fuzz-testing. Programming languages and security. Cryptographic APIs and use of security toolkits.
+
Includes: Experiential Learning Activity
Prerequisite(s): (COMP 3000 or SYSC 4001), COMP 3004 and CSEC 3108.
Lectures three hours a week.
+
+CSEC 4900 [0.5 credit]
+Selected Topics in Security I

+An in-depth study of selected topics, with an emphasis on areas of strong current interest in research or practice.
+
Includes: Experiential Learning Activity
Prerequisite(s): CSEC 3108, and permission of the School of Computer Science.
Lectures three hours a week.
+
+CSEC 4901 [0.5 credit]
+Selected Topics in Security II

+An in-depth study of selected topics, with an emphasis on areas of strong current interest in research or practice.
+
Includes: Experiential Learning Activity
Prerequisite(s): CSEC 3108, and permission of the School of Computer Science.
Lectures three hours a week.
+
+
+

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

+ +
+

Regulations

+

In addition to the program requirements described here, students must satisfy the University regulations common to all undergraduate students (see the Academic Regulations of the University section of this Calendar).

+

Students should consult with the School when planning their program and selecting courses.

+
+
+

Academic Continuation Evaluation for Bachelor of Cybersecurity (Honours)

Students in the B.Cyber. (Honours) follow the continuation requirements for Honours programs, as described in Section 3.2.6 of the Academic Regulations of the University, with the following addition:

  • Students with 15.5 or more program credits completed, but who have a Major CGPA less than 6.00, will be required to leave the B.Cyber. program with the decision Required to Withdraw for Two Terms (WT).
+
+
+

Co-operative Education

For more information about how to apply for the Co-op program and how the Co-op program works please visit the Co-op website.

All students participating in the Co-op program are governed by the Undergraduate Co-operative Education Policy.

Undergraduate Co-operative Education Policy

Admission Requirements

Students can apply to Co-op in one of two ways: directly from high school, or after beginning a degree program at Carleton.

If a student applies to a degree program with a Co-op option from high school, their university grades will be reviewed two terms to one year prior to their first work term to ensure they meet the academic requirements after their first or second year of study. The time at which the evaluation takes place depends on the program of study. Students will automatically receive an admission decision via their Carleton email account.

Students who did not request Co-op at the time they applied to Carleton can request Co-op after they begin their university studies. To view application instructions and deadlines, please visit carleton.ca/co-op.

To be admitted to Co-op, a student must successfully complete 5.0 or more credits that count towards their degree, meet the minimum CGPA requirement(s) for the student's Co-op option, and fulfil any specified course prerequisites. To see the unique admission and continuation requirements for each Co-op option, please refer to the specific degree programs listed in the Undergraduate Calendar. 

Participation Requirements

Co-op Participation Agreement

All students must adhere to the policies found within the Co-op Participation Agreement.

COOP 1000

Once a student has been admitted to the Co-op Program, they will be given access to register in COOP 1000. This zero-credit online course must be completed at least two terms prior to the student's first work term.

Communication with the Co-op Office

Students must maintain contact with the Co-op Office during their job search and while on a work term. All email communication will be conducted via the students' Carleton email account.

Employment

Although every effort is made to ensure a sufficient number of job postings for all Co-op students, no guarantee of employment can be made. The Co-op job search process is competitive, and success is dependent upon factors such as current market conditions, academic performance, skills, motivation, and level of commitment to the job search. It is the student's responsibility to apply for positions via the Co-op job board in addition to actively conducting a self-directed job search. Students who do not obtain a co-op work term are expected to continue with their academic studies. It should be noted that hiring priority for positions within the Federal Government of Canada is given to Canadian citizens.

Registration

  • Students must be registered as full-time during all fall and winter study terms beginning the term in which they enroll in COOP 1000.
  • Students will be registered in a Co-op Work Term course while at work. This course does not carry academic course credit, but is noted on academic transcripts.
  • Students may register in a 0.5 credit during a work term, provided the course is offered during the evening or is offered asynchronously online.
  • Students must have at least one term of full-time studies left to complete following their final co-op work term. Students cannot end their degree on a work term.

Work Term Assessment and Evaluation

Work Term Evaluation

Employers are responsible for submitting to Carleton University final performance evaluations for their Co-op students at the end of their work terms.

Work Term Assessment

In order to successfully complete the co-op work term, students must receive a Satisfactory (SAT) grade on their Co-op Work Term Report, which they must submit at the completion of each four-month work term.

Graduation with the Co-op Designation

In order to graduate with the Co-op Designation, students must satisfy all requirements of the degree program in addition to the successful completion of three or four work terms (the number is dependent upon the student's academic program). Students found in violation of the Co-op Participation Agreement may have the Co-op Designation withheld.

Note: Participation in the co-op option will add up to one additional year for a student to complete their degree program.

Voluntary Withdrawal from the Co-op Option

Students who are currently on a co-op work term or who have already committed to a co-op work term either verbally or in writing may not leave the position and/or withdraw from the co-op option until they have completed the work term and all related requirements.

Involuntary or Required Withdrawal from the Co-op Option

Students may be removed from the Co-op Program for any of the following reasons:

  1. Failure to achieve a grade of SAT in COOP 1000;
  2. Failure to attend all interviews for positions to which the student has applied;
  3. Declining more than one job offer during the job search;
  4. Reneging on a co-op position that the student has accepted either verbally or in writing;
  5. Continuing a job search after accepting a co-op position;
  6. Dismissal from a work term by the co-op employer;
  7. Leaving a work term without approval from the Co-op Management Team;
  8. Receipt of an unsatisfactory work term evaluation;
  9. Receiving a grade of UNS on the work term report.

International Students

All international students are required to possess a Co-op Work Permit issued by Immigration, Refugees and Citizenship Canada before they can begin working. The Co-operative Education Office will provide students with a letter of support to accompany their Co-op Work Permit application. Students are advised to discuss the application process and application requirements with the International Student Services Office.

Co-op Fees

All participating Co-op students are required to pay Co-op fees. For full details, please see the Co-op website.

+

Bachelor of Computer Science Honours and Major: Co-op Admission and Continuation Requirements

+
  • Maintain full-time status in each study term;
  • Be eligible to work in Canada (for off-campus work);
  • Have successfully completed COOP 1000 .
+

In addition to the following:

  1. Registered as a full-time student in the B.C.S. Honours or Major program;
  2. Successfully completed 5.0 or more credits;
  3. Successfully completed, by the start-date of the first work term, COMP 2404;
  4. Obtained an Overall CGPA of at least 8.00 and a Major CGPA of at least 8.00. These CGPAs must be maintained throughout the duration of the degree.

B.C.S. Honours and Major students must successfully complete four (4) work terms to obtain the Co-op Designation.

Co-op Work Term Course: COMP 3999
Work/Study Pattern:

Year 1Year 2Year 3Year 4Year 5
TermPatternTermPatternTermPatternTermPatternTermPattern
FallSFallSFallWFallSFallS
WinterSWinterSWinterSWinterWWinterS
Summer SummerWSummerWSummerW
+

Legend
S
: Study
W: Work

+
+
+

Co-operative Education

For more information about how to apply for the Co-op program and how the Co-op program works please visit the Co-op website.

All students participating in the Co-op program are governed by the Undergraduate Co-operative Education Policy.

Undergraduate Co-operative Education Policy

Admission Requirements

Students can apply to Co-op in one of two ways: directly from high school, or after beginning a degree program at Carleton.

If a student applies to a degree program with a Co-op option from high school, their university grades will be reviewed two terms to one year prior to their first work term to ensure they meet the academic requirements after their first or second year of study. The time at which the evaluation takes place depends on the program of study. Students will automatically receive an admission decision via their Carleton email account.

Students who did not request Co-op at the time they applied to Carleton can request Co-op after they begin their university studies. To view application instructions and deadlines, please visit carleton.ca/co-op.

To be admitted to Co-op, a student must successfully complete 5.0 or more credits that count towards their degree, meet the minimum CGPA requirement(s) for the student's Co-op option, and fulfil any specified course prerequisites. To see the unique admission and continuation requirements for each Co-op option, please refer to the specific degree programs listed in the Undergraduate Calendar. 

Participation Requirements

Co-op Participation Agreement

All students must adhere to the policies found within the Co-op Participation Agreement.

COOP 1000

Once a student has been admitted to the Co-op Program, they will be given access to register in COOP 1000. This zero-credit online course must be completed at least two terms prior to the student's first work term.

Communication with the Co-op Office

Students must maintain contact with the Co-op Office during their job search and while on a work term. All email communication will be conducted via the students' Carleton email account.

Employment

Although every effort is made to ensure a sufficient number of job postings for all Co-op students, no guarantee of employment can be made. The Co-op job search process is competitive, and success is dependent upon factors such as current market conditions, academic performance, skills, motivation, and level of commitment to the job search. It is the student's responsibility to apply for positions via the Co-op job board in addition to actively conducting a self-directed job search. Students who do not obtain a co-op work term are expected to continue with their academic studies. It should be noted that hiring priority for positions within the Federal Government of Canada is given to Canadian citizens.

Registration

  • Students must be registered as full-time during all fall and winter study terms beginning the term in which they enroll in COOP 1000.
  • Students will be registered in a Co-op Work Term course while at work. This course does not carry academic course credit, but is noted on academic transcripts.
  • Students may register in a 0.5 credit during a work term, provided the course is offered during the evening or is offered asynchronously online.
  • Students must have at least one term of full-time studies left to complete following their final co-op work term. Students cannot end their degree on a work term.

Work Term Assessment and Evaluation

Work Term Evaluation

Employers are responsible for submitting to Carleton University final performance evaluations for their Co-op students at the end of their work terms.

Work Term Assessment

In order to successfully complete the co-op work term, students must receive a Satisfactory (SAT) grade on their Co-op Work Term Report, which they must submit at the completion of each four-month work term.

Graduation with the Co-op Designation

In order to graduate with the Co-op Designation, students must satisfy all requirements of the degree program in addition to the successful completion of three or four work terms (the number is dependent upon the student's academic program). Students found in violation of the Co-op Participation Agreement may have the Co-op Designation withheld.

Note: Participation in the co-op option will add up to one additional year for a student to complete their degree program.

Voluntary Withdrawal from the Co-op Option

Students who are currently on a co-op work term or who have already committed to a co-op work term either verbally or in writing may not leave the position and/or withdraw from the co-op option until they have completed the work term and all related requirements.

Involuntary or Required Withdrawal from the Co-op Option

Students may be removed from the Co-op Program for any of the following reasons:

  1. Failure to achieve a grade of SAT in COOP 1000;
  2. Failure to attend all interviews for positions to which the student has applied;
  3. Declining more than one job offer during the job search;
  4. Reneging on a co-op position that the student has accepted either verbally or in writing;
  5. Continuing a job search after accepting a co-op position;
  6. Dismissal from a work term by the co-op employer;
  7. Leaving a work term without approval from the Co-op Management Team;
  8. Receipt of an unsatisfactory work term evaluation;
  9. Receiving a grade of UNS on the work term report.

International Students

All international students are required to possess a Co-op Work Permit issued by Immigration, Refugees and Citizenship Canada before they can begin working. The Co-operative Education Office will provide students with a letter of support to accompany their Co-op Work Permit application. Students are advised to discuss the application process and application requirements with the International Student Services Office.

Co-op Fees

All participating Co-op students are required to pay Co-op fees. For full details, please see the Co-op website.

+

 Bachelor of Cybersecurity Honours: Co-op Admission and Continuation Requirements

+
  • Maintain full-time status in each study term;
  • Be eligible to work in Canada (for off-campus work);
  • Have successfully completed COOP 1000 .
+

In addition to the following:

  1. Registered as a full-time student in the B.Cyber. Honours program;
  2. Successfully completed 5.0 or more credits;
  3. Successfully completed, by the start-date of the first work term, CSEC 2108 and COMP 2401, and at least two of COMP 2109COMP 2404, and COMP 2406;
  4. Obtained an Overall CGPA of at least 8.00 and a Major CGPA of at least 8.00. These CGPAs must be maintained throughout the duration of the degree.

B.Cyber. Honours students must successfully complete four (4) work terms to obtain the Co-op Designation.

Co-op Work Term Course: CSEC 3999
Work/Study Pattern:

Year 1Year 2Year 3Year 4Year 5
TermPatternTermPatternTermPatternTermPatternTermPattern
FallSFallSFallSFallSFallW
WinterSWinterSWinterWWinterSWinterS
Summer SummerWSummerWSummerW
+

Legend
S
: Study
W: Work

+
+
+

Admissions Information

Admission Requirements are for the 2026-27 year only, and are based on the Ontario High School System. Holding the minimum admission requirements only establishes eligibility for consideration. The cut-off averages for admission may be considerably higher than the minimum. See also the General Admission and Procedures section of this Calendar. An overall average of at least 70% is normally required to be considered for admission. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. The overall average required for admission is determined each year on a program by program basis. Consult admissions.carleton.ca for further details.

Note: Courses listed as recommended are not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

+

Admissions Information

Admission requirements are based on the Ontario High School System. Prospective students can view the admission requirements through the Admissions website at admissions.carleton.ca. The overall average required for admission is determined each year on a program-by-program basis. Holding the minimum admission requirements only establishes eligibility for consideration; higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. All programs have limited enrolment and admission is not guaranteed. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Consult admissions.carleton.ca for further details.

Note: If a course is listed as recommended, it is not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

Degree

  • Bachelor of Computer Science (B.C.S.) (Honours)
  • Bachelor of Computer Science (B.C.S.) (Major)

Admission Requirements

First Year

The Ontario Secondary School Diploma (OSSD) or equivalent, including a minimum of six 4U or M courses. The six 4U or M courses must include Advanced Functions, and Calculus and Vectors. 

Advanced Standing

Applications for admission beyond first year will be assessed on their merits. Students must typically present a minimum CGPA of 7.00 (B-) in order to be considered for admission. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected. Students will not receive credit for courses graded below C-.

Co-op Option

Direct Admission to the First Year of the Co-op Option
Applicants must:

  1. meet the required overall admission cut-off average and prerequisite course average. These averages may be higher than the stated minimum requirements;
  2. be registered as a full-time student in the Bachelor of Computer Science Honours program;
  3. be eligible to work in Canada (for off-campus work placements).

Meeting the above requirements only establishes eligibility for admission to the program. The prevailing job market may limit enrolment in the co-op option.

Note: Continuation requirements for students previously admitted to the co-op option and admission requirements for the co-op option after beginning the program are described in the Co-operative Education Regulations section of this Calendar.

+
+
+

Admissions Information

Admission Requirements are for the 2026-27 year only, and are based on the Ontario High School System. Holding the minimum admission requirements only establishes eligibility for consideration. The cut-off averages for admission may be considerably higher than the minimum. See also the General Admission and Procedures section of this Calendar. An overall average of at least 70% is normally required to be considered for admission. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. The overall average required for admission is determined each year on a program by program basis. Consult admissions.carleton.ca for further details.

Note: Courses listed as recommended are not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

+

Admissions Information

Admission requirements are based on the Ontario High School System. Prospective students can view the admission requirements through the Admissions website at admissions.carleton.ca. The overall average required for admission is determined each year on a program-by-program basis. Holding the minimum admission requirements only establishes eligibility for consideration; higher averages are required for admission to programs for which the demand for places by qualified applicants exceeds the number of places available. All programs have limited enrolment and admission is not guaranteed. Some programs may also require specific course prerequisites and prerequisite averages and/or supplementary admission portfolios. Consult admissions.carleton.ca for further details.

Note: If a course is listed as recommended, it is not mandatory for admission. Students who do not follow the recommendations will not be disadvantaged in the admission process.

Degree

  • Bachelor of Cybersecurity (B.Cyber.) (Honours)

Admission Requirements

First Year

The Ontario Secondary School Diploma (OSSD) or equivalent, including a minimum of six 4U or M courses. The six 4U or M courses must include Advanced Functions, and Calculus and Vectors. 

Advanced Standing

Applications for admission beyond first year will be assessed on their merits. Students must typically present a minimum CGPA of 7.00 (B-) in order to be considered for admission. Advanced standing will be granted only for those subjects assessed as being appropriate for the program and the stream selected. Students will not receive credit for courses graded below C-.

Co-op Option

Direct Admission to the First Year of the Co-op Option
Applicants must:

  1. meet the required overall admission cut-off average and prerequisite course average. These averages may be higher than the stated minimum requirements;
  2. be registered as a full-time student in the Bachelor of Cybersecurity Honours program;
  3. be eligible to work in Canada (for off-campus work placements).

Meeting the above requirements only establishes eligibility for admission to the program. The prevailing job market may limit enrolment in the co-op option.

Note: Continuation requirements for students previously admitted to the co-op option and admission requirements for the co-op option after beginning the program are described in the Co-operative Education Regulations section of this Calendar.

+
+
+
+ +
+ +
+ + + + + + + + + + +Back to Top + + + + + diff --git a/scripts/fixtures/programsPage.html b/scripts/fixtures/programsPage.html new file mode 100644 index 0000000..2c7af07 --- /dev/null +++ b/scripts/fixtures/programsPage.html @@ -0,0 +1,437 @@ + + + + +Undergraduate Programs < Carleton University + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + + Print and PDF Options + + + + + + + + + +
+ + + +

African Studies
+American Sign Language (Minor)
+Anthropology
+Applied Linguistics and Discourse Studies
+Archaeology (Minor)
+Architectural Studies
+Art and Architectural History
+     Art History
+     History and Theory of Architecture

+

Biochemistry
+Biology
+Biotechnology
+Business

+

Canadian Studies (Minors)
+Certificate in Carillon Studies
+Certificate in Journalism in Indigenous Communities
+Certificate in Multidisciplinary Studies in Mental Health and Well-Being
+Certificate in Nunavut Public Service Studies (C.N.P.S.S.)
+Certificate in Science and Policy
+Certificate in Science Communication
+Certificate in the Teaching of English as a Second Language (CTESL)
+Chemistry
+Childhood and Youth Studies
+Cognitive Science
+Communication and Media Studies
+Community Engagement (Minor)
+Computer Science
+Criminology and Criminal Justice
+Critical Race Studies (Minor)
+Cybersecurity

+

Data Science
+Digital Humanities (Minor)
+Disability Studies (Minor)

+

Earth Sciences
+Economics
+Engineering
+English
+Environmental and Climate Humanities (Minor)
+Environmental Science
+Environmental Studies
+European and Russian Studies

+

Film Studies
+Food Science
+French

+

General Studies
+Geography
+Geomatics
+German (Minor)
+Global and International Studies
+Greek and Roman Studies

+

Health Sciences
+History
+History and Theory of Architecture
+Human Rights and Social Justice
+Humanities

+

Indigenous Studies
+Industrial Design
+Information Technology
+Integrated Science
+International Business
+Italian (Minor)

+

Japanese Language (Minor)
+Journalism
+Journalism and Humanities

+

Korean Language (Minor)

+

Latin American and Caribbean Studies
+Law
+Linguistics (Bachelor of Arts)
+Linguistics (Bachelor of Science)

+

Mandarin Chinese (Minor)
+Mathematics and Statistics
+Media Production and Design
+Medieval and Early Modern Studies (Minor)
+Music

+

Nanoscience
+Neuroscience
+News Media and Information (Minor)
+Nursing

+

Open Studies (B.A. and B.Sc.)

+

Philosophy
+Physics
+Political Science
+Post-Baccalaureate Diploma in Accounting
+Post-Baccalaureate Diploma in Art History
+Post-Baccalaureate Diploma in Cognitive Science
+Post-Baccalaureate Diploma in Economics
+Post-Baccalaureate Diploma in Film Studies
+Post-Baccalaureate Diploma in History and Theory of Architecture
+Post-Baccalaureate Diploma in Religion
+Psychology
+Public Affairs and Policy Management

+

Religion
+Russian (Minor)

+

Sexuality Studies (Minor)
+Social Work
+Sociology
+Spanish (Minor)

+

Technology, Society, Environment Studies (Minor)

+

Undeclared

+

Women's and Gender Studies

+
+ + +
+
+ +
+ +
+ + + + + + + + + + +Back to Top + + + + + diff --git a/scripts/output/courses-scraped.json b/scripts/output/courses-scraped.json new file mode 100644 index 0000000..e69de29 diff --git a/scripts/scrape-courses.test.ts b/scripts/scrape-courses.test.ts new file mode 100644 index 0000000..83abd84 --- /dev/null +++ b/scripts/scrape-courses.test.ts @@ -0,0 +1,62 @@ +import * as scraper from "./scrape-courses" +import fs from "fs" +import * as cheerio from "cheerio" +import type {Program} from "./scrape-courses" + +/** + * In production, programs are fetched dynamically: + * const programsHtml = await cheerio.fromURL("https://calendar.carleton.ca/undergrad/undergradprograms/"); + * const programs = scraper.getPrograms(programsHtml); + * + * For testing, we use local fixtures with hardcoded URLs instead: + */ +let programsForTest: Record = { + "Computer Science" : { + url: "scripts/fixtures/cs_courses.html", + courses: [] + }, + "Mathematics and Statistics" : { + url: "scripts/fixtures/MathStats_courses.html", + courses: [] + } +} + +/** + coursesScrapeTest is a test of reading courses for the programs fetched previously. It uses downloaded versions of programs' pages from the calendar website. + */ +function coursesScrapeTest() { + for (const program of Object.values(programsForTest) as Program[]) { + + const htmlContent = fs.readFileSync(program.url, "utf-8") + const programHtml = cheerio.load(htmlContent) + + const courses = programHtml("div.courseblock"); + courses.each((_, ele) => { + const course = programHtml(ele); + + try { + const courseData = scraper.buildCourseData(course); + program.courses.push(courseData) + } catch (err) { + console.error("Could not parse course data:", err, "\nHTML:", course.html()) + } + + }) + } + + fs.writeFileSync( + "scripts/output/courses-scraped.json", + JSON.stringify(programsForTest, null, 2), + "utf-8" + ) +} +coursesScrapeTest(); + +function programsScrapeTest() { + const htmlContent = fs.readFileSync("scripts/fixtures/programsPage.html", "utf-8") + const programsHtml = cheerio.load(htmlContent) + const programs = scraper.getPrograms(programsHtml) + console.log("Programs scraped & saved: ") // only saves programs in the programsToScan scan within scrape-courses.ts as it uses the script in scrape-courses.ts + console.log(programs) +} +programsScrapeTest(); \ No newline at end of file diff --git a/scripts/scrape-courses.ts b/scripts/scrape-courses.ts new file mode 100644 index 0000000..a4c85a8 --- /dev/null +++ b/scripts/scrape-courses.ts @@ -0,0 +1,195 @@ + +import * as cheerio from "cheerio" +import fs from "fs" + +import type {Course} from "../src/types/course" + +/** + * Represents an academic program with its catalog URL and list of associated courses. + */ +export type Program = { + url: string, + courses: Course[]; +} + +/** + * Normalizes a string by replacing non-breaking and zero-width spaces with regular spaces, + * collapsing whitespace runs, and trimming leading/trailing whitespace. + * + * @param s - The raw string to clean. + * @returns The cleaned, normalized string. + */ +const clean = (s: string) => + s + .replace(/[\u00a0\u200b]/g, " ") + .replace(/\s+/g, " ") + .trim() + +/** + * The set of program names to scrape, as they appear on the Carleton undergraduate programs page. + * @see {@link https://calendar.carleton.ca/undergrad/undergradprograms/} + */ +const programsToScan: Set = new Set([ + "Computer Science", + "Mathematics and Statistics" +]) + +/** + * Extracts the programs matching {@link programsToScan} from the Carleton undergraduate programs + * listing page and returns them as a keyed record. + * + * @param programsHtml - A Cheerio instance loaded with the HTML of the Carleton undergraduate programs page. + * @returns A promise resolving to a record mapping program names to their {@link Program} objects. + * + * @example + * const $ = await cheerio.fromURL("https://calendar.carleton.ca/undergrad/undergradprograms/"); + * const programs = await getPrograms($); + * // programs["Computer Science"] => { url: "https://...", courses: [] } + */ +export function getPrograms(programsHtml: cheerio.CheerioAPI) : Record { + let programs: Record = {}; + const programsList = programsHtml("div.page_content a") + programsList.each((_, ele) => { + const programLinkEle = programsHtml(ele); + if (programsToScan.has(programLinkEle.text())){ + programs[programLinkEle.text()] = { + url: `https://calendar.carleton.ca${programLinkEle.attr("href")}`, + courses: [] + } + }; + }) + + return programs; +} + +/** + * Parses a Cheerio element representing a single course block and extracts its structured data, + * including code, title, credits, description, prerequisites, and preclusions. + * + * @param course - A Cheerio-wrapped element for a `.courseblock` div. + * @returns A {@link Course} object populated with the parsed course data. + * + * @throws Will not throw directly, but callers should handle potential parse failures + * (e.g. missing DOM elements) by wrapping in try/catch. + * + * @example + * const courseData = buildCourseData(programHtml(".courseblock").first()); + */ +export function buildCourseData(course: cheerio.Cheerio): Course { + let precludes: string[] = []; + let prereqRaw = null; + + if (course.text().includes("Precludes additional credit for")){ + let precludeString = course.html() + + if (precludeString){ + precludeString = precludeString.split("Precludes")[1] + if (precludeString.includes("Prerequisite(s):")){ + const splitString = precludeString.split("Prerequisite(s):") + precludeString = splitString[0]; + prereqRaw = splitString[1].split(" { + const title: any = precHtml(ele).attr("title"); + precludes.push(clean(title)) + }) + } + + } else if (course.text().includes("Prerequisite(s):")){ + const infoHtml = course.html() + if (infoHtml) { + prereqRaw = infoHtml.split("Prerequisite(s):")[1].split("): Promise { + for (const program of Object.values(programs) as Program[]) { + const programHtml = await cheerio.fromURL(program.url+"#coursesinventory"); + const courses = programHtml("div.courseblock"); + + courses.each((_, ele) => { + const course = programHtml(ele); + + try { + const courseData = buildCourseData(course); + program.courses.push(courseData) + } catch (err) { + console.error("Could not parse course data:", err, "\nHTML:", course.html()) + } + }) + } +} + +/** + * Entry point for the scraper. Fetches the Carleton undergraduate programs page, + * extracts matching programs, collects their courses, and writes the result to + * `scripts/output/courses-scraped.json`. + * + * @returns A promise that resolves when the output file has been written. + */ +async function scrape(): Promise { + const programsHtml = await cheerio.fromURL("https://calendar.carleton.ca/undergrad/undergradprograms/") + + let programs: Record = getPrograms(programsHtml); + await getProgramCourses(programs); + + fs.writeFileSync( + "scripts/output/courses-scraped.json", + JSON.stringify(programs, null, 2), + "utf-8" + ) +} + +scrape().catch((err) => { + console.error("Scrape failed:", err); + process.exit(1); +}); \ No newline at end of file