Last updated: November 7, 2008 @ 08:26AM

Computer Science

Chair
David Hughes

Professor Emeritus
Jack M. Miller

Professors
Ivo Düntsch, Brian Ross

Associate Professors
Jerzy Barchanski, Sheridan Houghten, David Hughes, David McCarthy, Beatrice Ombuki-Berman, Ke Qiu, Jonathan Radue, Michael Winter, Vladimir Wojcik

Adjunct Professors
Günther Gediga, Jack Miller

Instructor
David Bockus

Student Support Co-ordinator
Gordon Dunkley

Course Co-ordinator/Mentor
Baoling Bork

Director, Co-operative Programs
Cindy Dunne

General Information

Administrative Assistant
Donna Phelps

905-688-5550, extension 3513
Mackenzie Chown, J314
http://www.cosc.brocku.ca

The Department of Computer Science offers three- and four-year programs of study leading to single or combined BSc (honours), single Computer Science Co-op BSc (honours), combined Mathematics/Computer Science Co-op BSc (honours), single BSc with Major in Computer Science, combined BA (honours) and a single BSc (Pass) degree program. Two concentrations are available: software engineering and intelligent systems. An Internship program is also available in the honours program. There are cross-disciplinary programs in Computing and Business, Computing and Solid-State Device Technology, Computing and Network Communications, and Interactive Arts and Sciences as well as a Minor in Applied Computing.

See relevant calendar entries for a listing of program requirements.

Domain Knowledge Requirement for Practicing Computer Science Professionals
It is widely recognized that the professional practice of Computer Science requires Domain Knowledge-specialized knowledge of the area in which computing is being applied. This phenomenon is often described as Computer Science + X. In order to prepare students for professional practice, the BSc (Honours) Co-op and BSc with Major programs require the completion of the domain knowledge requirement. Students following the BSc (Honours) program must either complete the courses for graduate school entry (see below) or complete the Domain Knowledge Requirement.

The domain knowledge requirement can be fulfilled either by completing a minor in a subject other than Applied Computing or by completing a cohesive set of at least 4.0 credits in an area other than Computer Science or Applied Computing approved by the Computer Science Undergraduate Program Adviser.

Graduate School Entry Requirement
Students pursuing the BSc (honours) program must either complete the courses for graduate school entry: one additional COSC credit; one of COSC 4P42, MATH 2P75, 3P12, 3P60, 3P73; and one of MATH 2P12, 2P71, 2P72, 2P81 or the Domain Knowledge Requirement (see above).

Co-op Program
The Computer Science Co-op program combines academic and work terms over a four and one-half year period. Students spend one and one-half years in an academic setting studying the fundamentals of computer programming, algorithms, data structures and object-oriented programming prior to their first work placement. Successful completion of courses in the core areas of Computer Science provides the necessary academic background for the work experience. In addition to the current fees for courses in academic study terms, Co-op students are assessed an annual administration fee (see the Schedule of Fees).

Eligibility to continue is based on the student's major average and non-major average. Students will be required to maintain a minimum 70 percent major average and a minimum 60 percent non-major average in order to continue in the Co-op program. If a student subsequently raises his/her major average to 70 percent, the student may be readmitted only if approved by the Computer Science Co-op Admissions Committee.

The Computer Science Co-op program designation will be awarded to those students who have honours standing and have successfully completed a minimum of twelve months Co-op work experience.

Internship Option
The Internship option combines academic and work experience in a five-year program. It is available in Computer Science honours (single or combined), Computing and Business and Computing and Solid-State Device Technology programs. Students complete the normal four-year honours program and an 8-16 month work placement after second or third year. In order to complete the Internship placement, students will be required to submit an acceptable placement report that will be graded by the Department. In addition to the usual fees for courses, a one-time administration fee will be levied during the work term (see the Schedule of Fees).

Students enrolled in the program may apply for admission to the Internship Option during the Fall Term of year 1 or year 2 (depending on whether they plan a work term after year 2 or 3, respectively). As this is a limited enrolment program admission is not guaranteed by attainment of the minimum requirement. Admission will be based on the achievement (as of January of the application year) and maintenance of a minimum 70 percent major average. Prior to the placement, the student must have completed at least 10, but preferably 15 credits, including COSC 1P50, 2P03, 2P32 and one or more of COSC 2P12, 2P13, 2P89, 2P90. The Computer Science Internship Admissions Committee will make admission decisions.

Applied Computing (APCO) Courses
Courses with the APCO designation are intended for non-Computer Science majors who recognize the need for fluency in computing as a part of their undergraduate program. These courses may be taken individually or as part of a minor.

APCO 1P00, 1P01, 1P30, 1P50 and 1P93 may each be taken as a first APCO course. APCO 1P00 is a non-technical introduction to programming and requires no previous experience. APCO 1P01 discusses software tools for word processing, spreadsheets, presentations, databases and searching the internet and anticipates previous exposure to computer use. APCO 1P30 involves programming for interactive media and assumes no prior programming experience but does assume familiarity with computer applications. APCO 1P50 considers effective and ethical use of computers for information acquisition and dissemination. It requires no previous computing skill. APCO 1P93 will usually serve as a second programming course but can also serve as an introductory programming course for those who need a more technical introduction to programming.

APCO courses do not count as major credit for COSC (single or combined) majors, Computing and Business, Computing and Network Communications and Computing and Solid-State Device Technology students. Students who have done well in APCO 1P00 and are interested in changing their major to COSC should contact the Department Chair and may be permitted to proceed directly to COSC 1P03.

Department Facilities
A campus-wide fibre optic network links all the University's academic computing facilities. The department's computers form an integral part of this resource. Most computers on campus can be accessed from microcomputers in any of the laboratories. In particular, the department maintains an 8 core AMD Opteron server that serves departmental labs. The department has three microcomputer laboratories: D205, J301 and J310 containing Pentium PCs. Students also have access to scanners, digitizers, robot arms, a robot vision system, computer graphics software (Bryce, Poser, SoftImage) and database software (ORACLE, Access).

Wireless Access
In order to accommodate students who own laptops, the Campus has wireless Internet connection available.

Printer Usage Fees
A non-refundable printer usage fee may be charged for all courses which use departmental or User Services laboratories. Printing beyond the initial quota will incur an additional fee.

