Degree requirements refer to the following categories of courses:

**General education - **Intended to provide a broad interdisciplinary
perspective, courses come from the Divisions of Humanities, Natural Science and
Social Science. They, also, provide exposure to areas of study outside of ones
area of specialization thus requirements may also specify courses outside of
ones area of specialization.

**Major (and minor) courses - **Students specialize in a specific subject or
combination of subjects. The area of primary concentration is known as the
"Major" and an area of secondary concentration (if any) is known as the
"Minor". It is possible to have two "Majors".

**Elective courses - **Intended to broaden the student's education beyond
their area of specialization, electives include courses which are not used to
fulfill Departmental, General Education or Major/Minor requirements. Courses
not considered to be electives are: a) major courses taken above the required
number (Faculty of Arts only); b) non-major courses taken within the major
subject (e.g. most Atkinson COSC courses); c) courses outside the major taken
to fulfil major requirements (e.g. MATH1090.03 and other MATH courses required
for Computer Science); d) courses which are cross-listed or designated as
equivalents or exclusions for courses in the Major Programme.

**Upper-level courses** - Courses taken at the 3000- and/or 4000-Level.

**In faculty courses** - For the Faculty of Arts courses have the prefix AS.
For the Faculty of Pure and Applied Science courses have the prefix SC. All
computer science and mathematics courses are cross-listed between the faculties
and have either AS or SC as a prefix depending upon the degree sought.

* **Specialized Honours** (total of 20 courses; one area of
specialization)

* **Major **(total of 20 courses; one area of specialization)

* **Double Major** (total of 20 courses; two areas of specialization)

* **Minor **(total of 20 courses; two areas of specialization; requires a
major in another area)

* **Ordinary **(total of 15 courses; one area of specialization)

**General education requirements**

Students select their general education requirements in accordance with the following prescription.

1 One 1000-level course, in** either **the Division of Humanities **or
**the Division of Social Science - to be taken within the first four
courses.

2 One 1000-level course in the Division of Natural Science - to be taken within the first seven courses.

3 One 2000-, 3000- or 4000-level course, in** either **the Division of
Humanities** or **the Division of Social Science - to be taken at any time
after the session in which the student has completed their fourth course.

4 Breadth requirement[1] - to be taken
before graduation; at least one course from** each **of the following
areas.

**Area I Area II**

Classical Studies Anthropology

(Greek or Latin) Economics

English Geography

French Studies Political Science

History Psychology

Humanities Social Science

Languages, Literatures Sociology

and Linguistics

Philosophy

**Requirements by Programme Type**

**Specialized Honours**

A minimum of 20 courses satisfying the following.

1 General education.

2 Major courses as defined by the specific programme; at least 9 courses.

3 Elective courses: at least 3.

4 Upper-level courses: at least 6 courses of which at least 3, including at least 2 in the major, must be at the 4000-level.

5 At least 10 of the 20 courses, including at least 5 in the major, must be in Faculty.

6 Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

7 Graduation requires a grade point average of 5.0 overall** and **a grade
point average of 5.0 over all completed computer science courses.

**Honours major**

A minimum of 20 courses satisfying the following.

1 General education.

2 Major courses as defined by the specific programme; at least 7 courses.

3 Elective courses: at least 3.

4 Upper-level courses: at least 6 courses of which at least 3, including at least 2 in the major, must be at the 4000-level.

5 At least 10 of the 20 courses, including at least 4 in the major, must be in Faculty.

6 Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

7 Graduation requires a grade point average of 5.0 overall** and **a grade
point average of 5.0 over all completed computer science courses.

**Honours major/minor**

A minimum of 20 courses satisfying the following.

1 General education.

2 Major/minor courses as defined by the specific programme; at least 7 courses in the major; at least 5 courses in the minor.

3 Elective courses: none are required.

4 Upper-level courses: at least 6 courses of which at least 3, including at least 2 in the major and 1 in the minor, must be at the 4000-level.

5 At least 10 of the 20 courses, including at least 4 in the major and 3 in the minor (except where the minor is in a Fine Arts subject or Environmental Studies), must be in Faculty.

6 Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

7 Graduation requires a grade point average of 5.0 overall** and **a grade
point average of 5.0 over all completed computer science courses.

**Honours double major (unlinked)**

A minimum of 20 courses satisfying the following.

1 General education.

