2021-2022 Undergraduate Calendar

Computer Science  
Chair Brian Ross Professor Emeritus Ivo Düntsch Professors Sheridan Houghten, Beatrice Ombuki-Berman, Ke Qiu, Brian Ross, Michael Winter Assistant Professors Naser Ezzati-Jivan, Robson De Grande, Yifeng Li Lecturer Earl Foxwell Adjunct Professors Joseph Brown, Kyle Harrison, James Hughes Instructor David Bockus Student Support Co-ordinator Donna Phelps Senior Laboratory Co-ordinator/Demonstrator/Mentor Poling Bork Director, Co-op, Career and Experiential Education Cara Krezek  
General Information Go to top of document
Administrative Assistant Amber Cecchini 905-688-5550, extension 3513 Mackenzie Chown, J314 cosc.brocku.ca The Department of Computer Science offers 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 and combined BA (Honours) 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, Game Programming, 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 Recommendation for Practicing Computer Science Professionals Go to top of document
In order to prepare students for professional practice, students in the BSc (Honours), BSc Co-op, and BSc with Major programs are highly recommended to complete courses in a focused discipline outside of computer science. It is widely recognized that the professional practice of computer science often requires domain knowledge-specialized knowledge of another discipline in which computing is applied. This phenomenon is often described as Computer Science + X. Domain knowledge 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.  
Graduate School Entry Recommendation Go to top of document
Students pursuing the BSc (Honours) program who are considering graduate school are highly recommended to take two additional credits from COSC 3P99, 4F90, MATH 2P12, 2P81, 2P92, 2P97, 2P98, 3P12, 3P73, 4P71, 4P92.  
Co-op Program Go to top of document
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, computer organization, algorithms, data structures and ethics 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 the student's major average to 70 percent, the student may be readmitted only if approved by the Computer Science Co-op Admissions Committee. All students in the Co-operative Education program are required to read, sign and adhere to the terms of the Student Regulations Waiver and Co-op Student Manual (brocku.ca/co-op/current-students/co-op-student-manuals) as articulated by the Co-op Programs Office. In addition, eligibility to continue in the co-op option is based on the student's major average and non-major average, and the ability to demonstrate the motivation and potential to pursue a professional career. Students must register for each four-month co-operative education work term. Once students are registered in a co-op work term, they are expected to fulfill their commitment. If the placement accepted is for more than one four-month work term, students are committed to complete all terms. Students may not withdraw from or terminate a work term without permission from the Director, Co-op Program Office. 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 Go to top of document
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, 2P89 and one or more of COSC 2P12, 2P13, 3P32. The Computer Science Internship Admissions Committee will make admission decisions.  
Applied Computing (APCO) Courses Go to top of document
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 Go to top of document
A campus-wide fibre optic network links all the University's academic computing facilities including the department's computers. Campus-wide WiFi provides access to this network from anywhere on campus. The department maintains a 16 core Redhat Linux server that supports the departmental labs and provides students with access to their files wherever they can connect via the internet. The department has three computer laboratories: D205, J301 and J310 containing multi-core Intel processor computers running both Windows and Linux operating systems with access to development environments, database systems and other special purpose software used in the courses.  
Major Credits Go to top of document
In calculating the major average for a Computer Science major or co-major, all COSC courses, MATH 1P66, 1P67 and 4P61 are included.  
Mathematics in Computer Science Go to top of document
Mathematics is fundamental to the study of Computer Science and thus MATH credits are required in each 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 Go to top of document
Students interested in computer hardware are advised to elect PHYS 2P30 and 3P92 within their Computer Science program. PHYS 1P21 or 1P91 (recommended) and either PHYS 1P22 or 1P92 (recommended) are required as a prerequisite for PHYS 2P30. Students may also wish to consider the Computing and Solid-state Device Technology program. (See separate calendar entry.)  
Program Notes Go to top of document
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 Java or C++ may be granted exemption from COSC 1P02 at the discretion of the Chair.  
2.  In choosing electives, students should consider: ENTR 2P51, FNCE 2P51, MKTG 2P51, OPER 2P51, WRDS 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 and1P98 for Earth Sciences.  
4.  One elective credit if the required course in year 1 in the other discipline is a Social Sciences context credit or Humanities context credit for the combined degree with Social Sciences 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.  Students planning on attending graduate school should consider two additional credits from COSC 3P99, 4F90, 4P03, 4P42, MATH 2P12, 2P81, 2P92, 2P97, 2P98, 3P12, 3P73, 4P71, 4P92.  
9. 

