Computer Science


Faculty and Staff List

Emeritus Senior Lecturer
J. Sills,  B.A., B.Ed., M.Ed.

Professor Emeritus
C. Rackoff, B.S., M.Sc., Ph.D.

Professors
A. Bergen, B.A., B.Sc., M.Sc., Ph.D.
A.J. Bonner, B.Sc., M.S., Ph.D.
J. Burgner-Kahrs, B.Sc., M.Sc., Ph.D.
S. Fidler, B.Sc., Ph.D.
I. Gilitschenski, Ph.D.
L.A. Kahrs, Ph.D.
M. Liut, B.A.Sc. Hons, M.Eng., Ph.D.
A. Petersen, B.Sc., M.Sc.
A. Rosenbloom, B.Sc., M.Sc.
S. Sachdeva, B.Tech., M.A., Ph.D.
G. Saileshwar, B. Tech., M. Tech., Ph.D.
F. Shkurti, B.Sc., M.Sc., Ph.D.
B. Simion, B.Eng, M.A.Sc., Ph.D
A. Srinivasan, B.Tech., Ph.D.
M.H. Vu, B.A., M.A., Ph.D.
L. Zhang, Hons B.Math, M.Sc.
T. Zhu, B.Sc., M.Eng., Ph.D.
D. Zingaro, B.Sc., M.Sc., M.Ed., Ph.D.


Chair
Ilia Binder
Room 3016, Deerfield Hall
905-569-4381
chairmcs.utm@utoronto.ca

Vice-Chair, Computer Science
Andrew Petersen
Room 3096, Deerfield Hall
andrew.petersen@utoronto.ca

Associate Chair, Computer Science
Daniel Zingaro
Room 3078, Deerfield Hall
daniel.zingaro@utoronto.ca

Academic Advisor and Undergraduate Program Administrator
Yvette Ye
Room 3012, Deerfield Hall
yvette.ye@utoronto.ca
www.utm.utoronto.ca/math-cs-stats/welcome


Computer science is concerned in the broadest sense with the study of computation and applications of computing. Its development has been stimulated by collaborations with many areas including engineering, the physical and life sciences, mathematics and statistics and commerce. However, computer science is much more than a set of techniques used in these application areas. Computer science as a discipline encompasses a wide range of research areas. For example, "human-computer interaction" is the study of computer usage patterns and the design of interfaces between users and computing systems. "Software engineering" includes both the process of building software and the study of software production as a business. "Systems" (networks, operating systems, databases, compilers) is concerned with the design and analysis of complex computing systems. "Numerical analysis" involves the design, testing, and analysis of numerical methods for solving computational problems in science and engineering. "Cryptography" is the study of the hiding of information. "Theory" encompasses computability -- what can and cannot be computed by machines; complexity -- the relative effort required to perform various computations; and verification -- the formal proof of the correctness of programs.

Course offerings in the Computer Science program are intended to serve a wide variety of students, ranging from those whose primary interest is in information processing to those interested in applying computing to other fields. For more information on Computer Science programs consult www.utm.utoronto.ca/mcs

While we welcome inquiries from all interested students, Computer Science at the University of Toronto is limited to students applying directly from high school. Applicants who have completed any post-secondary studies (including studies at other divisions at the University of Toronto) are not eligible to pursue a Specialist and/or Major in Computer Science at U of T Mississauga.

Students should also review the Degree Requirements section prior to selecting courses

 

UTM Co-op Internship Program

The UTM Co-op Internship Program (UTMCIP) stream is available to eligible students enrolled in the Computer Science Major, Computer Science Minor, Computer Science Specialist, and Information Security Specialist programs. Enrolment is limited and requires a supplemental application. Students enrolled in the UTMCIP stream will be required to complete mandatory Work-Readiness programming plus a 12- or 16-month term of paid, full-time work experience. The time to degree completion for students enrolled in UTMCIP will normally be 5 years. There is an additional cost to participate in the UTMCIP stream.

Enrolment in the UTMCIP stream of the Computer Science Major, Minor, and Specialist, and Information Security Specialist programs is limited. Students will be eligible to apply to UTMCIP streams after their first year of study and/or completion of at least 4.0 credits, in alignment with the program’s requirements, and no more than 6.0 credits in total. Successful applicants will be enrolled into the UTMCIP stream of their academic program in Year of Study 2.

Enrolment is open to domestic and international students. All international students must possess a valid work permit and Social Insurance Number (SIN) to participate in a work term.

Please be advised that UTMCIP eligibility requirements, including CGPA and pre-requisite courses, may differ from the regular program requirements. Students are encouraged to carefully review the academic program descriptions below to identify whether the UTMCIP stream has any additional eligibility requirements. Students may also consult the UTMCIP website for further details on program eligibility requirements.

Computer Science Programs

Bioinformatics - Specialist (Science)

Bioinformatics - Specialist (Science)

Enrolment Requirements:

Admissions to the Bioinformatics Specialist Program (ERSPE1868) are administratively suspended as of 2023-2024. Summer 2023 is the final opportunity for students to request enrolment in this subject post. Students enrolled in the program will be allowed to continue.

Limited Enrolment — Enrolment in this program is limited. Students who wish to enrol at the end of the first year (4.0 credits) must have passed all the courses listed for the first year, attained at least 60% in all 100-level computer science and mathematics courses, and have a minimum Cumulative Grade Point Average (CGPA) of 2.0.

NOTES:

  1. Only CSC148H5 and MAT102H5, taken at the UTM campus, will be accepted.
  2. Transfer students who have completed any postsecondary studies outside of UTM (including studies at other divisions at the University of Toronto) are not eligible to pursue a Specialist and/ or Major in Computer Science at U of T Mississauga.

The Bioinformatics Specialist is a deregulated fees program and as such, tuition fees for students enrolled in this program are higher than for other regulated fee programs. Fees are charged on a program and not a per-course basis. See www.fees.utoronto.ca for more information on the fee structures.

Completion Requirements:

14.0 credits are required.

First Year:

  1. BIO152H5 and BIO153H5
  2. CHM110H5 and CHM120H5
  3. CSC108H5 and CSC148H5
  4. MAT102H5
  5. [( MAT132H5 or MAT135H5 or MAT137H5 or MAT157H5) and ( MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5)] or MAT134Y5 or MAT135Y5 or MAT137Y5 or MAT157Y5

Second Year:

  1. BIO206H5 and BIO207H5
  2. CHM242H5
  3. CSC207H5 and CSC236H5 and CSC263H5
  4. MAT223H5 or MAT240H5

Third Year:

  1. MAT232H5 and MAT244H5
  2. STA246H5 or STA256H5 or ECO227Y5

Fourth Year:

  1. BIO314H5 and BIO372H5 and BIO477H5
  2. CSC413H5 or CSC321H5 or CSC411H5 or CSC311H5
  3. CSC343H5 and CSC373H5
  4. MAT332H5
  5. At least 1.0 credit from the following list of recommended courses, of which at least 0.5 credit must be at the 400-level: BIO315H5 or BIO341H5 or BIO370Y5 or BIO371H5 or BIO380H5 or BIO443H5 or BIO481Y5 or CBJ481Y5 or CHM361H5 or CSC310H5 or CSC338H5 or CSC363H5 or JCP410H5 or STA302H5 or STA348H5