Major Credits
In calculating the major average for a Computer Science major or co-major, all COSC courses, MATH 1P66, 1P67, 3F65 and 4P61 are included.

Mathematics in Computer Science
Mathematics is fundamental to the study of Computer Science and thus MATH credits are required in each year of the various programs. In order to be more competitive in the workplace and if considering graduate studies, students are strongly encouraged to take as many MATH courses as possible.

Computer Hardware
Students interested in computer hardware are advised to elect PHYS 2P31, 2P32 and 3P92 within their Computer Science program. PHYS 1P21 or 1P91 (recommended) and one of PHYS 1P22, 1P23, 1P92 (recommended), 1P93 are required as a prerequisite for PHYS 2P31. Students may also wish to consider the Computing and Solid-state Device Technology program. (See separate calendar entry.)

Program Notes
  1. Prior computer programming experience is not required for entry to the COSC programs. Students with considerable prior programming experience in a high-level language such as Pascal, Java, C++ or Ada may be granted exemption from COSC 1P02 at the discretion of the Chair.
  2. In choosing electives, students should consider: MGMT 1P51, 1P52, WRIT 2P14 and, if considering graduate school, additional MATH courses. Students are advised to take special care in selecting elective credits (both COSC and general), especially in year three, to ensure access to subsequent courses required to complete the four-year programs.
  3. MATH 1P05 and 1P06 for Chemistry; MATH 1P97 and 1P98 for Earth Sciences.
  4. One elective credit if the required course in year 1 in the other discipline is a Social Science context credit or Humanities context credit for the combined degree with Social Science context credit or Humanities context credit, respectively.
  5. Students may take MATH 1P05 and 1P06 in place of MATH 1P97 and 1P98 in year 1. MATH 1P98 would then be taken in year 2 in place of a one-half credit elective.
  6. For students with a special interest in geographic information systems, the following courses are strongly recommended as GEOG and COSC elective credits: GEOG 3P04, 3P05, 3P07, COSC 3P98.
  7. The Computer Science and Visual Arts program is limited to 5 students.
  8. For students admitted into the combined Honours BSc in COSC and VISA, COSC 1P02 and COSC 1P03 will substitute for the Humanities Language requirement. Should students re-declare their major or combined major, within the humanities, the Humanities Language requirement will have to be satisfied.
  9. Students planning on attending graduate school must complete one additional COSC credit; one of COSC 4P42, MATH 2P75, 3P12, 3P60, 3P73; and one of MATH 2P12, 2P71, 2P72, 2P81.
  10. Students fulfilling the Domain Knowledge Requirement must complete either a minor in a subject other than Applied Computing or a cohesive set of at least 4.0 credits in an area other than Computer Science or Applied Computing approved by the Computer Science Undergraduate Program Adviser.
  11. In all 20 credit degree programs, at least 12 credits must be numbered 2(alpha)00 or above, six of which must be numbered 2(alpha)90 or above and of these, three must be numbered 3(alpha)90 or above. In all 15 credit degree programs, at least seven credits must be numbered 2(alpha)00 or above, three of which must be numbered 2(alpha)90 or above.

Honours Program

Year 1
·   COSC 1P02, 1P03 and 1P50 (see program note 1)
·   MATH 1P12, 1P66, 1P67 and 1P98
·   one Humanities context credit
·   one-half elective credit (see program note 2)
Year 2
·   COSC 2P03, 2P12, 2P13 and 2P32
·   MATH 1P05 and 1P06
·   one Science context credit
·   one Social Science context credit
Year 3
·   COSC 2P90, 3F00 and 3P03
·   COSC 2P91 or 2P93
·   one of COSC 3P01, 3P71, 3P92 (see program note 9)
·   two elective credits (see program notes 2, 9, 10 and 11)
Year 4
·   COSC 4P61
·   two and one-half COSC credits (see program notes 9 and 11)
·   two elective credits (see program notes 2, 9, 10 and 11)

Computer Science Co-op (honours only)
Students admitted to the Computer Science program must follow an approved program pattern. The most common pattern is listed below. For other approved patterns, consult the Co-op Office. Failure to adhere to an approved pattern may result in removal from the program.

Year 1
·   COSC 1P02, 1P03 and 1P50 (see program note 1)
·   MATH 1P66 and 1P67
·   one Humanities context credit
·   one Science context credit
·   one-half elective credit (see program notes 2 and 10)
Year 2
Fall Term:
·   COSC 2P03 and 2P12
·   MATH 1P05 and 1P12
·   SCIE 0N90
·   one half elective credit (see program notes 2, 10 and 11)
Winter Term:
·   COSC 0N01
Spring/Summer Sessions:
·   COSC 2P13 and 2P32
·   MATH 1P98
·   one Social Science context credit
Year 3
·   COSC 2P90, 3F00 and 3P03
·   COSC 2P91 or 2P93
·   one of COSC 3P01, 3P71, 3P92
·   MATH 1P06
·   one and one-half elective credits (see program notes 2, 10 and 11)
Spring/Summer Sessions:
·   COSC 0N02
Year 4
Fall Term:
·   COSC 0N03
Winter Term:
·   One and one-half COSC credits (see program note 11)
·   one elective credit (see program notes 2, 10 and 11)
Year 5
Fall Term:
·   COSC 4P61
·   one COSC credit (see program note 11)
·   one elective credit (see program note 2, 10 and 11)

BSc with Major Program

Year 1
·   COSC 1P02, 1P03 and 1P50 (see program note 1)
·   MATH 1P12, 1P66, 1P67 and 1P98
·   one Humanities context credit
·   one-half elective credit (see program notes 2 and 10)
Year 2
·   COSC 2P03, 2P12, 2P13 and 2P32
·   MATH 1P05 and 1P06
·   one Science context credit
·   one Social Science context credit
Year 3
·   COSC 2P90, 3F00 and 3P03
·   COSC 2P91 or 2P93
·   one of COSC 3P01, 3P71, 3P92
·   two elective credits (see program notes 2, 10 and 11)
Year 4
·   COSC 4P61
·   two and one-half COSC credits (see program note 11)
·   two elective credits (see program notes 2, 10 and 11)

Pass Program