In 20 credit degree programs a maximum of eight credits may be numbered 1(alpha)00 to 1(alpha)99; at least three credits must be numbered 2(alpha)90 or above; at least three credits must be numbered 3(alpha)90 or above; and the remaining credits must be numbered 2(alpha)00 or above.

In some circumstances, in order to meet university degree and program requirements, more than 20 credits may be taken.

 
Honours Program Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P50 (see program note 1)
- MATH 1P66 and 1P67
- one Humanities context credit
- one Social Sciences context credit
- one-half elective credit (see program note 2)
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- MATH 1P12 and 1P98
- two elective credits (see program notes 2, 8, and 9)
Year 3
- COSC 3P03, 3P32 and 3P71
- MATH 1P05 and 1P06
- one COSC credit (see program notes 8 and 9)
- one and one-half elective credits (see program notes 2, 8, and 9)
Year 4
- COSC 4P01, 4P02 and 4P61
- two COSC credits (see program notes 8 and 9)
- one and one-half elective credits (see program notes 2, 8, and 9)
 
Computer Science Co-op (honours only) Go to top of document
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
- SCIE 0N90
- one Humanities context credit
- one Social Sciences context credit
- one-half elective credit (see program note 2)
Year 2 Fall Term:
- COSC 2P03 and 2P12
- MATH 1P12
- one-half COSC credit (COSC 2P89 recommended)
- one-half elective credit (see program notes 2 and 9)
Winter Term:
- COSC 0N01 and 2C01
Spring/Summer Sessions:
- COSC 2P13 and 3P32
- MATH 1P98
- one elective credit (see program notes 2 and 9)
Year 3 Fall Term:
- COSC 0N02 and 2C02
Winter Term:
- COSC 2P05
- one COSC credit
- one elective credit (see program notes 2 and 9)
Spring/Summer Sessions:
- COSC 0N03 and 2C03
Year 4
- COSC 3P03, 3P71, 4P01 and 4P02
- MATH 1P05 and 1P06
- one-half COSC credit (see program note 9)
- one and one-half elective credits (see program notes 2 and 9)
Year 5 Fall Term:
- COSC 4P61
- one COSC credit (see program note 9)
- one elective credit (see program note 2 and 9)
 
BSc with Major Program Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P50 (see program note 1)
- MATH 1P66 and 1P67
- one Humanities context credit
- one Social Sciences context credit
- one-half elective credit (see program note 2)
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- MATH 1P12 and 1P98
- two elective credits (see program notes 2 and 9)
Year 3
- COSC 3P03, 3P32 and 3P71
- MATH 1P05 and 1P06; or MATH 1P97 and one of COSC 4P61, MATH 2P12, 2P90, 2P91, 2P92, 2P94, 2P98, 4P71
- one COSC credit (see program note 9)
- one and one-half elective credits (see program notes 2 and 9)
Year 4
- COSC 4P01, 4P02
- One of COSC 4P61, MATH 2P12, 2P90, 2P91, 2P92, 2P94, 2P98, 4P71
- two COSC credits (see program note 9)
- one and one-half elective credits (see program notes 2 and 9)
 
Computer Science as a Second Degree Program Go to top of document
A student holding an honours or Pass degree in another discipline may obtain a BSc (Honours) in Computer Science or a BSc with a Major in Computer Science. 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 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 years of study. A student wishing to pursue full-time study can usually complete the program in three years by following the pattern of study below.  
Honours Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P50
- MATH 1P12, 1P66, 1P67 and 1P98
Spring/Summer Sessions:
- COSC 2P03
Year 2
- COSC 2P05, 2P12, 2P13, 3P03, 3P32 and 3P71
- MATH 1P05 and 1P06
Year 3
- COSC 4P01, 4P02 and 4P61
- two COSC credits numbered 3(alpha)90 or above
 
