Metadata
Title
Computer Science
Category
undergraduate
UUID
dbed427da7dd41129efa49dab0e42f7b
Source URL
https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/p...
Parent URL
https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/p...
Crawl Time
2026-03-18T05:15:25+00:00
Rendered Raw Markdown
# Computer Science

**Source**: https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computer-Science-Plan-Requirements.html
**Parent**: https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Bus-Admin-Computer-Sci-Double-Degree-Reqmnt-1.html

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| |  |  | | --- | --- | |  |  | | 2022-2023 | [The Undergraduate Calendar](https://academic-calendar-archive.uwaterloo.ca/) | | - [The Undergraduate Studies Calendar](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/uWaterloo-Undergraduate-Calendar-Access.html) - [General Information](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-General-Information.html) - [Calendar of Events and Academic Deadlines](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/uWaterloo-Calendar-Events-and-Academic-Deadlines.html) - [Admissions](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Admissions.html) - [Fees](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Fees.html) - [Awards and Financial Aid](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Awards-and-Financial-Aid.html) - [Co-operative Education & Career Action](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Co-operative-Education-Career-Action.html) - [University Policies, Guidelines, and Academic Regulations](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Policies-Guidelines-Academic-Regulations.html) - [Faculty of Arts](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Arts.html) - [Faculty of Engineering](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Engineering.html) - [Faculty of Environment](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Environment.html) - [Faculty of Health](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Health.html) - [**Faculty of Mathematics**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/u-Waterloo-Faculty-of-Mathematics.html)  - [About the Faculty of Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-About-the-Faculty-of-Mathematics.html) - [List of Academic Programs/Plans](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-List-of-Academic-Programs-or-Plans.html) - [Admission to Specific Honours Academic Plans](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Admission-Specific-Honours-Academic-Plans.html) - [Bachelor of Computer Science and Bachelor of Mathematics Plan Combinations](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-BCS-and-BMath-Academic-Plan-Combinations.html) - [**Academic Plans and Requirements**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Academic-Plans-and-Requirements.html)  - [Degree Requirements for all Math students](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Degree-Requirements-for-Math-students.html) - [Actuarial Science](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Actuarial-Science-1.html) - [Applied Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Applied-Mathematics-1.html) - [Combinatorics and Optimization](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Combinatorics-and-Optimization1.html) - [Computational Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computational-Mathematics-1.html) - [**Computer Science**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computer-Science-1.html)  - [Admissions](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computer-Science-Admissions.html) - [**Plan Requirements**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computer-Science-Plan-Requirements.html)  - [**Bachelor of Computer Science**](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Bachelor-of-Computer-Science-1.html) - [Bachelor of Computer Science (Data Science)](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Bachelor-of-Computer-Science-Data-Science.html) - [Bachelor of Mathematics (Computer Science)](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Bachelor-of-Mathematics-Computer-Science-1.html) - [Business Administration & Computer Science Double Degree](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Business-Admin-Computer-Sci-Double-Degree-1.html) - [Joint Computer Science (Bachelor of Mathematics)](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Joint-Computer-Science-Bach-of-Math.html) - [Joint Bachelor of Computer Science](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Joint-Bachelor-of-Computer-Science-1.html)  - [Specializations](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computer-Science-Specializations.html) - [Computer Science Minor](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computer-Science-Minor-2.html) - [Computing Minor](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computing-Minor.html) - [Accelerated Master's](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Computer-Science-Accelerated-Masters.html)  - [Computing and Financial Management](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Computing-and-Financial-Management.html) - [Mathematics/Business](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematics-or-Business.html) - [Mathematical Optimization](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematical-Optimization1.html) - [Mathematical Studies](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematical-Studies-1.html) - [Mathematics/Teaching](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Mathematics-or-Teaching.html) - [Plans for Students outside the Mathematics Faculty](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Plans-for-Students-outside-Mathematics-Fac.html) - [Pure Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Pure-Mathematics-1.html) - [Software Engineering](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Software-Engineering.html) - [Statistics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Statistics-1.html)  - [Faculty Policies](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/MATH-Faculty-Policies.html) - [Courses - Faculty of Mathematics](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/Courses-Faculty-of-Mathematics.html) - [Courses - Undergraduate](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Course-Descriptions-Index.html)  - [Faculty of Science](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Faculty-of-Science.html) - [Social Work](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Social-Work.html) - [Minors, Options, Diplomas, Certificates](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Minors-Options-Diplomas-Certificates.html) - [Undergraduate Course Descriptions](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/Course-Descriptions-Index.html) - [Amendments](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/group/uWaterloo-Amendments.html) | |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | | |  | | --- | | Computer Science Plan Requirements | | |  | | --- | | Bachelor of Computer Science | |  | | Students in this academic plan must fulfil all the requirements in [Table 1](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Degree-Requirements-for-Math-students.html#Table%20I) and the following specific requirements:   - One of   - [CS 115](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS115) Introduction to Computer Science 1   - [CS 135](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS135) Designing Functional Programs   - [CS 145](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS145) Designing Functional Programs (Advanced Level) - One of   - [CS 136](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS136) Elementary Algorithm Design and Data Abstraction   - [CS 146](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS146) Elementary Algorithm Design and Data Abstraction (Advanced Level) - One of   - [MATH 127](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH127) Calculus 1 for the Sciences   - [MATH 137](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH137) Calculus 1 for Honours Mathematics   - [MATH 147](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH147) Calculus 1 (Advanced Level) - One of   - [MATH 128](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH128) Calculus 2 for the Sciences   - [MATH 138](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH138) Calculus 2 for Honours Mathematics   - [MATH 148](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH148) Calculus 2 (Advanced Level) - One of   - [MATH 135](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH135) Algebra for Honours Mathematics   - [MATH 145](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH145) Algebra (Advanced Level) - One of   - [MATH 136](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH136) Linear Algebra 1 for Honours Mathematics   - [MATH 146](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH146) Linear Algebra 1 (Advanced Level) - One of   - [MATH 239](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH239) Introduction to Combinatorics   - [MATH 249](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MATH.html#MATH249) Introduction to Combinatorics (Advanced Level) - One of   - [STAT 230](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT230) Probability   - [STAT 240](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT240) Probability (Advanced Level) - One of   - [STAT 231](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT231) Statistics   - [STAT 241](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT241) Statistics (Advanced Level) - All of   - [CS 136L](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS136L) Tools and Techniques for Software Development   - [CS 240](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS240) Data Structures and Data Management   - [CS 241](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS241) Foundations of Sequential Programs   - [CS 245](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS245) Logic and Computation   - [CS 246](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS246) Object-Oriented Software Development   - [CS 251](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS251) Computer Organization and Design   - [CS 341](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS341) Algorithms   - [CS 350](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS350) Operating Systems - Three additional CS courses chosen from CS 340-CS 398, CS 440-CS 489 - Two additional CS courses chosen from CS 440-CS 489 - One additional course chosen from   - [CO 487](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CO.html#CO487) Applied Cryptography   - CS 440-CS 498   - [CS 499T](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CS.html#CS499T) Honours Thesis   - [STAT 440](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STAT.html#STAT440) Computational Inference   - CS 600- or 700-level courses      **Note:** CS 600- or 700-level courses may be taken only if an equivalent 400-level course does not exist and special permission is obtained from the instructor and a [CS academic advisor](https://cs.uwaterloo.ca/office-hours). Courses in this list may be counted as CS 0.5 unit. - 5.0 non-math units, which must satisfy the following elective breadth and depth requirements   - Elective breadth requirements     - 1.0 unit of humanities from: [CHINA](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHINA.html), [CLAS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CLAS.html), [CMW](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CMW.html), [CROAT](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CROAT.html), [DAC](https://ucalendar.uwaterloo.ca/2223/COURSE/course-DAC.html), [DUTCH](https://ucalendar.uwaterloo.ca/2223/COURSE/course-DUTCH.html), [EASIA](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EASIA.html), [ENGL](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENGL.html), [FINE](https://ucalendar.uwaterloo.ca/2223/COURSE/course-FINE.html), [FR](https://ucalendar.uwaterloo.ca/2223/COURSE/course-FR.html), [GER](https://ucalendar.uwaterloo.ca/2223/COURSE/course-GER.html), [GRK](https://ucalendar.uwaterloo.ca/2223/COURSE/course-GRK.html), [HIST](https://ucalendar.uwaterloo.ca/2223/COURSE/course-HIST.html), [HUMSC](https://ucalendar.uwaterloo.ca/2223/COURSE/course-HUMSC.html), [ITAL](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ITAL.html), [ITALST](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ITALST.html), [JAPAN](https://ucalendar.uwaterloo.ca/2223/COURSE/course-JAPAN.html), [JS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-JS.html), [KOREA](https://ucalendar.uwaterloo.ca/2223/COURSE/course-KOREA.html), [LAT](https://ucalendar.uwaterloo.ca/2223/COURSE/course-LAT.html), [MEDVL](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MEDVL.html), [MUSIC](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MUSIC.html), [PHIL](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHIL.html), [PORT](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PORT.html), [REES](https://ucalendar.uwaterloo.ca/2223/COURSE/course-REES.html), [RS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-RS.html), [RUSS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-RUSS.html), [SI](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SI.html), [SPAN](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SPAN.html), [SPCOM](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SPCOM.html), [THPERF](https://ucalendar.uwaterloo.ca/2223/COURSE/course-THPERF.html), [VCULT](https://ucalendar.uwaterloo.ca/2223/COURSE/course-VCULT.html)     - 1.0 unit of social sciences from: [AFM](https://ucalendar.uwaterloo.ca/2223/COURSE/course-AFM.html), [ANTH](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ANTH.html), [APPLS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-APPLS.html), [ARBUS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ARBUS.html), [BET](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BET.html), [BUS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BUS.html), [COMM](https://ucalendar.uwaterloo.ca/2223/COURSE/course-COMM.html), [ECON](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ECON.html), [ENBUS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENBUS.html), [GEOG](https://ucalendar.uwaterloo.ca/2223/COURSE/course-GEOG.html), [GSJ](https://ucalendar.uwaterloo.ca/2223/COURSE/course-GSJ.html), [HRM](https://ucalendar.uwaterloo.ca/2223/COURSE/course-HRM.html), [INDEV](https://ucalendar.uwaterloo.ca/2223/COURSE/course-INDEV.html), [INDG](https://ucalendar.uwaterloo.ca/2223/COURSE/course-INDG.html), [INTST](https://ucalendar.uwaterloo.ca/2223/COURSE/course-INTST.html), [LS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-LS.html), [MSCI](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MSCI.html), [PACS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PACS.html), [PSCI](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PSCI.html), [PSYCH](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PSYCH.html), [REC](https://ucalendar.uwaterloo.ca/2223/COURSE/course-REC.html), [SDS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SDS.html), [SMF](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SMF.html), [SOC](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SOC.html), [SOCWK](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SOCWK.html), [STV](https://ucalendar.uwaterloo.ca/2223/COURSE/course-STV.html)     - 0.5 unit of pure sciences from: [BIOL](https://ucalendar.uwaterloo.ca/2223/COURSE/course-BIOL.html), [CHEM](https://ucalendar.uwaterloo.ca/2223/COURSE/course-CHEM.html), [EARTH](https://ucalendar.uwaterloo.ca/2223/COURSE/course-EARTH.html), [PHYS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PHYS.html), [SCI](https://ucalendar.uwaterloo.ca/2223/COURSE/course-SCI.html)     - 0.5 unit pure and applied sciences from: pure sciences plus [ENVS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ENVS.html), [ERS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-ERS.html), [HEALTH](https://ucalendar.uwaterloo.ca/2223/COURSE/course-HEALTH.html), [KIN](https://ucalendar.uwaterloo.ca/2223/COURSE/course-KIN.html), [MNS](https://ucalendar.uwaterloo.ca/2223/COURSE/course-MNS.html), [PLAN](https://ucalendar.uwaterloo.ca/2223/COURSE/course-PLAN.html)   - Elective depth requirements     - 1.5 units with the same subject, including at least 0.5 unit at 300-level or higher, **or**     - 1.5 units with the same subject forming a prerequisite chain of length three  Breadth and Depth Notes  1. Alternate course selections must be approved by a CS academic advisor. 2. No course can satisfy more than one of the breadth requirements. 3. Courses with substantial math or computer science content, regardless of subject, do not satisfy the elective breadth or depth requirement. Students may wish to consult with the [CS advisors](https://cs.uwaterloo.ca/office-hours) about specific courses. 4. Courses from the "List 1: First Course" for the [Undergraduate Communication Requirement](https://academic-calendar-archive.uwaterloo.ca/undergraduate-studies/2022-2023/page/MATH-Degree-Requirements-for-Math-students.html) do not satisfy the humanities breadth requirement. Courses found only in the "List 2: Second Course" list can satisfy both the humanities breadth requirement and the Undergraduate Communication Requirement. | | | | ---   Office of the Registrar  University of Waterloo  Ira G. Needles Hall  200 University Avenue West  Waterloo, Ontario, Canada N2L 3G1   519-888-4567 | | | |