Course Search

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

CSC309H5 | Program Area: Computer Science

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

CSC310H5 | Program Area: Computer Science

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

CSC311H5 | Program Area: Computer Science

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

CSC318H5 | Program Area: Computer Science

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

CSC322H5 | Program Area: Computer Science

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

CSC324H5 | Program Area: Computer Science

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

CSC333H5 | Program Area: Computer Science

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

CSC338H5 | Program Area: Computer Science

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

CSC343H5 | Program Area: Computer Science

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

CSC347H5 | Program Area: Computer Science

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

CSC358H5 | Program Area: Computer Science

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

CSC363H5 | Program Area: Computer Science

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

CSC367H5 | Program Area: Computer Science

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

CSC369H5 | Program Area: Computer Science

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

CSC373H5 | Program Area: Computer Science

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

CSC375H5 | Program Area: Computer Science

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

CSC376H5 | Program Area: Computer Science

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

CSC379H5 | Program Area: Computer Science

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

CSC384H5 | Program Area: Computer Science

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

CSC389H5 | Program Area: Computer Science

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

CSC392H5 | Program Area: Computer Science

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

CSC393H5 | Program Area: Computer Science

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

CSC397H5 | Program Area: Computer Science

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

CSC398H5 | Program Area: Computer Science

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

CSC399H5 | Program Area: Computer Science

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

CSC399Y5 | Program Area: Computer Science

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

CSC404H5 | Program Area: Computer Science

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

CSC409H5 | Program Area: Computer Science

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

CSC413H5 | Program Area: Computer Science

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

CSC415H5 | Program Area: Computer Science