Year 1
·   COSC 1P02, 1P03 and 1P50 (see program note 1)
·   MATH 1P12, 1P66, 1P67 and 1P98
·   one Humanities context credit
·   one-half elective credit (see program note 2)
Year 2
·   COSC 2P03, 2P12, 2P13 and 2P32
·   MATH 1P05 and 1P06
·   one Science context credit
·   one Social Science context credit
Year 3
·   COSC 2P90 and 3F00
·   COSC 2P91 or 2P93
·   one of COSC 3P01, 3P71, 3P92
·   one-half COSC credit (see program note 11)
·   two elective credits (see program notes 2 and 11)

Computer Science as a Second Degree Program

A student holding an honours or Pass degree in another discipline may obtain a BSc (honours) in Computer Science, a BSc with a Major in Computer Science or a BSc Pass degree. Students should refer to the University regulations concerning "Requirements for a Second or Subsequent Degree" section for further information. Previous or transfer credits may be used to satisfy some of the following requirements.

Applicants must be able to demonstrate an acceptable level of fluency and accuracy in spoken and written English. Prior to admission, an applicant holding a degree from a non-Canadian university will be required to provide evidence of English language proficiency as demonstrated through one of the means outlined in the "Proof of Proficiency in English" section.

The additional courses taken for a second degree in Computer Science must include a minimum of five (for a subsequent 20 credit degree) or four (for a second Pass degree) Brock COSC credits. All elective credits should be numbered 2(alpha)00 or above.

A second-degree program is often taken as part-time study since the normal prerequisite structure requires a minimum of four (for 20 credit) or three (for Pass) years of study. A student wishing to pursue full-time study can usually complete the program in three (for 20 credit) or two (for Pass) years by following the pattern of study below. To complete the pattern for the pass program, permission to take COSC 3F00 concurrent with COSC 2P32 must be sought from the Chair.

Honours

Year 1
·   COSC 1P02, 1P03 and 1P50
·   MATH 1P12, 1P66, 1P67 and 1P98
Spring/Summer Sessions:
·   COSC 2P03
Year 2
·   COSC 2P12, 2P13, 2P32 and 2P90
·   COSC 2P91 or 2P93
·   one of COSC 3P01, 3P71, 3P92
·   MATH 1P05 and 1P06
Year 3
·   COSC 3F00, 3P03 and 4P61
·   two COSC credits numbered 3(alpha)90 or above
BSc with Major

Year 1
·   COSC 1P02, 1P03 and 1P50
·   MATH 1P12, 1P66, 1P67 and 1P98
Spring Term:
·   COSC 2P03
Year 2
·   COSC 2P12, 2P13, 2P32 and 2P90
·   one-half COSC credit
·   one-half COSC credit numbered 2(alpha)90 or above
·   MATH 1P05 and 1P06
Year 3
·   COSC 3F00
·   one-half COSC credit numbered 2(alpha)90 or above
·   two and one-half COSC credits numbered 3(alpha)90 or above
Pass

Year 1
·   COSC 1P02, 1P03 and 1P50
·   MATH 1P12, 1P66, 1P67 and 1P98
Spring/Summer Sessions:
·   COSC 2P03
Year 2
·   COSC 2P12, 2P13, 2P32, 2P90 and 3F00
·   one-half COSC credit
·   one COSC credit numbered 2(alpha)90 or above

Combined Major Program

Students may take a combined major in Computer Science and a second discipline. For requirements in the other discipline, the student should consult the relevant department/centre. It should be noted that not all departments/centres provide a combined major option.

BSc (honours) Computer Science and another Science

Year 1
·   COSC 1P02 and 1P03 (see program note 1)
·   MATH 1P66 and 1P67
·   one MATH credit (see program note 3)
·   one credit in the co-major discipline
·   one Social Science context credit
Year 2
·   COSC 1P50 and 2P03
·   one Science credit
·   two credits in the co-major discipline
·   one Humanities context credit
Year 3
·   COSC 2P12, 2P13, 2P32 and 2P90
·   MATH 1P12 and 1P98
·   two credits in co-major discipline
Year 4
·   COSC 3F00
·   two COSC credits numbered 3(alpha)90 or above
·   two credits in the co-major discipline numbered 3(alpha)90 or above

BSc (honours) Computer Science and Mathematics

Year 1
·   COSC 1P02 and 1P03 (see program note 1)
·   MATH 1P01, 1P02, 1P66 and 1P67
·   one Science context credit
·   one Social Science context credit
Year 2
·   COSC 1P50, 2P03, 2P32 and 2P90
·   MATH 1P12, 1P40, 2P03 and 2P81
·   one Humanities context credit
Year 3
·   COSC 2P12, 2P13 and 3F00
·   MATH 2F40, 2P82 and 3F65
·   one-half elective credit
Year 4
·   Two COSC credits numbered 3(alpha)90 or above
·   MATH 3P60, 4P61
·   one MATH credit (see program note 9)
·   one elective credit

BSc Computer Science and Mathematics Co-op (honours only)

Consult the Mathematics entry for a listing of program requirements.

BSc (honours) Computer Science and Physics

Consult the Physics entry for a listing of program requirements.

BA (honours) or BSc (honours) Computer Science and a Humanities or a Social Science

Year 1
·   COSC 1P02 and 1P03 (see program note 1)
·   MATH 1P66 and 1P67
·   one credit in the co-major discipline
·   one Science context credit
·   one Social Science context credit (see program note 4)
Year 2
·   COSC 1P50, 2P03, 2P32 and 2P90
·   two credits in the co-major discipline
·   one Humanities context credit (see program note 4)
Year 3
·   COSC 2P12, 2P13 and 3F00
·   MATH 1P97 and 1P98
·   two credits in the co-major discipline
Year 4
·   Two COSC credits numbered 3(alpha)90 or above
·   two credits in the co-major discipline numbered 3(alpha)90 or above
·   one elective credit

BSc (Honours) Computer Science and Visual Arts