NOTES:

  1. If BIO477H5 is not offered in the fourth year of a student's studies, he or she must take an additional 0.5 credit from the recommended 400-level courses.
  2. Students intending to take CHM361H5 as one of their fourth year recommended courses must take CHM243H5 as a prerequisite course..

ERSPE1868

Computer Science - Specialist (Science)

Computer Science - Specialist (Science)

Enrolment Requirements:

Limited Enrolment — Enrolment in this program is limited to students with a minimum of 4.0 credits, including the following:

  1. CSC148H5 (see minimum grade note below)
  2. MAT102H5 (see minimum grade note below)
  3. MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5 or MAT134Y5 or MAT157Y5 or MAT233H5
  4. ISP100H5
  5. A cumulative grade point average (CGPA), determined annually. It is never lower than 2.5.
  6. All students must complete 4.0 U of T credits before requesting this program. Courses with a grade of CR/NCR will not count as a part of the 4.0 credits required for program entry.

NOTES:

  1. The minimum grade required in CSC148H5 and MAT102H5 is determined annually. It is never lower than 65%. Only CSC148H5 and MAT102H5, taken at the UTM campus, will be accepted.
  2. Transfer students who have completed any postsecondary studies outside of UTM (including studies at other divisions at the University of Toronto) are not eligible to pursue a Specialist and/ or Major in Computer Science at U of T Mississauga.

  3. Due to the limited enrolment nature of this program, students are strongly advised to develop alternate plans if they need to instead enroll in other programs.

  4. A supplemental application will be required for students applying to the Computer Science Specialist program in 2025-2026 for program entry in the 2026-2027 Academic Year. Additional information will be provided in the 2025-2026 Academic Calendar.

The Computer Science Specialist is a deregulated fees program and as such, tuition fees for students enrolled in this program are higher than for other regulated fee programs. Fees are charged on a program and not a per-course basis. See www.fees.utoronto.ca for more information on the fee structures.

Enrolment in the UTMCIP stream of this program is limited to students who have completed 4.0 credits, including:

  1. CSC148H5 (a final grade of at least 65%)
  2. MAT102H5 (a final grade of at least 65%)
  3. MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5 or MAT134Y5 or MAT135Y5 or MAT137Y5 or MAT157Y5 or MAT233H5
  4. ISP100H5

Courses to take in Year of Study 2: Complete CSC207H5/​ CSC207H1/​ CSCB07H3 by the end of Year of Study 2 to remain eligible for the program.

Students who have achieved a cumulative GPA of at least 2.5 are encouraged to apply. Students must be in good standing with no outstanding academic integrity cases.

Completion Requirements:

12.0-13.0 credits are required.

First Year:

  1. CSC108H5 and CSC148H5 and ISP100H5
  2. MAT102H5
  3. [( MAT132H5 or MAT135H5 or MAT137H5 or MAT157H5) and ( MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5)] or MAT137Y5 or MAT157Y5

Second Year:

  1. CSC207H5 and CSC209H5 and CSC236H5 and CSC258H5 and CSC263H5
  2. MAT223H5 or MAT240H5
  3. MAT232H5 or MAT233H5 or MAT257Y5
  4. STA246H5 or STA256H5 or ECO227Y5

Higher Years:

  1. CSC311H5 and CSC343H5 and CSC363H5 and CSC369H5 and CSC373H5
  2. CSC358H5 or CSC458H5
  3. 2.0 credits from any 300/400 level CSC course or GGR335H5 or GGR337H5 or GGR437H5. At least 1.0 credit must come from 400-level courses, and no more than 1.0 credit of GGR courses may count to this requirement.

NOTE:

1. In addition to the course requirements above, students must complete an integrative learning experience. This requirement may be met by participating in the UTM Co-op Internship Program (UTMCIP)* or by completing one of the following half-courses: CSC318H5, CSC367H5, CSC375H5, CSC376H5, CSC409H5, CSC420H5, CSC427H5, CSC477H5, CSC490H5.

*Please be advised that the UTMCIP only applies to UTM Computer Science students entering Year of Study 2. For more information about the UTMCIP, please visit the Experiential and International Opportunities page of the UTM Academic Calendar.

2. Students are strongly encouraged to familiarize themselves with the 100-level calculus pre-requisites to select the correct courses.


ERSPE1688

Information Security - Specialist (Science)

Information Security - Specialist (Science)

Enrolment Requirements:

Limited Enrolment — Enrolment in this program is limited to students with a minimum of 4.0 credits, including the following:

  1. CSC148H5 (see minimum grade note below);
  2. MAT102H5 (see minimum grade note below);
  3. MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5 or MAT137Y5 or MAT157Y5 or MAT233H5;
  4. ISP100H5; and
  5. A cumulative grade point average (CGPA), determined annually. It is never lower than 2.5.
  6. All students must complete 4.0 U of T credits before requesting this program. Courses with a grade of CR/NCR will not count as a part of the 4.0 credits required for program entry.

NOTES:

  1. The minimum grade required in CSC148H5 and MAT102H5 is determined annually. It is never lower than 65%. Only CSC148H5 and MAT102H5, taken at the UTM campus, will be accepted.

  2. Transfer students who have completed any postsecondary studies outside of UTM (including studies at other divisions at the University of Toronto) are not eligible to pursue a Specialist and/ or Major in Computer Science at U of T Mississauga.

  3. Due to the limited enrolment nature of this program, students are strongly advised to develop alternate plans if they need to instead enroll in other programs.

  4. A supplemental application will be required for students applying to the Information Security Specialist program in 2025-2026 for program entry in the 2026-2027 Academic Year. Additional information will be provided in the 2025-2026 Academic Calendar.

The Information Security Specialist is a deregulated fees program and as such, tuition fees for students enrolled in this program are higher than for other regulated fee programs. Fees are charged on a program and not a per course basis. See www.fees.utoronto.ca for more information on the fee structures.

Enrolment in the UTMCIP stream of this program is limited to students who have completed 4.0 credits, including:

  1. CSC148H5 (a final grade of at least 65%)
  2. MAT102H5 (a final grade of at least 65%)
  3. MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5 or MAT134Y5 or MAT135Y5 or MAT137Y5 or MAT157Y5 or MAT233H5
  4. ISP100H5

Courses to take in Year of Study 2: Complete CSC207H5/​ CSC207H1/​ CSCB07H3 by the end of Year of Study 2 to remain eligible for the program.

Students who have achieved a cumulative GPA of at least 2.5 are encouraged to apply. Students must be in good standing with no outstanding academic integrity cases.

Completion Requirements:

12.0-13.5 credits are required.

First Year:

  1. CSC108H5 and CSC148H5 and ISP100H5
  2. MAT102H5
  3. [( MAT132H5 or MAT135H5 or MAT137H5 or MAT157H5) and ( MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5)] or MAT137Y5 or MAT157Y5 or MAT233H5
  4. MAT223H5 or MAT240H5