BSc with Major Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P50
- MATH 1P12, 1P66, 1P67 and 1P98
Spring/Summer Sessions:
- COSC 2P03
Year 2
- COSC 2P05, 2P12, 2P13, 3P03, 3P32 and 3P71
- MATH 1P05 and 1P06; or MATH 1P97 and one of COSC 4P61, MATH 2P12, 2P90, 2P91, 2P92, 2P94, 2P98, 4P71
Year 3
- COSC 4P01, 4P02 and one of COSC 4P61, MATH 2P12, 2P90, 2P91, 2P92, 2P94, 2P98, 4P71
- two COSC credits numbered 3(alpha)90 or above
 
Combined Major Program Go to top of document
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 Go to top of document
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 Sciences context credit
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- two credits in the co-major discipline
- one Humanities context credit
Year 3
- COSC 1P50, 3P03, 3P32 and 3P71
- MATH 1P12 and 1P98
- two credits in co-major discipline
Year 4
- COSC 4P01 and 4P02
- one COSC credit 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 Mathematics Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- MATH 1P01, 1P02, 1P66 and 1P67
- one Humanities context credit
- one Social Sciences context credit
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- MATH 1P11, 1P40, 2P03 and 2P81
- one elective credit
Year 3
- COSC 1P50, 2P95, 3P03 and 3P32
- MATH 2P40 and 2P82
- MATH 2P12 or 2P92
- one-half MATH credit (see program note 9)
- one elective credit
Year 4
- COSC 4P01 and 4P02
- one COSC credit numbered 3(alpha)90 or above
- MATH 3P60 and 4P61
- one-half MATH credit (see program note 9)
- one-half MATH credit numbered 3(alpha)90 or above (see program note 9)
- one elective credit
 
BSc Computer Science and Mathematics Co-op (honours only) Go to top of document
Consult the Mathematics entry for a listing of program requirements.  
BSc (honours) Computer Science and Physics Go to top of document
Consult the Physics entry for a listing of program requirements.  
BA (honours; with Major) or BSc (honours; with Major) Computer Science and a Humanities or a Social Sciences Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- MATH 1P66 and 1P67
- one credit in the co-major discipline
- one Humanities context credit (see program note 4)
- one Social Sciences context credit (see program note 4)
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- two credits in the co-major discipline
- one elective credit
Year 3
- COSC 1P50, 3P03, 3P32 and 3P71
- MATH 1P97 and 1P98
- two credits in the co-major discipline
Year 4
- COSC 4P01 and 4P02
- one COSC credit 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 Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- VISA 1P95, 1P96, 1Q98 and 1Q99
- MATH 1P66 and 1P67
- one Social Sciences context credit
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- VISA 2P61 and 2P96
- one VISA credit numbered 2(alpha)00 or above (VISA 2P97 and 2P98 recommended)
- one elective credit
Year 3
- COSC 1P50, 3P03, 3P32 and 3P71
- one VISA credit numbered 3(alpha)00 or above (VISA 3F96 recommended)
- MATH 1P12 and 1P97
- one elective credit numbered 2(alpha)00 or above
Year 4
- COSC 2P89, 3P98, 4P01 and 4P02
- one VISA credit numbered 2(alpha)00 or above
- one and one-half VISA credits numbered 3(alpha)90 or above
- MATH 1P98
 
BA (honours) or BSc (honours) Computer Science and Economics Go to top of document
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 Humanities context credit
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- ECON 2P21, 2P22 and 2P30
- one-half ECON credit
- one elective credit
Year 3
- COSC 1P50, 3P03, 3P32 and 3P71
- ECON 2P90, 3P21, 3P22 and 3Q91
- one elective credit
Year 4
- COSC 4P01 and 4P02
- one COSC credit numbered 3(alpha)90 or above
- ECON 3P90, 4P13 and 4P14
- one-half ECON credit numbered 2(alpha)90 or above
- one elective credit
 