Year 1
·   COSC 1P02 and 1P03 (see program notes 1 and 8)
·   VISA 1P93 and 1P94 or VISA 1P96 and 1P97
·   VISA 1Q98 and 1Q99
·   MATH 1P66 and 1P67
·   one Science context credit
Year 2
·   COSC 1P50, 2P03, 2P32 and 2P90
·   VISA 2P95 and 2P96
·   one VISA credit numbered 2(alpha)00 or above (VISA 2P97 and 2P98 recommended)
·   one Social Science context credit
Year 3
·   COSC 2P12, 2P13 and 3F00
·   one-half COSC credit numbered 2(alpha)00 or above
·   one VISA credit numbered 3(alpha)00 or above (VISA 3F96 recommended)
·   MATH 1P12 and 1P97
·   one-half elective credit numbered 2(alpha)00 or above
Year 4
·   COSC 2P89 and 3P98
·   one and one-half COSC credits numbered 3(alpha)90 or above
·   one VISA credit numbered 2(alpha)00 or above
·   one VISA credit numbered 3(alpha)90 or above
·   MATH 1P98

BA (honours) or BSc (honours) Computer Science and Economics

Year 1
·   COSC 1P02 and 1P03 (see program note 1)
·   ECON 1P91 and 1P92
·   MATH 1P66, 1P67, 1P97 and 1P98 (see program note 5)
·   one Science context credit
Year 2
·   COSC 1P50, 2P03, 2P32 and 2P90
·   ECON 2P21, 2P22 and 2P90
·   one-half ECON credit numbered 2(alpha)90 or above
·   one Humanities context credit
Year 3
·   COSC 2P12, 2P13 and 3F00
·   ECON 3P21, 3P22, 3P90 and 3P91
·   one elective credit
Year 4
·   Two COSC credits numbered 3(alpha)90 or above
·   ECON 4P13 and 4P14
·   one ECON credit numbered 2(alpha)90 or above
·   one elective credit

BA (honours) Computer Science and Geography

Year 1
·   COSC 1P02 and 1P03 (see program note 1)
·   GEOG 1F90
·   MATH 1P66 and 1P67
·   one Humanities context credit
·   one Science context credit
Year 2
·   COSC 1P50, 2P03, 2P32 and 2P90
·   GEOG 2P07 and 2P10
·   one credit from GEOG 2P02, 2P03, 2P06
·   MATH 1P97 and 1P98
Year 3
·   COSC 2P12, 2P13 and 3F00
·   GEOG 3P57
·   one and one-half GEOG credits numbered 2(alpha)90 to 3(alpha)99 from group A or C (see Geography department; see program note 6)
·   one elective credit
Year 4
·   Two COSC credits numbered 3(alpha)90 or above (see program note 6)
·   two GEOG credits numbered 3(alpha)90 or above from group A or C (see Geography department)
·   one elective credit

BSc (honours) Computer Science and Geography

Year 1
·   COSC 1P02 and 1P03 (see program note 1)
·   GEOG 1F91
·   MATH 1P66 and 1P67
·   one Humanities context credit
·   one Social Science context credit
Year 2
·   COSC 1P50, 2P03, 2P32 and 2P90
·   GEOG 2P07 and 2P11
·   one credit from GEOG 2P04, 2P05, 2P09
MATH 1P97 and 1P98

Year 3
·   COSC 2P12, 2P13 and 3F00
·   GEOG 3P56
·   one and one-half GEOG credits numbered 2(alpha)90 to 3(alpha)99 from group B or C (see Geography department; see program note 6)
·   one elective credit
Year 4
·   Two COSC credits numbered 3(alpha)90 or above (see program note 6)
·   two GEOG credits numbered 3(alpha)90 or above from group B or C (see Geography department)
·   one elective credit

Concentration Program

Concentration in Software Engineering
This concentration does not lead to a professional engineering degree.

Students can earn a Concentration in Software Engineering by successfully completing the courses listed below as part of their academic work leading to an Honours BSc in Computer Science degree:
·   COSC 2P03, 2P13, 2P90, 2P91, 3F00, 3P01, 3P03, 4P42 and 4P61
·   one credit from COSC 3P92, 3P94, 4F90, 4P03, 4P13, 4P14, 4P75

Concentration in Intelligent Systems
Students can earn a Concentration in Intelligent Systems by successfully completing the courses listed below as part of their academic work leading to an Honours BSc in Computer Science degree:
·   COSC 2P03, 2P32, 2P90, 2P93, 3F00, 3P03, 3P71 and 4P61
·   one and one-half credits from COSC 4F90, 4P76, 4P78, 4P79, 4P80, 4P87

Minor in Applied Computing

Computer Science (single or combined), Computing and Business, Computing and Network Communications and Computing and Solid-State Device Technology majors may not obtain a minor in Applied Computing.

Students in other disciplines may obtain a minor in Applied Computing within their degree program by completing the following courses with a minimum 60 percent average:
·   Three APCO credits
·   one APCO or COSC credit

Brock/Universities Articulation Agreement

Brock-Qingdao Articulation Agreement
Under this agreement students study a prescribed program at Qingdao Technical University for two years and then may be admitted to Brock University to complete the final two years of a BSc (Honours) Computer Science or BSc with Major Computer Science program. Students pursuing study at Brock under this agreement must have achieved a B average in their first two years of study at Qingdao, a grade of at least B in all transferred courses and have obtained the requisite level on the English proficiency test. Students meeting these requirements will be awarded ten transfer credits towards their Brock degree. The schedule of transferable courses is available from the Admissions Office.

Brock-San Jiang Articulation Agreement
Under this agreement students study a prescribed program at San Jiang University for two years and then may be admitted to Brock University to complete the final two years of a BSc (Honours) Computer Science or BSc with Major Computer Science program. Students pursuing study at Brock under this agreement must have achieved a B average in their first two years of study at San Jiang, a grade of at least B in all transferred courses and have obtained the requisite level on the English proficiency test. Students meeting these requirements will be awarded ten transfer credits towards their Brock degree. The schedule of transferable courses is available from the Admissions Office.

Brock/Colleges Articulation Agreement

Brock-Mohawk College Articulation Agreement
This agreement allows Brock to admit students from the Mohawk College Computer Systems Technology - Software Engineering Diploma Program who have a minimum GPA of 3.5 (80 percent) to the BSc (Honours) Computer Science, BSc with Major Computer Science or BSc (Pass) Computer Science program. Students who have a grade of B in all transferred courses will be granted up to seven and one-half credits towards any of these three degree programs and can complete the requirements for the BSc Honours and with Major degrees within three years and the Pass degree within two years. The schedule of transferable courses is available from the Admissions Office.