Second Year:

  1. CSC207H5 and CSC209H5 and CSC236H5 and CSC258H5 and CSC263H5
  2. MAT224H5 or MAT240H5
  3. MAT232H5 or MAT257Y5
  4. STA246H5 or STA256H5 or ECO227Y5

Third Year:

  1. CSC343H5 and CSC347H5 and CSC363H5 and CSC369H5 and CSC373H5
  2. MAT301H5 and MAT302H5

Fourth Year:

  1. CSC358H5 or CSC458H5
  2. 1.0 credit from the following: CSC409H5 or CSC422H5 or CSC423H5 or CSC427H5 or CSC490H5 or CSC495H5

NOTES:

1. In addition to the course requirements above, students must complete an integrative learning experience. This requirement may be met by participating in the UTM Co-op Internship Program (UTMCIP)* or by completing one of the following half-courses: CSC318H5, CSC367H5, CSC375H5, CSC376H5, CSC409H5, CSC420H5, CSC427H5, CSC477H5, CSC490H5.

*Please be advised that the UTMCIP only applies to UTM Computer Science students entering Year of Study 2. For more information about the UTMCIP, please visit the Experiential and International Opportunities page of the UTM Academic Calendar.

2. Students are strongly encouraged to familiarize themselves with the 100-level calculus pre-requisites to select the correct courses.


Note:



ERSPE1038

Computer Science - Major (Science)

Computer Science - Major (Science)

Enrolment Requirements:

Limited Enrolment — Enrolment in this program is limited to students with a minimum of 4.0 credits, including the following:

  1. CSC148H5 (see minimum grade note below)
  2. MAT102H5 (see minimum grade note below)
  3. MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5 or MAT137Y5 or MAT157Y5 or MAT233H5
  4. ISP100H5
  5. A cumulative grade point average (CGPA), determined annually. It is never lower than 2.5.
  6. All students must complete 4.0 U of T credits before requesting this program. Courses with a grade of CR/NCR will not count as a part of the 4.0 credits required for program entry.

NOTES:

  1. The minimum grade required in CSC148H5 and MAT102H5 is determined annually. It is never lower than 60%. Only CSC148H5 and MAT102H5, taken at the UTM campus, will be accepted.

  2. Transfer students who have completed any postsecondary studies outside of UTM (including studies at other divisions at the University of Toronto) are not eligible to pursue a Specialist and/ or Major in Computer Science at U of T Mississauga.

  3. Due to the limited enrolment nature of this program, students are strongly advised to develop alternate plans if they need to instead enroll in other programs.

  4. A supplemental application will be required for students applying to the Computer Science Major program in 2025-2026 for program entry in the 2026-2027 Academic Year. Additional information will be provided in the 2025-2026 Academic Calendar.

The Computer Science Major is a deregulated fees program and as such, tuition fees for students enrolled in this program are higher than for other regulated fee programs. Fees are charged on a program and not a per-course basis. See www.fees.utoronto.ca for more information on the fee structures.

Enrolment in the UTMCIP stream of this program is limited to students who have completed 4.0 credits, including:

  1. CSC148H5 (a final grade of at least 60%)
  2. MAT102H5 (a final grade of at least 60%)
  3. MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5 or MAT134Y5 or MAT135Y5 or MAT137Y5 or MAT157Y5 or MAT233H5
  4. ISP100H5

Courses to take in Year of Study 2: Complete CSC207H5/​ CSC207H1/​ CSCB07H3 by the end of Year of Study 2 to remain eligible for the program.

Students who have achieved a cumulative GPA of at least 2.5 are encouraged to apply. Students must be in good standing with no outstanding academic integrity cases.

Completion Requirements:

7.5-8.5 credits are required.

First Year:

  1. CSC108H5 and CSC148H5 and ISP100H5
  2. MAT102H5
  3. [( MAT132H5 or MAT135H5 or MAT137H5 or MAT157H5) and ( MAT134H5 or MAT136H5 or MAT139H5 or MAT159H5)] or MAT137Y5 or MAT157Y5 or MAT233H5

Second Year:

  1. CSC207H5 and CSC236H5
  2. 1.0 credit from the following CSC209H5 or CSC258H5 or CSC263H5
  3. MAT223H5 or MAT240H5
  4. STA246H5 or STA256H5 or ECO227Y5

Higher Years:

  1. 2.0 credits from any 300/400 level CSC course or GGR335H5 or GGR337H5 or GGR437H5. At least 0.5 credit must come from 400-level courses and at least 0.5 credit must come from CSC369H5 or CSC311H5 or CSC338H5 or CSC347H5 or CSC376H5. No more than 0.5 credit of GGR courses may count to this requirement.

NOTE:

1. In addition to the course requirements above, students must complete an integrative learning experience. This requirement may be met by participating in the UTM Co-op Internship Program (UTMCIP)* or by completing one of the following half-courses: CSC318H5, CSC367H5, CSC375H5, CSC376H5, CSC409H5, CSC420H5, CSC427H5, CSC477H5, CSC490H5.

*Please be advised that the UTMCIP only applies to UTM Computer Science students entering Year of Study 2. For more information about the UTMCIP, please visit the Experiential and International Opportunities page of the UTM Academic Calendar.

2. Students are strongly encouraged to familiarize themselves with the 100-level calculus pre-requisites to select the correct courses.


ERMAJ1688

Computer Science - Minor (Science)

Computer Science - Minor (Science)

Enrolment Requirements:

Limited Enrolment — Enrolment in this program is limited to students with a minimum of 4.0 credits, including the following:

  1. CSC148H5 (see note below)
  2. MAT102H5 (see note below)
  3. All students must complete 4.0 U of T credits before requesting this program. Courses with a grade of CR/NCR will not count as a part of the 4.0 credits required for program entry.

NOTES:

  1. The minimum grade required in CSC148H5 and MAT102H5 is determined annually. Only CSC148H5 and MAT102H5, taken at the UTM campus, will be accepted.
  1. Due to the limited enrolment nature of this program, students are strongly advised to develop alternate plans if they need to instead enroll in other programs

Enrolment in the UTMCIP stream of this program is limited to students who have completed 4.0 credits, including:

  1. CSC108H5 (a final grade of at least 60%)
  2. CSC148H5 (a final grade of at least 60%)
  3. MAT102H5 (a final grade of at least 60%)

Courses to take in Year of Study 2: Complete CSC207H5/​ CSC207H1/​ CSCB07H3 by the end of Year of Study 2 to remain eligible for the program.

Students who have achieved a cumulative GPA of at least 2.5 are encouraged to apply. Students must be in good standing with no outstanding academic integrity cases.

*Please be advised that the UTMCIP only applies to UTM Computer Science students entering Year of Study 2. For more information about the UTMCIP, please visit the Experiential and International Opportunities page of the UTM Academic Calendar.

Completion Requirements:

4.0 credits are required.

First Year: CSC108H5 and CSC148H5 and MAT102H5

