# Bachelor of Computer Science Comparison

November 27, 2011 Leave a comment

### 1. University of Toronto, St. George Campus, Bachelor of Computer Science, Degree Requirement

**Computer Science Specialist (Science program)**

Enrolment in this program requires the completion of 4.0 courses.

(12 full course equivalents [FCEs])

**First year (2.5 FCEs):**

1. (CSC108H1, CSC148H1)/CSC150H1, CSC165H1/CSC240H1; (MAT135H1, MAT136H1)/MAT135Y1/MAT137Y1/MAT157Y1

** Second year (3.5 FCEs):**

2. CSC207H1, CSC209H1, CSC236H1/CSC240H1, CSC258H1, CSC263H1/CSC265H1; MAT223H1/MAT240H1; STA247H1/STA255H1/STA257H1

Notes:

1. Students with a strong background in an object-oriented language such as Python, Java or C++ may omit CSC108H1 and proceed directly with CSC148H1. There is no need to replace the missing half-credit; however, please base your course choice on what you are ready to take, not on “saving” a half-credit.

2. CSC150H1 is an accelerated alternative to CSC108H1 and CSC148H1, intended for students with previous programming experience in a procedural language. If you take CSC150H1 instead of CSC108H1 and CSC148H1, you do not need to replace the missing half-credit; but please see Note 1.

3. CSC240H1 is an accelerated and enriched version of CSC165H1 plus CSC236H1, intended for students with a strong mathematical background, or who develop an interest after taking CSC165H1. If you take CSC240H1 without CSC165H1, there is no need to replace the missing half-credit; but please see Note 1.

4. Students may not omit CSC165H1 and proceed directly to CSC236H1. Either (CSC165H1 and CSC236H1), or CSC240H1 is required for program completion. CSC165H1 is different from CSC108H1 in this respect.

5. Consult the Undergraduate Office for advice about choosing among CSC108H1, CSC148H1, and CSC150H1, and between CSC165H1 and CSC240H1.

**Later years (6 FCEs):**

3. CSC369H1, CSC373H1/CSC375H1

4. 1.5 FCEs from the following: any 400-level CSC course; BCB410H1, BCB420H1, BCB430Y1, with not more than 1.0 FCE from CSC490H1, CSC491H1, CSC494H1, CSC495H1, BCB430Y1

5. 1.5 additional FCEs from the following: any 300+level CSC course; BCB410H1, BCB420H1, BCB430Y1; ECE385H1, ECE489H1

6. 2 additional FCEs from the following list:

CSC: any 300-/400-level

BCB410H1, BCB420H1, BCB430Y1

ECE385H1, ECE489H1

MAT224H1, MAT235Y1/MAT237Y1/MAT257Y1, any 300-/400-level except MAT329H1, MAT390H1, MAT391H1

STA248H1/STA261H1, any 300-/400-level

The choices in 4, 5 and 6 must satisfy the requirement for an integrative, inquiry-based activity by completing one of the following half-courses: CSC404H1, CSC420H1, CSC454H1, CSC490H1, CSC491H1, CSC494H1, CSC495H1

This requirement may also be met by participating in the PEY (Professional Experience Year) program.

**Choosing courses**

This program offers considerable freedom to choose courses at the 300+level, and you are free to make those choices on your own. We are eager to offer guidance, however, and both our Undergraduate Office and individual faculty members are a rich source of advice.

We have also created a collection of what we call “concentrations”: sets of courses that direct you toward expertise in particular areas of Computer Science, such as game design, theory of computation, human-computer interaction, and many more. These concentrations are meant to help your choice, not to constrain it, and each concentration has at least one faculty member who would be happy to discuss it with you.

To read more about the concentrations, please consult our web site at http://web.cs.toronto.edu/program/ugrad.htm

### 2. McGill University, Computer Science

http://www.cs.mcgill.ca/prospective-students/undergraduate