2 Major/minor courses as defined by the specific programme; at least 7 courses in each major.

3 Elective courses: none are required.

4 Upper-level courses: at least 6 courses of which at least 3, including at least 2 in each major, must be at the 4000-level.

5 At least 10 of the 20 courses, including at least 4 in each major (except where the minor is in a Fine Arts subject or Environmental Studies), must be in Faculty.

6 Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

** and **a grade
point average of 5.0 over all completed computer science courses.

**Honours double major (linked)**

A minimum of 20 courses satisfying the following. Computer Science may be linked with the interdisciplinary studies programmes Mass Communications and Women's Studies.

1 General education.

2 Major/minor courses as defined by the specific programme; at least 6 courses in each major.

3 Elective courses: none are required.

4 Upper-level courses: at least 6 courses of which at least 3, including at least 1 in each major, must be at the 4000-level.

5 At least 10 of the 20 courses, including at least 3 in each major, must be in Faculty.

6 Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

** and **a grade
point average of 5.0 over all completed computer science courses.

**Ordinary**

A minimum of 15 courses satisfying the following.

1 General education.

2 Major/minor courses as defined by the specific programme; at least 5 courses.

3 Elective courses: at least 3.

4 Upper-level courses: at least 3 courses of which at least 2 must be in the major.

5 At least 8 of the 15 courses, including at least 3 in the major, must be in Faculty.

6 Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

7 Graduation requires a grade point average of 4.0 overall** and **a grade
point average of 4.0 over all completed computer science courses.

* **Specialized Honours** (total of 120 credits; one area of
specialization)

* **Specialized Honours Space and Communications Stream **(total of 120
credits; one area of specialization)

* **Combined Honours** (total of 120 credits; two areas of specialization)

* **Ordinary **(total of 90 credits; one area of specialization)

**General regulations**

1 All students are required to observe the regulations of the University. For matters of academic standing and programme requirements, students are governed by the regulations in the calendar year they are admitted although they may opt to follow any subsequent changes in regulations. Students readmitted to the Faculty are governed by the regulations in effect at the time of their readmission.

2 All students are normally permitted to enrol in only those courses for which they have successfully completed all designated prerequisites and are normally required to take concurrently all specified corequisites not already completed successfully. Prior to enrollment and registration all students must have their study lists signed by the appropriate academic advisors.

Enrollment in courses can be done during the first 10 class days without special permission from the course director.

Courses may be dropped up to approximately two thirds of the way through a course without a grade being recorded. After the drop date a final grade is recorded. Consult the Office of Student Programmes for the drop dates for courses.

3 All degree candidates are required to indicate a choice of degree programme and, where applicable, major subject area(s) upon successful completion of 24 credits. Candidates may change their degree programmes and/or their major subject areas within 10 class days of the beginning of the first term in each session, provided their standing, prescription of studies and timetable arrangements permit the proposed changes, and provided they are supported in writing by the academic advisors concerned. All programme and major subject area changes must be done through the Office of Student Programmes. Advanced standing assessments should be reviewed after any change in programme/major subject area.

4 All candidates for all degrees in Computer Science must successfully complete the following requirements, normally at the 1000-level.

* COSC1020.03, COSC1030.03.

* MATH1090.03, MATH1300.03, MATH1310.03.

* 6 credits from: BIOL1010.06, CHEM1010.06, EATS1010.06, PHYS1010.06, PHYS1410.06.

* at least 3 additional credits from: BIOL1010.06, CHEM1010.06, EATS1010.03, EATS1011.03, PHYS1070.03, EATS1010.06, MATH1025.03 PHYS1010.06, PHYS1410.06.

* 6 credits from each of Humanities and Social Science (no substitutions permitted).

**Ordinary Programme**

All B.Sc. degree candidates in all ordinary programmes must do the following within five calendar years of study through registration in courses at York or elsewhere deemed creditable towards the B.Sc. degree.

a Satisfy general regulations 2, 3 and 4 in the York University Undergraduate Calendar (see above for a summary).

b Present a total of at least 90 passed credits of which

* a minimum of 66 must be earned in Science courses.

* a minimum of 24 must be earned in one major Science subject area.

* a minimum of 18 must be earned in courses at the 3000- or higher level.

c Successfully complete the programme of study specified for the Ordinary Programme in Computer Science.

d Achieve and maintain a satisfactory academic standing to enter, proceed.