Brock-Niagara College Articulation Agreement
This agreement allows Brock to admit students from the Niagara College Programmer/Analyst Diploma Program who have a minimum GPA of 3.5 to the BSc (Honours) Computer Science, BSc with Major Computer Science or BSc (Pass) Computer Science programs. Students who have a grade of B in all transferred courses will be awarded seven credits towards any of these three degrees and can complete the requirements for the BSc (Honours) and with Major degrees within three years and the Pass degree within two years. The schedule of transferable courses is available from the Admissions Office.

Brock-Sheridan College Articulation Agreement
This agreement allows Brock to admit students from the Sheridan College Computer Science Technology Diploma Program who have a minimum GPA of 3.5 to the BSc (Honours) Computer Science, BSc with Major Computer Science or BSc (Pass) Computer Science program. Students who have a grade of B in all transferred courses will be awarded ten credits towards any of these three degrees and can complete the requirements for the BSc (Honours) and with Major degrees within two years and the Pass degree within one year. The schedule of transferable courses is available from the Admissions Office.

Master of Science (MSc) Program

Candidates with either an Honours or a Pass BSc degree in Computer Science, or equivalent, may apply to the Director of the Graduate Studies Office for entry into this program. Candidates holding a Pass degree will be required to take a qualifying year, similar to year 4 of the Honours program, before formally enrolling for the MSc degree. Candidates may be required to write Graduate Record Aptitude Examinations.

Candidates with an Honours degree, or who have completed a qualifying year, require a minimum of one year of full-time study. The department offers a wide range of courses and research opportunities.

For further information about the MSc program see the Graduate Calendar and the department's Graduate Studies brochure.

Course Descriptions

Note that not all courses are offered in every session. Refer to the applicable term timetable for details.

# Indicates a cross listed course
* Indicates primary offering of a cross listed course

Prerequisites and Restrictions

Students must check to ensure that prerequisites are met. Students may be deregistered, at the request of the instructor, from any course for which prerequisites and/or restrictions have not been met.

APPLIED COMPUTING
APCO 1P00
Introduction to Media Computation
(also offered as IASC 1P00)
Programming by example; encoding and manipulating pictures (such as grayscale and colour replacement); pixel manipulation (such as red eye and mirroring); designing and debugging; text manipulation with HTML; file processing; automatic generation and manipulation of web pages; sound processing (such as MP3, encoding, volume and splicing); objects and graphical user interfaces.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Restriction: not open to COSC (single or combined), BCB, CAST and CNET majors.
Note: prior computer experience is not required. Students may not concurrently register in COSC 1P02.

APCO 1P01
Fluency With Technology
(also offered as IASC 1P01)
Skills, concepts and capabilities of computers, networks and the Internet. Topics include representation of information, current hardware, software and network technologies, modelling with Excel, presentations with PowerPoint, Internet searching and basic web page development with HTML.
Lectures, 3 hours per week, lab, 2 hours per week.
Restriction: not open to COSC (single or combined), BCB, CAST and CNET majors.
Note: some prior computer experience is preferred but not required.
Completion of this course will replace previously assigned grade and earned credit in COSC 1P95 and 1P96.

APCO 1P30
Programming for Interactive Media
(also offered as IASC 1P30)
Introduction to ActionScript and object-oriented programming syntax and uses for classes, functions, properties and events in interactive Flash applications for the web.
Lab, 4 hours per week.
Restriction: open to IASC (single or combined) majors until date specified in the Registration guide.
Note: enrolment limited to 24 students. Materials fee required. Students might need additional materials and equipment which they must supply.

APCO 1P50
Integrity and Literacy in the Information Age
(also offered as COSC 1P50 and IASC 1P50)
Professional issues in computing including historic and social perspectives, legal issues, licensing and copyright, social and ethical issues, professional conduct and information literacy.
Lectures, 3 hours per week; seminar, 2 hours per week.
Note: this course involves seminars and considerable written work. A good command of written and spoken English is required.
Completion of this course will replace previous assigned grade and credit obtained in COSC 2P50.

APCO 1P93
Applied Programming
(also offered as IASC 1P93)
Modern software techniques including problem solving and design of effective algorithms, structured program design methodology, subprogram library usage, documentation, correctness, floating-point arithmetic and error analysis.
Lectures, 3 hours per week, lab, 2 hours per week; tutorial, 1 hour per week.
Restriction: not open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisite: APCO 1P00 or 12U MATH credit.
Completion of this course will replace previous assigned grade and credit obtained in COSC 1P93.

APCO 2P01
Personal Computers and Networks
Inner workings of modern computers from a user's point of view. Understanding the hardware, network and system software. Topics include CPUs, memory, video, input/output, networks, security, installation of operating systems and hands-on trouble shooting.
Lectures, 2 hours per week, lab, 3 hours per week.
Restriction: not open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisite: APCO 1P01 (minimum 60 percent) or permission of the instructor.

APCO 2P32
File and Database Systems
(also offered as COSC 2P32)
File organizations and access methods, fundamental data base concepts: specification and design of databases and applications; various database models including the relational model; processing with SQL; database administration; security. Practical database experience (normally ORACLE).
Lectures, 3 hours per week; lab, 2 hours per week.
Prerequisite: COSC 2P03 (minimum 60 percent).
Note: students minoring in Applied Computing requesting permission to register should have completed APCO 1P00 and 1P93 with a minimum 60 percent. Contact the Department.

APCO 2P60
Web 2.0 Content, Construction, Collaboration
(also offered as IASC 2P60)
Context and topics in web-based interactive environments, communities and social networks designed for sharing content, user interaction and collective intelligence. Blogs, videoblogs and vodcasts; peer 2 peer and consumer 2 consumer; RSS, agents and recommender systems; social networks; online communities and virtual environments; tagging and bookmarking; wikis; mashups; collaborative and open source software and working environments.
Lectures, seminar 3 hours per week.

APCO 2P89
Internet Technologies
(also offered as COSC 2P89 and IASC 2P89)
Concepts and techniques for building and maintaining advanced interactive Web sites. Topics include XML and SGML, database connectivity and forms handling, basic animation, graphics optimization for the Web, scripting, advanced searching and Web design for accessibility.
Lectures, 3 hours per week, lab/seminar, 2 hours per week.
Prerequisite: APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent) or COSC 1P03 (minimum 60 percent).

