UNDERGRADUATE SUPPLEMENTAL CALENDAR 1997-98
Table of Contents
CSAC Accreditation
Access to Courses
Courses Outside the Department
Admission to the Graduate Programme in
Computer Science
Programmes Offered
Computer Facilities
Computer Use Policy
Computer Science Awards
Industrial Internship Programme
Appeal Procedures
Grading System
Faculty of Arts
Faculty of Pure and Applied Science
Computer Science Requirements
Programme Checklists
Prerequisites for Computer Science Courses
BSc Ordinary Degree
BSc Specialized Honours Degree
BSc Combined Honours Degree
BSc Specialized Honours Degree, SCS Stream
BA Ordinary Degree
BA Honours Major Degree
BA Honours Minor Degree
BA Specialized Honours Degree
BA Honours Double Major Degree
In choosing to study computer science you have chosen a career in an exciting and rapidly changing discipline. As a computer scientist, you may become involved in many of the great changes in the future, for the computer will play a central role in these changes. It is important, therefore, that you not only develop the practical and theoretical skills of a professional computer scientist but that you also try to obtain an understanding of the impact of computers on society. For that reason we would strongly encourage you to select your elective courses outside Computer Science in areas where you will broaden your knowledge of society. One way to do this is to select isolated courses that catch your interest; however, a more productive approach is to consider taking a concentration of courses in an area outside of Computer Science. So in planning your course selection you should be thinking ahead and asking yourself not only which courses will give you a good Computer Science degree, but which courses will make you a good professional computer scientist. That implies a sound technical background, a broad education, professional ethics and a social conscience. You can't get all that in your first year but you can at least make a start. Lastly we would like to remind you that computer science is an art as well as a science which means you cannot learn it entirely from a book - you must also practice it! That means long hours at the computer terminals. So be warned, do not try to take on too much. We recommend a maximum of three computer science courses per term.
Office Hours
Administrative Office
Monday to Friday: 10-12, 2-4, 126 CCB
Undergraduate Programme Office
Monday to Friday: 9-12, 2-4, 125 CCB
Mailing Address
Department of Computer Science
126 CCB
York University
4700 Keele Street
North York, Ontario, M3J 1P3
Tel.: (416) 736-5053
Fax: (416) 736-5872
Computer Science Home Page
York University Home Page
Chair
Michael Jenkin
Director of Undergraduate Studies
Peter Cribb
(416) 736-5334
email: peterc@cs.yorku.ca
Faculty | Room in CCB | email @cs.yorku.ca |
M. Aboelaze | 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 |
G. Gotshalks | 216 | gunnar |
N. Graham | 250 | graham |
B. Guo | 152 | guo |
M. Jenkin | 126 | jenkin |
D. L. Lee (on leave) | 348 | delei |
Y. Lesperance | 342 | lesperan |
J. Liu | 224 | joseph |
E. Milios | 256 | eem |
A. Mirzaian | 352 | andy |
J. Ostroff | 248 | jonathan |
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. Mahdavi-Amiri
H. Levesque
A. Ryman
K. Lyons
D. Wilkes
Instructors
J. Hofbauer
M. Mosher
R. Jhu
A. Rosenthal
P. Kashiyama
H. Roumani
L. Lowther
G. Turpin
Technical Support
Seela Balkissoon
Jason Keltz
Matt Robinson
N. Wilson, Computer Development Manager
U. Yigit, Computer Systems Administrator
Administrative Support
M. Baptist, Secretary
C. Masaro, Administrative Assistant
N. Niven, Undergraduate Programme Assistant
P. Plummer, Graduate Programme Assistant
[ return to Table of Contents ]
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:
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 cases
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.
Prerequisites
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.03, COSC4101.03, COSC4111.03
York University Computer Club
The York University Computer Club (YUCC) is an organization
of students in the Department of Computer Science. They nominate students
to serve on department committees, sponsor informational and social events
and facilitate communications among computer science students and faculty
members. They can be reached by electronic mail at yucc@ariel.cs.yorku.ca.
[ return to Table of Contents ]
Admission to 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. Your grade point average, in computer science and mathematics
courses 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 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 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.
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 - www.yorku.ca); 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 either an
Ordinary (three year) or 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.).
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 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.
The Service Programme
The Department also offers a variety of courses at the 1000-
and 3000- level which are of interest to students wanting to learn about
computers and computer use without majoring in Computer Science. In some
cases, degree programmes offered by other departments may require these
courses in their programmes.
The starting courses for non-majors are COSC1520.03, COSC1530.03, Introduction
to Computer Use I & II and COSC1540.03, Computer Use for the Natural
Sciences. The course COSC1530.03, Introduction to Computer Use II is an
introduction to computer programming and may be taken as preparation for
COSC1020.03 if the student lacks background in this area. Students taking
the 1500 series courses are not eligible to take the 2000-level Computer
Science courses without successful completion of COSC1020.03 and COSC1030.03.
[ return to Table of Contents ]
Computer Facilities
Undergraduate students work on Ariel, the Department of Computer
Science computer network. Ariel consists of about 30 Sun and SGI workstations
for third and fourth-year use and about 50 X terminals connected to Sun
compute servers for first and second year use. The following special purpose
laboratories are provided for upper year courses.
Almost all workstations and micro-computers in the Department are connected
to the campus networking backbone, giving access to all significant systems
in the University, as well as computers in universities all over the world
through Internet.
Access to the timesharing systems and workstations requires an authorized
account and a password, as issued by the Department. Each student receives
a single account for each machine necessary for course work. Students who
would like to work on a project outside of assigned class work may ask
a faculty member to act as their supervisor, and if necessary, a special
account can be arranged for that project.
Computer Use Policy
Working in a laboratory situation requires cooperative behaviour
which does not harm other students by making any part of the department's
computer systems unusable such as locking out terminals, running processes
which require lots of network traffic (such as playing games on multiple
terminals), or using the facilities to work on tasks which are not related
to computer science course work. Essentially, all users of common facilities
need to ask themselves whether or not their behaviour adversely affects
other users of the facility and to refrain from engaging in "adverse
behaviour". Good manners, moderation and consideration for others
are expected from all users. Adverse behaviour includes such things as
excessive noise, occupying more space than appropriate, harassment of others,
creating a hostile environment and the displaying of graphics of questionable
taste. Lab monitors are authorized to ensure that no discomfort is caused
by such practices to any user.
The department policy on computer use prohibits attempting to break into
someone else's account, causing damage by invading the system or abusing
equipment, using electronic mail or file transfer of abusive or offensive
materials, or otherwise violating system security or usage guidelines.
As well, we expect you to follow Senate policies (see the link Official
York Policies, under Administrative Services at www.yorku.ca).
The department computer system coordinator, in conjunction with the department
and York Computing Services, will investigate any suspected violation of
these guidelines and will decide on appropriate penalties. Users identified
as violating these guidelines may have to make monitory restitution and
may have their computing priviledges suspended indefinitely. This could
result in your being unable to complete computer science courses, and a
change in your major.
Adverse behaviour may also violate university, provincial and federal laws;
for example duplication of copyrighted material and theft of computer services
are both criminal offenses. In such cases the University, Provincial or
Federal authorities may act independently of the Department. The police
may be asked to investigate and perpetrators may be liable for civil and/or
criminal prosecution. The Department of Computer Science does not assume
any liability for damages caused by such activities.
Computer Science Awards
Unless otherwise stipulated students in both the Faculty of
Pure and Applied Science and the Faculty of Arts are eligible for these
awards.
Digital Equipment of Canada Ltd. Annual Award
This award which consists of a medal and a cash award of $250 will be given to one graduating student each year who has consistently shown excellence throughout his/her degree programme.
Mark A. Levy Computer Science Award
Up to five prizes or books concerned with Computer Science will be awarded to outstanding Faculty of Pure and Applied Science students enrolled in third or fourth year computer science courses.
Nancy Waisbord Memorial Award
This is a cash award of $150 to be presented annually to a graduating student who has consistently demonstrated excellence in Computer Science.
Other Awards
Students in the Department may also apply for Summer Science awards.
These awards pay students a salary over the summer while they are working
on a research project under the supervision of a faculty member. Normally
students who have completed at least their 2nd year may apply and typically
a grade average of B+ is required.
In addition, faculty sometimes employ undergraduate research assistants
over the summer period. While not an award administered by NSERC, such
positions are only offered to the best students in the Department.
Prestigious Awards
The Faculties of Arts and Pure and Applied Science also award various medals to their top graduating students. These include the Governor General's Silver Medal (Faculty of Arts) and the Gold Medal of Academic Excellence (Faculty of Pure and Applied Science).
[ return to Table of Contents ]
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.03. The
same rules apply for such internship projects as for the usual COSC4080.03
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.03 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.03
project.
Advising
Academic advising is available on an individual or a group basis in
the Department of Computer Science. Group advising provides help in choosing
courses so as to fulfil degree requirements. Individual faculty advising
is available to discuss academic issues relevant to computer science such
as recommended mathematical skills, theoretical versus applications oriented
courses, areas of specialization, graduate studies and career paths.
It is ultimately the responsibility of each student to ensure that they
meet all degree requirements of both the Department, and the Faculty of
Pure and Applied Science or the Faculty of Arts. Written information and
programme check lists are provided to assist you in making appropriate
choices. It is recommended that you take advantage of advising opportunities
to answer any questions you may have.
Group advising is scheduled by year level during March and early April.
In addition, individual advising appointments may be made through the Undergraduate
Office.
Academic Honesty
The Faculty of Arts, Faculty of Pure and Applied Science and the Department
have policies on academic honesty and their enforcement is taken very seriously.
Academic honesty is essentially giving credit where credit is due. When
a piece of work is submitted by a student it is expected that all unquoted
and uncited ideas (except for common knowledge) and text are original to
the student. Uncited and unquoted text, diagrams, etc., which are not original
to the student, and which the student presents as their own work is academically
dishonest. The deliberate presentation of part of another student's program
text or other work as your own without acknowledgment is academically dishonest,
and renders you liable to the disciplinary procedures instituted by the
Faculty of Pure and Applied Science.
The above statement does not imply that students must work, study and learn
in isolation. The Department encourages students to work, study and learn
together, and to use the work of others as found in books, journal articles,
electronic news, private conversations, etc.. In fact, most pieces of work
are enhanced when relevant outside material is introduced. Thus faculty
members expect to see quotes, references and citations to the work of others.
This shows the student is seeking out knowledge, integrating it with their
own work, and perhaps more significantly, reducing some of the drudgery
in producing a piece of work.
As long as appropriate citation and notice is given students cannot be
accused of academic dishonesty.
A piece of work, however, may receive a low grade because it does not contain
a sufficient amount of original work. In each course, instructors describe
their expectations regarding cooperative work and define the boundary of
what is acceptable cooperation and what is unacceptable. When in doubt
it is the student's responsibility to seek clarification from the instructor.
Instructors evaluate each piece of work in the context of their course
and given instructions.
You should refer to the appropriate sections of the York University Undergraduate
Calendar for further information and the penalties when academic dishonesty
occurs.
Concerns about Fairness
The Department's faculty members are committed to treating all students
fairly, professionally, and without discrimination on nonacademic grounds
including a student's race or sex. Students who have concerns about fair
treatment are encouraged to discuss the matter with their instructor or
the course director. If this is not possible or does not resolve the problem,
the matter should be brought to the attention of the Undergraduate Director,
and if necessary, the Department Chair, for a departmental response.
Moving to New Programme Requirements
Whenever new programme requirements are introduced the following policies
apply:
Appeal Procedures
The Department expects a student's disagreement with an evaluation
of an item of course work (assignment report, class test, non-final examination,
oral presentation, laboratory presentation, class participation) to be
settled with the instructor informally, amicably and expeditiously. With
respect to a formal appeal, there are different procedures for course work
and for final examinations and final grades. Of necessity, a formal appeal
must involve only written work.
Course Work
An appeal against a grade assigned to an item of course work must be
made within 14 days of the grade being made available.
In the case of a multi-sectioned course (where the instructor is not the
course director), a second appeal may be made to the course director within
14 days of the decision of the instructor.
If a student feels that their work has not been fairly reappraised by the
course director, then they may appeal for a reappraisal by the departmental
petitions committee. Such a request is made in writing using the appropriate
form obtained from the Undergraduate Office. The request must be made within
14 days of the decision of the course director.
Final Exams and Final Grades
An appeal for reappraisal of a final grade must be made in writing
on a standard departmental form, obtained from the Undergraduate Office,
within 21 days of receiving notification of the grade.
The departmental petitions committee will discuss the appeal with the course
director to ensure that no grade computation, clerical or similar errors
have been made. If such an error is discovered, a correction will be made
and the student and the Registrar's Office will be notified.
If a final examination is to be reappraised then the departmental petitions
committee will select a second reader for the examination paper. The petitions
committee will consider the report of the second reader and recommend a
final grade, which may be lower than the original grade. The student will
receive the report of the Petitions Committee and the Registrar's Office
will be informed of any grade change. The decision of the department petitions
committee can only be appealed on procedural grounds to the Executive Committee
of the Faculty.
Grading System
Grading at York University is done on a letter scale. The following
table shows the grading scale used. The number in parenthesis is the grade
point which is used to determine the grade point average. The grade point
average is a credit weighted average of all relevant courses.
A+ (9) Exceptional
Thorough knowledge of concepts and/or techniques and exceptional skill or great originality in the use of those concepts and techniques in satisfying the requirements of a piece of work or course.
A (8) Excellent
Thorough knowledge of concepts and/or techniques together with a high degree of skill and/or some elements of originality in satisfying the requirements of a piece of work or course.
B+ (7) Very Good
Thorough knowledge of concepts and/or techniques together with a fairly high degree of skill in the use of those concepts and techniques in satisfying the requirements of a piece of work or course.
B (6) Good
Good level of knowledge of concepts and/or techniques together with a considerable skill in using them in satisfying the requirements of a piece of work or course.
C+ (5) Competent
Acceptable level of knowledge of concepts and/or techniques together with considerable skill in using them to satisfy the requirements of a piece of work or course.
C (4) Fairly Competent
Acceptable level of knowledge of concepts and/or techniques together with some skill in using them to satisfy the requirements of a piece of work or course.
D+ (3) Passing
Slightly better than minimal knowledge of required concepts and/or techniques together with some ability to use them in satisfying the requirements of a piece of work or course.
D (2) Barely Passing
Minimum knowledge of concepts and/or techniques needed to satisfy the requirements of a piece of work or course.
E (1) Marginally failing.
F (0) Failing.
When averages are calculated the following table shows the equivalence between the grade point average and letter grades. The third column shows the correspondence between letter grades and percent grades.
gpa range | percent range | |
A+ | 8.5+ | 90+ |
A | 7.5 - 8.4 | 80 - 89 |
B+ | 6.5 7.4 | 75 79 |
B | 5.5 6.4 | 70 74 |
C+ | 4.5 5.4 | 65 69 |
C | 3.5 4.4 | 60 64 |
D+ | 2.5 3.4 | 55 59 |
D | 1.5 2.4 | 50 54 |
E | 0.5 1.4 | 40 49 |
F | 0.0 0.4 | 0 39 |
[ return to Table of Contents ]
Course Descriptions
Courses in Computer Science have three class hours a week for
one term (3 credits course numbers end in ".03"), unless
otherwise indicated.
Courses with second digit 5 (e.g. 1520, 1530, 1540, 3530) may be taken
to satisfy Faculty degree requirements but do not count as Computer Science
credits.
COSC 1020.03 Introduction to Computer Science I
Fall
Section A Mon, Wed, Fri, 14:30
Section B Tues 12:30-14:30, Thurs 12:30
Section C Mon, Wed, Fri 10:30
Note: Section B is recommended for students with prior programming experience.
Tutorial 1 Mon 9:30
Tutorial 2 Mon 15:30
Tutorial 3 Tues 11:30
Tutorial 4 Tues 14:30
Tutorial 5 Thurs 8:30
Tutorial 6 Thurs 14:30
Tutorial 5 Fri 9:30
Tutorial 6 Fri 11:30
Tutorial 7 Wed 10:30
Tutorial 8 Wed 14:30
Winter
Section M Tues, Thurs 19:00-20:30
Summer '98
Section AH TBA
Tutorial TBA
Introduction to computation, computing machinery, algorithms and programming via theoretical concepts and practical skills. Problem solving via the structure, design and analysis of algorithms and their implementation as effective, correct and efficient programs. Control and data structures of a structured programming language (Turing).
This course is introductory to the discipline in that it is the first in a hierarchy of courses; it is not a survey course. The emphasis is on the development of a theoretical conceptual basis and the acquisition of the intellectual and practical skills required for further study. The course is intended for prospective computer science majors, i.e. those with a well-developed interest in computing as an academic field of study and with strong mathematical, analytical and language abilities; it is not intended for those whose interest is casual, nor for those who require remedial work in the necessary background.
Warning: The work for this course includes a substantial number of exercises which require problem analysis, program preparation, testing, analysis of results, documentation, and submission of written reports. The course is demanding in terms of time, and requires the student to put in many hours of work per week outside of lectures. During the first few weeks there is a scheduled laboratory. After that students book time in the computer laboratory on an as needed basis.
Recommendation: You will benefit if you have prior practical experience with programming as well as using a computer. Students who wish to take a one-course exposure to the practical aspects of computing should consider enrolling in COSC1520.03 and COSC1530.03 instead (see the following descriptions).
Texts: t.b.a.
Prerequisites: If no university-level mathematics: OAC Calculus and one other OAC in mathematics (normally Finite Mathematics or Algebra and Geometry) with an average grade of 75 percent in all OAC mathematics and no grade less than 65 percent; otherwise: at least 6 credits of university-level mathematics with a grade average over all MATH credits of C+ or better [B+ or better if it is a service course (second digit is 5)].
Recommended: Previous programming experience; for example, a high school programming course or SC/AS/COSC1530.03.
Corequisite: AS/SC/AK/MATH1090.03.
Course Director: TBA
Instructors:
Section A TBA
Section B TBA
Section C P. Cribb
COSC 1030.03 Introduction to Computer Science II
Fall
Section A Mon, Wed, Fri, 17:30
Winter
Section M Mon, Wed, Fri 14:30
Section N Tues, Thurs 14:30-16:00
Section P Mon, Wed, Fri 10:30
Summer '98
Section AH TBA
This course is a continuation of COSC1020 and covers some of the fundamentals of software development, various data structures (arrays, queues, stacks, trees, lists), and algorithms that use these structures (sorting, searching). An object oriented approach will be introduced. Students will use the Unix operating system with the X Window System.
Text: t.b.a.
Prerequisites: COSC1020.03; MATH1090.03
Course Director: G. Gotshalks
Instructors:
Section M J. Edmonds
Section N T. Brecht
Section P G. Gotshalks
COSC 1520.03 Introduction to Computer Use I
Fall
Section A Mon, Wed, Fri 13:30
Section B Mon, Wed, Fri 9:30
Section C Tues, Thurs 14:30-16:00
Section D Mon, Wed, Fri 16:30
Section E Mon, Wed, Fri 12:30 Physical education only
Section G Mon, Wed, Fri 11:30 Physical education only
Section H Tues, Thurs 8:30-10:00
Section J Tues, Thurs 10:00-11:30
Winter
Section M Mon, Wed 16:30-18:00
Section N Mon, Wed, Fri 11:30
Section P Tues 14:30, Thurs 14:30-16:30
Summer '98
Section AH TBA
This course is appropriate for students who are not majoring in Computer
Science, but who would like an introduction to the use of the computer
as a problem-solving tool. No previous computing experience is assumed,
but the course will involve a number of programming exercises, so some
facility with problem-solving and symbolic operations will be very helpful.
An introduction to the use of computers focusing on concepts of computer
technology and organization (hardware and software), and the use of applications
and information retrieval tools for problem solving.
Topics to be studied include: the development of information technology
and its current trends; analysis of problems for solution by computers,
report generation, file processing; spreadsheets; database; numeric and
symbolic calculation; the functions of an operating system; interactive
programs.
Students should be aware that like many other computer courses, this course
is demanding in terms of time, and should not be added to an already heavy
load. There is scheduled and unscheduled time in the Glade laboratory using
NeXT computers. The course is not appropriate for students who want more
than an elementary knowledge of programming and it cannot be used as a
substitute for COSC1020.03/1030.03: Introduction to Computer Science.
Advice: If it is possible, we suggest that you enrol for the
summer or winter term.
Note: This course is not open to students who have passed or are
taking COSC1020.03. This course counts as elective credits towards satisfying
Faculty degree requirements but does not count as Computer Science credits.
Texts: t.b.a.
Prerequisites: none
Course Director: P. Cribb
Instructors:
Section A t.b.a.
Section B P. Cribb
Section C t.b.a.
Section D t.b.a.
Section E M. Mosher
Section G M. Mosher
Section H t.b.a.
Section J t.b.a.
Section M t.b.a.
Section N t.b.a.
Section P t.b.a.
Section AH t.b.a.
COSC 1530.03 Introduction to Computer Use II
Winter
Section M Mon, Wed, Fri 12:30
Section N Mon, Wed, Fri 9:30
Section P Tues, Thurs 10:00-11:30
Section R Mon 16:30, Wed 16:30-18:30
Concepts of computer systems and technology - e.g., software engineering,
algorithms, programming languages, theory of computation. Practical work
focuses on problem solving using a high-level programming language. The
course requires extensive laboratory work.
Note: This course is designed for students who are not Computer
Science majors, but may be used as preparation by those who wish to major
in Computer Science but lack programming background. Students who plan
to major in computer science must also take SC/AS/COSC1020.03 and SC/AS/COSC1030.03.
Degree credit exclusions: SC/AS/COSC1540.03. This course is not open to any student who has passed or is taking SC/AS/COSC1020.03.
Texts: t.b.a.
Course Director: P. Cribb
Instructors:
Section M t.b.a.
Section N P. Cribb
Section P t.b.a.
Section R t.b.a.
COSC 1540.03 Computer Use for the Natural Sciences
Section A (Fall) Mon, Wed, Fri 15:30
Section M (Winter) Tues 12:30-14:30, Thurs 12:30
Introduction to problem solving using computers - top down and modular
design; implementation in a procedural programming language - control structures,
data structures, subprograms; application to simple numerical methods,
modelling and simulation in the sciences; use of library subprograms.
This course is intended for students in the Faculty of Pure and Applied
Science.
Note: This course is not open to any student who has passed or is
taking COSC1020.03. This course counts as elective credits towards satisfying
Faculty degree requirements but does not count as Computer Science credits.
Texts:
Prerequisites: none
Degree credit exclusions: COSC1530.03, SC/ACMS 1010.02.
Course Director: t.b.a.
Instructors:
Section A t.b.a.
Section M t.b.a
[ return to Table of Contents ]
2000-Level General Prerequisites
Before enrollment is permitted in any 2000-level computer science course the following must be met.
Specific prerequisites may also apply to individual courses.
Taking more than two 2000-level computer science courses per term is not
permitted.
COSC 2001.03 Introduction to Theory of Computation
Section A (Fall) Tues, Thurs 14:30-16:00
Section M (Winter) Tues, Thurs 8:30-10:00
Section N (Winter) Mon, Wed 17:30-19:00
The course introduces different theoretical models of computers. Topics covered may include the following.
Texts: Cohen, Introduction to Computer Theory.
Prerequisites: general prerequisites.
Course Director:
Section A Z. Stachniak
Section M J.Liu
Section N t.b.a.
COSC 2011.03 Fundamentals of Data Structures
Section A (Fall) Mon, Wed, Fri 14:30
Section M (Winter) Mon, Wed, Fri 14:30
Section N (Winter) Tues, Thurs 16:00-17:30
This course discusses the fundamental data structures commonly used
in the design of algorithms. At the end of this course, students will know
the classical data structures, and master the use of abstraction, specification
and program construction using modules. Furthermore, students will be able
to apply these skills effectively in the design and implementation of algorithms.
C++ is the implementation language for this course. No prior knowledge
of C or C++ is assumed. At the end of the course students will be able
to programme in C++ and understand the fundamentals of the object-oriented
paradigm. Not all of the language features of C++ are covered but it is
expected that you will be able to quickly learn these concepts independently.
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: general prerequisites.
Course Director:
Section A J. Liu
Section M B. Guo
Section N t.b.a.
COSC 2021.03 Computer Organization
Section A (Fall) Mon, Wed, Fri 11:30
Section M (Winter) Tues, Thurs 14:30-16:00
Section AH (SU98) TBA
Computers can be usefully viewed as having a structure organized into
several levels, ranging from high-level programming languages such as Pascal
or C to digital logic circuits. Each level provides specific resources
for the programmer which are created by the structure at the next lower
level. This course intends to provide students basic understanding of computers
at the lowest levels of this structure. The ways in which data are represented
in memory and transformed by machine instructions are explored.
The major functional blocks of a computer including main memory, control
unit, ALU, input/output bus structures, interrupt system, DMA channels,
and peripheral devices are studied. Some assembler programming and microprogramming
will be required.
Texts: Patterson & Hennessy, Computer Organization & Design: The Hardware / Software Interface, Morgan Kaufmann, 1994.
Suggested Reading:
Prerequisites: general prerequisites.
Course Director: t.b.a.
COSC 2031.03 C, UNIX and X Window System
Section A (Fall) Mon, Wed, Fri 16:30
Section M (Winter) Mon, Wed, Fri 12:30
Students should note that this course has a substantial self-disciplined laboratory component.
Texts:
Prerequisites: general prerequisites.
Course Director:
Section A A. Wallis
Section M A. Wallis
[ return to Table of Contents ]
3000-Level General Prerequisites
Before enrollment is permitted in any 3000-level computer science course (except service courses 35xx.xx) the following prerequisites must be met.
Specific prerequisites may also apply to individual courses.
Warning: Starting in the academic year 1995/96 computer science upper level courses assume students have a working knowledge of C++, as presented in COSC2011.03. Some upper level courses use the C programming language, therefore students may want to plan on completing COSC2031.03 before entering third year.
COSC 3001.01 Organization and Management Seminar in Space and Communication
Sciences
(same as SC/EATS3001.01 and SC/PHYS3001.01)
Full Year Every second Tues 17:00
A seminar course taught by guest speakers from industry, government and the university. Content changes from year to year, but includes such topics as professional ethics, communications regulations, space law, space science policy, project management, privacy and security issues in computing.
Prerequisites: Eligibility to proceed in the Specialized Honours stream in SCS beyond the 2000-level requirements
Degree Credit Exclusions: EATS 3001.01, PHYS 3001.01
Course Director: t.b.a
COSC 3101.03 Design and Analysis of Algorithms
Section A (Fall) Mon, Wed 11:30-13:00
Section M (Winter) Tues 12:30-14:30, Thurs 12:30
This course is intended to teach students the fundamental techniques
in the design of algorithms and the analysis of their computational complexity.
Each of these techniques are applied to a number of widely used and practical
problems. At the end of this course, a student will be able to: choose
algorithms appropriate for many common computational problems; to exploit
constraints and structure to design efficient algorithms; and to select
appropriate tradeoffs for speed and space.
Topics covered may include the following.
Texts: t.b.a.
Suggested reading:
Prerequisites: general prerequisites, including MATH2320.03 (SCS students may enrol without MATH2320.03 or concurrently with MATH2320.03)
Course Director:
Section A A. Mirzaian
Section M t.b.a.
NOTE: This course is required of all specialized honours students in computer science except those in the SCS stream.
COSC 3111.03 Introduction to Program Verification
Section M (Winter) Mon, Wed 11:30-13:00
Every program implicitly asserts a theorem to the effect that if certain
input conditions are met then the program will do what its specifications
or documentation says it will. Making that theorem true is not merely a
matter of luck or patient debugging; making a correct program can be greatly
aided by a logical analysis of what it is supposed to do, and for small
pieces of code a proof that the code works can be produced hand-in-hand
with the construction of the code itself. Good programming style works
in part because it makes the verification process easier and this in turn
makes it easier to develop more complex algorithms from simple ones.
The course will provide an introduction to the basic concepts of formal
verification methods. It will also include the use of simple tools to aid
in verification.
Topics covered will include the following.
Texts: t.b.a.
Suggested readings:
Prerequisites: general prerequisites, including MATH 2090.03
Course Director: P. Roosen-Runge
COSC 3121.03 Introduction to Numerical Computations I
(same as AS/SC/MATH 3241.03)
Section B (Fall) Mon, Wed, Fri 10:30
This course is concerned with an introduction to matrix computations
in linear algebra for solving the problems of linear equations, non-linear
equations, interpolation and linear least squares. Errors due to representation,
rounding and finite approximation are studied. Ill-conditioned problems
versus unstable algorithms are discussed. The Gaussian elimination with
pivoting for general system of linear equations, and the Cholesky factorization
for symmetric systems are explained. Orthogonal transformations are studied
for computations of the QR decomposition and the Singular Values Decompositions
(SVD). The use of these transformations in solving linear least squares
problems that arise from fitting linear mathematical models to observed
data is emphasized. Finally, polynomial interpolation by Newton's divided
differences and spline interpolation are discussed as special cases of
linear equations. The emphasis of the course is on the development of numerical
algorithms, the use of intelligent mathematical software and the interpretation
of the results obtained on some assigned problems.
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: for Computer Science majors - general prerequisites, including MATH2221.03; for others - COSC1540.03 or COSC2011.03 or COSC2031.03; MATH1010.03 or MATH1014.03 or MATH1310.03; MATH1025.03 or MATH2021.03 or MATH2221.03.
Degree Credit Exclusion: MATH3241.03
Course Director: t.b.a.
COSC 3122.03 Introduction to Numerical Computations II
(same as AS/SC/MATH3242.03)
Section M (Winter) Mon, Wed, Fri 14:30
The course includes a study of algorithms and computer methods for differentiation,
integration, and solution of ordinary differential equations. Nonlinear
equations of one variable, systems of nonlinear equations, optimization
of functions of one and several variables and their relation to nonlinear
equations are also covered. The emphasis of the course is on the development
of numerical algorithms, the use of intelligent mathematical software and
the interpretation of the results obtained on some assigned problems.
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: COSC3121.03; MATH2270.03
Degree Credit Exclusion: MATH3242.03
Course Director: t.b.a.
COSC 3201.03 Digital Logic Design
Section A (Fall) Mon, Wed, Fri 14:30
Section M (Winter) Mon, Wed, Fri 10:30
Texts:
Suggested readings:
Prerequisites: general prerequisites, including COSC2021.03.
Course Director:
Section A M. Spetsakis
Section M A. Wallis
COSC 3211.03 Data Communication
Section A (Fall) Mon, Wed 19:00-20:30
Section M (Winter) Mon, Wed 14:30-16:00
Section AH (SU98) t.b.a.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC2021.03 and MATH2090.03
Course Director:
Section A A. Wallis
Section M M. Aboelaze
Section AH t.b.a.
COSC 3212.03 Computer Networks
Section A (Fall) Mon, Wed 16:00-17:30
Section M (Winter) Mon, Wed 19:00-20:30
This course covers the upper layers in the OSI(TCP/IP) reference models.
Topics covered include:
Texts: t.b.a.
Prerequisites: general prerequisites; COSC3211.03
Course Director:
Section A M. Aboelaze
Section M t.b.a.
COSC 3301.03 Programming Language Fundamentals
Section A (Fall) Mon, Wed 17:30- 19:00
The topic of programming languages is an important and rapidly changing
area of computer science. This course introduces students to the basic
concepts and terminology used to describe programming languages. Instead
of studying particular programming languages, the course focuses on the
"linguistics" of programming languages, that is, on the common,
unifying themes that are relevant to programming languages in general.
The algorithmic, or procedural, programming languages are particularly
emphasized. Examples are drawn from early and contemporary programming
languages, including Fortan, Algol 60, PL/I, Algol 68, Pascal, C, C++,
Eiffel, Ada 95, and Java.
This course is not designed to meet the needs of the student who wishes
to learn to program in a particular programming language. However, any
student who completes this course should be able to learn any new programming
language with relative ease.
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 2001.03.
Course Director: M. Wharton
COSC 3311.03 Software Design
Section A (Fall) Tues, Thurs 16:00-17:30
ÒA program which does not work is undoubtedly wrong; but a
program which does work is not necessarily right. It may still be wrong
because it is hard to understand or because it is hard to maintain as the
program requirements change; or because its structure is different from
the structure of the problem.Ó (M. A. Jackson)
This course introduces the topic of software design through lectures, supplementary
readings and a set of small design problems. The course deals with the
problem of designing software that can be used, understood and modified
by people other than the original designer.
Software design is in itself a large topic as design can deal with various
classes of programs and systems: small, medium and large; batch; real time;
distributed; and interactive (visual and graphical). Every design class
has its own problems. In this course we deal with small to medium programs
and small systems that work without critical time constraints (although
time will be considered).
We examine design methods such as JSP (Jackson System Programming), Data
Flow, SADT (Structured Analysis and Design Technique), top down, bottom
up and structured design methods. We show how theoretical notions from
finite state machines and grammars are related to and used in the design
process.
Some of the low level techniques we look at are: abstract data types; backtracking;
divide and conquer; structure clash resolution; process inversion; coroutines;
and error handling.
Design issues are related to the other phases of developing a program:
requirements analysis, specification, implementation, testing, and maintenance.
Upon leaving the course, you can expect to be able to design, implement
and modify programs and systems of programs which transform sequences from
one form to another. You will understand the role of tools and frames in
the design process. You will be able to evaluate program designs and design
methods.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 2001.03 and MATH2090.03
Course Director: N. Graham
COSC 3321.03 Operating System Fundamentals
Section A (Fall) Mon, Wed, Fri 16:30
Section M (Winter) Tues, Thurs 19:00-20:30
This course is intended to teach students the fundamental concepts that underlie operating systems, including multiprogramming, concurrent processes, CPU scheduling, deadlocks, memory management, file systems, protection and security. Many examples from real systems are given to illustrate the application of particular concepts. At the end of this course, a student will be able to understand the principles and techniques required for understanding and designing operating systems.
Text: A. Silberschatz, J.L. Peterson, and P. Galvin, Operating System Concepts, Third Edition, Addison-Wesley, 1991.
Prerequisites: general prerequisites, including COSC2021.03
Course Director:
Section A M. Spetsakis
Section M H. Sandhu
COSC 3331.03 Object-Oriented Programming and Design
Section M (Winter) Tues, Thurs 10:00-11:30
Introduction to the theoretical and practical methods of object-oriented
software construction. Topics include: single and multiple inheritance,
type hierarchies, polymorphism, operator overloading, class library design,
templates, constraint based programming; and contract model of design.
This course is a detailed introduction to the methodology and practice
of Object-Oriented software construction, one of the major areas of software
engineering practice and research.
A source program in an object-oriented programming environment is based
on independently defined abstract program units called object classes or
types; the object instances of the classes are created in the program and
interact through message passing at run-time. Each object is a program
unit which packages both a coherent collection of data elements and the
methods (routines) for their manipulation. The object encapsulates its
data elements, which means that the object class has an interface which
defines all and only what is visible about the object instances to other
objects in the program environment. These techniques promote the reuse
of reliable code and reduce the frequency of the kinds of programming which
arise in attempting to integrate the different parts of a complex program.
The course will introduce the theoretical concepts of object-oriented programming
and design, and present examples using the object-oriented programming
language C++.
The course assumes a general knowledge of C++ (i.e. base types, control
structure, pointers, references, functions, parameter passing, etc.) as
well as general notion of abstract data types and as they are implemented
in C++ (i.e. classes).
The topics to be covered include the following.
Text: t.b.a.
Prerequisites: general prerequisites
Degree Credit Exclusion: COSC3010A.03
Course Director: N. Graham
COSC 3401.03 Introduction to Symbolic Computation
Section A (Fall) Tues, Thurs 17:30-19:00
The course will introduce and explore programming concepts used in symbolic
and knowledge-based computing. It is intended to give the student a programming
background which will be useful for further work in logic programming,
expert systems, and artificial intelligence.
The programming language Prolog will be considered in detail. Prolog is
a declarative programming language based on the concept of a logical assertion.
It is widely used for constructing knowledge-based and expert systems.
The course will develop the following concepts.
Text: t.b.a.
Prerequisites: general prerequisites, including MATH 2090.03
Course Director: G. Gotshalks
COSC 3402.03 Introduction to Concepts of Artificial Intelligence
Section M (Winter) Tues, Thurs 16:00-17:30
Artificial Intelligence (AI) deals with building a system which can
operate in an intelligent fashion. Neat as this simple definition is, it
obscures the complex nature of intelligence. At the time of the Dartmouth
Conference (1956), regarded by many as the start of AI, some researchers
believed it would be possible to create a "thinking machine"
in a matter of a few years. That was close to 40 years ago, and we are
still far from our goal, but we have learned a lot on the way.
In this course, we begin by discussing differing definitions of artificial
intelligence and go on to examine fundamental concepts in AI, building
on material introduced in COSC3401.03: Introduction to Symbolic Computation.
Topics to be covered include reasoning under uncertainty, search, constraint
propagation, planning and problem solving.
Text: Rowe, N., Artificial Intelligence Through Prolog, Prentice-Hall 1988
Prerequisites: general prerequisites; COSC3401.03; MATH2320.03
Course Director: Z. Stachniak
COSC 3408.03 Simulation of Discrete Systems
Section A (Fall) Tues, Thurs 14:30-16:00
Simulation is a technique for dealing with problems that do not admit
exact (or "analytic") solutions via mathematical analysis. A
model of the system to be studied is constructed, and then the model is
run to see how it performs, either to predict how the system will behave,
or, if the behaviour of the system is known, to test the validity of the
model of the system. A computer is a tool for supporting a large amount
of activity in the running of the model.
A "discrete system" simulation is one which admits a discrete-event
model that can run be in discrete steps that match the structure of the
model. (For simulation of continuous systems see COSC 3418.03)
Examples of discrete systems studied by simulation include games and other
dynamic systems involving small populations where it is feasible to model
individual's behaviour. Major sub-topics include the generation and use
of random numbers, queuing systems, and the visual presentation of behaviour.
Texts: t.b.a.
Prerequisites: general prerequisites; MATH2560.03.
Degree Credit Exclusion: MATH4930B.03.
Course Director: H. Sandhu
COSC 3411.03 File Structures and Data Management
Section A (Fall) Tues 12:30-14:30, Thurs 12:30
Section M (Winter) Tues, Thurs 14:30-16:00
The purpose of this course is to introduce students to file organizations
and the hardware and software involved in the creation and manipulation
of files. The course presents basic concepts, criteria for choosing between
alternative file organizations, and other topics that are important for
the understanding of file management. At the end of this course a student
will be able to understand and apply file organization techniques in design
and analysis of file management systems.
Topics covered may include the following.
Texts: M.J. Folk and B. Zoellick, File Structures, 2nd edition, Addison-Wesley, 1992.
Suggested readings:
Prerequisites: general prerequisites, including COSC 2021.03 and MATH2090.03; knowledge of the C or C++ language is recommended; MATH2320.03 is recommended.
Course Director:
Section A G. Gotshalks
Section M J. Xu
COSC 3412.03 Introduction to Database Management Systems
Section A (Fall) Tues 9:30-11:30, Thurs 9:30
Section M (Winter) Mon, Wed, Fri 9:30
The purpose of this course is to introduce the fundamental concepts
of database management, including aspects of data models, database languages,
and database design. At the end of this course, a student will be able
to understand and apply the fundamental concepts required for the use and
design of database management systems.
Topics may include the following:
Texts:
Prerequisites: general prerequisites; COSC3411.03
Course Director:
Section A t.b.a.
Section M t.b.a.
COSC 3418.03 Simulation of Continuous Systems
(not offered in FW97/98)
Simulation is a technique for dealing with problems that do not admit
exact (or "analytic") solutions via mathematical analysis. A
model of the system to be studied is constructed, and then the model is
run to see how it performs, either to predict how the system will behave,
or, if the behaviour of the system is known, to test the validity of the
model of the system. A computer is a tool for supporting a large amount
of activity in the running of the model.
A "continuous system" may either be presumed to be inherently
continuous or it may, at a fine enough scale, be actually composed of discrete
events. However, in simulation, a "continuous system" is one
for which the model, due to practical necessity, is described by continuous
variables regardless of its physical structure. However, the running of
a continuous model involves, also of necessity, discrete steps. Thus central
to continuous system simulation is the problem of approximation. (For simulation
of discrete systems see COSC 3408.03)
Examples of continuous systems studied by simulation include dynamic systems
involving very fine variations or large populations. Major sub-topics include
chaotic behaviour, the numerical solution of differential equations by
finite methods, and related issues of stability and errors.
Texts: t.b.a.
Prerequisites: general prerequisites; MATH2560.03.
COSC 3530.03 Technical and Professional Writing
(x-listed BC3030.03)
Fall
Wed 9:30-11:30, Fri 10:30
This writing-intensive course is for upper-year students enrolled in Computer Science, Space and Communication Sciences, and related fields. Students develop confidence and competence in professional and technical writing. Focus is on communication of complex information in a clear, sensible style. Articles, end-user documentation and technical reports will be critically evaluated in class. Outside speakers from industry will be invited to provide a real-world perspective on needs.
Note: This course counts as elective Science credits toward satisfying Faculty degree requirements but does not count as Computer Science credit.
Web site: www.yorku.ca/bethune/courses/3030.htm
Texts:
Corequisite: concurrent enrolment in at least one course in 3000- or 4000-level Computer Science, Physics, or other applied science. English language proficiency is expected.
Degree Credit Exclusions: BC3030.03; BC3050.03.
Course Director: t.b.a.
[ return to Table of Contents ]
4000-Level General Prerequisites
Before enrollment is permitted in any 4000-level computer science course
the following requirements must be met.
COSC 4001.06 Space and Communication Sciences Workshop
(same as SC/EATS4001.06 and SC/PHYS4001.06)
Full Year Tues 17:00
Individual projects will be assigned by mutual agreement between the student and a faculty member. The work may be done under supervision by the faculty member, or under supervision of an industrial associate to that faculty member. The projects will be self-contained problems of a design nature, and will be pursued in the manner of a space project. Thus, the first step is to define the requirements of the design, the second to carry out a review of previous work, and the third to execute the design. Following that, the design shall be tested, normally through simulation, and conclusions drawn. A report of professional quality shall be written and submitted.
Prerequisites: Satisfactory completion of the 3000-level courses in the Space and Communication Science core
Degree Credit Exclusions: COSC4080.03, EATS4001.06, PHYS4001.06
Course Director: M. Wharton
COSC 4010C.03 Beyond the Object: Frameworks, Components and ORBs
(not offered in FW97/98) .
COSC 4080.03 Computer Science Project
This is a course for advanced students, normally those in the fourth
year of an honours programme, or students who have completed six full computer
science courses. Students who have a project they wish to do, need to convince
a member of the faculty in the department that it is appropriate for course
credit. Alternatively, students may approach a faculty member in the Department
(typically, one who is teaching or doing research in the area of the project)
and ask for project suggestions. Whatever the origin of the project, a
ÔcontractÕ is required. It must state the scope of the project,
the schedule of work, the resources required, and the criteria for evaluation.
The contract must be signed by the student and his/her project supervisor
and be acceptable to the course director.
Internship students may elect to receive credit for their internship as
a project course. This is outlined further at the beginning of this calendar.
A 'contract' is still required.
Prerequisites: general prerequisites; permission of the course director. Restricted to students who have completed 36 credits in Computer Science.
Degree Credit Exclusion: COSC4001.06
Course Director: M. Wharton
COSC 4101.03 Advanced Data Structures
(x-listed COSC 5101.03)
Section A (Fall) Mon, Wed, Fri 15:30
Section M (Winter) Mon 9:30-11:30, Wed 9:30
The course discusses advanced data structures: heaps, balanced binary
search trees, hashing tables, red--black trees, B--trees and their variants,
structures for disjoint sets, binomial heaps, Fibonacci heaps, finger trees,
persistent data structures, etc. When feasible, a mathematical analysis
of these structures will be presented, with an emphasis on average case
analysis and amortized analysis. If time permits, some lower bound techniques
may be discussed, as well as NP-completeness proof techniques and approximation
algorithms.
The course may include the following topics.
Texts:
Prerequisites: general prerequisites, including COSC 3101.03; MATH2320.03
Course Director:
Section A t.b.a.
Section M A. Mirzaian
COSC 4111.03 Automata and Computability
Section A (Fall) Mon, Wed, Fri 12:30
This course is the second course in the theory of computing. It is intended to give students a detailed understanding of the basic concepts of abstract machine structure, information flow, computability, and complexity. The emphasis will be on appreciating the signficance of these ideas and the formal techniques used to establish their properties. Topics chosen for study include: models of finite and infinite automata, the limits to computation, and the measurement of the intrinsic difficulty of computational problems.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC3101.03; MATH2320.03.
Course Director: P. Roosen-Runge
COSC 4201.03 Computer Architecture
(x-listed COSC 5590.03)
Section M (Winter) Mon 9:30-11:30, Wed 9:30
This course presents the core concepts of computer architecture and
design ideas embodied in many machines and emphasizes a quantitative approach
to cost/performance tradeoffs. This course concentrates on uniprocessor
systems. A few machines are studied to illustrate how these concepts are
implemented; how various tradeoffs that exist among design choices are
treated; and how good designs make efficient use of technology. Future
trends in computer architecture are also discussed.
Topics covered may include the following.
Texts:
Prerequisites: general prerequisites, including COSC 3201.03 and COSC3321.03
Course Director: M. Aboelaze
COSC 4211.03 Performance Evaluation of Computer Systems
Section M (Winter) Tues, Thurs 16:00-17:30
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3211.03 and COSC3408.03
Course Director: H. Sandhu
COSC 4242.03 Signals and Systems
(x-listed COSC 5325.03)
Section A (Fall) Mon, Wed, Fri 11:30
The study of computer vision, graphics and robotics requires background
in the concept of discrete signals, filtering, and elementary linear systems
theory. Discrete signals are obtained by sampling continuous signals.
In this course, students review the concept of a discrete signal, the conditions
under which a continuous signal is completely represented by its discrete
version, linear time-invariant systems.
Topics covered may include the following.
Text: A. V. Oppenheim, A. S. Willsky, Signals and Systems, Prentice Hall, 1983
Prerequisites: general prerequisites; COSC3121.03 or MATH3241.03.
Degree Credit Exclusions: COSC4010B.03, EATS4020.03, MATH4830.03, PHYS4060.03.
Course Director: B. Guo
COSC 4301.03 Programming Language Design
(x-listed COSC 5423.03)
Section M (Winter) Mon, Wed 18:00-19:30
This course is a continuation of COSC3301.03 Programming Language Fundamentals. Like its predecessor, the course focuses on the linguistics of programming languages; that is, on the common, unifying themes that are relevant to programming languages in general. Both algorithmic and nonalgorithmic language categories are examined. Current techniques for the formal specification of the syntax and semantics of programming languages are studied. Skills are developed in the critical and comparative evaluation of programming languages.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3301.03
Course Director: M. Wharton
COSC 4302.03 Language Processors
Section A (Fall) Mon, Wed, Fri 14:30
This course is concerned with a variety of theoretical and practical
questions that are raised by the need to implement programming languages.
The implementation of a programming language is accomplished by writing
a computer program that functions as a "translator" or "language
processor". Language processors can be categorized as compilers, cross-compilers,
interpreters, assemblers, and pre-processors. However, the different kinds
of translators generally exhibit a common internal structure consisting
of standardized "phases": the scanner, parser, and semantics.
Because of this common structure, it is appropriate to study language processors
as a unified group. However, the course emphasizes the most important class
of language processors: compilers.
As a practical exercise, students are required to design and implement
components of a compiler.
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3301.03
Course Director: M. Wharton
COSC 4311.03 System Development
Section M (Winter) Mon, Wed, Fri 14:30
System Development deals with the construction of systems of interacting
processes. The course focuses on abstraction, specification, and analysis
in software system development. Abstraction and specification can greatly
enhance the understandability, reliability and maintainability of a system.
Analysis of concurrency and interaction is essential to the design of a
complex system of interacting processes.
The course is split into three parts. The first part discusses a semiformal
method, Jackson System Development (JSD) by Michael Jackson. JSD is used
to build an understanding of what system development entails and to develop
a basic method of constructing practical systems of interacting processes.
JSD gives precise and useful guidelines for developing a system and is
compatible with the object oriented paradigm. In particular, JSD is well
suited to the following.
The second part of the course discusses the mathematical model CSP (Communicating
Sequential Processes by C.A.R. Hoare). While CSP is not suitable to the
actual design and development of a system of interacting processes, it
can mathematically capture much of JSD. Consequently, it is possible to
use formal methods in analyzing inter-process communication arising out
of JSD designs.
The third part of the course discusses Z notation and its use in the specification
of software systems. Z has been successfully used in many software companies
-- such as IBM and Texas Instruments -- to specify and verify the correctness
of real systems.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3311.03, and COSC3111.03 or COSC3321.03.
Course Director: G. Gotshalks
COSC 4321.03 Operating System Design
(x-listed COSC 5421.03)
Section A (Fall) Tues, Thurs 14:30-16:00
An operating system has four major components: process management, input/output,
memory management, and the file system. This project- oriented course puts
operating system principles into action. This course presents a practical
approach to studying implementation aspects of operating systems. A series
of projects is included, making it possible for students to acquire direct
experience in the design and construction of operating system components.
A student in this course must design and implement some components of an
operating system and have each interact correctly with existing system
software. The programming environment is C++ under Unix. At the end of
this course, a student will be able to design and implement the basic components
of operating systems.
A solid background in operating systems concepts, computer architecture,
C, and UNIX is expected.
Texts: Bacon, J., Concurrent Systems, and a course reader available from Department of Computer Science.
Prerequisites: general prerequisites, including COSC 3321.03.
Course Director: T. Brecht
COSC 4331.03 Computer Graphics
(x-listed COSC 5431.03)
Section A (Fall) Tues, Thurs 19:00-20:30
Section M (Winter) Mon, Wed, Fri 11:30
This course introduces the student to the fundamental algorithms of
3-D computer graphics and image synthesis.
The first half of the course covers window systems, display hardware, graphical
primitives, scan conversion, two and three-dimensional transformations
and the mathematics of planar geometric projection.
The second half concentrates on raster algorithms and image synthesis.
Some of the topics include visible surface algorithms, modeling, shading,
global illumination, anti-aliasing and texture mapping.
Students are expected to be familiar with C and UNIX and will be using
the X window environment on the undergraduate workstations.
Texts t.b.a.
Prerequisites: general prerequisites; MATH2221.03
Course Director:
Section A J. Amanatides
Section M B. Guo
COSC 4341.03 Interactive System Design
(x-listed COSC 5491.03)
Section M (Winter) Tues 12:30-14:30, Thurs 12:30
Recent studies have shown that on average, 50% of the costs of modern
application programs come from the development of the program's user interface.
At the same time, users of programs are becoming increasingly aware and
critical of poorly designed user interfaces. The modern system designer
must, therefore, be capable of creating systems that are easy to use and
that truly address the needs of the users, while still managing to remain
within budget.
This course introduces the concepts and technology necessary to manage
the design and implementation of interactive software. Students will learn
methods for designing software matched to the goals, tasks and skills of
the eventual users of the system. A development methodology is presented
in which each development stage involves evaluation of the quality of the
system design. Units in the course will cover User Needs Analysis, User
Interface Design, Task-Oriented Specification, Architecture Design of Interactive
Systems, System Implementation, and User Testing and Evaluation.
The course is based on a project which involves programming in Turing,
a Pascal-like language. Students are expected to learn Turing on their
own.
Texts: t.b.a.
Prerequisites: general prerequisites.
Course Director: N. Graham
COSC 4351.03 Real-Time Systems Theory
Section A (Fall) Tues, Thurs 16:00-17:30
In real-time computing systems the correctness of the system depends
not only on the logical result of the computation but also on the time
at which the results are produced. For example, a computer controlling
a robot on the factory floor of a flexible manufacturing system, must stop
or turn the robot aside in time to prevent a collision with some other
object on the factory floor. Other examples of current real-time systems
include communication systems, traffic systems, nuclear power plants and
space shuttle and avionic systems.
Real-time programs in many safety-critical systems are more complex than
sequential programs or concurrent programs that do not have real-time requirements.
This course will deal with the modelling, simulation, specification, analysis,
design and verification of such real-time programs. The objective of the
course is to expose the student to current techniques for formally proving
the correctness of real-time behaviour of systems.
Topics covered may include the following.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3311.03 or COSC3321.03 or COSC3111.03.
Course Director: t.b.a.
COSC 4352.03 Real-Time Systems Practice
Section M (Winter) Mon, Wed 16:30-18:00
In real-time computing systems the correctness of the system depends
not only on the logical result of the computation but also on the time
at which the results are produced. For example, a computer controlling
a robot on a factory floor must stop the robot in time to prevent a collision.
Other examples of real-time systems include communication systems, traffic
systems, nuclear power plants and avionic systems. Real-time systems are
complex and require a knowledge of reactive programs for their design.
A reactive program maintains an ongoing non-terminating interaction with
its environment rather than computing some final value on termination.
The course will focus on the design, construction and verification of soft
and hard real-time systems. Topics may include: models of concurrent processes
with access to a clock (e.g. by fair transition systems with timeouts and
clock variables), semaphores and synchronization, process communication
and fairness, temporal logic for specifying safety properties (e.g. freedom
from deadlock), liveness and real-time response, verification of real-time
systems using temporal logic model-checking tools such as StateClock/STeP,
and examples from real-time programming languages (Ada and Java).
Text: Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems, Springer-Verlag, 1991, ISBN 0-387-97664-7 (v1).
Prerequisites: general prerequisites, including COSC 3301.03 or COSC3311.03 or COSC3321.03
Course Director: J. Ostroff
COSC 4361.03 Human-Computer Communication
Section A (Fall) Mon, Wed 16:30-18:00
The course focuses this year on the design and implementation of hypermedia
presentation systems. "Hypermedia" refer to the non-linear organization
of digital information, in which items (such as a word in a text field
or a region of an image) are actively linked to other items. Users interactively
select and traverse links in a hypermedia presentation system in order
to locate specific information or entertainment, or to browse in large
archives of text, sound, images, and video. Well-structured hypermedia
give users a way of coping with the "navigation" problem created
by availability of low-cost, fast access, high-density storage media.
We will explore the following topics.
Students will be expected to familiarize themselves quickly with the Macintosh interface and basic features of the operating system. Students will be asked to schedule themselves for at least six hours/week lab time in the Department's Multimedia Lab (161 CCB), as the course work will involve a significant amount of exploration and development of multimedia/hypermedia materials. Students will be divided into small teams with specific responsibilities for individual exploration and programming tasks assigned in connection with the course topics. Tasks may take the form of constructing presentations, prototype applications, or the programming of useful scripts. The teams will be asked to write short reports on their work which will be presented in class.
Text: t.b.a.
Prerequisites: general prerequisites.
Course Director: P. Roosen-Runge
COSC 4401.03 Artificial Intelligence
(x-listed COSC 5326.03)
Section M (Winter) Tues, Thurs 14:30-16:00
This course will be an in-depth treatment of one or more specific topics within the field of Artificial Intelligence. Possible topics include the following.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3402.03
Course Director: Y. Lesperance
COSC 4402.03 Logic Programming
(x-listed COSC 5311.03)
Section A (Fall) Tues 9:30-11:30, Thurs 9:30
Logic programming has its roots in mathematical logic and it provides
a view of computation which contrasts in interesting ways with conventional
programming languages. Logic programming approach is rather to describe
known facts and relationships about a problem, than to prescribe the sequence
of steps taken by a computer to solve the problem.
One of the most important problems in logic programming is the challenge
of designing languages suitable for describing the computations which these
systems are designed to achieve. The most commonly recognized language
is PROLOG.
When a computer is programmed in PROLOG, the actual way the computer carries
out the computation is specified partly by the logical declarative semantics
of PROLOG, partly by what new facts PROLOG can "infer" from the
given ones, and only partly by explicit control information supplied by
the programmer. Computer Science concepts in areas such as artificial intelligence,
database theory, software engineering knowledge representation, etc., can
all be described in logic programs.
Topics covered may include the following.
At the end of this course a student will be familiar with fundamental logic programming concepts and will have some programming expertise in PROLOG.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC 3401.03, and COSC3101.03 or COSC3111.03.
Course Director: Z. Stachniak
COSC 4411.03 Database Management Systems
Section A (Fall) Tues 12:30-14:30, Thurs 12:30
This course is the second course in database management. It introduces
concepts, approaches, and techniques required for the design and implementation
of database management systems.
Topics may include the following:
Texts: A. Silberschatz, H.F. Korth, and S. Sudarshan, Database System Concepts, 3rd Ed., McGraw-Hill, 1997.
Suggested Readings: R. Elmasri and S.B. Navathe, Fundamentals of Database Systems, 2nd Ed., Benjamin Cummings, 1994.
Prerequisites: general prerequisites, including COSC3412.03.
Course Director: J. Xu
COSC 4421.03 Introduction to Robotics
(x-listed COSC 5324.03)
Section A (Fall) Mon, Wed, Fri 9:30
The course introduces the basic concepts of robotic manipulators and autonomous systems. After a review of some fundamental mathematics the course examines the mechanics and dynamics of robot arms, modible robots, their sensors and algorithms for controlling them. A Robotics Laboratory is available equipped with a manipulator and a moving platform with sonars, several workstations and an extensive collection of software.
Texts: J. Craig, Introduction to Robotics: Mechanics and Control, 2nd edition, Addison Wesley.
Prerequisites: general prerequisites; MATH2221.03.
Course Director: M. Jenkin
COSC 4422.03 Computer Vision
(x-listed COSC 5323.03)
Section M (Winter) Mon, Wed, Fri 15:30
Computer Vision is a very challenging problem with wide applications.
It spans several disciplines within science and engineering: computer science,
computer engineering, photogrammetry, telecommunications, robotics, medicine
and the list goes on. This course introduces the fundamental concepts of
vision with emphasis on computer science.
In particular the course covers the image formation process, color analysis,
image processing, enhancement and restoration, feature extraction and matching,
3-D parameter estimation and applications. A Vision Laboratory is available
where students can gain practical experience. The Lab includes several
workstations equipped with video cameras, digitizers and image processing
software.
Texts: t.b.a.
Prerequisites: general prerequisites, including COSC3121.03
Course Director: M. Spetsakis
[ return to Table of Contents ]
The introductory courses MATH1090.03 and MATH1300.03 , and MATH1310.03 are required of all Computer Science majors. Students who have not taken OAC calculus should consult advisors in the Mathematics Department to determine which courses they should take before attempting MATH1300.03. In addition, some combination, or all of, the following mathematics courses will also be required, depending on the degree programme; MATH2090.03, MATH2221.03, and MATH2320.03.
Mathematics Substitute Course List Course
Course | Acceptable Substitutions for COSC degree requirements |
MATH1025.03 | MATH2021.03, MATH2221.03 |
MATH1090.03 | MATH1120.03 |
MATH1300.03 | MATH1000.03, MATH1013.03 |
MATH1310.03 | MATH1010.03, MATH1014.03 |
MATH2221.03 | MATH1025.03, MATH2021.03 |
---|
MATH 1090.03 Introduction to Sets and Logic
(formerly MATH1120.03)
This course is an introduction to sets, functions, relations, logic, induction
and proof techniques, and may include a smattering of basic combinatorics
and graph theory. It should be of value to mathematics or computer science
majors, and may also appeal to students wanting to apply mathematics to
the social and management sciences.
The final grade will be based on class tests and a final examination (and
possibly assignments).
Prerequisites: One credit of OAC (Ontario Grade 13) mathematics or AK/MATH1710.06 or equivalent.
Degree Credit Exclusions: AS/SC/MATH1120.03, AK/MATH1409A.03, AK/MATH2400.06, AK/MATH2440.06, AK/MATH2441.03. The course is not open to students who have taken or are taking any mathematics course at 3000 or higher level.
MATH 1300.03 Differential Calculus With Applications
Topics include functions, limits, continuity, differentiation, mean-value
theorem, curve sketching, maxima and minima, Riemann integration, antiderivatives,
fundamental theorem of calculus.
The final grade may be based on assignments, quizzes, class tests and a
final examination worth at least 30%.
Prerequisites: OAC.Calculus or AS/SC/MATH1500.03 or AS/SC/MATH1515.03 or AK/MATH1710.06 or equivalent.
Degree Credit Exclusions: AS/SC/MATH1000.03, AS/SC/MATH1013.03, AS/SC/MATH1505.06, AS/MATH1530.03, AS/AK/MATH1550.06, AS/ECON1530.03, SC/ACMS1030.06, SC/ACMS1050.06, AK/MATH1410.06, AK/MATH 1300.03, AK/MATH1409B.03.
MATH 1310.03 Integral Calculus with Applications
This is the second in a series of introductory calculus courses. It is
designed to follow MATH 1300.03.
Topics include fundamental theorem of calculus, logarithmic and exponential
functions, trigonometric functions, techniques of integration, applications
of integration theory, l'Hôpital's rule, infinite sequences and numerical
series.
The final grade may be based on assignments, quizzes, class tests, and
a final examination worth at least 30%.
Prerequisites: One of AS/SC/MATH 1000.03, AS/SC/MATH 1013.03, AS/SC/AK/MATH 1300.03, or, for non-Science students only, one of AS/MATH 1530.03 and AS/MATH 1540.03; or AS/AK/MATH 1550.06; or AS/ECON 1530.03 and AS/ECON 1540.03.
Degree Credit Exclusions: AS/SC/MATH 1010.03, AS/SC/MATH 1014.03, AS/SC/MATH 1505.06, SC/ACMS1030.06, SC/ACMS1050.06, AK/MATH1310.03, AK/MATH1410.06.
MATH 2090.03 Introduction to Mathematical Logic
Logic is the "official" language of mathematics and is essential
in establishing the foundations on which mathematics is built. In recent
years, logic has also come to play a fundamental and major role in computer
science. A knowledge of logic is now an absolute necessity for the computer
professional. In this course we will introduce the student to the basics
of mathematical logic and deductive reasoning. The course is primarily
intended for Computer Science students but would be valuable to any student
interested in formal reasoning. The topics covered will include the syntax
and semantics of both propositional and predicate logic, an introduction
to some axiomatic theories and a more detailed study of Peano arithmetic
and induction.
There will be assignments using software for the PC computers; equipment
will be available at the Steacie labs. The final grade will be based on
two class tests and a final examination (and possibly assignments).
Prerequisite: AS/SC/AK/MATH1090.03 or any 2000-level MATH course (without second digit 5) or permission of the course director.
MATH 2221.03 Linear Algebra with Applications I
Linear algebra is a branch of mathematics which is particularly useful
in other fields and in other branches of mathematics. Its frequent application
in the engineering and physical sciences rivals that of calculus. Computer
scientists and economists have long recognized its relevance to their discipline.
Moreover, linear algebra is fundamental in the rapidly increasing quantification
that is taking place in the management and social sciences. Finally, it
is essential to higher mathematics courses in algebra, analysis, probability
and statistics and geometry, where the ideas of linear algebra reappear.
This course and MATH2222.03 form a standard full-year introduction to linear
algebra. While the presentation is not excessively theoretical, proofs
will be presented and the student is expected to master concepts as well
as results. Applications will be left mainly for MATH 2222.03.
Topics to be studied include: systems of linear equations and matrices,
determinants, linear dependence and independence of sets of vectors in
Rn, vector spaces, inner product spaces and the Gram-Schmidt process.
The final grade will be based on term work and a final examination(with
possible weights of 60% and 40% respectively).
Prerequisite: OAC algebra or any university mathematics course.
Degree Credit Exclusions: AS/SC/MATH1025.03, AS/SC/MATH2000.06; AS/SC/MATH 2021.03, SC/ACMS 1020.06; AK/MATH2220.06, AK/MATH2221.03.
MATH 2320.03 Discrete Mathematical Structures
This course is intended primarily, but not exclusively, for Computer Science
students. It aims to provide an intensive introduction to a variety of
algebraic and combinatorial structures which are needed in computer science.
A student of mathematics should enjoy being introduced to this variety
of mathematical topics, many of which are not covered elsewhere. The course
does not require a previous knowledge of computer science.
In broad categories the topics to be covered include set theory (relations,
functions, ...), combinatorics, graph theory and abstract algebra (posets,
lattices, Boolean algebra, groups, ...). The emphasis will be on examples
and on extracting common properties.
This course is a prerequisite for COSC 3101.03, COSC 3402.03, COSC 4101.03,
COSC 4111.03.
The final grade may be based on two class tests (25% each), and a final
examination (50%).
Prerequisite: AS/SC/AK/MATH 1090.03 or any 2000-level MATH course (without second digit 5) or permission of the course director.
Degree Credit Exclusions: AK/MATH 2440.06, AK/MATH2442.03.
MATH 2560.03 Elementary Statistics I
Displaying and describing distributions, normal distribution. Relationships
between variables, regression and correlation. The need for design, experimental
design and sampling design. Sampling distributions, bias, variability.
Probability models, random variables, probability laws.
Prerequisite: Ontario Grade 12 Advanced Mathematics.
Degree Credit Exclusions: AS/SC/MATH 1131.03, SC/BIOL 3080.03, SC/BIOL 3090.03, AS/ECON 2500.03, AS/SC/GEOG 2420.03, AK/MATH 2442.03.03, AS/SC/PHED2050.03, AS/SC/PSYC 2202.03, AS/SOC/3030.06. Not open to any student who has successfully completed AS/SC/MATH 2030.06.
[ return to Table of Contents ]
Students should consult the University Undergraduate Calendar for full
details of the degree requirements and relevant regulations.
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(BA degrees only) and Social Science. They also provide exposure to areas of study outside ones area of specialization, and 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", in BA degrees only. 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. Faculty of Arts Honours degrees require at least 18 credits at the 4000-level and at least 36 credits at the 3000- and 4000-level. Faculty of Pure and Applied Science Honours degrees require a total of at least 42 credits at the 3000- and 4000-level.
In faculty courses Faculty of Arts courses have the prefix AS. Faculty of Pure and Applied Science courses have the prefix SC. All computer science and most mathematics courses are cross-listed between the faculties and have either AS or SC as a prefix depending upon the degree sought.
York University courses: for both BA Honours and BA Ordinary degrees, students must successfully complete at least 30 credits at York. Of these 30 credits, a minimum of 24 credits must be successfully completed in the faculty in which a degree is sought. At least half (raised if a fraction) of the course credit requirements of the Department must be taken in the faculty in which a degree is sought.
Faculty of Arts
The Faculty of Arts offers the following B.A. degree programmes
in Computer Science. Be sure to check the relevant departments for information
about each area of specialization.
For details of programme requirements refer to the York Calendar or web site (Calendars link at www.yorku.ca)
General education requirements
Students select their general education requirements in accordance with
the following prescription.
Area I | Area II |
Classical Studies (Greek or Latin) | Anthropology |
English | Economics |
French Studies | Geography |
History | Political Science |
Humanities | Psychology |
Languages, Literatures and Linguistics | Social Science |
Philosophy | Sociology |
Faculty of Pure and Applied Science
The Faculty of Pure and Applied Science offers the following BSc degree
programmes in Computer Science. The programmes are described in more detail
in the following sections. Be sure to see the relevant departments for
information about each area of specialization.
General regulations
Ordinary Programme
All BSc degree candidates in all ordinary programmes must do the following
through registration in courses at York or elsewhere deemed creditable
towards the BSc degree.
1. Satisfy general regulations 2, 3 and 4 in the York University Undergraduate
Calendar (see above for a summary).
2. Present a total of at least 90 passed credits of which
3. Successfully complete the programme of study specified for the Ordinary
Programme in Computer Science.
4. Achieve a cumulative COSC grade point average of 4.0 or better as part
of the general prerequisites for 2000-level and 3000-level COSC courses.
5. There is no grade point average requirement to graduate with an ordinary
degree.
Honours programmes
All candidates for the BSc degree in all honours programmes must do the
following through registration in courses at York or elsewhere deemed creditable
towards the BSc degree.
1. Satisfy regulations 2, 3 and 4 in the University Undergraduate Calendar
(see above for a summary).
2. Present a total of at least 120 passed credits of which a minimum of:
3. Successfully complete the programme of study specified for the declared
Honours Programmes and major subject areas.
4. To declare Honours requires successful completion of at least
24 credits with a minimum cumulative credit-weighted grade-point average
of 5.0 (6.0 for SCS stream and Combined Honours with Biology) over all
Science (SC) courses completed.
To proceed in each year of an Honours BSc programme requires a minimum
cumulative credit-weighted grade-point average of 5.0 (6.0 for SCS stream
and Combined Honours with Biology) over all Science (SC) courses completed.
To graduate in an Honours BSc programme requires successful completion
of all Faculty requirements and departmental required courses and a minimum
cumulative credit-weighted grade-point grade average of 5.0 (6.0 for SCS
stream and Combined Honours with Biology) over all Science (SC) courses
completed.
Breadth requirement
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
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 Communication Sciences Stream
has exceptions from the general requirements; the exceptions are noted.
The course requirements of the SCS stream are 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
2000-level second year
3000-level third year
4000-level fourth year, honours programmes only
[ return to Table of Contents ]
Prerequisites for Computer Science Courses
It is absolutely essential that students fulfill the prerequisites for
courses they wish to take.
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 the 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 Prerequisite(s)
---------------------------------
1000-Level
General Prerequisites (except 15xx.xx courses)
You must satisfy one of the following requirements. The latest courses
are considered.
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 or AK/MATH1710.06 |
MATH1300.03 | Differential Calculus with Applications | OAC calculus or MATH1500.03 or MATH1515.03 or AK/MATH1710.06 |
MATH1310.03 | Integral Calculus with Applications | MATH1300.03 |
2000-Level
General Prerequisites
COSC2001.03 | Intro. to Theory of Computation | General prerequisites |
COSC2011.03 | Fundamentals of Data Structures | General prerequisites |
COSC2021.03 | Computer Organization | General prerequisites |
COSC2031.03 | C, Unix and X Window System | General prerequisites |
MATH2090.03 | Intro. to Mathematical Logic (without second digit 5) | MATH1090.03 or any 2000-level MATH course |
MATH2221.03 | Linear Algebra with Applications I | OAC algebra or any university mathematics course. |
MATH2320.03 | Discrete Mathematical Structures | MATH1090.03 or any 2000-level MATH course (without second digit 5). MATH2090.03 is recommended as a prerequisite for COSC majors. |
3000-Level
General Prerequisites (except 35xx.xx 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 |
COSC3311.03 | Software Design | COSC2001.03; MATH2090.03 |
COSC3321.03 | Operating System Fundamentals | COSC2021.03 |
COSC3331.03 | Object-Oriented Programming and Design |
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 |
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
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 | COSC3211.03; COSC3408.03 |
COSC4242.03 | Signals and Systems | COSC3121.03 or MATH3241.03 |
Software Courses | ||
COSC4301.03 | Programming Language Design | COSC3301.03 |
COSC4302.03 | Language Processors | COSC3301.03 |
COSC4311.03 | System Development | COSC3311.03; COSC3111.03 or COSC3321.03 |
COSC4321.03 | Operating System Design | COSC3321.03 |
COSC4331.03 | Computer Graphics | MATH2221.03 |
COSC4341.03 | Interactive System Design | |
COSC4351.03 | Real-Time Systems Theory | COSC3111.03 or COSC3311.03 or COSC3321.03 |
COSC4352.03 | Real-Time Systems Practice | COSC3301.03 or COSC3311.03 or COSC3321.03 |
COSC4361.03 | Human-Computer Communication |
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 |
[ return to Table of Contents ]
Checklist1
Computer Science Requirements (Credit Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (9 )
COSC1030.03, MATH1310.03 (6)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (9 )
MATH2090.03 (3 )
MATH2221.03 or MATH2320.03 (3)
3000-level One Group A course (odd numbered) from each area
Theory COSC31_____.03, Software COSC33____.03 (6)
Hardware COSC32_____.03, Knowledge COSC34____.03 (6)
Two more courses COSC3______.03, COSC3______.03 (6)
Faculty Requirements
Any level SOSC__________.06, HUMA__________.06 (12)
One of
BIOL1010.06, CHEM1010.06, EATS1010.06, PHYS1010.062, PHYS1410.06
(6)
At least 3 additional credits from the following
BIOL1010.06, CHEM1010.06, EATS1010.06, EATS1010.03, EATS1011.03, (3)
MATH1025.03, PHYS1010.062, PHYS1070.03, PHYS1410.06
9 more SC credits3 _________________ _________________ _________________ (9)
12 more credits _________________ _________________ (6)
_________________ _________________ (6)
Total credits (90)
1 The Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme.There is no grade point average requirement to graduate with an ordinary degree.
2 PHYS1010.06 is taken, then you must take as corequisites MATH1013.03, MATH1014.03 and MATH1025.03. These courses are considered equivalent to MATH1300.03, MATH1310.03 and MATH2221.03 for Computer Science requirements.
3 If MATH1025.03 is taken, then 12 credits are required in this category, as MATH1025.03 is considered equivalent to MATH2221.03 for Computer Science requirements and is counted twice in the checklist.
[ return to Table of Contents ]
BSc Specialized Honours Degree
Checklist1
Computer Science Requirements (Credit Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (9)
COSC1030.03, MATH1310.03 (6)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (9)
MATH2090.03, MATH2221.03, MATH2320.03 (9)
3000-level One Group A course (odd numbered) from each area
Theory COSC3101.03, Software COSC33____.03 (6)
Hardware COSC32_____.03, Knowledge COSC34____.03 (6)
Three more courses COSC3______.03, COSC3______.03, COSC3______.03 (9)
4000-level
Four courses COSC4101.03 or COSC4111.03, COSC4______.03 (6)
COSC4______.03, COSC4______.03 (6)
Two courses (3000- or 4000-level) COSC________.03, COSC________.03 (6)
Faculty Requirements
Any level SOSC__________.06, HUMA__________.06 (12)
One of
BIOL1010.06, CHEM1010.06, EATS1010.06, PHYS1010.062, PHYS1410.06
(6)
At least 3 additional credits from the following
BIOL1010.06, CHEM1010.06, EATS1010.06, EATS1010.03, EATS1011.03, (3)
MATH1025.03, PHYS1010.062, PHYS1070.03, PHYS1410.06
9 more SC credits3 _________________ _________________ _________________ (9)
18 more credits _________________ _________________ _________________ (9)
_________________ _________________ _________________ (9)
Total credits (120 )
1 A cumulative grade point average of 5.0 over all SC courses is required to proceed in each year of the programme and to graduate. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme.
2 PHYS1010.06 is taken, then you must take as corequisites MATH1013.03, MATH1014.03 and MATH1025.03. These courses are considered equivalent to MATH1300.03, MATH1310.03 and MATH2221.03 for Computer Science requirements.
3 At least three credits in total from the categories "9 more SC credits" and "18 more credits" must be at the 3000- or 4000- level (for an overall total of 42 credits at 3000- or 4000-level). If MATH1025.03 is taken, then 12 credits are required in this category, as MATH1025.03 is considered equivalent to MATH2221.03 for Computer Science requirements and is counted twice in the checklist.
[ return to Table of Contents ]
Checklist1
Computer Science Requirements (Credit Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (9)
COSC1030.03, MATH1310.03 (6)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (9)
MATH2090.03 (3)
MATH2221.03 or MATH2320.03 (3)
3000-level One Group A course (odd numbered) from each area
Theory COSC31_____.03, Software COSC33____.03 (6)
Hardware COSC32_____.03, Knowledge COSC34____.03 (6)
One more course COSC3______.03 (3)
4000-level
Four courses COSC4______.03, COSC4______.03 (6)
COSC4______.03, COSC4______.03 (6)
Faculty Requirements
Any level SOSC__________.06, HUMA__________.06 (12)
One of
BIOL1010.06, CHEM1010.06, EATS1010.06, PHYS1010.063, PHYS1410.06
(6)
At least 3 additional credits from the following2
BIOL1010.06, CHEM1010.06, EATS1010.06, EATS1010.03, EATS1011.03 (3)
MATH1025.03, PHYS1010.063, PHYS1070.03, PHYS1410.06 (3)
Other Honours Subject and Other Courses
42 more credits4 _______________ _______________ _______________ _______________ (42)
_______________ _______________ _______________ _______________ _______________
_______________ _______________ _______________ _______________ _______________
Total credits (120)
1 A cumulative grade point average of 5.0 over all SC courses (6.0 for Combined Honours with Biology) is required to proceed in each year of the programme and to graduate. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme.
2 These are the minimum requirements for Computer Science; the choice may be determined by the requirements of the second major.
3 PHYS1010.06 is taken, then you must take as corequisites MATH1013.03, MATH1014.03 and MATH1025.03. These courses are considered equivalent to MATH1300.03, MATH1310.03 and MATH2221.03 for Computer Science requirements.
4 If MATH1025.03 is taken, then 45 credits are required in this category, as MATH1025.03 is considered equivalent to MATH2221.03 for Computer Science requirements and is counted twice in the checklist.
[ return to Table of Contents ]
BSc Specialized Honours Degree, SCS Stream
Checklist1
Computer Science Requirements (Credit Count)
1000-level
COSC1020.03, MATH1090.03, MATH1013.03 (9)
COSC1030.03, MATH1014.03, MATH1025.03 (9)
PHYS1010.06 (6)
CHEM1010.06 or EATS1010.06 (6)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (9)
MATH2015.03, MATH2090.03, MATH2270.03 (9)
PHYS2020.03, PHYS2040.03, PHYS2211.01 (7)
One of PHYS2010.03 or EATS2470.04 (3 or 4)
One of CHEM2050.03 or COSC2031.03 or EATS2010.03, (3)
or EATS2030.03 or PHYS1070.03 or PHYS2060.03
3000-level
COSC3121.03, COSC3211.03, COSC3321.03 (9)
COSC/EATS/PHYS/3001.01, EATS/PHYS3280.03 (4)
PHYS3050.03, PHYS3250.03 (6)
One of COSC3311.03 or COSC3331.03 or COSC3401.03 (3)
One of any 3000-level COSC course not already taken (without second digit
5) (3)
or EATS3020.03 or EATS3030.03 or MATH3271.03
or MATH3410.03 or PHYS3020.03 or PHYS3070.03
or PHYS3080.03 or PHYS3150.03 or PHYS4120.03 or
other approved courses
4000-level
COSC4001.06 (6)
One of COSC4351.03 or COSC4352.03 or PHYS4250.03 (3)
One of COSC4301.03 or COSC4302.03 or COSC4321.03 or
COSC4341.03 (3)
Two of COSC4242.03 or COSC4331.03 or COSC4421.03 or COSC4422.03
(6)
Two of 4000-level COSC courses not already taken as listed above (6)
or EATS4220.03 or EATS4230.03 or PHYS3070.03
or PHYS4060.03 or PHYS4110.03 or PHYS4270.03 or
PHYS4450.03
Faculty Requirements
Any level SOSC__________.06, HUMA__________.06 (12)
Total credits (122 or 123)
1 A cumulative grade point average of 6.0 over all SC courses is required to proceed in each year of the programme and to graduate. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme.
[ return to Table of Contents ]
Checklist1
Computer Science Requirements (Course Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (1.5)
COSC1030.03, MATH1310.03 (1.0)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (1.5)
MATH2090.03 (0.5)
MATH2221.03 or MATH2320.03 (0.5)
3000-level
One Group A half course (odd numbered) from each area
Theory COSC31_____.03, Software COSC33____.03 (1.0)
Hardware COSC32_____.03, Knowledge COSC34____.03 (1.0)
Two more half courses COSC3______.03, COSC3______.03 (1.0)
Faculty Requirements
General education
1000-level NATS__________.06 (1.0)
One of HUMA__________.06 or SOSC__________.06 (1.0)
2000-level (should satisfy breadth)
One of HUMA__________.06 or SOSC__________.06 (1.0)
Extra breadth course required if breadth not satisfied above _________________
Electives
3 courses outside COSC requirements
_________________ _________________ _________________ (3.0)
One more course _________________ (1.0)
Total Courses (15.0)
1 A cumulative grade point average of 4.0 over all courses and over all COSC courses is required to graduate. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme.
[ return to Table of Contents ]
Checklist1
Computer Science Requirements (Course Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (1.5)
COSC1030.03, MATH1310.03 (1.0)
2000-level
COSC2001.03, COSC2011.0,3 COSC2021.03 (1.5)
MATH2090.03 (0.5)
MATH2221.03 or MATH2320.03 (0.5)
3000-level
One Group A half course (odd numbered) from each area
Theory COSC31_____.03, Software COSC33____.03 (1.0)
Hardware COSC32_____.03, Knowledge COSC34____.03 (1.0)
One more half course COSC3______.03 (0.5)
4000-level
Four half courses COSC4______.03, COSC4______.03 (1.0)
COSC4______.03, COSC4______.03 (1.0)
Faculty Requirements
General education
1000-level NATS__________.06 (1.0)
One of HUMA__________.06 or SOSC__________.06 (1.0)
2000-level (should satisfy breadth)
One of HUMA__________.06 or SOSC__________.06 (1.0)
Extra breadth course required if breadth not satisfied above _________________
Electives
3 courses outside COSC requirements
_________________ _________________ _________________ (3.0)
Upper level
3000-level half course _________________ 4000-level full _________________ (1.5)
Additional courses _________________ _________________ _________________ (3.0)
_________________ _________________ _________________
Total Courses (20.0)
1 A cumulative grade point average of 5.0 over all courses is required to proceed in each year of the programme. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme. To graduate requires a cumulative grade point average of 5.0 over all courses and all COSC courses.
[ return to Table of Contents ]
Checklist1
Computer Science Requirements (Course Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (1.5)
COSC1030.03, MATH1310.03 (1.0)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (1.5)
MATH2090.03 (0.5)
MATH2221.03 or MATH2320.03 (0.5)
3000-level
One Group A half course (odd numbered) from each area
Theory COSC31_____.03, Software COSC33____.03 (1.0)
Hardware COSC32_____.03, Knowledge COSC34____.03 (1.0)
One more half course COSC3______.03 (0.5)
4000-level
Two half courses COSC4______.03, COSC4______.03 (1.0)
Faculty Requirements
General education
1000-level NATS__________.06 (1.0)
One of HUMA__________.06 or SOSC__________.06 (1.0)
2000-level (should satisfy breadth)
One of HUMA__________.06 or SOSC__________.06 (1.0)
Extra breadth course required if breadth not satisfied above _________________
Honours Major subject
3000-level One course (satisfy upper level requirement) _________________ (1.0)
4000-level Two courses (satisfy upper level requirement)
_________________ _________________ (2.0)
Additional courses _________________ _________________ _________________ (5.5)
_________________ _________________ _________________
_________________ _________________ _________________
_________________ _________________
Total Courses (20.0)
1 A cumulative grade point average of 5.0 over all courses is required to proceed in each year of the programme. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme. To graduate requires a cumulative grade point average of 5.0 over all courses and all COSC courses.
[ return to Table of Contents ]
Checklist1
Computer Science Requirements (Course Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (1.5)
COSC1030.03, MATH1310.03 (1.0)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (1.5)
MATH2090.03, MATH2221.03, MATH2320.03 (1.5)
3000-level
One Group A half course (odd numbered) from each area
Theory COSC3101.03, Software COSC33____.03 (1.0)
Hardware COSC32_____.03, Knowledge COSC34____.03 (1.0)
Three more courses COSC3______.03, COSC3______.03, COSC3______.03 (1.5)
4000-level
Four courses COSC4101.03 or COSC4111.03, COSC4______.03 (1.0)
COSC4______.03, COSC4______.03 (1.0)
Two courses (3000- or 4000-level) COSC________.03, COSC________.03 (1.0)
Faculty Requirements
General education
1000-level NATS__________.06 (1.0)
One of HUMA__________.06 or SOSC__________.06 (1.0)
2000-level (should satisfy breadth)
One of HUMA__________.06 or SOSC__________.06 (1.0)
Extra breadth course required if breadth not satisfied above _________________
Electives
3 courses outside COSC requirements
_________________ _________________ _________________ (3.0)
Upper level 4000-level2 _________________ (1.0)
Additional courses _________________ _________________ (1.0)
Total Courses (20.0)
1 A cumulative grade point average of 5.0 over all courses is required to proceed in each year of the programme. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme. To graduate requires a cumulative grade point average of 5.0 over all courses and all COSC courses.
2 Must be 4000-level only if you have less than 3.0 computer science courses at the 4000-level. Otherwise the course can be at any level.
[ return to Table of Contents ]
BA Honours Double Major Degree
Checklist1
Computer Science Requirements (Course Count)
1000-level
COSC1020.03, MATH1090.03, MATH1300.03 (1.5)
COSC1030.03, MATH1310.03 (1.0)
2000-level
COSC2001.03, COSC2011.03, COSC2021.03 (1.5)
MATH2090.03 (0.5)
MATH2221.03 or MATH2320.03 (0.5)
3000-level
One Group A half course (odd numbered) from each area
Theory COSC31_____.03, Software COSC33____.03 (1.0)
Hardware COSC32_____.03, Knowledge COSC34____.03 (1.0)
One more half course COSC3______.03 (0.5)
4000-level
Four half courses COSC4______.03, COSC4______.03 (1.0)
COSC4______.03, COSC4______.03 (1.0)
Faculty Requirements
General education
1000-level NATS__________.06 (1.0)
One of HUMA__________.06 or SOSC__________.06 (1.0)
2000-level (should satisfy breadth)
One of HUMA__________.06 or SOSC__________.06 (1.0)
Extra breadth course required if breadth not satisfied above _________________
Other Honours Major Subject and Other Courses
4000-level Two courses (satisfy upper level requirement) _________________ _________________ (2.0)
Additional courses _________________ _________________ _________________ (5.5)
_________________ _________________ _________________
_________________ _________________ _________________
_________________ _________________
Total Courses (20.0)
1 A cumulative grade point average of 5.0 over all courses is required to proceed in each year of the programme. In addition, the Departmental general prerequisite cumulative grade point average over all COSC courses must be met to proceed in the programme. To graduate requires a cumulative grade point average of 5.0 over all courses and all COSC courses.
[ return to Table of Contents ]