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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
An introductory survey of the forms and history of world drama from the classical period to the nineteenth century in its performance context. May include later works influenced by historical forms and one or more plays in the Theatre Erindale schedule of production. May include a research performance component. This course is also listed as ENG121H5.
An introductory survey of the forms and history of world drama from the late nineteenth century to the present in its performance context. May include film adaptations and one or more plays in the Theatre Erindale schedule of productions. May include a research performance component. This course is also listed as ENG122H5.
A survey of the history of theatre in Canada, with particular emphasis on developments since the mid-twentieth century.