APCO 2P95
Introduction to Web-based Interactive Media
(also offered as COMM 2P95, IASC 2P95 and VISA 2P95)
Basic technical and design foundations of web-based media production, including image processing, interactive web design and multimedia production. Locates digital practices within the broader history of cultural production, tracing developments in technology and media arts.
Lectures, lab, 5 hours per week.
Restriction: open to COMM, VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide.
Prerequisite: one of APCO 2P89, COMM 1F90, IASC 1F00, VISA 1P97.
Note: enrolment limited to 24 students. Materials fee required. Students might need additional materials and equipment, which they must supply.
Completion of this course will replace previous assigned grade and credit obtained in VISA 2F95.

APCO 2P99
Project in Applied Computing
Development project in computing, Internet programming or directed reading essay under the supervision of a faculty member.
Prerequisites: two APCO credits (minimum 60 percent).
Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. Further information (including project guidelines and project list) is available on the department Web pages.

APCO 3P94
Introduction to Human Computer Interaction
(also offered as COSC 3P94 and IASC 3P94)
Human factors in the design and support of computing systems. Design methodologies such as GOMS, TAGs and Task Analysis. Design principles relating to various interaction paradigms.
Lectures, 3 hours per week; lab/seminar, 2 hours per week.
Prerequisite: two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent).
Completion of this course will replace previous assigned grade and credit obtained in COSC 3P04.


COMPUTER SCIENCE
COSC 1P02
Introduction to Computer Science
Computers and computer programming in a high-level language (normally Java). Topics include computer fundamentals, problem solving and software development, programming language syntax and semantics, methods, input/output, control structures and data types.
Lectures, 2 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Note: students with considerable prior programming experience in a high-level language such as Pascal, Java, C++ or Ada may be granted exemption from this course at the discretion of the Chair.

COSC 1P03
Data Structures and Abstraction
Programming and problem solving in a high-level programming language (normally Java). Data structures including arrays, strings and linked-lists. Modularity, abstraction and abstract data types including stacks, queues and lists. Introduction to searching and sorting, algorithm analysis and object-orientation.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Prerequisite: COSC 1P02 (minimum 60 percent) or permission of the Chair.
Note: Students with a minimum 80 percent in APCO 1P00 and changing their major to COSC may be permitted to enter directly into COSC 1P03. Consult the Chair.

COSC 1P50
Integrity and Literacy in the Information Age
(also offered as APCO 1P50 and IASC 1P50)
Professional issues in computing including historic and social perspectives, legal issues, licensing and copyright, social and ethical issues, professional conduct and information literacy.
Lectures, 3 hours per week; seminar, 2 hours per week.
Note: This course involves seminars and considerable written work. A good command of written and spoken English is required.
Completion of this course will replace previous assigned grade and credit obtained in COSC 2P50.

COSC 2P03
Advanced Data Structures
Implementation and usage of data structures. Topics include trees, graphs, advanced list structures, sorting and searching, analysis of algorithms, program proofs.
Lectures, 3 hours per week, lab, 2 hours per week, tutorial, 1 hour per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisites: COSC 1P03 (minimum 60 percent); MATH 1P66 and 1P67.

COSC 2P12
Computer Organization and Assembly Language
Basic computer organization including functional units, instruction cycle, control, buses and memory. Assembly-level programming including machine representation, instruction sets and addressing modes. Role of assemblers, linkers and loaders.
Lectures, 3 hours per week, lab, 2 hours per week.
Prerequisite: COSC 1P03 (minimum 60 percent).
Completion of this course will replace previous assigned grade and credit obtained in COSC 1P12.

COSC 2P13
Introduction to Operating Systems
Operating systems from a user's viewpoint. Emphasis on the functionality of operating systems rather than their implementation. Topics include file, processor, I/O and memory management; concurrent processes; mainframe and microcomputer operating systems; UNIX.
Lectures, 3 hours per week.
Prerequisite: COSC 1P03 (minimum 60 percent) and 2P12 (minimum 60 percent).

COSC 2P32
File and Database Systems
(also offered as APCO 2P32)
File organizations and access methods, fundamental data base concepts: specification and design of databases and applications; various database models including the relational model; processing with SQL; database administration; security. Practical database experience (normally ORACLE).
Lectures, 3 hours per week, lab, 2 hours per week.
Prerequisite: COSC 2P03 (minimum 60 percent).
Note: students minoring in Applied Computing requesting permission to register should have completed APCO 1P00 and 1P93 with a minimum 60 percent. Contact the Department.

COSC 2P89
Internet Technologies
(also offered as APCO 2P89 and IASC 2P89)
Concepts and techniques required for building and maintaining advanced interactive Web sites. Topics include XML and SGML, database connectivity and forms handling, basic animation, graphics optimization for the Web, scripting, advanced searching, Web design for accessibility.
Lectures, 3 hours per week, lab/seminar, 2 hours per week.
Prerequisite: COSC 1P03 (minimum 60 percent) or APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent).

COSC 2P90
Programming Languages and Object-Orientation
Fundamental concepts of programming languages including syntax, semantics, control, data types and abstraction. Programming paradigms including imperative, applicative, logic and object-oriented. Object-orientation including inheritance and polymorphism. Introduction to object modelling.
Lectures, 3 hours per week, lab, 2 hours per week.
Prerequisite: COSC 1P03 (minimum 60 percent).

COSC 2P91
Procedural Programming
Programming in procedural languages including procedures and functions, data representation, control structures and program organization. Procedural languages such as Ada, C and COBOL
Lectures, 3 hours per week, lab, 2 hours per week.
Prerequisites: COSC 1P03 (minimum 60 percent), 2P12 (minimum 60 percent) and 2P03 (minimum 60 percent).

COSC 2P93
Logic Programming
Predicate logic, symbolic and declarative programming, resolution theorem proving, applications. Introduction to logic languages such as Prolog.
Lectures, 3 hours per week.
Prerequisites: COSC 2P03 (minimum 60 percent).

