The 2003 Computer Science Curriculum
Summary of Changes
Contents
Changes to the core courses
This section describes the main changes to our core courses.
The following table summarizes these changes:
Table 1:
Summary of core changes
|
Old Requirements |
New Requirements |
| C1 |
CSC228H |
CSC343H |
| C2 |
CSC238H |
(CSC165H + 236H) or CSC240H |
| C3 |
CSC270H |
CSC207H |
| C4 |
CSC364H |
CSC363H |
| C5 |
CSC378H |
CSC263H |
| C6 |
(nothing) |
CSC373H |
| C7 |
STA107H + 257H |
STA247H, for most programs |
Let's look at those changes in a little more detail.
C1.
CSC228H will be eliminated and CSC343H will replace it in all programs.
-
CSC228H has become an anachronism.
-
The most important material from the course is covered elsewhere:
- hashing and B-trees is covered in CSC263H, although as
memory-resident data structures rather than as file
structures;
- the introductory database material (and more) is covered in
CSC343H;
- the most important material about managing data in files is
covered in CSC443H.
- Students will gain experience with large programs in
CSC207H.
-
CSC343H becomes the new required database course for specialists.
(CSC443H will be required only in the Information Systems
program; it will be optional in the Comprehensive Option,
Software Engineering and in the Major.)
C2.
A new course, CSC165H will be added to all programs.
CSC238H will be split to take into account CSC165H.
-
CSC165H (Mathematical Expression and Reasoning for Computer Science)
is an introduction to understanding, using, and developing precise
expressions of mathematical ideas.
-
It was introduced to better prepare students for the "theory"
courses such as CSC236H and CSC363H, similarly to the way CSC108H
prepares students for the programming they will have to do in
CSC148H and beyond.
-
It was taught for the first time in Winter 2003, and will become
part of our programs beginning in 2003/04.
-
At the same time, CSC238H will be split into two versions.
- CSC236H is designed for students who have taken CSC165H.
- CSC240H is designed for students who have particularly strong
mathematical background and are comfortable skipping CSC165H.
It covers, quickly, some of the key material from CSC165H, and
skips the rest.
-
We expect that the majority of students will take CSC165H followed
by CSC236H.
C3.
CSC270H will be eliminated and a new course, CSC207H, will take its
place in our programs.
-
CSC270H contains too many different topics that are covered in
insufficient depth.
-
Most of the course content has been redistributed:
- the material on number representations and floating-point
arithmetic has been moved to the new CSC165H;
- the material on graph algorithms has been moved to the new
CSC263H;
- the material on dynamic programming has been moved to the new
CSC373H;
- the material on simulation is already covered in CSC354H.
-
CSC207H is an introduction to software design and development.
It was introduced to teach fundamental tools and techniques of
developing software, and to better prepare students for large
programming assignments in their later courses.
C4.
CSC364H will be refocused, and hence renumbered to CSC363H.
-
Now that it doesn't have to cover algorithm design (which will be
covered in CSC373H), the course can focus on computability and
complexity.
-
Incidentally, this is the way that these topics are most often
covered at other universities.
C5.
CSC378H will be eliminated, and a new course, CSC263H (Data Structures
and Analysis), will take its place in all programs.
-
The material will stay essentially the same.
-
However, a few of the more difficult topics (such as randomized
algorithms) will be covered in CSC363H instead.
-
The focus of CSC263H will be less theoretical and the course will
cover implementation details.
C6.
CSC373H (Algorithm Design Techniques) will be introduced and will be
required in many programs.
-
This course brings together material on techniques such as greedy
algorithms and dynamic programming that is currently distributed
across a number of courses (primarily CSC270H and CSC364H), as well
as related analysis techniques (currently covered in CSC238H and
CSC378H).
C7.
The statistics courses will be rationalized, and program requirements
updated accordingly.
-
STA107H has been removed from our programs.
-
Two new courses will be offered by the Statistics department:
STA247H and STA248H.
These courses were designed specifically for computer science students.
STA247 provides an introduction to probability theory and its
applications in computer science, while STA248 focuses on statistics.
-
With the existence of these more focused courses, we have been able
to reduce
the number of statistics courses required in the Comprehensive
Option, Information Systems and Software Engineering
from two to one, STA247H.
The Major will require one, STA247H, as well.
-
The program in Human-Computer Interaction continues to require two
STA courses because additional knowledge is needed to support its
empirical, experimental focus.
-
Note that some of our optional courses, such as CSC354H, CSC411H,
and CSC428H, require STA248H.
back to the top
Other changes
Regular and Enriched courses.
-
Four courses in the new curriculum will be offered in two versions
("regular" and "enriched"):
CSC(165H,236H)/240H, CSC263H/265H, CSC363H/365H, CSC373H/375H.
-
This is similar to the current division between CSC336H and the more
advanced pair CSC350H/351H.
-
The final digit in most of the enriched courses is a "5".
However, some enriched courses don't end with a "5" (e.g.,
CSC240H) and some courses that end with a "5" are not enriched
(e.g., CSC165H).
So many course numbers are in use or have been used in the past that
there was no digit we could use to uniquely identify enriched
courses.
-
The enriched courses will cover the same topics as the regular
versions, but at a faster pace, in more depth, and with more
challenging assignments.
-
These courses are intended for students with a strong mathematical
background.
CSC369H (Operating Systems) replaces CSC468H.
-
CSC369H will cover basic principles of operating systems, including
concurrency issues.
-
With this material covered in third year, there is room for a
second, more advanced course in operating systems, CSC469H.
New courses.
-
Independent of these core curriculum revisions, a number of exciting
new courses have recently been introduced, such as
- CSC309H (Programming on the Web),
- CSC320H (Introduction to Visual Computing),
- CSC321H (Introduction to Neural Networks and Machine
Learning),
- CSC330H (Logical Specifications),
- CSC411H (Machine Learning and Data Mining),
- CSC412H (Uncertainty and Learning in Artificial
Intelligence),
- CSC420H (Introduction to Image Understanding),
-
These courses reflect the diverse research interests of our faculty.
Program changes.
-
All programs were revised to accommodate the
core changes
listed above, and some additional fine-tuning.
-
The Major program, however, has been more substantially revised.
Several choices are more constrained than they were, to ensure that
all students take the courses that have emerged as core.
There is still wide selection in 4 of the 16 half-courses in the
program.
back to the top
Things that are not changing
Most other aspects of our curriculum have not changed.
For instance the writing requirement is as it was.
To check other components of your program, please refer to the
Arts
and Science Calendar.
It is the definitive reference.
back to the top
New prerequisite diagram
This diagram shows core CS courses as well as a
few others that have been affected by the proposal.
For simplicity, the diagram shows only the non-enriched versions of
courses.
Courses are aligned in columns to show the earliest term in which a
student may take the course.
Students who choose CSC150H over CSC107H/108H plus CSC148H
will be one term ahead of the diagram
(and similarly for students who choose CSC240H
instead of CSC165H plus CSC236H).
However, you should not take CSC150H and 240H merely to get ahead.
These courses are appropriate only for
specific types of students:
CSC150H is designed for students with programming background
equivalent to CSC108H, but in a language that is not object-oriented.
CSC240H is designed for students with very strong mathematical
background.
back to the top
Return to the contents
(if your browser does not support frames).
© Copyright 2003 by the
Department of Computer Science.
last updated at 12:25 (EST) on Tue 12 Dec 2006