BA (honours) Computer Science and Geography Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- GEOG 1F90
- MATH 1P66 and 1P67
- one Humanities context credit
- one elective credit
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- GEOG 2P07 and 2P21
- one credit from GEOG 2P01, 2P03, 2P06, 2P13, 2P30, 2P33, 2P66, 2P94
- MATH 1P97 and 1P98
Year 3
- COSC 1P50, 3P03, 3P32 and 3P71
- GEOG 3P21 and 3P57
- one and one-half GEOG credits numbered 2(alpha)90 to 3(alpha)99 from Group A, C or D (see Geography department; see program note 6)
- one-half elective credit
Year 4
- COSC 4P01 and 4P02
- one COSC credit numbered 3(alpha)90 or above (see program note 6)
- GEOG 4F99
- one GEOG credit numbered 3(alpha)90 or above from Group A, C or D (see Geography department)
- one elective credit
 
BSc (honours) Computer Science and Geography Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- GEOG 1F91
- MATH 1P66 and 1P67
- one Humanities context credit
- one Social Sciences context credit
Year 2
- COSC 2P03, 2P05, 2P12 and 2P13
- GEOG 2P07, 2P08 and 2P21
- GEOG 2P05 or 2P18
- MATH 1P97 and 1P98
Year 3
- COSC 1P50, 3P03, 3P32 and 3P71
- GEOG 3P21 and 3P56
- one and one-half GEOG credits numbered 2(alpha)90 to 3(alpha)99 from Group B, C or D (see Geography department; see program note 6)
- one-half elective credit
Year 4
- COSC 4P01 and 4P02
- one COSC credit numbered 3(alpha)90 or above (see program note 6)
- GEOG 4F99
- one GEOG credit numbered 3(alpha)90 or above from Group B, C or D (see Geography department)
- one elective credit
 
Concentration Program Go to top of document
Concentration in Software Engineering Go to top of document
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, 2P05, 2P13, 3P03, 3P32, 3P71, 4P01, 4P02, and 4P61
- two credits from COSC 3P92, 3P94, 4F90, 4P03, 4P13, 4P14. 4P42
 
Concentration in Intelligent Systems Go to top of document
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, 2P05, 2P13, 3P03, 3P32, 3P71, 4P01, 4P02 and 4P61
- two credits from COSC 4F90, 4P76, 4P78, 4P80, 4P81, 4P82
 
Minor in Applied Computing Go to top of document
Computer Science (single or combined), Computing and Business, Computing and Network Communications, Computing and Solid-State Device Technology, and Game Programming 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 overall average:
- Four APCO or COSC credits
 
Brock/Colleges Articulation Agreement Go to top of document
Brock-Fanshawe College This agreement allows Brock to admit students from the Fanshawe 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 program. Students who have a grade of B in all transferred courses will be awarded six 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-Niagara College Go to top of document
This agreement allows Brock University to admit graduates of the Niagara College Programmer/Analyst Advanced Diploma Program who have a minimum GPA of 3.5 (80 percent) to the BSc (Honours) Computer Science or BSc with Major Computer Science program. At admission, the student will be awarded five credits towards either of these degrees. After completion of five credits at Brock University, the student may be eligible for up to two additional transfer credits. Normally the requirements for the BSc (Honours) and with Major degrees can be completed within three years. The schedule of transferable courses is available from the Admissions Office.  
Brock-Sheridan College Go to top of document
This agreement allows Brock University to admit students from the Sheridan College Computer Science Technology Advanced Diploma Program who have a minimum GPA of 3.5 (80 percent) to the BSc (Honours) Computer Science or BSc with Major Computer Science program. At admission, the student will be awarded seven credits towards either of these degrees. After completion of five credits at Brock University, the student may be eligible for up to two additional transfer credits. Normally the requirements for the BSc (Honours) and with Major degrees can be completed within two to three years. The schedule of transferable courses is available from the Admissions Office.  
Master of Science (MSc) Program Go to top of document
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 Go to top of document
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 Go to top of document
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 COURSES