- Computer Science (COMP) Faculty
- Bachelor of Science (B.Sc.) – Minor Computer Science (24 credits)
- Bachelor of Science (B.Sc.) – Liberal Program – Core Science Component Computer Science (45 credits)
- Bachelor of Science (B.Sc.) – Liberal Program – Core Science Component Software Engineering (49 credits)
- Bachelor of Science (B.Sc.) – Major Computer Science (63 credits)
- Bachelor of Science (B.Sc.) – Major Computer Science and Biology (73 credits)
- Bachelor of Science (B.Sc.) – Major Computer Science – Computer Games (67 credits)
- Bachelor of Science (B.Sc.) – Major Software Engineering (63 credits)
- Bachelor of Science (B.Sc.) – Honours Computer Science (75 credits)
- Bachelor of Science (B.Sc.) – Honours Software Engineering (75 credits)
- Computer Science (COMP) Related Programs

**3. University of Waterloo, Business Administration and Computer Science Double Degree, Degree Requirement**

This double degree academic plan is administered jointly by the Faculty of Mathematics at the University of Waterloo (Waterloo) and the School of Business and Economics at Wilfrid Laurier University (Laurier). It is a restricted-enrolment plan with admission normally limited to Year One in a fall (September-to-December) term.

Students who successfully complete this plan will be eligible to attend both universities’ convocation ceremonies and be awarded a Waterloo Honours BCS degree and a Laurier Honours BBA degree from Wilfrid Laurier University at the respective convocations. Students may register for this plan at either university. The academic component is the same, regardless of where students are formally registered, but students participate in the co-op process at their home institution. Thus, the degree attached to each student’s registered university is a co-op degree, with the other university’s degree being a regular one.

This academic plan cannot be combined with any other major, minor, or option designation except as described in the notes below.** It requires a minimum of ten full-time academic study terms and successful completion of a minimum of 52 one-term courses (26 units). These 52 courses (26 units) must include 24 specified courses (12 units) taken at Waterloo and 24 specified courses (12 units) at Laurier.** The remaining four elective courses (two units) may be taken at either university.

For Waterloo-registered students, the co-op process involves four (or five at a student’s discretion) co-op work terms intermixed with study terms.** The first of these work terms occurs during the May-to-August period between the second and third study terms.** The complete sequencing of terms for Waterloo-registered students is listed in the Study/Work Sequence section. Students in this plan will be required to pay six co-op fees, which are usually assessed in the first three years of study.

For Laurier-registered students, the co-op process involves three (or four at a student’s discretion) co-op work terms intermixed with the ten study terms. The first of these work terms occurs during the January-to-April period between the third and fourth study terms. The earlier May-to-August period between the second and third study terms is an “off” term (where students are on their own for the term, similar to regular students). With the exception of this first May-to-August term being an “off” term rather than a co-op work term, the term sequencing for Laurier-registered students is identical to the one for Waterloo-registered students.

With the sequencing of study terms and work terms indicated above, the normal duration for this plan is four and two-thirds calendar years (or five calendar years at a student’s discretion). Only under especially mitigating circumstances, and with the approval of both universities, can the term sequencing attached to the double degree plan be altered, and such instances will usually result in a delay (possibly as much as one calendar year) of graduation date.

All double degree plan students, regardless of their home university affiliation, are required to satisfy all term-by-term progression requirements of both Waterloo’s Faculty of Mathematics and Laurier’s School of Business and Economics to remain eligible to continue in the plan, and to meet all graduation requirements of both institutions to be eligible for the two degrees. More specifically, students must ensure that their course selection each term, their academic performance level, and their academic conduct in general, comply with all the policies, procedures, regulations and requirements of both universities. Failure to do so will normally result in students being required to withdraw from the double degree plan. Such students may remain eligible to enrol in the (single-degree) Laurier BBA program (although not necessarily in co-op) or to enrol in another appropriate (single-degree) Waterloo BCS or BMath plan respectively, depending upon their individual circumstances.

In addition to satisfying all of the common degree requirements listed in Table I in “Degree Requirements,” students in this double degree plan must successfully complete all of the required courses specified below. Any questions or concerns about any of the overall BCS degree requirements or any of the specified courses should be directed to one of the plan’s academic advisors at Waterloo.

**From Waterloo**

One of

CS 115 Introduction to Computer Science 1

CS 135 Designing Functional Programs

CS 145 Designing Functional Programs (Advanced Level)

One of

CS 136 Elementary Algorithm Design and Data Abstraction

CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level)

All of

MATH 127 Calculus 1 for the Sciences or MATH 137 Calculus 1 for Honours Mathematics or MATH 147 Calculus 1 (Advanced Level)

MATH 128 Calculus 2 for the Sciences or MATH 138 Calculus 2 for Honours Mathematics or MATH 148 Calculus 2 (Advanced Level)

