A Comprehensive Program For A Bachelor of Computer Science Degree

Keith Geddes, Ian Munro, Dale Nesbitt, Dale Schuurmans, Troy Vasiga

December 12, 2001

Summary

The current BMath (CS) degree uses a comprehensive approach by specifying a core of CS and Math courses through third year. We have maintained this approach in designing a Bachelor of Computer Science (B.CS) degree, reducing the Math content and tailoring it to CS needs. We feel it maintains the standard of broad coverage of Computer Science upon which the reputation of our undergraduate degree has been built, while permitting students to make their own choices of ancillary material. Furthermore, it is easily adaptable to joint programs with other appropriate disciplines. The number of required Math courses is reduced from 11 to 7, and the number of core CS courses goes up slightly to 11.5 (augmented by a quarter-credit course on CS as a discipline and a profession). The total number of CS courses required for graduation has increased from 15 to 16.5. We propose distribution requirements on the remaining 17 elective courses. The BMath (CS) program remains unchanged.

Index

1. Introduction
2. The comprehensive program proposal
3. Details of B.CS proposal
3.1 Math content
3.2 Distribution requirements
3.3 Implications for other programs

1. Introduction

In designing a B.CS satisfying the comprehensive model, we started with the assumption that the current CS core of the BMath(CS) does what we want. It is a good program offering a solid grounding in the aspects of computer science we feel all of our students should be exposed to. We have reduced the amount of required Math content and redesigned some of the courses to more directly support and add value to CS content. We believe this design encourages the possibility of interdisciplinary programs. It is easier for students to obtain minors, and easier to develop named programs between CS and other disciplines. The overcrowded nature of the Bioinformatics program will be eased, and we foresee possible programs with Cognitive Science, Fine Arts, and AHS (Health Informatics).

2. The comprehensive program proposal

Below we describe the requirements for the current BMath(CS) and the proposed B.CS degree, as structured by the checklists in the CS Undergraduate Handbook. Translation of these into calendar format is straightforward. The description is followed by notes pointing to more detailed discussions in Section 3 of particular suggested changes.

Current BMath(CS) degree

11 Math courses: Math 135, 136, 137, 138, 235, 239, Stat 230, 231, 3 others not in CS

11 CS core courses: CS 133, 134, 241, 251, 240, 246, 342, 360, 370, 341, 354

4 CS specialization courses: CS 4xx (three must be 440-489)

10 Non-Math courses

4 Free-Choice courses

New comprehensive B.CS degree:

7 Math courses: DMCS 1, DMCS 2 (see Notes), Calc 1 (M137), Calc 2 (M138), Lin Alg 1 (M 136), Lin Alg 2 (M 235), Probability (Stat 230)

11.5 CS core courses: CS 101 (.25 credit), 133, 134, 241, 251, 240, 246, 341, 342, 354, 360/365, 370

5 CS specialization courses: CS 4xx (3 must be 440-489)

17 elective courses (with distribution requirements)

Proposed Sequence of Courses By Term

1A: DMCS 1, CS 133, Calc 1 (M137), CS 101, 2 electives
1B: DMCS 2, CS 134, CS 251, CS 101 (ctd, .25cr), Calc 2 (M138), 1 elective
2A: CS 240, CS 241, Lin Alg 1 (M136), 2 electives
2B: CS 246, CS 360, Lin Alg 2 (M235), Prob (S230), 1 elective
3A: CS 370, CS 342, 3 electives
3B: CS 341, CS 354, 3 electives
4A: 2 CS 4xx, 3 electives
4B: 3 CS 4xx, 2 electives

Notes:

3. Details of B.CS proposal

3.1 Math content

We have reduced the non-supporting math content of the B.CS, relative to the current B.Math(CS) by removing the three extra non-CS Math courses and the Statistics course (Stats 231). We recognize that the main point of Math 135 is to introduce students to the proper study of mathematics through an easily grasped topic, but we feel that the chosen topics can be shifted to more directly support the CS program. Similarly, some of the topics in Math 239 are not of direct benefit to CS students.

We have chosen to replace these two courses with two courses provisionally titled DMCS 1 and 2 (for "Discrete Mathematics for Computer Scientists"). DMCS 1, taken in 1A, will contain four weeks of logic and Boolean algebra, including coverage of propositional logic and an introduction to the terminology of predicate logic. It continues with five weeks on number theory (integers, congruences, the Euclidean algorithm, and RSA cryptography) whose main goal is to demonstrate proof techniques (necessary and sufficient, induction, contradiction, contrapositive form, proving equivalencies, existence proof, constructive/nonconstructive proofs). The course concludes with three weeks on complex numbers and polynomials.

There is a token week of logic in Math 135, but it does not appear to be given a high priority by instructors. Since the main goal of Math 135 is mathematical maturity, we believe that students taking DMCS 1 will be adequately prepared for Math 136 (Linear Algebra 1).

DMCS 2 continues in 1B with two more weeks of logic, including coverage of predicate logic and deduction systems (modus ponens). This is followed by four weeks on counting, recurrences, and set theory (the pigeonhole principle, permutations and combinations, inclusion/exclusion, posets, set-theoretic notation) and six weeks on graph theory and applications.

3.2 Distribution requirements

With 17 elective courses in the degree, it is important to place some limitations on choice to ensure quality. First of all, at least 8 to 10 courses should be outside the Math Faculty. The requirements below ensure at least 6, but the team was split on the exact number. Beyond that, we decided on the following restrictions.

1. (Depth)
Have a minor, joint, or double in any subject area outside CS, or
2a. (Breadth)
At least two courses from Arts group A (Humanities)
At least two courses from Arts group B (Anthropology, Economics, Geography, Political Science, Psychology, Sociology) or labelled BUS or ACC
At least two courses in the physical sciences
AND
2b. (Depth)
At least four courses numbered 300 or higher

3.3 Implications for other courses and programs

The course CS 101 is modelled on SE 101 and various first-year courses in the Faculty of Engineering designed to bring students together as a class and expose them to some aspects of the discipline and profession. It will be worth a quarter-credit, taken pass/fail, and scheduled into the midterm slot (two hours a week) in weeks when there are no midterms, over the 1A and 1B terms. It could include talks on hot topics in computer science, applications of the discipline, computer science as a career, social, legal, and professional issues.

CS 251, which is now taken in 1B, will gain time because Boolean algebra is covered in DMCS 1 (since Boolean algebra is covered fairly quickly in CS 251 currently, BMath students who do not have DMCS 1 can be assigned extra reading). But it will have to introduce assembly language, which is currently done in 241 at the same time or before 251 is taken (typically, in the 2A term or earlier). So the effect is neutral.

The extra requirement of an additional CS 4xx course should not result in any teaching tasks being added, since most students take five such courses already.

We believe that the Math requirements of the B.CS should be applied to the joint Bioinformatics program, and that the BMath(CS) Bioinformatics option should be removed and replaced by a B.CS Bioinformatics option. We also believe that future interdisciplinary programs (perhaps with Cognitive Science, Fine Arts, or a Health Informatics program with AHS) should be designed using the B.CS as a base.

Due to lack of time, we have not created a 3-year General CS program based on our design. Such a program would probably not be significantly affected by a choice of curricular model for the honours degree.


Comments can be sent to
Prabhakar Ragde (plragde@uwaterloo.ca)