Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, and possibly others.
Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, and possibly others.
The course introduces the fundamental principles, problems, and techniques involved in the operation of mobile robots and other automated systems. Course topics include: components of automated systems, sensors and sensor management, signal acquisition and noise reduction, principles of robot localization, FSM-based A.I. for planning, fault-tolerance and building fault-tolerant systems, real-time operation and real-time operating systems; and computational considerations such as hardware limitations and code optimization. Ethical considerations in the implementation and deployment of automated systems are discussed. The concepts covered in the course are put in practice via projects developed on a Lego robotic platform.
An introduction to the theory and practice of large-scale software system design, development, and deployment. Project management; advanced UML; requirements engineering; verification and validation; software architecture; performance modeling and analysis; formal methods in software engineering.
The trade-offs between benefits and risks to society of information systems, and related issues in ethics and public policy. Topics will include safety-critical software; invasion of privacy; computer-based crime; the social effects of an always-online life; and professional ethics in the software industry. There will be an emphasis on current events relating to these topics.
The course will cover in detail the principles and algorithms used to generate high-quality, computer generated images for fields as diverse as scientific data visualization, modeling, computer aided design, human computer interaction, special effects, and video games. Topics covered include image formation, cameras and lenses, object models, object manipulation, transformations, illumination, appearance modeling, and advanced rendering via ray-tracing and path-tracing. Throughout the course, students will implement a working rendering engine in a suitable programming language.
The course is meant to expose students to Web3 by covering the technical aspects of blockchain technologies and smart contracts. The course will have three learning outcomes. First, the students will learn how to build blockchains based on different consensus. Secondly, they will learn how to develop decentralized applications using smart contracts. Finally, they will learn about the current challenges of blockchain technologies such as scalability, interoperability and privacy.
This course teaches the basic techniques, methodologies, and ways of thinking underlying the application of data science and machine learning to real-world problems. Students will go through the entire process going from raw data to meaningful conclusions, including data wrangling and cleaning, data analysis and interpretation, data visualization, and the proper reporting of results. Special emphasis will be placed on ethical questions and implications in the use of AI and data. Topics include data pre-processing, web scraping, applying supervised and unsupervised machine learning methods, treating text as data, A/B testing and experimentation, and data visualization.
Public and symmetric key algorithms and their application; key management and certification; authentication protocols; digital signatures and data integrity; secure network and application protocols; application, system and network attacks and defences; intrusion detection and prevention; social engineering attacks; risk assessment and management.
Most mathematical models of real systems cannot be solved analytically and the solution of these models must be approximated by numerical algorithms. The efficiency, accuracy and reliability of numerical algorithms for several classes of models will be considered. In particular, models involving least squares, non-linear equations, optimization, quadrature, and systems of ordinary differential equations will be studied.
Implementation of database management systems. Storage management, indexing, query processing, concurrency control, transaction management. Database systems on parallel and distributed architectures. Modern database applications: data mining, data warehousing, OLAP, data on the web. Object-oriented and object-relational databases.
This course examines high-Tech innovation and entrepreneurship, principles of operation of successful high-tech enterprises, customer identification and validation, product development, business models, lean startup techniques, and financing of high-technology ventures. Students will work in teams to develop their own innovative product idea, and will produce a sound business plan to support their product.
Computer communication network principles and practice. The OSI protocol-layer model; Internet application layer and naming; transport layer and congestion avoidance; network layer and routing; link layer with local area networks, connection-oriented protocols and error detection and recovery; multimedia networking with quality of service and multicasting. Principles in the context of the working-code model implemented in the Internet.
The goal of this course is to examine the design and implementation of a compiler optimized for modern parallel architectures. Students will learn about common optimizations, intermediate representations (IRs), control-flow and dataflow analysis, dependence graphs, instruction scheduling, and register allocation. Advanced topics include static single assignment, memory hierarchy optimizations and parallelization, compiling for multicore machines, memory dependence analysis, automatic vectorization/thread extraction, and predicated/speculative execution.
A topic from computer science, selected by the instructor, will be covered.
The exact topic will typically change from year to year.
A topic from theoretical computer science, selected by the instructor, will be covered.
The exact topic will typically change from year to year.
A study of the theories and algorithms of Artificial Intelligence. Topics include a subset of: search, game playing, logical representations and reasoning, planning, natural language processing, reasoning and decision making with uncertainty, computational perception, robotics, and applications of Artificial Intelligence. Assignments provide practical experience of the core topics.
In this capstone course, students will work in teams to develop a viable product prototype following the methodologies and techniques covered in CSCD54H3. Students will produce written reports, short videos pitching their idea, and a final presentation showcasing their proposed innovation, as it would be pitched to potential investors. The course instructor and TAs will provide close supervision and mentorship throughout the project.
Students will examine an area of interest through reading papers and texts. This course is offered by arrangement with a computer science faculty member. It may be taken in any session, and must be completed by the last day of classes in the session in which it is taken.
A significant project in any area of computer science. The project may be undertaken individually or in small groups. This course is offered by arrangement with a computer science faculty member, at U of T Scarborough or the St. George campus. This course may be taken in any session and the project must be completed by the last day of classes in the session in which it is taken. Students must obtain consent from the Supervisor of Studies before registering for this course.
Same description as CSCD94H3. Normally a student may not take two project half-courses on closely related topics or with the same supervisor.
If an exception is made allowing a second project on a topic closely related to the topic of an earlier project, higher standards will be applied in judging it. We expect that a student with the experience of a first project completed will be able to perform almost at the level of a graduate student.
This highly interactive course for English Language Learners who find Academic English a challenge aims to fast-track the development of critical thinking, reading, writing and oral communication skills. Through emphasizing academic writing and rapid expansion of vocabulary, students will gain practical experience with university-level academic texts and assignment expectations.
Students will develop language, communication and critical thinking skills through an exploration of culture and academic culture(s). Students will use various media in activities and assignments to connect their knowledge and experience with course learning, to foster dynamic academic integration for international students as they develop their English and multi-literacies.
This course uses the mode of advocacy writing to teach the foundational skills necessary for all effective communication. Students will learn to convey their ideas about issues relevant to their communities with attention to structure, voice, evidence, and writing mechanics.
This course will cover basic mathematics concepts such as Arithmetic, Elementary Algebra, Geometry and Trigonometry, Data collection and Interpretation, Sets, and Functions. Students will engage these concepts through a series of activities which require them to solve practical problems based on real life circumstances. The course will also draw on African and Indigenous cultural knowledges and perspectives to connect the study of mathematics to TYP students’ interests and lived experiences.
In this experiential learning course, students apply their discipline-specific academic knowledge as they learn from and engage with communities. Students provide, and gain, unique perspectives and insights as they interact with community partners. Through class discussions, workshops and assignments, students also develop transferable life skills such as interpersonal communication, professionalism and self-reflection that support their learning experiences and help them connect theory and practice.
An interdisciplinary introduction to the study of diaspora, with particular attention to questions of history, globalization, cultural production and the creative imagination. Material will be drawn from Toronto as well as from diasporic communities in other times and places.
A continuation of DTSB01H3. An interdisciplinary introduction to the study of diaspora, with particular attention to questions of history, globalization, cultural production and the creative imagination. Material will be drawn from Toronto as well as from diasporic communities in other times and places.
This course is a gateway to translation. After dealing with essential skills necessary in translation such as logical thinking, reading proficiency, and precision and clarity in writing, it focuses on fundamental aspects of translation at the conceptual, lexical, syntactic, grammatical, and stylistic levels. It also discusses the practical issues encountered by translators. A variety of real-world documents will be used for practice.
From wheat to seafood, Canada’s agri-food exports to China are increasing and Chinese food is popular in Canada. This course explores agri-food, cultures, and translation using materials in Chinese and English. It gives text analysis in translation and hands-on translation experience from English to Chinese and/or from Chinese into English. Students must be able to read and write Chinese and English well.
An introduction to the major concepts and theories of translation and a survey of English/Chinese translation in modern history. It discusses linguistic, cognitive, socio-political, and cultural aspects of translation. Through analysis and application of translation theory, students practice the art of translation and develop awareness of issues that translators face.