MATH 135 Algebra for Honours Mathematics or MATH 145 Algebra (Advanced Level)

MATH 136 Linear Algebra 1 for Honours Mathematics or MATH 146 Linear Algebra 1 (Advanced Level)

MATH 239 Introduction to Combinatorics or MATH 249 Introduction to Combinatorics (Advanced Level)

STAT 230 Probability or STAT 240 Probability (Advanced Level)

STAT 231 Statistics or STAT 241 Statistics (Advanced Level)

CO 250/CM340 Introduction to Optimization

CM 339/CS 341 Algorithms

CS 240 Data Structures and Data Management

CS 241 Foundations of Sequential Programs

CS 245 Logic and Computation

CS 246 Object-Oriented Software Development

CS 251 Computer Organization and Design

CS 350 Operating Systems

CS 490 Information Systems Management

CS 492 The Social Implications of Computing

ENGL 210F Genres of Business Communication

Four additional CS courses chosen from CS 340-398, 440-489, with at least two chosen from CS 440-489.

The selection of upper-year CS courses must include at least one course from each of at least two of the following area groups:

Systems and SE: CS 343, 349, 442, 444, 445, 446, 447, 450, 452, 454, 456, 457, 458

Applications: CS 348, 448, 473, 476, 482, 483, 486, 488

Mathematical Foundations of CS: CS 360, 365, 370, 371, 462, 466, 467, 475, 487

**From Laurier**

All of

BUS 111W Introduction to Business Organization

BUS 121W Functional Areas of the Organization

BUS 227W Introduction to Financial Accounting

BUS 231W Business Law

BUS 247W Managerial Accounting

BUS 288W Organizational Behaviour 1

BUS 352W Introduction to Marketing Management

BUS 354W Human Resources Management

BUS 362W Building and Managing Products, Services and Brands

BUS 383W Financial Management 1

BUS 385W Operations Management 1

BUS 393W Financial Management 2

BUS 395W Operations Management 2

BUS 398W Organizational Behaviour 2

BUS 481W Business Policy 1

BUS 491W Business Policy 2

ECON 120W Introduction to Microeconomics

ECON 140W Introduction to Macroeconomics

Note:See WLU calendar for above list of courses.

One of

ECON 250W Intermediate Macroeconomic Analysis for Management

ECON 260W Intermediate Microeconomic Analysis for Management

Note: See WLU calendar for above list of courses.

Five additional 300- or 400- level BUS elective courses (2.5 units) taken in third, fourth or fifth year.

**From Waterloo or Laurier **

Four additional elective courses (2.0 units) are required. Students are free to choose their elective courses from either university.

**Notes**

- For details about the various Laurier Honours BBA policies, procedures, regulations, and requirements that apply to this double degree plan, please consult the Laurier Undergraduate Calendar and/or one of the plan’s academic advisors at Laurier.
- Students may, in certain circumstances, be permitted to have one minor or option designation on their Waterloo BCS diploma and transcript. Such a designation must be in a Waterloo discipline outside the areas of study offered by Waterloo’s Faculty of Mathematics and outside those offered by Laurier’s Department of Business, and it cannot duplicate a similar designation on the student’s Laurier academic record. In addition to the approval of the academic unit offering the minor or option, students require the approval of a double degree academic advisor from both Waterloo and Laurier to enrol for such a minor or option designation on their Waterloo academic record. Students wishing to have a minor, option, or specialization designation on their Laurier academic record should consult the Laurier Undergraduate Calendar for details and discuss their situation with an academic advisor from Laurier’s School of Business and Economics. Electing to have a separate minor, option, or specialization designation is not required for students in the double degree plan, and in some cases, satisfying the combined requirements for both the double degree plan and those for an extra designation may require successful completion of more than 52 courses.

### 4. University of Waterloo, Bachelor of Computer, Degree Requirement

This plan is subject to the common degree requirements in Table I in “Degree Requirements.”

One of

CS 115 Introduction to Computer Science 1

CS 135 Designing Functional Programs

CS 145 Designing Functional Programs (Advanced Level)

One of

CS 136 Elementary Algorithm Design and Data Abstraction

CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level)

All of

MATH 127 Calculus 1 for the Sciences or MATH 137 Calculus 1 for Honours Mathematics or MATH 147 Calculus 1 (Advanced Level)