Second Year:
1. CSC207H5 and CSC236H5
2. One of CSC209H5 or CSC258H5 or CSC263H5

Third and Fourth Years: 1.0 credit from any 300/400 level CSC course (except for CSC392H5 and CSC393H5 and CSC492H5 and CSC493H5 and any CSC ROP courses) or GGR335H5 or GGR337H5 or GGR437H5. No more than 0.5 credit of GGR courses may count to this requirement.

NOTES:

  1. Students in the CSC minor are limited to 1.5 credits of computer science courses at the 300/ 400-level. Enrolment in additional CSC courses is restricted to students in CSC specialist and major programs.
  2. CSC Minor can take no more than one of CSC392H5 or CSC393H5 or CSC492H5 or CSC493H5 or any CSC ROP courses.

ERMIN1688

Enrolment is restricted in all CSC specialist and major programs. CSC108H5, CSC148H5, MAT102H5 and (MAT132H5,MAT134H5) / (MAT135H5,MAT136H5) / (MAT137H5, MAT139H5) / (MAT157H5, MAT159H5)  are the standard first year courses for students who plan to continue in a Computer Science program.

Notes:

  1. All CSC programs require MAT102H5, (MAT132H5, MAT134H5) / (MAT135H5, MAT136H5) / (MAT137H5, MAT139H5) / (MAT157H5, MAT159H5) and CSC148H5. To take these courses, you must have obtained a minimum of 70% in Grade 12 Advanced Functions (MHF4U) or equivalent, and you must have completed Grade 12 Calculus and Vectors (MCV4U) or equivalent. A minimum of 70% in MCV4U is recommended.
  2. All CS majors and specialists contain a half-credit writing requirement. For students who enter a CS major or specialist in 2021-2022 (or earlier), the recommended course to satisfy this requirement is either CSC290H5 or ISP100H5. Students can also satisfy the writing requirement with any of CCT110H5, ENG100H5, HSC200H5, HSC300H5, LIN204H5, WRI203H5, or WRI173H5. For students who enter a CS major or specialist in 2022-2023 and beyond, ISP100H5 is the required course to satisfy the writing requirement.
  3. Students enrolled in any of the Computer Science programs are strongly encouraged to consider participating in the UTM Co-op Internship Program (UTMCIP). For information, visit the Experiential and International Opportunities page of the UTM Academic Calendar.
  4. Students in any University of Toronto program are limited to to 1.5 credits of third and fourth-year CSC courses. Enrolment in additional CSC courses is restricted to students in CSC specialist and major programs.
  5. CSC courses are offered on all three campuses of the University of Toronto. Some course numbers are unique to a specific campus, and others are shared between campuses. When a course with a common number is offered at U of T Mississauga, students are expected to take the course at the U of T Mississauga, even if that course is offered on a different campus in a different academic term. Due to enrolment pressures, U of T Mississauga students may not always be able to enrol in courses unique to the other campuses.

 

Computer Science Courses

CBJ481Y5 • Independent Project in Bioinformatics

This course is intended for students in the Bioinformatics Specialist degree program. Possible areas in which the research may take place include: functional genomics (e.g., microarray and proteomic data analysis); systems biology; and the development of novel analytical methods for large datasets. Students will be required to produce a written document of their project and present it orally. In order to enrol in this course, students must obtain, several months in advance, approval from a faculty member(s) who will serve as supervisor(s).

Prerequisites: permission of instructor
Corequisites: BIO477H5
Recommended Preparation: CSC343H5 and BIO372H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

CSC104H5 • The Why and How of Computing

A broad introduction to the field of computer science, intended for non-computer scientists. Topics include: history of computing; digital information representations; computer chip logic design; cryptography; social issues in computing; operating systems; problem solving and algorithms; a challenging programming introduction. This is a rigorous course intended to teach computer science, and will not teach the use of any particular software products. A robust understanding of modern computers and their use is assumed.

Exclusions: any CSC course

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC108H5 • Introduction to Computer Programming

Structure of computers; the computing environment. Programming in a language such as Python. Program structure: elementary data types, statements, control flow, functions, classes, objects, methods, fields. List: searching, sorting and complexity.

Prerequisites: Grade 12 Advanced Functions (MHF4U).
Exclusions: CSC108H1 or CSC120H1 or CSCA08H3 or CSCA20H3

Distribution Requirement: Science
Total Instructional Hours: 38L/24P
Mode of Delivery: Online, In Class, Hybrid, Online (Summer only)

CSC148H5 • Introduction to Computer Science

Abstract data types and data structures for implementing them. Linked data structures. Encapsulation and information-hiding. Object-oriented programming. Specifications. Analyzing the efficiency of programs. Recursion. This course assumes programming experience in a language such as Python, C++, or Java, as provided by CSC108H5.

Prerequisites: CSC108H5
Exclusions: CSC148H1 or CSCA48H3 or CSC111H1

Distribution Requirement: Science
Total Instructional Hours: 38L/24P
Mode of Delivery: In Class

CSC199H5 • Computer Science Seminar

Introduction to a topic of current interest in computer science intended for a general audience. Content will vary from year to year.

Prerequisites: permission of instructor

Distribution Requirement: Science
Mode of Delivery: In Class

CSC207H5 • Software Design

An introduction to software design and development concepts, methods, and tools using a statically-typed object-oriented programming language such as Java. Topics from: version control, build management, unit testing, refactoring, object-oriented design and development, design patterns, advanced IDE usage, regular expressions, and reflection. Representation of floating-point numbers and introduction to numerical computation.

Prerequisites: 60% in CSC148H5 (Only CSC148H5 taken at the UTM campus will be accepted.)
Exclusions: CSC207H1 or CSCB07H3

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC209H5 • Software Tools and Systems Programming

Software tools and development in a Unix/Linux environment, using a machine-oriented programming language (typically C). Core topics: software tools (shell utilities and make), processes and program execution, the memory model, system calls, file processing, interprocess communication (pipes and signals), and an introduction to concurrency, including multithreading.

Prerequisites: CSC207H5
Exclusions: CSC209H1 or CSCB09H3

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC236H5 • Introduction to the Theory of Computation

Mathematical induction; correctness proofs for iterative and recursive algorithms; recurrence equations and their solutions (including the "Master Theorem"); introduction to automata and formal languages.

Prerequisites: CSC148H5 and MAT102H5
Exclusions: CSC236H1 or CSC240H1 or CSCB36H3

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC258H5 • Computer Organization

An introduction to computer organization and architecture, using a common CPU architecture. Core topics: data representations and computer arithmetic, processor organization, the memory hierarchy and caching, instruction set and addressing modes, and quantitative performance evaluation of computing systems. Students will program in assembly and will evaluate simulated processor architectures.

Note:
Students wishing to complete CSC385H1 (Microprocessor Systems) should consider enrolling in CSC258H1 and/or to self-study the use of hardware design languages to create digital logic.

Prerequisites: CSC148H5
Exclusions: CSC258H1 or CSCB58H3

Distribution Requirement: Science
Total Instructional Hours: 24L/24P
Mode of Delivery: In Class