e There is no grade point average requirement for an ordinary degree.

**Honours programmes**

All candidates for the B.Sc. degree in all honours programmes must do the following within six calendar years of study through registration in courses at York or elsewhere deemed creditable towards the B.Sc. degree.

a Satisfy regulations 2, 3 and 4 in the University Undergraduate Programmes Calendar (see above for a summary).

b Present a total of at least 120 passed credits of which a minimum of:

* 90 must be earned in Science courses.

* 30 must be earned in one major Science subject area (Specialized Honours programmes only), or 18 in each of two major Science subject areas (Combined Honours programmes only)

* 42 must be earned in courses at the 3000- or higher level.

c Successfully complete the programme of study specified for the declared Honours Programmes and major subject areas.

d Achieve and maintain a satisfactory academic standing to enter, proceed and graduate.

e Graduation requires a grade point average of 5.0 over all completed computer science courses (except SCS which requires a gpa of 6.0 over all SC courses).

We have partitioned our courses into four areas. Students must take at
least one 3000-level course identified as a **Group A** course from each
area. **Group A **courses have **odd course numbers**.

4000-level courses are also partitioned into the same four areas but they are not further partitioned into groups A and B. Thus, whether the course number is even or odd has no significance.

The four areas are described in the following.

**Theory - **Course numbers COSC31xx.03, COSC41xx.03; topics: algorithms,
data structures and complexity, automata and computability, program
verification, scientific and numerical computing.

**Hardware - **Course numbers COSC32xx.03, COSC42xx.03; topics: digital
logic, architecture and data communication networks.

**Software - **Course numbers COSC33xx.03, COSC43xx.03; topics: programming
languages, software systems and operating systems.

**Knowledge-Based Computing - **Course numbers COSC34xx.03, COSC44xx.03;
topics: artificial intelligence, expert systems, logic programming, databases,
simulation, machine learning, robotics and computer vision.

**Exceptions to Course Numbering**

Service courses at all levels have the second digit 5. These courses do not satisfy requirements in Computer Science.

Other courses falling outside the course numbering conventions are the following.

COSC3001.01 -- restricted to SCS stream.students

COSC3010.03 -- Special Topics course

COSC4001.06 -- restricted to SCS stream.students

COSC4010.03 -- Special Topics course

COSC4080.03 -- Computer Science Project

**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.

**Mathematics Courses**

Mathematics courses are required for all programmes. Mathematics courses in calculus and algebra are universally recognized as developing the analytic problem solving skills required in computer science and courses in sets, logic and discrete mathematics are directly applicable.

At the 1000-level MATH1090.03, *Introduction to Sets and Logic *,
(formerly MATH1120.03) MATH1300.03, *Differential Calculus with
Applications*, and MATH1310, *Integral Calculus with Applications*, are
required. At the 2000-level MATH2090.03, *Introduction to Logic* is
required for all programmes. For specialized honours both MATH2221.03,
*Linear Algebra with Applications I*, and MATH2320.03, *Discrete
Mathematical Structures* are required. For other programmes only one of
MATH2221.03 and MATH2320 is required.

**Note:** In addition to the required mathematics courses many upper year
computer science courses make use of concepts from probability and statistics.
We recommend MATH2030.03, or MATH2560.03 and MATH2570.03 as preparation for
such courses.

**Course Requirements and Order of Study**

This section presents a summary of the Department's course requirements. Detailed requirements are best seen by reading the course checklists for each of the different programmes. These are to be found at the back of this calendar.

**Note:** the Specialized Honours Space and Communications Sciences Stream
has exceptions from the general requirements; the exceptions are noted. The
course requirements of the SCS stream is described in the section on Programme
Checklists.

The indication of first year, second year, etc., indicates the year of study for normal progress.

*1000-level* - first year

* Fall - COSC1020.03, MATH1090.03, MATH1300.03

* Winter - COSC1030.03, MATH1310.03.

* 15 additional credits satisfying general education, faculty, second major programme, or elective requirements

*2000-level:*- second year

* COSC2001.03, COSC2011.03, COSC2021.03

* MATH2090.03

* MATH2221.03 and MATH2320.03. Specialized Honours programme

MATH2211.03 or MATH2320 all other programmes

* 12 to 15 additional credits satisfying general education, faculty, second major programme, or elective requirements

*3000-level:* - third year