MATH 128 Calculus 2 for the Sciences or MATH 138 Calculus 2 for Honours Mathematics or MATH 148 Calculus 2 (Advanced Level)

MATH 135 Algebra for Honours Mathematics or MATH 145 Algebra (Advanced Level)

MATH 136 Linear Algebra 1 for Honours Mathematics or MATH 146 Linear Algebra 1 (Advanced Level)

MATH 239 Introduction to Combinatorics or MATH 249 Introduction to Combinatorics (Advanced Level)

STAT 230 Probability or STAT 240 Probability (Advanced Level)

STAT 231 Statistics or STAT 241 Statistics (Advanced Level)

CM 339/CS 341 Algorithms

CS 240 Data Structures and Data Management

CS 241 Foundations of Sequential Programs

CS 245 Logic and Computation

CS 246 Object-Oriented Software Development

CS 251 Computer Organization and Design

CS 350 Operating Systems

Three additional CS courses chosen from CS 340-398, 440-489.

Two additional CS courses chosen from CS 440-489.

One additional course chosen from

CO 487/CM 432 Applied Cryptography

CM 461/STAT 440 Computational Inference

CS 440-498

CS 499T Honours Thesis

CS 600- or 700-level courses

(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 undergraduate advisor. Courses in this list may be counted as CS 0.5 units.)

The selection of upper-year CS courses must include at least one course from each of at least two of the following area groups:

Systems and SE: CS 343, 349, 442, 444, 445, 446, 447, 450, 452, 454, 456, 457, 458

Applications: CS 348, 448, 473, 476, 482, 483, 486, 488

Mathematical Foundations of CS: CS 360, 365, 370, 371, 462, 466, 467, 475, 487

The 5.0 non-math units must either be used to satisfy requirements for a minor or a joint honours plan outside the Faculty of Mathematics, or must satisfy the following elective breadth and depth requirements. *(Alternate plans must be approved by a CS advisor.) *

*Elective breadth requirements *

1.0 units from the humanities (subjects from ARTS, CHINA, CLAS, CMW, CROAT, DAC, DRAMA, DUTCH, EASIA, ENGL, FINE, FR, GER, GRK, HIST, HUMSC, ITAL, ITALST, JAPAN, JS, KOREA, LAT, MUSIC, PHIL, POLSH, PORT, REES, RS, RUSS, SPAN, SPCOM, UKRAN)

1.0 units from the social sciences (subjects from AFM, ANTH, APPLS, BUS, ECON, GEOG, HRM, INTST, INTTS, ISS, LS, MSCI, NATST, PACS, PSCI, PSYCH, REC, SMF, SOC, SOCWK, SPD, STV, WS)

0.5 units from the pure sciences (subjects from BIOL, CHEM, EARTH, PHYS, SCI)

0.5 units from the pure and applied sciences (subjects from pure sciences plus ARCH, ENVS, ERS, GERON, HLTH, KIN, PLAN)

Note:No course can be used to satisfy more than one of the above requirements.

*Elective depth requirements *

1.5 units with the same subject, including at least 0.5 units at third-year level or higher

or

1.5 units with the same subject forming a prerequisite chain of length three

This plan is subject to the common degree requirements in Table I in “Degree Requirements.”

### 5. University of Waterloo, Bachelor of Computer Science (Honours Bioinformatics Option)

This decade has seen an exponential growth in the amount of genetic sequence and protein structure data available to biologists. These data have catalyzed a revolution in how biological and medical science is conducted in both academia and industry. However, due to the sheer volume and complexity of the data, modern computational techniques are required to store, manipulate, visualize, and explore it. Bioinformatics is the interdisciplinary area that applies the latest ideas of computer science to this wealth of new data to solve important biological problems, study the interactions of small molecules with biological receptors, and search for novel therapies for disease. It requires a sophisticated understanding of both the problem domain in biology and the appropriate analytical skills in computer science.

Although Bioinformatics is offered in both co-op and regular, it is intended primarily for co-op students. Regular students will not be able to follow a “traditional” term sequence and will definitely need to study in some spring terms.