COSC 2P96
Introduction to 3D Modelling and Animation
(also offered as IASC 2P96 and VISA 2P96)
Concepts and skills of 3D modelling and rendering. Approaches to building models, using texturizing, lighting, cameras and rendering as well basic animation techniques. Relevant historic and theoretical perspectives on 3D and virtuality situating 3D within creative process and broader critical practices in cultural production.
Lectures, lab, 5 hours per week.
Restriction: open to VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide.
Prerequisite: one of, 4.0 COSC credits, IASC 1F00, VISA 1P97.
Note: enrolment limited to 24 students. Materials fee required. Students might need additional materials and equipment which they must supply.

COSC 3F00
Software Engineering
Scientific principles and managerial skills required for the construction of reliable software. Attributes of large complex software systems and software process models for managing the phases of software development; software requirements: analysis, tools and document preparation; software specification methods, software design concepts and alternate methodologies such as prototyping and object-oriented paradigms; several software testing, verification and validation methods.
Lectures, 3 hours per week, lab, 2 hours per week.
Prerequisites: COSC 2P03 (minimum 60 percent) and 2P32 (minimum 60 percent).
Note: this course requires considerable written work and presentations. A good command of written and spoken English is required. Completion of COSC 1P50 and concurrent registration in COSC 2P91 is recommended for this course. Major group project is required.

COSC 3P01
Introduction to Computer Networking
Overview of computer network services and principles of operation using the Internet as an example. Topics include layering of services and protocols; functionality of application layer services: world wide web, file transfer and electronic mail; addressing and naming in wide and local area networks; principles of operation of communication-oriented layers: transport, network and data link layers; physical media of interconnection.
Lectures, 3 hours per week.
Prerequisites: COSC 2P12 (minimum 60 percent), 2P03 (minimum 60 percent), MATH 1P05 and 1P67.

COSC 3P03
Algorithms
Design and analysis of computer algorithms. Topics include asymptotic notations, solving recurrences, order statistics, general algorithm design techniques such as divide-and-conquer, greedy algorithms, dynamic programming, backtracking and branch-and-bound. Graph and string algorithms, and introduction to NP-Completeness and complexity theory.
Lectures, 3 hours per week.
Prerequisites: COSC 2P03 (minimum 60 percent) and MATH 1P67.

COSC 3P40
Advanced Object-Oriented Programming
Topics may include graphical user interfaces, animation, sound, music, networking, parallelism, client-server and XML using game design as an example. Object-oriented program design including UML and design patterns. Introduction to advanced Java APIs such as awt, swing, io, nio, sound, net and xml.
Lectures, 3 hours per week, lab, 2 hours per week.
Prerequisites: COSC 2P03 (minimum 60 percent) and 2P90 (minimum 60 percent).

COSC 3P71
Artificial Intelligence
Topics include heuristic programming, analysis of solution space, searching, pattern recognition, machine learning, game playing, genetic algorithms and problem solving.
Lectures, 3 hours per week.
Prerequisite: COSC 2P03 (minimum 60 percent).
Note: completion of COSC 2P93 is recommended before taking this course.

COSC 3P92
Computer Architecture
Topics include buses, internal and external memory, I/O and interfacing, computer arithmetic, instruction sets, RISCs, microprogrammed control, parallel organization.
Lectures, 3 hours per week.
Prerequisites: COSC 2P12 (minimum 60 percent) and 2P13 (minimum 60 percent).

COSC 3P93
Parallel Computing
Origins of parallelism, classification of designs, characterization of performance. Pipelined computers: selection and comparison, case studies. Processor arrays: switching networks, case studies. Parallel languages: general principles, parallel constructs, vectorizing compilers, issues of portability. Practical exposure to a parallel programming language and parallel computing hardware. Parallel algorithms: general principles, recurrences, parallel approach to data structures and computational structures. Future trends: technology, design limitations, future supercomputers.
Lectures, 3 hours per week.
Prerequisite: COSC 2P13 (minimum 60 percent).

COSC 3P94
Introduction to Human Computer Interaction
(also offered as APCO 3P94 and IASC 3P94)
Human factors in the design and support of computing systems. Design methodologies such as GOMS, TAGs and Task Analysis. Design principles relating to various interaction paradigms.
Lectures, 3 hours per week, lab/seminar, 2 hours per week.
Prerequisite: two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent).
Completion of this course will replace previous assigned grade and credit obtained in COSC 3P04.

COSC 3P95
Embedded Software
Real-time execution, concurrency, network and device control. Topics include requirements posed by embedded software; real-time programming languages and operating systems; development of embedded applications. (knowledge of C assumed).
Lectures, 3 hours per week; lab, 2 hours per week.
Prerequisites: COSC 2P12 (minimum 60 percent) and 2P13 (minimum 60 percent).
Note: completion of PHYS 1P91, 1P92 (1F90) and COSC 2P91 is recommended before taking this course.
Completion of this course will replace previous assigned grade in COSC 3V95.

COSC 3P98
Computer Graphics
Topics include 2-D and 3-D graphics, curve and surface fitting, light and colour models, real time interfaces, animation and hardware issues (knowledge of C assumed).
Lectures, 3 hours per week.
Prerequisites: COSC 2P03 (minimum 60 percent) and MATH 1P12.
Note: completion of COSC 2P91 is recommended before taking this course.

COSC 3P99
Computing Project
Half-year development project or directed reading essay under faculty supervision.
Seminar, 2 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors and permission of project co-ordinator.
Prerequisite: COSC 2P03 (minimum 60 percent).
Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. Further information (including project guidelines and project list) is available on the department Web pages.

COSC 3V90-3V99
Computing Topics I
Selected topics in computer science.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.

COSC 4F90
Computing Project
Full-year project under the supervision of a faculty member.
Seminar, 2 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors with a minimum 75 percent major average and permission of project co-ordinator.
Prerequisite: COSC 3F00 (minimum 60 percent).
Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. This course is strongly recommended for students considering graduate school. Students must consult with faculty at the end of year 3 regarding supervision of projects. Further information (including project guidelines and project list) is available on the department Web pages.

COSC 4P03
Advanced Algorithms
Classical and evolving problems and algorithms in Computer Science. Topics include classical design and analysis techniques, cryptography, combinatorics.
Lectures, seminar, 3 hours per week.
Prerequisite: COSC 3P03 (minimum 60 percent).
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V92.