* 12 COSC credits at the 3000-level satisfying the breadth requirement - all degree programmes (except SCS)

* 9 additional COSC credits including COSC3101.03 for the Specialized Honours programme (except SCS)

3 additional COSC credits at the 3000-level for Combined Honours programmes

6 additional COSC credits at the 3000-level for the Ordinary programme

* 9 to 15 credits additional credits satisfying general education, faculty, second major programme, or elective requirements

*4000-level:* - fourth year, honours programmes only

* 12 COSC credits at the 4000-level (except when computer science is a minor in a combined B.A. degree which requires only 6 credits at the 4000-level)

* one of COSC4111.03 or COSC4101.03 is required for the Specialized Honours programme (except SCS).

* 6 additional COSC credits at the 3000- or 4000-level - Specialized Honours programme (except SCS)

* 12 to 24 additional credits satisfying general education, faculty, second major programme, or elective requirements

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. Your grade point average, in computer science and mathematics courses in the last two years, should be at least B+ with no grade less than a 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 honours degree in computer science, then you need to make sure you have the equivalent of the following courses: COSC3101.03, and one of COSC4111.03 or COSC4101.03. To satisfy our breadth requirement, you should have a third-year course in each of the following areas - hardware, software and knowledge-based computing. You also need to complete the equivalent of our required mathematics courses.

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 Coordinator 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 is two to three courses to fill a few gaps in your background then you would enrol as a special undergraduate student in computer science. If there is space in the courses you need and you satisfy all the prerequisites, the Undergraduate Coordinator will write a letter admitting you to those courses. You take this letter to the admissions office who will see if you satisfy general university entrance requirements for special students. There is a university deadline of June 1 to apply as a special student, so you should consider beginning your application in March or April.

If you need more than three courses, then you will have to apply to the Faculty of Pure and Applied Science to obtain the specialized honours degree. In this case you receive credit for all courses you have taken which satisfy the requirements of the specialized honours degree and enrol as a full time student in the courses you have yet to complete. This route may take more than one year, depending upon what is missing.

There are both **general** prerequisites which are required for all COSC
courses at the specified level and **specific** prerequisites for each
course which are in addition to the general prerequisites.. Both types of
prerequisites include computer science courses and mathematics courses, and in
all cases there are grade requirements in the prerequisite courses. The
prerequisites are listed after each course description and summarized in
following table.

The prerequisites table is useful to determine what courses must be taken in order to enrol in a particular course, or to determine if you are permitted to enrol in a course.

-----------------------------------------------------------------------------------------------------------------------------------------------------

**Course Title Specific prerequisite(s)**

-----------------------------------------------------------------------------------------------------------------------------------------------------

__1000-Level__

**General Prerequisites (except 15xx.xx courses)**

You must satisfy one of the following requirements. The latest courses are considered.

* OAC calculus and one other OAC mathematics (normally finite mathematics, or algebra and geometry) with an average grade of 75% in all OAC mathematics and no grade less than 65%; or

* 6 credits in a university-level mathematics course(s) for math majors with a grade of C+ or better; or

* 6 credits in a university-level mathematics service course(s) (second digit is 5) with a grade of B+ or better; or

* 6 credits in a community college mathematics course(s) with a grade of B+ or better.

COSC1020.03 Intro. to Computer Science I General prerequisites

COSC1030.03 Intro. to Computer Science II COSC1020.03; MATH1090.03

MATH1090.03 Introduction to Sets and Logic One OAC mathematics

MATH1300.03 Differential Calculus with Applications OAC calculus or MATH1500.03

MATH1310.03 Integral Calculus with Applications MATH1300.03

__2000-Level__

**General Prerequisites:**

*** **completed COSC1030.03

* have a cumulative gpa of 4.0 or better for completed computer science courses.

COSC2001.03 Intro. to Theory of Computation COSC1030.03

COSC2011.03 Fundamentals of Data Structures COSC1030.03

COSC2021.03 Computer Organization COSC1030.03

COSC2031.03 C, Unix and X Window System COSC1030.03

MATH2090.03 Intro. to Mathematical Logic MATH1090.03 or permission of the course director

MATH2221.03 Linear Algebra with Applications I MATH1505.03 or MATH1540.03 or

MATH1550.06 or ACMS1050.06; and pre- or

corequisite MATH1000.03 or MATH1013.03 or

