Keith Geddes, Ian Munro, Dale Nesbitt, Dale Schuurmans, Troy Vasiga
December 12, 2001
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.
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).
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.
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
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)
1A: DMCS 1, CS 133, Calc 1 (M137), CS 101, 2 electives
Notes:
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.
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.
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.
2. The comprehensive program proposal
Current BMath(CS) degree
New comprehensive B.CS degree:
Proposed Sequence of Courses By Term
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
3. Details of B.CS proposal
3.1 Math content
3.2 Distribution requirements
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
3.3 Implications for other courses and programs
Comments can be sent to Prabhakar Ragde (plragde@uwaterloo.ca)