*APCO 1P00 Introduction to Media Computation (also offered as IASC 1P00) Programming by example, designing and debugging of programs, encoding and manipulation of text and graphics, file processing, simple HTML and automatic generation, and manipulating and parsing of web pages. 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *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, 2 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. #APCO 1P30 Programming for Interactive Media (also offered as IASC 1P30) Introduction to contemporary programming syntax including for classes, functions, properties and events for developing interactive media applications. Lab, 4 hours per week. Restriction: open to IASC (single or combined) majors until date specified in Registration guide. Note: enrolment limited to 20 students. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. #APCO 1P50 Integrity and Literacy in the Information Age (also offered as COSC 1P50 and IASC 1P50) Issues in use of information technology including historic and social perspectives; legal, ethical and moral issues; intellectual property, licensing and copyright; privacy and freedom of expression; professional conduct and information literacy. Lectures, 3 hours per week; seminar, 1.5 hours per week. Note: this course involves seminars and considerable written work. A good command of written and spoken English is required. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *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(s): APCO 1P00 or 4U Mathematics credit. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *APCO 2P11 Personal Computers and Networks (also offered as IASC 2P11) 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: open to APCO minors until date specified in Registration guide. After that date open to COSC (single or combined), BCB, CAST, CNET majors and APCO minors. Prerequisite(s): APCO 1P01 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in APCO 2P01. #APCO 2P61 Website Creation (also offered as STAC 2P61 and VISA 2P61) Creative approaches to basic technical and design foundations of website design and development. Processing and management of images and other media assets, structuring websites, development tools and applications, web hosting and dissemination strategies. Contemporary web-based art practices within the broader history of cultural production. Lectures, lab, 5 hours per week. Restriction: open to STAC, VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide. After that date open to STAC, VISA (single or combined), VISA (Honours)/BEd (Intermediate/Senior) majors and APCO minors. Prerequisite(s): VISA 1P95 (minimum 60 percent) and 1P96 (minimum 60 percent) or permission of the instructor. Note: students will need additional materials, which they must supply. Field trips may be required. Students are expected to pay their own expenses. VISA 1P95 recommended. Due to space limitations, audits are not permitted in studio classes. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. #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(s): APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent) or COSC 1P03 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. APCO 2P99 Project in Applied Computing Development project in computing, Internet programming or directed reading essay under the supervision of a faculty member. Prerequisite(s): 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. #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(s): two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.

COMPUTER SCIENCE COURSES