CSC263H5 • Data Structures and Analysis

Algorithm analysis: worst-case, average-case, and amortized complexity. Standard abstract data types, such as graphs, dictionaries, priority queues and disjoint sets. A variety of data structures for implementing these abstract data types, such as balanced search trees, hashing, heaps and disjoint forests. Design, implementation and comparison of data structures. Introduction to lower bounds.

Prerequisites: CSC207H5 and CSC236H5 and (STA107H5 or STA246H5 or STA256H5 or STA237H1 or STA238H1 or ECO227Y5 or ECE286H1)
Exclusions: CSC263H1 or CSC265H1 or CSCB63H3

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC290H5 • Communication Skills for Computer Scientists

Targeted instruction and significant practice in the communications required for careers in computer science. The curriculum covers written, oral and interpersonal communication. Students will hand in short pieces of writing each week, will make oral presentations several times in the semester, and will work together in simulated project meetings and other realistic scenarios of pair and small group interaction. This can be used to satisfy the writing requirement in CSC programs.

Prerequisites: CSC148H5
Exclusions: CSC290H1

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC299H5 • Research Opportunity Program

This course provides a richly rewarding opportunity for students in their second year to work in the research project of a professor in return for 299H course credit. Students enrolled have an opportunity to become involved in original research, learn research methods and share in the excitement and discovery of acquiring new knowledge. Participating faculty members post their project descriptions for the following summer and fall/winter sessions in early February and students are invited to apply in early March. See Research Opportunity Program (ROP) for more details.

Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

CSC299Y5 • Research Opportunity Program

This course provides a richly rewarding opportunity for students in their second year to work in the research project of a professor in return for 299Y course credit. Students enrolled have an opportunity to become involved in original research, learn research methods and share in the excitement and discovery of acquiring new knowledge. Participating faculty members post their project descriptions for the following summer and fall/winter sessions in early February and students are invited to apply in early March. See Research Opportunity Program (ROP) for more details.

Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

CSC300H5 • Computers and Society

Privacy and Freedom of Information; recent Canadian legislation and reports. Computers and work; employment levels, quality of working life. Electronic fund transfer systems; transborder data flows. Computers and bureaucratization. Computers in the home; public awareness about computers. Robotics. Professionalism and the ethics of computers. The course is designed not only for science students, but also those in social sciences or humanities.

Prerequisites: Any CSC half-course and CGPA 2.0
Exclusions: CSC300H1 or CSCD03H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC301H5 • Introduction to Software Engineering

An introduction to agile development methods appropriate for medium-sized teams and rapidly-moving projects. Basic software development infrastructure; requirements elicitation and tracking; estimation and prioritization; teamwork skills; basic UML; design patterns and refactoring; security.

Prerequisites: CSC209H5
Exclusions: CSC301H1 or CSCC01H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC309H5 • Programming on the Web

An introduction to software development on the web. Concepts underlying the development of programs that operate on the web; survey of technological alternatives; greater depth on some technologies. Operational concepts of the internet and the web, static client content, dynamic client content, dynamically served content, n-tiered architectures, web development processes, and security on the web. Assignments involve increasingly more complex web-based programs.

Prerequisites: CSC209H5 and CSC263H5
Exclusions: CSC309H1 or CSCC09H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC310H5 • Information Theory

An introduction to reliable and accurate transmission of information. Entropy, lossless and lossy data compression, optimal compression, information channels, channel capacity, error-correcting codes, and digital fountain codes. Course concepts form the basis for practical applications such as ZIP and MP3 compression, channel coding for DSL lines, communication in deep space and to mobile devices, CDs and disk drives, the development of the Internet, as well as linguistics and human perception.

Prerequisites: CSC148H5 and MAT223H5 and (STA246H5 or STA256H5 or ECO227Y5)
Exclusions: CSC310H1

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC311H5 • Introduction to Machine Learning

An introduction to methods for automated learning of relationships on the basis of empirical data. Classification and regression using nearest neighbour methods, decision trees, linear models, and neural networks. Clustering algorithms. Problems of overfitting and of assessing accuracy. Basics of reinforcement learning.

Prerequisites: CSC207H5 and (MAT223H5 or MAT240H5) and MAT232H5 and (STA246H5 or STA256H5)
Exclusions: CSC411H5 or CSC311H1 or CSCC11H3
Recommended Preparation: CSC338H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC318H5 • The Design of Interactive Computational Media

User-centered design of interactive systems. Methodologies, principles, metaphors, task analysis, and other topics. Interdisciplinary design; the role of industrial design and the behavioural sciences. Interactive hardware and software; concepts from computer graphics. Classes of direct manipulation systems, extensible systems, rapid prototyping tools. Additional topics in interactive computational media. Students work on projects in interdisciplinary teams. Enrolment limited, but non-computer scientists welcome. 

Prerequisites: CSC207H5
Exclusions: CSC318H1 or CSCC10H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC322H5 • Introduction to Algebraic Cryptography

(Cross list with MAT302H5) The course will take students on a journey through the methods of algebra and number theory in cryptography, from Euclid to Zero Knowledge Proofs. Topics include: block ciphers and the Advanced Encryption Standard (AES); algebraic and number-theoretic techniques and algorithms in cryptography, including methods for primality testing and factoring large numbers; encryption and digital signature systems based on RSA, factoring, elliptic curves and integer lattices; and zero-knowledge proofs.

Prerequisites: (MAT224H5 or MAT240H5) and MAT301H5
Exclusions: MAT302H5 or MATC16H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 36L/12T
Mode of Delivery: In Class

CSC324H5 • Principles of Programming Languages

Major topics in the development of modern programming languages. Syntax specification, type systems, type inference, exception handling, information hiding, structural recursion, run-time storage management, and programming paradigms. Two non-procedural programming paradigms: functional programming (illustrated by languages such as Lisp, Scheme, ML or Haskell) and logic programming (illustrated by languages such as Prolog, XSB or Coral).

Prerequisites: CSC207H5 and CSC236H5
Exclusions: CSC324H1 or CSCC24H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC333H5 • Forensic Computing

Introduction to the tools and techniques of the digital detective. Electronic discovery of digital data, including field investigation methods of the computer crime scene. Focus on the computer science behind computer forensics, network forensics and data forensics. Forensic topics include: computer structure, data acquisition from storage media, file system analysis, network intrusion detection, electronic evidence, Canadian computer crime case law.

Prerequisites: CSC209H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC338H5 • Numerical Methods

Computational methods for solving numerical problems in science, engineering and business. Linear and non-linear equations, approximation, optimization, interpolation, integration and differentiation. The aim is to give students a basic understanding of floating-point arithmetic and the implementation of algorithms used to solve numerical problems, as well as a familiarity with current numerical computing environments. Course concepts are crucial to a wide range of practical applications such as computational finance and portfolio management, graphics and special effects, data mining and machine learning, as well as robotics, bioinformatics, medical imaging and others.

