Here you will find the courses that are most applicable to my field of work and degree, organized by program, that I've taken throughout my many years studying at the University of Toronto.
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.
Programming principles common in modern languages; details of commonly used paradigms. The structure and meaning of code. Scope, control flow, datatypes, and parameter passing. Two non-procedural, non-object-oriented programming paradigms: functional programming (illustrated by languages such as Lisp/Scheme, ML or Haskell) and logic programming (typically illustrated in Prolog).
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.
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.
Software tools and development in a zUnix/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.
Mathematical induction; correctness proofs for iterative and recursive algorithms; recurrence equations and their solutions (including the "Master Theorem"); introduction to automata and formal languages.
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. (Agile Scrum)
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.
This course uses economic principles and geographical analysis to help you understand the global economic map of the early 21st century. It aims to show the way in which economic activities are organized within and across countries and how this affects people and communities. Both broad patterns of economic organization and specific case studies will be discussed. Topics covered range from the impact of public policy on regional growth to a case study of the financial services industries. In short, the course attempts to answer the following question about the global economic map: "What is where, and why? and so what?"
This introductory course emphasizes mastering fundamental remote sensing concepts and utilizing remotely sensed data for monitoring land resources and environmental change. Topics include surface-energy interactions, sensor systems, image interpretation, and applications for examining soil, vegetation and water resources. Upon completion of this course, students should have the necessary knowledge and skills to pursue more advanced work in digital image processing and remote sensing applications.
Problem solving using geographic information systems (GIS). Essential distributed computing aspects of GIS are presented. Among topics covered are the use of logic in spatial analysis, line-of-sight analysis, route selection, site selection, and landscape analysis. Hands-on assignments are emphasized.
This course builds on quantitative methods introduced in GGR276, and aims to provide a broad study of advanced statistical methods and their use in a spatial context in physical, social, and environmental sciences. The course covers theories, methods, and applications geared towards helping students develop an understanding of the important theoretical concepts in spatial data analysis, and gain practical experience in application of spatial statistics to a variety of physical, social and environmental problems using advanced statistical software.
The purpose of this course is to familiarize students with the various ways in which remote sensing images have been used for environmental applications among the sectors of government, industry, and academia. A part of the course will be devoted to application projects employing remote sensing and spatial data analysis in natural resources and environmental assessments.
Introduction to models of representation and management of geographical data for scientific analysis. Basic quantitative methods and techniques for geographic data analysis, including collection, manipulation, description and interpretation. Practical exercises using GIS and statistical software packages with examples drawn from both physical and human geography.
Introduction to the study of geographical phenomena using descriptive and inferential statistics. Fundamentals of geographic data and statistical problem solving using non-spatial and spatial descriptive statistics. Decision making using evidence gathered from inferential statistical analysis. Graphical summary, geographic visualization and mapping of analytical results. Application of state of the art software for statistical analysis. Provides background for future studies in geographic information systems and advanced statistical analysis. The course strikes a balance between developing an understanding of core non-spatial and spatial statistical concepts, while demonstrating technical proficiency in the application of software to the study of geographical questions.
This course will cover foundational concepts in mapmaking (cartography) using geographical information systems (GIS). The course will also explore map rendering in the digital and mobile worlds where the power of geography and cartography are leveraged through development of location based services used increasingly in everyday life. Topics covered will include but are not limited to: coordinate systems and map projections, measurement and classification, making maps using GIS, critical appraisal of mapped information. The course will combine lectures with practical sessions where foundational concepts will be applied using GIS and related technologies and software.
An introduction to the interaction of the economic, social and political institutions that determine the quality of life in a particular place. Subjects covered range from economic efficiency and social equity to the location dynamics of value chains. The emphasis of the course is on Canadian examples.
This course will provide the opportunity to develop a practical understanding of the game development cycle. Students will design and develop an original game in support of a specific narrative, set of rules or play mechanics.
This course allows students to explore issues related to user interface, user experience, materiality, gamification and game theory. Board games represent a space to consider social interaction, the use of materials, the role of emotion in design (UX), knowledge sharing and the role gamification plays in influencing behaviour. Students will be exposed to professional and research publications related to design, game theory, user experience and game mechanics.
This course builds upon the concepts introduced in Web Culture and Design and expands upon them to include the theory and practical aspects of creating modern, compliant standards for websites. Its focus is primarily on the design and presentation of websites on the client side. Students will learn how to develop websites for consumption on various platforms including desktop browsers, mobile devices, etc.
A study of theories in communication and meaning with different reference to advertising, advertising messages, and advertising management.
This course will address traditional storytelling and the challenges of interactive narrative. Students will develop a solid understanding of traditional narrative theory as well as experimental approaches to storytelling in literature, theatre and film with relevance to game development.
Technology continues to reshape the physical contours of our built environments as much as it redefines our conceptualization of how we inhabit and interact within them. This course investigates how urban form, space, infrastructure and communication are mediated by new and evolving technologies.
The course will explore how the web has influenced culture and how websites are designed and managed. Topics will include the presentation of text, graphics, audio and video on the web. Design, web server concepts, human communication systems and organizational contexts will be considered in creating web sites using scripting languages and web software tools.
An introduction to the basic concepts and skills of design thinking as an interdisciplinary subject. Emphasizes creative and critical thinking in the design process; provides the student with the theory and operational skills necessary to solve design problems in the realms of symbolic and visual communication, material objects, environments, and organized services and activities.
An overview of videogame theory, best practices, emergent trends and technology, with strong participation by industry professionals. This course features a variety of guest speakers addressing different facets of game design, supported by later discussion and analysis. Students will experience a broad overview of principles in game design that may inspire further development and design activities in related game design courses.
An introduction to foundational theories for studying the relationship between media, technology and society. The course presents technology as a social practice and considers a wide variety of concepts and methods for studying its cultural and political significance.
This course is a survey of research methodologies in the field of communication and media. A central goal of the course is to train students how to critically assess methods commonly used in social science research. Students will also become familiar with how to properly collect and interpret quantitative and qualitative social science research data.
This course will provide a detailed review of copyright, trademark and patent law with a special emphasis on how they apply to digital media. This course will also review the law of contract as it applies to digital industries and investigate the relevant tort law. In addition, other regulatory issues will be discussed such as telecommunications and broadcasting law both from a Canadian and an international perspective.