In conjunction with common degree requirements in Table I in “Degree Requirements,” this plan requires at least 20 units including 1.0 lab units. To continue in any Bioinformatics plan, a student must satisfy the cumulative overall average requirement and cumulative major average requirement for Computer Science of 60%, as specified by the Faculty of Mathematics, and the cumulative major average requirement for Biology of 60%, as specified by the Faculty of Science.

One of

CS 115 Introduction to Computer Science 1

CS 135 Designing Functional Programs

CS 145 Designing Functional Programs (Advanced Level)

One of

CS 136 Elementary Algorithm Design and Data Abstraction

CS 146 Algorithm Design and Data Abstraction (Advanced Level)

All of

MATH 127 Calculus 1 for the Sciences or MATH 137 Calculus 1 for Honours Mathematics or MATH 147 Calculus 1 (Advanced Level)

MATH 128 Calculus 2 for the Sciences or MATH 138 Calculus 2 for Honours Mathematics or MATH 148 Calculus 2 (Advanced Level)

MATH 135 Algebra for Honours Mathematics or MATH 145 Algebra (Advanced Level)

MATH 136 Linear Algebra 1 for Honours Mathematics or MATH 146 Linear Algebra 1 (Advanced Level)

MATH 239 Introduction to Combinatorics or MATH 249 Introduction to Combinatorics (Advanced Level)

STAT 230 Probability or STAT 240 Probability (Advanced Level)

STAT 231 Statistics or STAT 241 Statistics (Advanced Level)

BIOL 130 Introductory Cell Biology

BIOL 130L Cell Biology Laboratory

BIOL 139 Genetics

BIOL 140 Fundamentals of Microbiology

BIOL 140L Microbiology Laboratory

BIOL 208 Analytical Methods in Molecular Biology

BIOL 250 Organismal and Evolutionary Ecology or BIOL 265 Diversity of Life

BIOL 308 Principles of Molecular Biology

BIOL 365 Resources in Bioinformatics

BIOL 465 Current Topics in Bioinformatics

CHEM 120 Physical and Chemical Properties of Matter

CHEM 120L Chemical Reaction Laboratory 1

CHEM 123 Chemical Reactions, Equilibria and Kinetics

CHEM 123L Chemical Reaction Laboratory 2

CHEM 237 Introductory Biochemistry

CHEM 266 Basic Organic Chemistry 1

CM 339/CS 341 Algorithms

CS 240 Data Structures and Data Management

CS 241 Foundations of Sequential Programs

CS 245 Logic and Computation

CS 246 Object-Oriented Software Development

CS 251 Computer Organization and Design

CS 482 Computational Techniques in Biological Sequence Analysis

CS 483 Computational Techniques in Structural Bioinformatics

Recommended courses

BIOL 331 Advanced Cell Biology

BIOL 342 Molecular Biotechnology 1

BIOL 359 Evolution

CHEM 333 Metabolism 1 (for students interested in Biochemistry)

STAT 333 Applied Probability

**Note **

A student can qualify for at most one of the following three degrees, regardless of which courses are taken.

#### Bachelor of Science (Honours Bioinformatics)

This plan requires fulfillment of the core requirements as listed above in Bioinformatics plus the following courses:

All of

BIOL 331 Advanced Cell Biology

BIOL 342 Molecular Biotechnology 1

BIOL 434 Human Molecular Genetics or a fourth-year Biochemistry course

CS 350 Operating Systems

#### Bachelor of Science (Honours Biology and Bioinformatics)

This plan requires fulfillment of the core requirements as listed above in Bioinformatics plus the following courses:

All of

BIOL 331 Advanced Cell Biology

BIOL 342 Molecular Biotechnology 1

BIOL 434 Human Molecular Genetics

Two additional third- or fourth-year Biology or Biochemistry courses.

#### Bachelor of Computer Science (Honours Bioinformatics Option)

This plan requires fulfillment of the core requirements as listed above in Bioinformatics plus the following courses:

All of

CS 350 Operating Systems

All of

Two additional courses from CS 340-398, 440-498, and one additional course from CS 440-498.

Note:At least one of these three courses must be from either the Systems and SE list or the Mathematical Foundations list for the Bachelor of Computer Science.

Recommended courses

CS 348 Introduction to Database Management

CS 486 Introduction to Artificial Intelligence

**Notes **

*Students in Bioinformatics may not claim a Biology minor with a BCS degree;**Students in Bioinformatics may not claim a Computer Science minor with a Bachelor of Science degree.*