Prerequisites: CSC148H5 and (MAT134H5 or MAT136H5 or MAT137Y5 or MAT139H5 or MAT157Y5 or MAT159H5 or MAT233H5) and (MAT223H5 or MAT240H5) and (CSC263H5 or 1.0 MAT credit at the 200+ level)
Exclusions: CSC350H5 or CSC336H1 or CSC350H1 or CSC351H1 or CSCC37H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC343H5 • Introduction to Databases

Introduction to database management systems. The relational data model. Relational algebra. Querying and updating databases: the query language SQL. Application programming with SQL. Integrity constraints, normal forms, and database design. Elements of database system technology: query processing, transaction management.

Prerequisites: CSC263H5
Exclusions: CSC343H1 or CSCC43H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC347H5 • Introduction to Information Security

An investigation of many aspects of modern information security. Major topics cover: Techniques to identify and avoid common software development flaws which leave software vulnerable to crackers. Utilizing modern operating systems security features to deploy software in a protected environment. Common threats to networks and networked computers and tools to deal with them. Cryptography and the role it plays in software development, systems security and network security.

Prerequisites: CSC209H5 and CSC236H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC358H5 • Principles of Computer Networks

Introduction to computer networks and systems programming of networks. Basic understanding of computer networks and network protocols. Network hardware and software, routing, addressing, congestion control, reliable data transfer, and socket programming.

Prerequisites: CSC209H5 and CSC258H5 and CSC263H5
Exclusions: CSC358H1 or CSC457H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC363H5 • Computational Complexity and Computability

Introduction to the theory of computability: Turing machines, Church's thesis, computable and non-computable functions, recursive and recursively enumerable sets, reducibility. Introduction to complexity theory: models of computation, P, NP, polynomial time reducibility, NP-completeness, further topics in complexity theory.

Prerequisites: (CSC236H5 or CSC238H5) or MAT202H5
Exclusions: CSCC63H3 or CSC463H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC367H5 • Parallel Programming

Introduction to aspects of parallel programming. Topics include computer instruction execution, instruction-level parallelism, memory system performance, task and data parallelism, parallel models (shared memory, message passing), synchronization, scalability and Amdahl's law, Flynn taxonomy, vector processing and parallel computing architectures.

Prerequisites: CSC209H5 and CSC258H5
Exclusions: CSC367H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC369H5 • Operating Systems

Principles of operating systems. The operating system as a control program and as a resource allocator. Core topics: processes and threads, concurrency (synchronization, mutual exclusion, deadlock), processor, scheduling, memory management, file systems, and protection.

Prerequisites: CSC258H5 and CSC209H5
Exclusions: CSC369H1 or CSCC69H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC373H5 • Algorithm Design and Analysis

Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, network flows, approximation algorithms and others (if time permits). Students will be expected to show good design principles and adequate skills at reasoning about the correctness and complexity of algorithms.

Prerequisites: CSC263H5
Exclusions: CSC373H1 or CSC375H1 or CSCC73H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC375H5 • Algorithmic Intelligence in Robotics

Robots of the future will need to operate autonomously in unstructured and unseen environments. It is imperative that these systems are built on intelligent and adaptive algorithms. This course will introduce fundamental algorithmic approaches for building an intelligent robot system that can autonomously operate in unstructured environments such as homes and warehouses. This course introduces the broad philosophy of “Sense-Plan-Act”, and covers algorithms in each of these areas -- how should the robot perceive the world, how to make long term decisions and how to perform closed-loop control of articulated robots.

Prerequisites: (STA246H5 or STA256H5) and CSC376H5
Recommended Preparation: CSC301H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/24P
Mode of Delivery: In Class

CSC376H5 • Fundamentals of Robotics

An introduction to robotics covering basic methodologies, tools, and concepts to build a foundation for advanced topics in robotics. The course covers robot manipulators; kinematics; motion planning; and control. Topics covered in lecture will be implemented and explored in a practical environment using robots from different application domains.

Prerequisites: (MAT223H5 or MAT240H5) and CSC209H5 and CSC258H5
Recommended Preparation: CSC338H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/24P
Mode of Delivery: In Class

CSC379H5 • Introduction to Medical Robotics

This course examines medical robotics from an application driven perspective. Different categories of medical robots and related application principles for therapeutics are considered, with most examples drawn from surgical robotics. How computer methods assist physicians during their use of robotic treatments for patients is a central focus. These computer-assisted methods include treatment planning, patient registration, human-robot interaction, robot control and task execution. Methods will be implemented and explored in a practical environment including the use of real robots.

Prerequisites: CSC209H5 and CSC376H5
Exclusions: CSC496H5 (Winter 2024)
Recommended Preparation: CSC301H5 and CSC311H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC384H5 • Introduction to Artificial Intelligence

Theories and algorithms that capture (or approximate) some of the core elements of computational intelligence. Topics include: search, logical representations and reasoning, classical automated planning, representing and reasoning with uncertainty, learning, decision making (planning) under uncertainty. Assignments provide practical experience, in both theory and programming, of the core topics.

Prerequisites: CSC263H5 and (STA246H5 or STA256H5 or STA237H1 or STA238H1 or ECO227Y5 or ECE286H1)
Exclusions: CSC384H1 or CSCD84H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC389H5 • Computing Education

Introduction to computing education research (CER) and pedagogical content knowledge. Introduction to learning theories and their application to computing. Foundational and influential CER work. High-impact practices and practical applications to evaluation, assessment, and feedback. This course is writing intensive.

Prerequisites: Permission of the instructor and 1.0 CSC credit at the 200 level
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC392H5 • Computer Science Implementation Project

This course involves a significant implementation project in any area of Computer Science. The project may be undertaken individually or in small groups. The project is offered by arrangement with a Computer Science faculty member.


Note:
Only UTM students may enroll in this course. If you are a student at a different campus, you can work with UTM professors but please enroll in your campus's independent study or project course.

Prerequisites: A minimum of 8.0 credits and Permission of Instructor
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Course Experience: University-Based Experience
Distribution Requirement: Science
Mode of Delivery: In Class

CSC393H5 • Computer Science Expository Work

This course involves a significant literature search and expository work in any area of Computer Science. This work must be undertaken individually. It is offered by arrangement with a Computer Science faculty member.

Note:
Only UTM students may enroll in this course. If you are a student at a different campus, you can work with UTM professors but please enroll in your campus's independent study or project course.

Prerequisites: A minimum of 8.0 credits and Permission of Instructor.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Course Experience: University-Based Experience
Distribution Requirement: Science
Mode of Delivery: In Class

CSC397H5 • Topics in Computer Science

Introduction to a topic of current interest in computer science intended for CSC majors and specialists. Content will vary from year to year. The contact hours for this course may vary in terms of contact type (L, T, P) from year to year, but will be between 24-48 contact hours in total. See the UTM Timetable.

Prerequisites: Appropriate prerequisite requirement(s) will be available on the UTM timetable along with the topic title prior to course registration.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major.

Distribution Requirement: Science
Total Instructional Hours: 24L
Mode of Delivery: In Class

CSC398H5 • Topics in Computer Science