MATH1300.03 or ACMS1030.06

MATH2320.03 Discrete Mathematical Structures MATH1090.03 or permission of the course

director. MATH2090.03 is recommended as a

prerequisite for COSC majors.

__3000-Level__

**General Prerequisites(except 15xx.xx courses)**

* completed COSC2011.03, and one of COSC2001.03 or COSC2021.03

* completed MATH1300.03 and MATH1310

* completed one of MATH2090.03, MATH2221.03 or MATH2320.03.

* have a cumulative gpa of 4.0 or better over all completed computer science courses.

**Theory Courses - Group A**

COSC3101.03 Design and Analysis of Algorithms MATH2320.03 (SCS students may enrol without

MATH2320.03 or concurrently with

MATH2320.03)

COSC3111.03 Intro. to Program Verification MATH2090.03

COSC3121.03 Intro. to Numerical Computations I MATH2221.03

**Theory Courses - Group B**

COSC3122.03 Intro. to Numerical Computations II COSC3121.03; MATH2270.03

**Hardware Courses - Group A**

COSC3201.03 Digital Logic Design COSC2021.03

COSC3211.03 Data Communication COSC2021.03; MATH2090.03

**Hardware Courses - Group B**

COSC3212.03 Computer Networks COSC3211.03

**Software Courses - Group A**

COSC3301.03 Programming Language Fundamentals COSC2001.03; MATH2090.03

COSC3311.03 Software Design COSC2001.03; MATH2090.03

COSC3321.03 Operating System Fundamentals COSC2021.03

**Knowledge-Based Computing - Group A**

COSC3401.03 Intro. to Symbolic Computation MATH2090.03

COSC3411.03 File Structures and Data Management COSC2021.03; MATH2090.03

**Knowledge-Based Computing - Group B**

COSC3402.03 Intro. to Concepts of Artificial Intell. COSC3401.03; MATH2320.03

COSC3408.03 Simulation of Discrete Systems MATH2560.03

COSC3412.03 Intro. to Database Management Systems COSC3411.03

COSC3418.03 Simulation of Continuous Systems MATH2560.03; MATH1310.03

**Other Courses:**

COSC3001.01 Org. & Management Seminar in SCS In 3rd year of SCS stream

COSC3010.03 Special Topics in Computer Science Varies depending on the topic

__4000-Level__

**General Prerequisites:**

* completed COSC2001.03; COSC2011.03; COSC2021.03

* completed MATH2090.03

* completed at least 12 credits in computer science 3000-level courses.

* have a cumulative gpa of 5.0 or better over all completed computer science courses

**Theory Courses**

COSC4101.03 Advanced Data Structures COSC3101.03; MATH2320.03

COSC4111.03 Automata and Computability COSC3101.03; MATH2320.03

**Hardware courses**

COSC4201.03 Computer Architecture COSC3201.03; COSC3321.03

COSC4211.03 Performance Eval. of Computer Systems COSC3408.03; COSC3211.03

COSC4242.03 Signals and Systems COSC3121.03 or MATH3241.03

**Software Course**

COSC4301.03 Programming Language Design COSC3301.03

COSC4302.03 Language Processors COSC3301.03

COSC4311.03 System Development COSC3311.03; COSC3111.03

COSC4321.03 Operating System Design COSC3321.03; COSC3321.03

COSC4331.03 Computer Graphics MATH2221.03

COSC4341.03 Interactive System Design General prerequisites

COSC4351.03 Real-Time Systems Theory COSC3111.03 or COSC3321.03 or

COSC3311.03

COSC4352.03 Real-Time Systems Practice COSC3301.03 or COSC3311.03 or

COSC3321.03

COSC4361.03 Human-Computer Communication General Prerequisites

**Knowledge-Based Computing**

COSC4401.03 Artificial Intelligence COSC3402.03

COSC4402.03 Logic Programming COSC3401.03; COSC3101.03 or

COSC3111.03

COSC4411.03 Database Management Systems COSC3412.03

COSC4421.03 Introduction to Robotics MATH2221.03

COSC4422.03 Computer Vision COSC3121.03

**Other Courses:**

COSC4001.06 Space and Comm. Sciences Workshop 3000-level of SCS core

COSC4080.03 Computer Science Project permission of course director, 36 COSC credits

COSC4010.03 Special Topics in Computer Science Varies depending on the topic