Contents Preface The Department Course Descriptions Degree Requirements Degree Checklists

 1998/1999 Undergraduate Calendar

The Department

previous: Preface || page 1 || page 2 ||

Internal Links:

The Department

Office Hours

Administrative Office: (126 CCB)

Undergrad Programme Office: (125 CCB)

York University Web Site

Computer Science Web Site

Mailing Address

Department of Computer Science
126 CCB,
York University
4700 Keele Street
Toronto, Ontario, M3J 1P3

Department Chair: Michael Jenkin
Director of Undergraduate Studies: Peter Cribb

Faculty Name Office (CCB) email (
M. Aboelaze (on leave) 344 aboelaze
J. Amanatides 254 amana
E. Arjomandi 222 eshrat
T. Brecht 220 brecht
P. Cribb 150 peterc
X. Deng (on leave) 354 deng
P. Dymond 260 dymond
J. Edmonds 350 jeff
J. Gryz 236 jarek
M. Jenkin 126 jenkin
Y. Lesperance 342 lesperan
J. Liu 224 joseph
E. Milios 256 eem
A. Mirzaian 352 andy
J. Ostroff 248 jonathan
R. Paige 250 paige
P. H. Roosen-Runge 319 Calumet peter
H. Sandhu 218 hsandhu
M. Spetsakis 252 minas
Z. Stachniak 214 zbigniew
A. Wallis 134 tony
R. M. Wharton 136 michael
J. Xu 346 jxu
Adjunct Faculty
J. Cordy
N. Graham
H. Levesque
H. Roumani
G. Turpin
Technical Support
S. Balkissoon
J. Keltz
M. Robinson
N. Wilson (Computer Development Manager)
U. Yigit (Computer Systems Administrator)
Administrative Support
M. Baptist
C. Masaro (Administrative Assistant)
S. Fyffe (Undergraduate Programme Assistant)
P. Plummer (Graduate Programme Assistant)

CSAC Accreditation

The Department is pleased to announce that all Computer Science honours programmes offered in the Faculty of Pure and Applied Science and the Faculty of Arts, with the exception of the BA honours minor, have been accredited by the Computer Science Accreditation Council (CSAC).

The Computer Science Accreditation Council is an autonomous body established by the Canadian Information Processing Society (CIPS). The purpose of accreditation is to identify those institutions that offer computer programmes worthy of recognition. The objectives of the Council are:

The report of the accreditation committee notes about the department:

Admission to the Computer Science Major

The educational background of students who seek admission to a computer science degree programme generally belongs to one of two categories. The requirements for each are outlined below.

In each case a student must first have been admitted to either the Faculty of Arts (for the BA degree) or the Faculty of Pure and Applied Science (for the B.Sc. degree). Each Faculty has certain admission requirements that must be met. The requirements described below are in addition to these faculty admission requirements (which are not described here).

  1. Entry with only secondary school background
    If a student's only academic background is at the OAC level admission to a computer science major requires:

    • an overall OAC average of 77%.
    • at least 2 mathematics OACs (one must be calculus) with an average over all mathematics credits (i.e. an average over all 3 if 3 OACs were taken) of 75% with no mathematics grade less than 65%.

    For students from outside Ontario with only secondary school credits the York Admissions Office will assess the equivalency of that educational background.

  2. Entry with post-secondary academic background
    This category includes the following:

    • students who are already admitted to York and wish to change their major.
    • students who transfer from other universities in Canada.
    • students who have completed courses at any post-secondary educational institution anywhere in the world.
    • students who have completed courses at a community college in Ontario or CEGEP in Quebec.

    Admission to a computer science degree programme requires:

    • a B (6.0) average over all courses taken.
    • at least 6 credits of mathematics, with a C+ (5.0) average over all major stream mathematics credits taken and/or a B (6.0) average over all service stream mathematics credits.
    The York Admissions Office will assess the conversion of grades from other institutions to the York grade scale.

If you have any post-secondary education you may not gain admission under category 1 above.

Changing your Major to Computer Science?
Please note that category 2 above applies to you if you are already a York student and want to change your major - that is:

NOTE: Students who have a post-secondary education from an institution other than York, and who then take courses at York before applying to major in computer science, must meet the B (6.0) average in York courses. That is, the B average will be applied to both the previous academic record and to the York academic record.

Access to Courses

Voice Response Enrolment System

Students enrol in courses using the York University Voice Response Enrolment System, typically in the few months prior to the start of each term. Computer science courses frequently reach their class size maximum, in which case the following procedures are followed.

Waiting Lists

Full courses are removed from VRES and students are invited to apply via a waiting list form. Waiting list applications are accepted up until the middle of the first week of term. A waiting list application does not constitute enrolment in a course. The student must check with the Department as to the result of their application and use a VRES Special Permission Window assigned to them if their application was successful.

Processing Waiting Lists
Waiting list applications are not treated on a first-come first-served basis. Decisions are made according to the following criteria:

Limits on Course Enrolment

A maximum of two 2000-level computer science courses in one term is permitted.

Three 3000- or 4000-level courses per term is normal. Specialized honours students may take four upper level computer science courses. Under no circumstances will students be permitted to take five computer science courses in one term. If any student enrols in more than four upper year or two 2000-level computer science courses per term they will be removed from whichever courses the department requires space. The Department also reserves the right to move students from a course in one term to the same course in the next term should such steps be necessary to ensure equitable access to courses. This includes movement from fall to winter or winter to summer.


Students are responsible for ensuring they enrol only in courses for which they meet the prerequisites. Prerequisites include a minimum GPA over computer science courses. Students will be removed from a course if they do not meet the prerequisites, at any time before or during the course.

Courses Outside the Department

Students wishing to take courses at Atkinson College or at another institution should consult the Director of Undergraduate Studies for advice. A list of equivalent courses at Atkinson College is available at the Office of Science Academic Services.

For the purpose of satisfying departmental degree requirements, the number of Computer Science (COSC) credits taken outside the Department of Computer Science may not exceed 6 credits in core courses and 12 credits in total.

Core Courses

Core courses include all 1000- and 2000-level computer science courses, the 3000-level computer science courses satisfying the breadth requirement, and for honours programmes, any required 3000- and 4000-level computer science courses, ie. COSC3101 3.0, COSC4101 3.0, COSC4111 3.0.

Academic Changes for 1998/1999

  1. Removal of Ordinary programmes

    Pending Senate approval, beginning in 1998/99, the Department of Computer Science will offer only Honours programmes. However, students who declared Computer Science as a major prior to 1998/99 will be permitted to continue and graduate in an Ordinary programme.

  2. New GPA prerequisite in COSC

    Due to the removal of the Ordinary programmes, the COSC GPA prerequisite in the general prerequisites for each level has been changed to 4.5. Students completing an Ordinary programme may proceed under the old COSC GPA prerequisite. If the removal of Ordinary programmes is not approved, the COSC GPA prerequisite will remain as 5.0 for 4000-level courses and 4.0 for lower level courses.

  3. Non-COSC, non-MATH courses

    All Honours programmes, with the exception of the BA minor, require completion of at least 30 credits that are not COSC and not MATH.

  4. Organisation and Management Seminar Course

    There is a new course COSC3002 1.0, Organisation and Management Seminar. All students are encouraged to take this course since it provides important insight into the social responsibilities of a computer science professional.

  5. The Switch to Java

    Java has been chosen as the introductory language for COSC1020 3.0, COSC 1030 3.0 and COSC2011 3.0. The transition to Java begins in Summer 1998. This section outlines the plan we intend to follow to facilitate changing the computer language from Turing to Java in COSC1020 3.0 and COSC1030 3.0 and also from C++ to Java in COSC2011 3.0.

    The aim of the plan is to introduce the Java language as quickly as possible and to provide support for students as they learn the new language. Support is mostly aimed at students who learned Turing previously and are faced with a class using Java in which most other students have already been introduced to Java.

    It should be noted that the aim of a computer science curriculum, even at the introductory level, is not to teach about a programming language. The aim is to use a programming language as a vehicle for teaching the concepts of software engineering. The better a programming language supports the techniques of software engineering the better it is suited to an introductory course in computer science.

    The Benefits of the Switch

    Currently students learn Turing in COSC1020 3.0 and COSC1030 3.0 and then C++ in COSC2011 3.0. Thus a switch in computer languages is required in the existing curriculum. Although in computer science we expect students to eventually be able to easily learn new languages (many courses require students to learn a new language just for that course) this switch from Turing to C++ has hindered the study of data structures, which is the main aim of COSC2011 3.0. One important benefit of using Java in COSC1020 3.0, COSC1030 3.0 and COSC2011 3.0 will be that COSC2011 3.0 will not have to introduce a new language.

    A second important benefit is that students will learn one language to quite considerable depth as compared to the current situation. This will provide a solid foundation from which to introduce the software development components of more advanced courses.

    A third benefit is that Java is an object oriented language which imposes many of the techniques of software engineering, through language requirements and constructs, that C++ leaves open to be followed only through the self-discipline of the programmer.

    The Plan

    Summer 1998

    COSC1020 3.0 will use the Java language.
    COSC1030 3.0 will mostly use Turing but will introduce some Java.

    Fall term - FW98/99

    COSC1020 3.0 will use Java
    COSC1030 3.0 (Java) - a section taught using Java, for students who took COSC1020 3.0 in the summer
    COSC1030 3.0 (Turing) - a section taught using Turing (but introducing some Java) for students who took COSC1020 3.0 in the winter term of FW97/98
    COSC2011 3.0 (Java) - instead of C++ and data structures this course will combine an introduction to Java and data structures.
    COSC2031 3.0 (C/C++/Unix) - this course will no longer teach X-Windows, but will instead cover C/C++ and Unix. Some 3000 and 4000 level courses which require knowledge of C or C++ will require COSC2031 3.0 as a prerequisite.
    Java seminars - these will provide additional support for students to learn Java. They are primarily aimed at students who have not taken a Java version of COSC1020 3.0/COSC1030 3.0 and who are not able to take COSC2011 3.0 in the fall term. The seminars will for the most part duplicate the Java language specific parts of COSC2011 3.0. A comprehensive schedule of seminars will be announced prior to the start of the fall term. Any student may attend these seminars, and in fact everyone is encouraged to do so.

    Winter Term - FW98/99

    COSC1020 3.0 will use Java
    COSC1030 3.0 will use Java
    COSC2011 3.0 will combine a very brief introduction to Java, but will focus mostly on data structures. Students who have not taken a Java version of COSC1020 3.0/COSC1030 3.0 will be expected to have attended the informal seminars on Java offered during the Fall term and during the first few weeks of the winter term.
    COSC2031 3.0 (C/C++/Unix)
    Java seminars - a continuation of the fall term seminars, but only for the first month or so of the term.
  6. Revision of COSC2031 3.0

    Because COSC2011 3.0 will no longer teach C++, COSC2031 3.0 has been revised to include instruction in C++ at the expense of eliminating instruction in windowing systems (X-Windows)

    The prerequisites of certain courses have been revised to include COSC2031 3.0 where 3000- or 4000- level course requires knowledge of C or C++. COSC2011 3.0 (SU98 or earlier) will be an alternative prerequisite in such cases.

  7. New prerequisites to some upper level courses

    COSC3311 3.0, COSC3321 3.0, COSC3411 3.0, COSC4302 3.0 require COSC2031 3.0 as a prerequisite since programming in C or C++ is an important part of these courses.

Programmes Offered

For detailed information you are advised to first read the appropriate sections of the York University Undergraduate Calendar (click on Calendars in the York University www page -; secondly, read this supplemental Calendar, and thirdly, see an advisor in the Department of Computer Science at one of the regularly scheduled advising sessions.

Computer Science is available as a major programme leading to an Honours (four year) degree in either Arts (B.A.) or Pure and Applied Science (B.Sc.). It may also be combined with most subjects in both Arts and Science leading to a four-year combined honours degree (B.Sc.) or double major degree (B.A.).

Pending Senate approval, ordinary programmes will no longer be offered. Information concerning the ordinary programme is included only for the benefit of students who were admitted to that programme prior to FW98.

The recommended courses in computer science and mathematics are identical in most programmes in the first two years of study so that students can make their final decisions as to which programme to graduate in after they have more exposure to the discipline.

Ordinary vs. Honours

An ordinary programme (not available beginning FW98/99) if approved by Senate requires 90 credits (normally completed in three years of study) and a grade point average of 4.0 in computer science courses. An honours programme requires 120 credits (normally completed in four years of study), more specialization, a higher minimum performance (a grade point average of 5.0), and in some cases different courses than an ordinary degree.

Both Arts and Science programmes are structured in such a way that a student who embarks on an honours programme can meet the requirements for an ordinary degree by the end of the third year and can at that time graduate with either a B.A. or B.Sc.

If you have the grade point average to be eligible for an honours programme (5.0), you will be listed as an honours student for administrative purposes.

Specialized Honours

Students selecting this programme take even more courses in computer science and mathematics than for a major programme during their four years of study.

Space and Communication Sciences Stream

This is a specialized honours BSc stream in computer science combined with a concentration of courses in the Departments of Earth and Atmospheric Science, and Physics and Astronomy. Students select courses on knowledge-based programming, numerical methods, data communications, electronics, space communications and physics of the space environment. Fourth year features electives from an extensive list of topics from all three departments.

Entry is highly competitive as the first year is limited to approximately 40 places. Candidates are required to have an A average in high school. It is also a very demanding programme as students must maintain a Science grade point average of 6.0.

BSc Combined Honours

The intention of a combined programme is for students to major in two subjects while maintaining a 5.0 Science average. In general, combined honours students complete enough course work in each subject to obtain the equivalent of an honours degree. Combined honours degrees may require students to take more than the minimum of 120 credits to satisfy the honours requirements of each subject.

BA Double Major/Major-Minor

In the Faculty of Arts a combined programme consists of either a double major or a major and a minor. In the latter case computer science can be either the major or the minor subject. Consult advisors in both departments if you are planning a combined programme.

BA Honours Double Major Programme in Computer Science and Mass Communications Studies

This double major programme differs from a standard double major programme in that the second major is in an interdisciplinary programme. In this double major programme, students are required to complete at least 6 Computer Science courses, two of which must be at the 4000 level. Students are also required to complete 6 courses in Mass Communications Studies, one of which must be at the 4000 level.

BA Honours Double Major Programme in Computer Science and Women's Studies

The requirements of this programme are similar to those stated for the double major in mass communications studies except the second major is in women's studies.

Elective Courses

Students in Computer Science sometimes feel their study in this discipline is quite isolated from the other programmes in their Faculty, and place little emphasis on their choice of other courses, even though about a quarter of their courses are electives. This is a mistake computer science supports applications in every information-using discipline. In order to make creative and effective use of your skills in computing, you need to know much more of the natural world, the man-made world, and the world of ideas, than can be learned in courses in computing.

There are many choices for elective courses. For example courses in economics, philosophy (logic), psychology, linguistics, physics and chemistry to name just a few whose announced content meshes with issues and problems studied in computer science.

Not only should you consider taking individual courses in other subjects but you should also consider taking a concentration of courses which together form a coherent or complementary package. Such a concentration may come from one discipline (one of the sciences, for example, because of their hierarchical structure) but it may also come from two or three disciplines on related concepts presented from different perspectives. It may also be necessary to take specific prerequisites before you can take a desired elective course; such combinations also form coherent concentrations.

To further emphasize the importance of elective courses, all honours programmes, except the BA minor, now require at least 30 credits from non-COSC and non-MATH courses.

Industrial Internship Programme

The Industrial Internship Programme allows students to take a year off from their studies to gain valuable job experience and earn money while completing their degree. Students resume their studies when the internship term finishes. (A student's file becomes inactive during their internship; students must arrange to have their file reactivated in the spring of the year in which they will return.) Job assignments can be from 8 to 16 months depending on the corporation. Participating corporations include IBM and BNR/Northern Telecom.

Any 2nd or 3rd year student with a B average (or better) in MATH and COSC courses may apply to this programme. Qualifications may also depend on specific job postings. Job opportunities are posted in the fall, and students apply by submitting a completed application form, a nonrefundable fee, their resume (or ACCIS form), and York transcripts to the Administrative Office by mid-November. The Department forwards the student's application to companies which the student has selected. The companies select from these applications the students they wish to interview, and the Department then arranges on-campus interviews. Job offers are typically extended in the February/March time frame for positions starting in May.

In cases where the internship project involves significant learning of an academic nature students may receive credit for work done in connection with the internship by enrolling in the project course, COSC4080 3.0. The same rules apply for such internship projects as for the usual COSC4080 3.0 projects except that the work is not done at York and is not done in a single academic term.

Students who are interested in doing a project as part of their internship should contact the course director of COSC4080 3.0 when they have enough experience on the job to be able to suggest a project topic which is compatible with the work they are asked to do, which has significant academic content.

It is the student's responsibility to ensure that the employer is willing to have the student report on her/his work in written and oral presentations. Work which cannot be generally disclosed is not suitable for a COSC4080 3.0 project.

The Graduate Programme in Computer Science

Admission to the MSc programme is highly competitive. We have space to accept only the most highly qualified students.

The ideal preparation for graduate studies in computer science is the completion of the Specialized Honours Programme in Computer Science in the Faculty of Pure and Applied Science at York University (please consult the Computer Science degree requirements, the degree checklist, and the course descriptions), or its equivalent (including senior level courses in theoretical computer science). Your grade point average in the last two years, should be at least B+ to enter the competition for admission. Of course, the higher your grades the more likely you will be a successful candidate.

Need to upgrade a degree?

If you already have a computer science degree then you would upgrade, if necessary, your background to be equivalent to the Specialized Honours Programme in Computer Science. A comparison of the degree programme you completed with the specialized honours programme will show you what you are missing.

If you have an ordinary degree, then you will need to upgrade your degree to the honours level.

It is recommended that you become familiar with the Unix, C/C++ and the X-window system environment.

How to upgrade a degree

You are advised to see the Undergraduate Director for the Department of Computer Science (see page 1 of the supplemental calendar). Together you would discuss your background and what you need to obtain the equivalent of the specialized honours degree.

If all you need are two or three courses to fill a few gaps in your background then you may apply for admission to the programme as a special student.

If you need more than three courses, then you will have to apply for admission to the specialized honours degree. In both cases applications are made through the York Admissions Office whose procedures and deadlines must be followed.

next: The Department - page 2 of 2
Contents Preface The Department Course Descriptions Degree Requirements Degree Checklists