COSC 1P02 Introduction to Computer Science Foundations of Computer Science and computer programming in a high-level language (normally Java). Topics include computer fundamentals, representation of information, 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 1P03 Introduction to Data Structures Programming and problem solving in a high-level programming language (normally Java). Data structures including arrays and linked-lists. Modularity, abstraction and abstract data types including stacks, queues and lists. Introduction to searching and sorting, recursion, algorithm analysis and object-orientation. Lectures, 2 hours per week; lab, 2 hours per week; tutorial, 1 hour per week. Prerequisite(s): 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *COSC 1P50 Integrity and Literacy in the Information Age (also offered as APCO 1P50 and IASC 1P50) Issues in use of information technology including historic and social perspectives; legal, ethical and moral issues; intellectual property, licensing and copyright; privacy and freedom of expression; professional conduct and information literacy. Lectures, 3 hours per week; seminar, 1.5 hours per week. Note: this course involves seminars and considerable written work. A good command of written and spoken English is required. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2P03 Advanced Data Structures Implementation and use of advanced data structures including trees, graphs, hash tables and advanced list structures, sorting and searching, recursion and traversals. Analysis of algorithms. Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week. Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors. Prerequisite(s): COSC 1P03 (minimum 60 percent), MATH 1P66 and 1P67. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2P05 Programming Languages Fundamental concepts of programming languages including syntax, semantics, program translation, virtual machines, control, data types, multi-threading, exception handling and abstraction mechanisms. Introduction to programming paradigms including imperative, applicative, logic and object-oriented. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in COSC 2P90 and 3P05. COSC 2P12 Introduction to Computer Architecture Evolution of digital computer. Computer organization including functional units, instruction cycle, control, buses and memory. Instruction types and memory access, instruction sequencing and call/return. Basic assembly language programming. Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 1P03 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2P13 Computer Systems Operating systems and networking. Resource sharing including file, processor, I/O and memory management. Concurrency including: context switching, interprocess communication, and synchronization. Protection and security including encryption. Distributed systems and networking including: ISO model and packet routing. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent) and COSC 2P12 (minimum 60 percent) for COSC (single or combined), BCB, CAST, CNET and NEUR neurocomputing majors; COSC 2P03 (minimum 60 percent), CPCF 1F25 and IASC 2P04 for GAMP majors. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *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(s): COSC 1P03 (minimum 60 percent) or APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2P95 Programming in C++ with Applications C++ as a second language. Basic language structure, data structures, libraries for application. Introduction to object-orientation and UNIX commands. Lectures, 2 hours per week; labs 2 hours per week. Prerequisite(s): one of COSC 1P03, APCO 1P93, MATH 2P40. Note: students should select the lab appropriate for their application domain (Computer Science or Mathematics). This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. #COSC 2P96 Introduction to 3D Modelling and Animation (also offered as STAC 2P96 and VISA 2P96) Concepts and skills of 3D modelling and rendering using Autodesk Maya. Approaches to building models, using texturizing, lighting, cameras and rendering as well as basic animation techniques. Relevant historical 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 COSC (single or combined), IASC (single or combined), STAC, VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide. Prerequisite(s): one of four COSC credits, IASC 1F01 (1F00), one credit from VISA 1P93 (minimum 60 percent), 1P94 (minimum 60 percent), 1P95 (minimum 60 percent), 1P96 (minimum 60 percent). Note: students will need additional materials and equipment, which they must supply. Field trips may be required. Students are expected to pay their own expenses. VISA 1P95 recommended. Due to space limitations, audits are not permitted in studio classes. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in IASC 2P96. 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. Introduction to NP-Completeness and complexity theory. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 3P32 Introduction to Database Systems Fundamental database concepts: specification, design and applications; various models including the relational model; normal forms, efficiency considerations, queries using SQL, database administration and security. Practical experience (normally ORACLE) in a group project. Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in COSC 2P32. COSC 3P71 Introduction to Artificial Intelligence Historic and philosophical foundations of AI; knowledge representation and reasoning; problem spaces; blind and heuristic search; adversarial search in game playing; machine learning; social and ethical considerations. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 3P91 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. Lectures, 3 hours per week; lab 2 hours per week. Prerequisite(s): two COSC credits or permission of instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in COSC 3P40. 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. Prerequisite(s): COSC 2P12 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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(s): COSC 2P13 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *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(s): two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 3P97 Mobile Computing Overview of mobile applications, technologies and communication. Common paradigms in mobile computing. Application frameworks and application development. Interaction styles for user interface. Lectures 3 hours per week. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors. Prerequisite(s): COSC 2P13 (minimum 60 percent) and COSC 3P32 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in COSC 3V97. 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. Prerequisite(s): COSC 2P03 (minimum 60 percent), three COSC credits and MATH 1P12 or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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, CNET, GAMP and NEUR Neurocomputing stream majors with a minimum 75 percent major average (or permission of project supervisor) and permission of project coordinator. Prerequisite(s): COSC 2P03. 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 3Q95 Internship in Game Programming Internship in a business related to the gaming industry. Restriction: open to GAMP majors and permission of the Game Program Director. Prerequisite(s): COSC 2P03 (minimum 60 percent) and permission of Game Programming Director. Note: application required. Enrolment will be limited to the number of placements available. Students will be required to attend orientation meetings, occasional meetings with the Student Support Co-ordinator and develop professional learning objectives. Additional components typically include a site visit, a work term report and an employer performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 3V90-3V99 Computing Topics I Selected topics in computer science. Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream 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, a minimum 10.0 overall credits and permission of project co-ordinator. Prerequisite(s): 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. 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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4P01 Software Engineering 1 Theory of software engineering. Topics include plan-driven development, Agile development, software requirements elicitation and presentation, verification of software correctness, redundancy, robustness, safety and security. Creation of robust software requirements document. Introduction to tools such as Git and Azure DevOps. Lectures/seminar/lab, 5 hours per week. Restriction: open to COSC (single or combined), BCB and CAST majors with a minimum of 14.0 overall credits. Prerequisite(s): COSC 2P03 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in COSC 4F00. COSC 4P02 Software Engineering 2 Application of software engineering. The development of a large-scale software engineering project in a competitive team setting, including creation of complete documentation for a working system. Lecture/Instructor Consultation and Individual work, 6 hours per week. Restriction: open to COSC (single or combined), BCB and CAST majors with a minimum of 14.0 overall credits. Prerequisite(s): COSC 4P01 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. Completion of this course will replace previous assigned grade and credit obtained in COSC 4F00. 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(s): COSC 3P03 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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, lab, 4 hours per week. Prerequisite(s): COSC 2P13 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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, lab, 4 hours per week. Prerequisite(s): COSC 2P13 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4P32 Advanced Database Systems Design and implementation of database management systems (DBMS). Topics include: transaction management, crash recovery, query processing algorithms, query optimization, advanced indexing techniques, introductory topics on big data management, and parallel and distributed databases. Lectures, 3 hours per week. Prerequisite(s): COSC 3P32 (minimum 60 percent) Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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; lab, 2 hours per week Prerequisite(s): three and one-half COSC credits or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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. Prerequisite(s): three and one-half COSC credits and MATH 1P67 or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. *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), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors. Prerequisite(s): MATH 1P67 (minimum 60 percent). Note: MATH students may take this course with permission of the Mathematics Department. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: PHYS 1P91 and 1P92 are recommended. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4P81 AI Programming Developing computer applications for AI problem solving. Topics in AI software systems, programming languages and paradigms, and their suitability in different problem domains. Languages relevant to AI programming. Lectures, 3 hours per week. Prerequisite(s): COSC 3P71 (minimum 60 percent). Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4P82 Genetic Programming Synthesis of computer programs using evolutionary computation. Different representations, including tree, linear, grammatical. Theoretical analyses, including the effects of operators, representations and fitness landscapes. Practical applications in problem solving, decision making, classification, computer vision and design. Lectures, seminar, 3 hours per week. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4P83 Reinforcement Learning Multi-armed bandits, Markov decision processes, model-based and model-free methods (such as dynamic programming, Monte Carlo methods, and temporal-difference methods) for learning value and policy functions. Approximation solutions including deep reinforcement learning. Lectures, 3 hours per week. Restriction: open to COSC, GAME, and Data Science programs. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4P98 Topics in Computer Media and Digital Audio Fractals, digital audio fundamentals, Fourier analysis, MIDI, computer composition, music and sound processing and user interfaces. Programming assignments may use C, Java, Supercollider and Csound. Lectures, 3 hours per week. Prerequisite(s): three and one-half COSC credits or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 4V77 2020-2021: Probabilistic Graphical Models and Neural Generative Models Introduction to the theoretical foundations of generative models, applications in prediction, knowledge discovery, creative design. Topics include probabilistic graphical models (PGMs), learning, and inference in traditional PGMs (hidden Markov models, mixture models, and latent Dirichlet allocation). Undirected neural generative models (NGMs), including Markov random fields, and variants of Boltzmann machines. Directed NGMs, including Helmholtz machines and deep belief nets, variational autoencoders, and generative adversarial networks. Lectures, 3 hours per week. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. 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, CNET, GAMP and NEUR Neurocomputing stream majors. COSC 4V96 2020-2021: Topics in Computational Intelligence Current methods in computational intelligence and their practical applications. Emphasis on evolutionary computation, swarm intelligence, artificial immune systems, and neural networks. Applications include optimization, classification, games, swarm robotics, image processing, and network science. New developments in the literature will be surveyed and discussed. Lectures, 3 hours per week. Prerequisite(s): COSC 3P71 (minimum 70 percent) or permission of the instructor. Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.

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. COSC 2C01 Co-op Reflective Learning and Integration I Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB, COSC and CNET Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N01. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2C02 Co-op Reflective Learning and Integration II Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N02. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2C03 Co-op Reflective Learning and Integration III Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N03. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2C04 Co-op Reflective Learning and Integration IV Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N04. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term. COSC 2C05 Co-op Reflective Learning and Integration V Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N05. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.

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. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
 
Last updated: June 29, 2021 @ 04:24PM