Introduction to a topic of current interest in computer science intended for CSC majors and specialists. Content will vary from year to year. This course may include a practical or tutorial component, depending on the topic chosen for the year. The contact hours for this course may vary in terms of contact type (L, T, P) from year to year, but will be between 24-48 contact hours in total. See the UTM Timetable.

Prerequisites: Appropriate prerequisite requirement(s) will be available on the UTM timetable along with the topic title prior to course registration.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC399H5 • Research Opportunity Program

This course provides a richly rewarding opportunity for students in their third or fourth year to work in the research project of a professor in return for 399H course credit. Students enrolled have an opportunity to become involved in original research, learn research methods and share in the excitement and discovery of acquiring new knowledge. Participating faculty members post their project descriptions for the following summer and fall/winter sessions in early February and students are invited to apply in early March. See Research Opportunity Program (ROP) for more details.

Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

CSC399Y5 • Research Opportunity Program

This course provides a richly rewarding opportunity for students in their third or fourth year to work in the research project of a professor in return for 399Y course credit. Students enrolled have an opportunity to become involved in original research, learn research methods and share in the excitement and discovery of acquiring new knowledge. Participating faculty members post their project descriptions for the following summer and fall/winter sessions in early February and students are invited to apply in early March. See Research Opportunity Program (ROP) for more details.

Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

CSC404H5 • Video Game Design

An introduction to the concepts and techniques for the design and development of electronic games. Topics include: game history, social issues and story elements. The software engineering, artificial intelligence and graphics elements for video games. Level and model design. Audio elements. Real-world aspects of the gaming industry, including the business of game development, design teams and game promotion. Assignments test practical skills in game development, with a team implementation of a complete video game as a course project.

Prerequisites: Two of (CSC301H5 or CSC318H5 or CSC384H5 or CSC418H1)
Exclusions: CSC404H1

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC409H5 • Scalable Computing

We investigate computation in the large -- utilizing many CPUs with large amounts of memory, large storage and massive connectivity -- to solve computationally complex problems involving big data, serving large collections of users, in high availability, global settings. Our investigation covers both theoretical techniques and current, applied tools used to scale applications on the desktop and in the cloud. Topics include caching, load balancing, parallel computing and models of computation, redundancy, failover strategies, use of GPUs, and noSQL databases.

Prerequisites: CSC309H5 and CSC369H5 and CSC373H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC413H5 • Neural Networks and Deep Learning

An introduction to neural networks and deep learning. Backpropagation and automatic differentiation. Architectures: convolutional networks and recurrent neural networks. Methods for improving optimization and generalization. Neural networks for unsupervised and reinforcement learning.

Prerequisites: CSC311H5 or CSC411H5
Exclusions: CSC321H5 or CSC321H1 or CSC413H1 or CSC421H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC415H5 • Introduction to Reinforcement Learning

Reinforcement learning is a powerful paradigm for modeling autonomous and intelligent agents interacting with the environment, and it is relevant to an enormous range of tasks, including robotics, game playing, consumer modeling and healthcare. This course provides an introduction to reinforcement learning intelligence, which focuses on the study and design of agents that interact with a complex, uncertain world to achieve a goal. We will study agents that can make near-optimal decisions in a timely manner with incomplete information and limited computational resources.

The course will cover Markov decision processes, reinforcement learning, planning, and function approximation (online supervised learning). The course will take an information-processing approach to the concept of mind and briefly touch on perspectives from psychology, neuroscience, and philosophy.

Prerequisites: CSC311H5
Exclusions: CSC498H5 (Winter 2021 and Fall 2021)
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC420H5 • Introduction to Image Understanding

This class is an introduction to fundamental concepts in image understanding, the sub-discipline of artificial intelligence that tries to make the computers "see". It will survey a variety of interesting vision problems and techniques. Specifically, the course will cover image formation, features, object and scene recognition and learning, multi-view geometry and video processing. It will also feature recognition with RGB-D data. The goal of the class will be to grasp a number of computer vision problems and understand basic approaches to tackle them for real-world applications.

Prerequisites: CSC263H5 and (CSC338H5 or CGPA 3.5)
Exclusions: CSC420H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: Online, In Class, Hybrid, Online (Summer only)

CSC422H5 • Cryptography and Computational Complexity

A rigorous introduction to the theory of cryptography from the perspective of computational complexity. The relationship of cryptography to the "P=NP" question. As time permits, topics will be chosen from: (i) definitions of different kinds of pseudorandom generators, relationships between them, and ways of constructing them; (ii) secure sessions using shared private key cryptography and public key cryptography; (iii) signature schemes.

Prerequisites: CSC363H5
Recommended Preparation: MAT301H5

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC423H5 • Computer Forensics

Investigation of digital devices that contain evidence, including mobile and handheld devices. Topics include the analysis of memory dumps, event logs, and application caches using existing digital forensic tools as well as the development of new tools to uncover evidence and to work around the use of anti-forensics. Tools and investigations must be clearly documented, so this course contains a significant writing component.

Prerequisites: CSC333H5 and CSC369H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC427H5 • Computer Security

Network attacks and defenses, operating system vulnerabilities, application security (e-mail, Web, databases), viruses, spyware, social engineering attacks, privacy and digital rights management. The course will cover both attack techniques and defense mechanisms.

Prerequisites: CSC347H5 and CSC369H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC428H5 • Human-Computer Interaction

Understanding human behaviour as it applies to user interfaces: work activity analysis, observational techniques, questionnaire administration and unobtrusive measures. Operating parameters of the human cognitive system, task analysis and cognitive modelling techniques and their application to designing interfaces. Interface representations and prototyping tools. Cognitive walkthroughs, usability studies and verbal protocol analysis. Case studies of specific user interfaces.

Prerequisites: CSC318H5 and (STA246H5 or STA256H5 or ECO227Y5)
Exclusions: CSC428H1
Recommended Preparation: A course in PSY and CSC209H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC458H5 • Computer Networks

Computer networks with an emphasis on systems programming of real networks and applications. Computer network architectures, protocol layers, network programming, and performance analysis. Transmission media, encoding systems, switching, multiple access arbitration. Network routing, congestion control, flow control. Transport protocols, real-time, multicast, social networks.

Prerequisites: CSC209H5 and CSC258H5 and CSC263H5
Exclusions: CSC458H1 and CSCD58H3

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC469H5 • Operating Systems Design and Implementation

An in-depth exploration of the major components of operating systems with an emphasis on the techniques, algorithms, and structures used to implement these components in modern systems. Project-based study of process management, scheduling, memory management, file systems, and networking is used to build insight into the intricacies of a large concurrent system.

Prerequisites: CSC369H5
Exclusions: CSC469H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12T
Mode of Delivery: In Class

CSC476H5 • Introduction to Continuum Robotics

An introduction to continuum robots. Topics include continuum robot design; mechanisms and actuation; kinematic modeling; motion planning and control; and sensing. Topics covered in the lecture will be implemented and explored in a practical environment using continuum robots.

Prerequisites: CSC338H5 and CSC376H5 and MAT224H5
Recommended Preparation: CSC384H5 and CSC411H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/24P
Mode of Delivery: In Class