COSC 4P13
Operating Systems: Design and Implementation
Design and implementation of UNIX and other operating systems. Topics include process and thread management, interprocess communication, synchronization and scheduling, multiprocessing, device drivers, kernel memory management, distributed and advanced file systems and STREAMS (knowledge of C assumed).
Lectures, 3 hours per week.
Prerequisites: COSC 2P12 (minimum 60 percent), 2P13 (minimum 60 percent) and 2P91 (minimum 60 percent).

COSC 4P14
Computer Networks
Advanced topics in computer networking, including computer network security, wireless and high-speed networking, computer network management and performance evaluation.
Lectures, 3 hours per week.
Prerequisites: COSC 2P13 (minimum 60 percent) and 3P01 (minimum 60 percent).

COSC 4P41
Functional Programming
Introduction to functional programming using the languages Haskell and SML. Topics include all data types, type inference, pattern-matching, recursion, polymorphism, higher-order functions, lazy vs eager evaluation, modules and monads.
Lectures, 3 hours per week.
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V81.

COSC 4P42
Formal Methods in Software Engineering
Specification and correctness of software. Topics include algebraic specifications, semantics of programming languages, Hoare/dynamic logic, specification languages, program transformation.
Lectures/Lab/Tutorial, 4 hours per week.
Prerequisites: COSC 3F00 (minimum 60 percent) and 3P03 (minimum 60 percent).

COSC 4P61
Theory of Computation
(also offered as MATH 4P61)
Regular languages and finite state machines: deterministic and non-deterministic machines, Kleene's theorem, the pumping lemma, Myhill-Nerode Theorem and decidable questions. Context-free languages: generation by context-free grammars and acceptance by pushdown automata, pumping lemma, closure properties, decidability. Turing machines: recursively enumerable languages, universal Turing machines, halting problem and other undecidable questions.
Lectures, 3 hours per week.
Restriction: open to COSC (single or combined) majors.
Prerequisite: MATH 1P67.
Note: MATH students may take this course with permission of Department.

COSC 4P75
Compiler Construction
Topics include lexical, syntactic and semantic analysis of high-level languages; symbol table organization; code generation and optimization.
Lectures, 3 hours per week.
Prerequisites: COSC 2P12 (minimum 60 percent), 2P03 (minimum 60 percent) and 2P90 (minimum 60 percent).

COSC 4P76
Machine Learning
Fundamental machine learning techniques with emphasis on using these techniques to design and implement small practical learning systems. Topics include learning as a search, inductive bias, concept learning, computational learning, explanation-based learning and reinforcement learning.
Lectures, seminar, 3 hours per week.
Prerequisite: COSC 3P71 (minimum 60 percent).
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V91.

COSC 4P78
Robotics
Computer control aspects of robots focusing on behaviour-based robot control architectures. Topics include robot components and subsystems, sensors and perception, object location and manipulation, mobile robot navigation, task planning, control architectures, adaptive and social behaviour.
Lectures, 3 hours per week, lab, 1 hour per week.
Prerequisites: COSC 2P12 (minimum 60 percent), 2P90 (minimum 60 percent), 3P71 (minimum 60 percent) and MATH 1P12.
Note: completion of PHYS 1P91 and 1P92 is recommended before taking this course.

COSC 4P79
Expert Systems
Development of expert systems. Topics include recognition of problems solvable by an expert system; knowledge engineering; languages for expert systems development. Students will experiment with expert system development using an expert system shell and expert system building tool.
Lectures, 3 hours per week.
Prerequisites: COSC 2P93 (minimum 60 percent) and 3P71 (minimum 60 percent).

COSC 4P80
Artificial Neural Networks
Practical problem solving using artificial neural networks. Supervised learning, single- and multilayer feed-forward networks and backpropagation and refinements; recurrent neural networks; Hopfield networks and Boltzmann machines. Unsupervised learning, competitive learning, Kohonen map and self-organizing feature maps.
Lectures, seminar, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisite: COSC 3P71.
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V80.

COSC 4P87
Foundations of Reasoning under Uncertainty
Uncertain reasoning is based on both deductive and inductive methods. Exploration of formal foundations of both streams. Formal systems such as propositional modal logics and grammars, models of probability, Bayesian reasoning, fuzzy sets, rough sets, concept lattices and knowledge structures.
Lectures, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisites: COSC 2P93 (minimum 60 percent) and 3P71 (minimum 60 percent)
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V97.

COSC 4P94
Discrete Event Simulation
Classification of modelling and simulation problems: discrete, continuous and Monte Carlo. Concepts of causality, understanding and modelling. Issues of model credibility, validation, verification, tractability, uncertainty and system state. Basic discrete-event simulation methodology. Elements of probability in model building. Random number generation. Statistical analysis of simulated data and design of simulation experiments.
Lectures, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisites: COSC 2P03 (minimum 60 percent) and MATH 3F65 (minimum 60 percent).
Note: completion of MATH 1P98 is recommended before taking this course.
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V94.

COSC 4P98
Topics in Computer Graphics and Digital Audio
Contemporary topics in computer graphics and audio, including ray tracing, fractals, spline and curve fitting, digital audio fundamentals, MIDI, computer composition, music and sound processing. Programming assignments use C, OpenGL and Csound.
Lectures, 3 hours per week.
Prerequisite: COSC 3P98 (minimum 60 percent).
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V98.

COSC 4V80-4V99
Computing Topics II
Selected topics in computer science.
Lectures, seminar, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.

COSC 4V99
2008-2009: Computability and Complexity
What can and cannot be computed, how quickly, with how much memory and on which type of computational model. Language families, their properties and machines, the Chomsky Hierarchy; the Church-Turing Thesis, the Halting problem, time and space complexity, complexity classes, polynomial reduction.
Lectures, seminar, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisite: COSC 4P61 or permission of the instructor.


CO-OP COURSES
COSC 0N01
Co-op Work Placement I
First co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.

COSC 0N02
Co-op Work Placement II
Second co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.

COSC 0N03
Co-op Work Placement III
Third co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.

COSC 0N04
Co-op Work Placement IV
Optional co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.

COSC 0N05
Co-op Work Placement V
Optional co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.


INTERNSHIP COURSE
COSC 2N90
Internship
Work placement of 8-16 months duration with an approved employer.
Restriction: open to students accepted into the Internship option.
Note: interviews with employer and student and completion, by the student, of a work report.