CSC477H5 • Introduction to Mobile Robotics

An introduction to mobile robotic systems from a computational, as opposed to an electromechanical, perspective. Definitional problems in robotics and their solutions both in practice and by the research community. Topics include algorithms, probabilistic reasoning and modeling, optimization, inference mechanisms, and behavior strategies.

Prerequisites: CSC209H5 and (MAT223H5 or MAT240H5) and MAT232H5 and (STA246H5 or STA256H5 or STA237H1 or STA238H1 or ECO227Y5 or ECE286H1) and CSC376H5
Recommended Preparation: CSC384H5 and CSC311H5 and MAT224H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC478H5 • Robotic Perception

This course focuses on perception algorithms for robotics applications and sensors. The aim is to provide an understanding of the challenges encountered when deploying perception algorithms on a robot and introduce some of the tools and algorithms typically used to address these challenges. The algorithms will also be implemented and evaluated using real-world data from common use-cases.

Prerequisites: CSC373H5 and (CSC311H5 or CSC321H5) and CSC376H5
Exclusions: CSC498H5 (Winter 2022)
Recommended Preparation: CSC338H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC479H5 • Advanced Algorithms for Robotics

Enabling safe and interactive robotic autonomy requires broad technical capabilities for perception, decision-making, and control. Building such capabilities involves numerous complex design decisions and algorithmic challenges. Following upon a first exposure to robotics, this course will provide advanced algorithmic and learning based tools for the development and deployment of intelligent robotic systems. It will focus on presenting state estimation, robotic vision, and learning-based planning and control techniques and present these techniques in different robotic application settings.

Prerequisites: CSC311H5 and CSC375H5
Recommended Preparation: CSC376H5 and CSC413H5

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC488H5 • Compilers and Interpreters

Compiler organization, compiler writing tools, use of regular expressions, finite automata and content-free grammars, scanning and parsing, runtime organization, semantic analysis, implementing the runtime model, storage allocation, code generation.

Prerequisites: CSC258H5 and CSC263H5 and CSC324H5
Exclusions: CSC488H1
Recommended Preparation: CSC209H5
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC490H5 • Capstone Design Course

This course gives students experience solving a substantial problem that may span several areas of Computer Science. Students will define the scope of the problem, develop a solution plan, produce a working implementation, and present their work using written, oral and (if suitable) video reports. Class time will focus on the project, but may include some lectures. The class will be small and highly interactive. Topics, themes and required preparation will vary by instructor.

Prerequisites: Appropriate prerequisite requirement(s) will be available on the UTM timetable along with the topic title prior to course registration.
Exclusions: CSC490H1 or CSC491H1
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC492H5 • Computer Science Implementation Project

This course involves a significant implementation project in any area of Computer Science. The project may be undertaken individually or in small groups. The project is offered by arrangement with a Computer Science faculty member.

Note:
Only UTM students may enroll in this course. If you are a student at a different campus, you can work with UTM professors but please enroll in your campus's independent study or project course.

Prerequisites: At least three 300-level CSC half-courses and permission of the department.
Exclusions: CSC494H1 or CSC495H1 or CSCD94H3 or CSCD95H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Course Experience: University-Based Experience
Distribution Requirement: Science
Mode of Delivery: In Class

CSC493H5 • Computer Science Expository Work

This course involves a significant literature search and expository work in any area of Computer Science. This work must be undertaken individually. It is offered by arrangement with a Computer Science faculty member.

Note:
Only UTM students may enroll in this course. If you are a student at a different campus, you can work with UTM professors but please enroll in your campus's independent study or project course.

Prerequisites: At least three 300-level CSC half-courses and permission of the department.
Exclusions: CSC494H1 or CSC495H1 or CSCD94H3 or CSCD95H3
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Course Experience: University-Based Experience
Distribution Requirement: Science
Mode of Delivery: In Class

CSC495H5 • Topics in Information Security

Introduction to a topic of current interest in robotics intended Information Security specialists, CSC majors and specialists. Content will vary from year to year but will always maintain a robotics focus. The contact hours for this course may vary in terms of contact type (L, T, P) from year to year, but will be between 24-48 contact hours in total. See the UTM Timetable.

Prerequisites: CSC347H5. Additional required prerequisite(s) will be available on the UTM timetable along with the topic title prior to course registration.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major.

Distribution Requirement: Science
Total Instructional Hours: 24L
Mode of Delivery: In Class

CSC496H5 • Topics in Robotics

Introduction to a topic of current interest in robotics intended for CSC majors and specialists. Content will vary from year to year but will always maintain a robotics focus. The contact hours for this course may vary in terms of contact type (L, T, P) from year to year, but will be between 24-48 contact hours in total. See the UTM Timetable.

Prerequisites: CSC376H5. Additional required prerequisite(s) will be available on the UTM timetable along with the topic title prior to course registration.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major.

Distribution Requirement: Science
Total Instructional Hours: 24L
Mode of Delivery: In Class

CSC497H5 • Topics in Computer Science

Introduction to a topic of current interest in computer science intended for CSC majors and specialists. Content will vary from year to year. This course may include a practical or tutorial component, depending on the topic chosen for the year. The contact hours for this course may vary in terms of contact type (L, T, P) from year to year, but will be between 24-48 contact hours in total. See the UTM Timetable.

Prerequisites: Appropriate prerequisite requirement(s) will be available on the UTM timetable along with the topic title prior to course registration.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC498H5 • Topics in Computer Science

Introduction to a topic of current interest in computer science intended for CSC majors and specialists. Content will vary from year to year. This course may include a practical or tutorial component, depending on the topic chosen for the year. The contact hours for this course may vary in terms of contact type (L, T, P) from year to year, but will be between 24-48 contact hours in total. See the UTM Timetable.

Prerequisites: Appropriate prerequisite requirement(s) will be available on the UTM timetable along with the topic title prior to course registration.
Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Total Instructional Hours: 24L/12P
Mode of Delivery: In Class

CSC499H5 • Research Opportunity Program

This course provides a richly rewarding opportunity for students in their third or fourth year to work in the research project of a professor in return for 499H course credit. Students enrolled have an opportunity to become involved in original research, learn research methods and share in the excitement and discovery of acquiring new knowledge. Participating faculty members post their project descriptions for the following summer and fall/winter sessions in early February and students are invited to apply in early March. See Research Opportunity Program (ROP) for more details.

Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

CSC499Y5 • Research Opportunity Program

This course provides a richly rewarding opportunity for students in their third or fourth year to work in the research project of a professor in return for 499Y course credit. Students enrolled have an opportunity to become involved in original research, learn research methods and share in the excitement and discovery of acquiring new knowledge. Participating faculty members post their project descriptions for the following summer and fall/winter sessions in early February and students are invited to apply in early March. See Research Opportunity Program (ROP) for more details.


Enrolment Limits: Priority is given to students enrolled in Computer Science Specialist, Information Security Specialist, Bioinformatics Specialist or Computer Science Major programs.

Distribution Requirement: Science
Mode of Delivery: In Class

Printer-friendly Version