CSC104H1 - Computational Thinking
Hours: 24L/12T
Humans have solved problems for millennia on computing devices by representing data as diverse numbers, text, images, sound and genomes, and then transforming the data. A gentle introduction to designing programs (recipes) for systematically solving problems that crop up in diverse domains such as science, literature, and graphics. Social and intellectual issues raised by computing. Algorithms, hardware, software, operating systems, the limits of computation.
Note: you may not take this course concurrently with any Computer Science course, but you may take CSC108H1/ CSC148H1 after CSC104H1.
Exclusion: JCC250H1; Any CSC course except CSC196H1, CSC197H1, CSC199H1, AP, IB, CAPE or GCE Transfer Credits.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC108H1 - Introduction to Computer Programming
Hours: 36L
Programming in a language such as Python. Elementary data types, lists, maps. Program structure: control flow, functions, classes, objects, methods. Algorithms and problem solving. Searching, sorting, and complexity. Unit testing. Floating-point numbers and numerical computation. No prior programming experience required.
NOTE: You may take CSC148H1 after CSC108H1. You may not take CSC108H1 in the same term as, or after taking, any of CSC110Y1/ CSC111H1/ CSC120H1/ CSC148H1.
Exclusion: CSC110Y1, CSC111H1, CSC120H1, CSC121H1, CSC148H1, CSC108H5, CSC148H5, CSCA08H3, CSCA20H3, CSCA48H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC110Y1 - Foundations of Computer Science I
Hours: 72L/24T
An introduction to the field of computer science combining the tools and techniques of programming (using the Python programming language) with rigorous mathematical analysis and reasoning. Topics include: data representations; program control flow (conditionals, loops, exceptions, functions); mathematical logic and formal proof; representation of floating-point numbers and numerical computation; algorithms and running time analysis; software engineering principles (formal specification and design, testing and verification). Prior programming experience is not required to succeed in this course.
This course is restricted to students in the first year Computer Science admission stream, and is only offered in the Fall term. Other students planning to pursue studies in computer science should enrol in CSC108H1, CSC148H1, and CSC165H1/ CSC240H1.
Exclusion: CSC108H1, CSC148H1, CSC165H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC111H1 - Foundations of Computer Science II
Hours: 36L/24T
A continuation of CSC110Y1 to extend principles of programming and mathematical analysis to further topics in computer science.
Topics include: object-oriented programming (design principles, encapsulation, composition and inheritance); binary representation of numbers; recursion and mathematical induction; abstract data types and data structures (stacks, queues, linked lists, trees, graphs); the limitations of computation.
This course is restricted to students in the first year Computer Science admission stream, and is only offered in the Winter term. Other students planning to pursue studies in computer science should enrol in CSC108H1, CSC148H1, and CSC165H1/ CSC240H1.
Prerequisite: CSC110Y1 (70% or higher)Exclusion: CSC108H1, CSC148H1, CSC165H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC148H1 - Introduction to Computer Science
Hours: 36L/24P
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 as provided by CSC108H1. Students who already have this background may consult the Computer Science Undergraduate Office for advice about skipping CSC108H1. Practical (P) sections consist of supervised work in the computing laboratory. These sections are offered when facilities are available, and attendance is required. Note: Students may request to move from CSC148H1 to CSC108H1 after the last day to add classes and before a deadline set by the course instructors, if space is available in CSC108H1 at the time of the request.
Prerequisite: CSC108H1/ (equivalent programming experience)Exclusion: CSC111H1, CSC207H1, CSC148H5, CSC207H5, CSCA48H3, CSCB07H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC165H1 - Mathematical Expression and Reasoning for Computer Science
Hours: 36L/12T
Introduction to abstraction and rigour. Informal introduction to logical notation and reasoning. Understanding, using and developing precise expressions of mathematical ideas, including definitions and theorems. Structuring proofs to improve presentation and comprehension. General problem-solving techniques. Representation of floating-point numbers. Running time analysis of iterative programs. Formal definition of Big-Oh. Diagonalization, the Halting Problem, and some reductions. Unified approaches to programming and theoretical problems.
Corequisite: CSC108H1/ CSC120H1/(equivalent programming experience)Exclusion: CSC111H1, CSC236H1, CSC240H1, MAT102H5, CSC236H5, CSCA67H3, MATA67H3, CSCB36H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC194H1 - Impactful Video Game Design
Previous Course Number: PMU199H1
Hours: 24S
An introduction to the fundamental design and development principles for digital games, and their potential for real-world impact and social betterment. Topics include game design history & social issues, narrative and gameplay elements, human-computer interaction and project management. Strong focus on how design elements affect player engagement and learning. This course requires students to create a game as part of the course, with practical assignments and a final project that reflect industry milestones. No programming is required for this course. Please note that not all CSC first-year seminars will be offered in a given year; please check the Timetable for current offerings. Restricted to first-year students. Not eligible for CR/NCR option.
Breadth Requirements: Creative and Cultural Representations (1)
CSC196H1 - Great Ideas in Computing
Hours: 36L
We will pursue the general (and very debatable) theme of GREAT IDEAS in COMPUTING (including some surprising algorithms). The ambitious goal is to try to identify some of the great ideas that have significantly influenced the field and have helped to make computing so pervasive. We will concentrate on mathematical, algorithmic and software ideas with the understanding that the importance and usefulness of these ideas depends upon (and often parallels) the remarkable ideas and progress in computing and communications hardware. As we will see, many of the great ideas were against the "prevailing opinion". The list of topics we shall discuss will depend to some degree on the background and interests of the class. Please note that not all CSC first-year seminars will be offered in a given year; please check the Timetable for current offerings. Restricted to first-year students. Not eligible for CR/NCR option.
Recommended Preparation: Some knowledge of probability theoryBreadth Requirements: Society and its Institutions (3)
CSC197H1 - Big Data and Privacy
Hours: 24S
The rapid advance of technology has brought remarkable changes to how we conduct our daily lives, from how we communicate, consume news and data, and purchase goods. As we increase our online activity, so too do we increase the amount of personal data that we're sharing, often without realizing it. The questions of exactly what data is being collected, who is collecting and accessing this data, and how this data is being used, have significant implications for both individuals and our larger social and political institutions. Organized by a wide variety of case studies drawn from current events, we'll study how personal data can be collected and tracked, how personal and social factors may influence our own decisions about whether and how much to share our data, and what broader political and legal tools are used to either protect or subvert individual privacy. Please note that not all CSC first-year seminars will be offered in a given year; please check the Timetable for current offerings. Restricted to first-year students. Not eligible for CR/NCR option.
Breadth Requirements: Society and its Institutions (3)
CSC199H1 - Intelligence, Artificial and Human
Hours: 36S
What is human intelligence? How close are we to replicating it? How productive/reductive is the brain-computer analogy? What ethical challenges are posed by AI on workers, society, and the environment? Can we put a hold on "progress"? Is Silicon Valley the seat of a new techno-religion? What can they teach us about today's research priorities? What insight (or inspiration) can we get from works of science fiction about the future of human-AI interaction? Through reading discussion, written assignment, and workshops, this seminar will present students with the opportunity to integrate their computer science interests with philosophy, history, and literature. There is an equivalent course offered by St. Michael’s College. Students may take one or the other but not both. Please note that not all CSC first-year seminars will be offered in a given year; please check the Timetable for current offerings. Restricted to first-year students. Not eligible for CR/NCR option.
Exclusion: SMC199H1 (Intelligence, Artificial and Human)Breadth Requirements: Society and its Institutions (3)
CSC207H1 - Software Design
Hours: 24L/24T
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, unit testing, refactoring, object-oriented design and development, design patterns, advanced IDE usage, regular expressions, and reflection.
Prerequisite: 60% or higher in CSC148H1/ 60% or higher in CSC111H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC209H1 - Software Tools and Systems Programming
Hours: 24L/12T
Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the operating system when programs are executed. Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals, basic network programming.
Prerequisite: CSC207H1/ CSC207H5/ CSCB07H3Exclusion: CSC372H1, CSC369H1, CSC469H1, CSC209H5, CSC369H5, CSC469H5, CSCB09H3, CSCC69H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC236H1 - Introduction to the Theory of Computation
Hours: 24L/12T
The application of logic and proof techniques to Computer Science. Mathematical induction; correctness proofs for iterative and recursive algorithms; recurrence equations and their solutions; introduction to automata and formal languages. This course assumes university-level experience with proof techniques and algorithmic complexity as provided by CSC165H1. Very strong students who already have this experience (e.g. successful completion of MAT157Y1) may consult the undergraduate office about proceeding directly into CSC236H1 or CSC240H1.
Prerequisite: (60% or higher in CSC148H1, 60% or higher in CSC165H1) / (60% or higher in CSC111H1)Exclusion: CSC240H1, CSC236H5, CSCB36H3 Breadth Requirements: The Physical and Mathematical Universes (5)
CSC240H1 - Enriched Introduction to the Theory of Computation
Hours: 24L/12T
The rigorous application of logic and proof techniques to Computer Science. Propositional and predicate logic; mathematical induction and other basic proof techniques; correctness proofs for iterative and recursive algorithms; recurrence equations and their solutions (including the Master Theorem); introduction to automata and formal languages. This course covers the same topics as CSC236H1, together with selected material from CSC165H1, but at a faster pace, in greater depth and with more rigour, and with more challenging assignments. Greater emphasis will be placed on proofs and theoretical analysis. Certain topics briefly mentioned in CSC165H1 or CSC236H1 may be covered in more detail in this course, and some additional topics may also be covered.
Prerequisite: CSC110Y1 (with a minimum mark of at least 70%) / CSC165H1 (with a minimum mark of at least 85%) / students with a strong mathematical background who have not completed CSC110Y1 or CSC165H1 may enrol in CSC240H1 as an enriched alternative to CSC165H1Corequisite: Corequisite: CSC111H1/ CSC148H1; MAT137Y1/ MAT157Y1. MAT135H1 and MAT136H1 do not provide appropriate preparation for CSC240H1. Students with programming experience equivalent to CSC111H1/ CSC148H1 or who have completed math courses equivalent to MAT137Y1/ MAT157Y may apply for a corequisite waiver.Exclusion: CSC236H1, CSC263H1/ CSC265H1, CSC236H5, CSC263H5, CSCB36H3, CSCB63H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC258H1 - Computer Organization
Hours: 36L/36P
Computer structures, machine languages, instruction execution, addressing techniques, and digital representation of data. Computer system organization, memory storage devices, and microprogramming. Block diagram circuit realizations of memory, control and arithmetic functions. There are a number of laboratory periods in which students conduct experiments with digital logic circuits.
Prerequisite: (60% or higher in ( CSC148H1/ CSC148H5/ CSCA48H3), 60% or higher in ( CSC165H1/ CSC240H1/ MAT102H5/ MATA67H3/ CSCA67H3))/ 60% or higher in CSC111H1Exclusion: CSC258H5, CSCB58H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC263H1 - Data Structures and Analysis
Hours: 24L/12T
Algorithm analysis: worst-case, average-case, and amortized complexity. Expected worst-case complexity, randomized quicksort and selection. 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 and comparison of data structures. Introduction to lower bounds.
Prerequisite: CSC236H1/ CSC240H1/ CSC236H5/ CSCB36H3/ APS105H1/ APS106H1/ ESC180H1; STA237H1/ STA247H1/ STA255H1/ STA257H1/ STAB57H3/ STAB52H3/ ECE302H1/ STA286H1/ CHE223H1/ CME263H1/ MIE231H1/ MIE236H1/ MSE238H1/ STA286H1Exclusion: CSC265H1, CSC263H5, CSCB63H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC265H1 - Enriched Data Structures and Analysis
Hours: 24L/12T
This course covers the same topics as CSC263H1, but at a faster pace, in greater depth and with more rigour, and with more challenging assignments. Greater emphasis will be placed on proofs, theoretical analysis, and creative problem-solving. Certain topics briefly mentioned in CSC263H1 may be covered in more detail in this course, and some additional topics may also be covered.
Prerequisite: CSC240H1 (with a minimum mark of 70%)/ ( CSC236H1 (with a minimum mark of 85%), MAT377H1/ STA237H1/ STA247H1/ STA255H1/ STA257H1). Notes: Students who have completed CSC240H1 must enrol in MAT377H1/ STA237H1/ STA247H1/ STA255H1/ STA257H1 concurrently with CSC265H1, if they have not already completed one of those courses. Students who have completed additional 200- or 300-level Mathematics courses may submit a prerequisite waiver request for permission to complete the statistics requirement as a co-requisite or to consider other courses as appropriate preparation for CSC265H1.Exclusion: CSC263H1, CSC263H5, CSCB63H3Breadth Requirements: The Physical and Mathematical Universes (5)
CSC271H1 - Computational Principles and Methods for Data Science
Hours: 24L/12T
Computational tools and methods are a cornerstone of the data scientist's toolbox, useful in a variety of applications and disciplines. This course builds on introductory data science and computer programming skills to equip students with several of these tools and methods. Computational methods for gathering and storing data via web APIs or web scraping or other formats; data pre-processing methods useful in data science algorithms; using version control and other tools to implement reproducible data science workflows; using web tools to communicate data science results and build data science products; creating, distributing, and accessing open-source data science software libraries. This course assumes prerequisite experience in computer programming, but does not require any additional knowledge or prior experience with any of the tools or methods covered.
Prerequisite: CSC108H1/ CSC110Y1/ CSC148H1 Exclusion: CSC207H1/ ECO225H1 Recommended Preparation: EEB125H1/ GGR274H1/ ENG286H1/ STA130H1 Breadth Requirements: The Physical and Mathematical Universes (5)
CSC300H1 - Computers and Society
Hours: 24L/12T
This course offers a concise introduction to ethics in computing, distilled from the ethical and social discussions carried on by today's academic and popular commentators. This course covers a wide range of topics within this area including the philosophical framework for analyzing computer ethics; the impact of computer technology on security, privacy and intellectual property, digital divide, and gender and racial discrimination; the ethical tensions with Artificial Intelligence around future of work and humanity, the emerging role of online social media over voice, inclusion, and democracy; and the environmental consequences of computing.
Prerequisite: 0.5 credit in CSCExclusion: CSC300H5, CSCD03H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: Society and its Institutions (3)
CSC301H1 - Introduction to Software Engineering
Hours: 24L/12T
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 modeling; design patterns and refactoring; discussion of ethical issues, and professional responsibility.
Prerequisite: CSC209H1, CSC263H1/ CSC265H1Exclusion: CSC301H5, CSCC01H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC302H1 - Engineering Large Software Systems
Hours: 24L/12T
An introduction to the theory and practice of large-scale software system design, development, and deployment. Project management; advanced UML; reverse engineering; requirements inspection; verification and validation; software architecture; performance modelling and analysis.
Prerequisite: CSC301H1Exclusion: CSCD01H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC303H1 - Social and Information Networks
Hours: 24L/12T
A course on how networks underlie the social, technological, and natural worlds, with an emphasis on developing intuitions for broadly applicable concepts in network analysis. Topics include: introductions to graph theory, network concepts, and game theory; social networks; information networks; the aggregate behaviour of markets and crowds; network dynamics; information diffusion; popular concepts such as "six degrees of separation," the "friendship paradox," and the "wisdom of crowds."
Prerequisite: CSC263H1/ CSC265H1/ CSC263H5/ CSCB63H3, STA247H1/ STA255H1/ STA257H1/ ECO227Y1/ STA237H1/ STAB52H3/ STAB57H3, MAT223H1/ MAT240H1Exclusion: CSCC46H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC304H1 - Algorithmic Game Theory and Mechanism Design
Hours: 24L/12P
A mathematical and computational introduction to game theory and mechanism design. Analysis of equilibria in games and computation of price of anarchy. Design and analysis mechanisms with monetary transfers (such as auctions). Design and analysis of mechanisms without monetary transfers (such as voting and matching). This course is intended for economics, mathematics, and computer science students.
Prerequisite: STA247H1/ STA255H1/ STA257H1/ STA237H1/ PSY201H1/ ECO227Y1, ( MAT135H1, MAT136H1)/ MAT137Y1/ MAT157Y1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: MAT223H1, CSC373H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC308H1 - Technology Leadership
Hours: 36L
An exploration of the core aspects of leadership within the context of the software-oriented industry and academic research sectors. Topics include corporate mission, vision, and stakeholder roles in the technology sector; strategic planning; competitive technology market analysis; decision-making; a practical awareness of financial documents; contract negotiation; equity and financing in technology business growth; business-to-business (B2B) and business-to-consumer (B2C) software markets; principles of effective communication and influence in a corporate setting; professional development strategies for a software-oriented career; crafting an impactful elevator pitch; understanding of employment rights. The approach ensures that graduates are well-prepared to step into leadership roles and navigate the complexities of the tech industry and of academic research.
Students must be enrolled in the Focus in Technology Leadership to enrol in this course.
Prerequisite: CSC207H1Breadth Requirements: Society and its Institutions (3)
CSC309H1 - Programming on the Web
Hours: 24L/12T
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.
Prerequisite: CSC209H1/ CSC209H5/ CSCB09H3/ ESC180H1/ ESC190H1/ CSC190H1/ (APS105H1, ECE244H1)Exclusion: CSC309H5, CSCC09H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/ 400-level CSC/ ECE courses.Recommended Preparation: CSC343H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC310H1 - Information Theory
Hours: 24L/12T
Measuring information. Entropy, mutual information and their meaning. Probabilistic source models and the source coding theorem. Data compression. Noisy channels and the channel coding theorem. Error correcting codes and their decoding. Applications to inference, learning, data structures and communication complexity.
Prerequisite: 60% or higher in CSC148H1/ 60% or higher in CSC111H1/ ESC190H1, CSC263H1/ CSC265H1/ ECE345H1/ ECE358H1/ MIE245H1, MAT223H1/ MAT240H1/ MAT185H1/ MAT188H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC311H1 - Introduction to Machine Learning
Previous Course Number: CSC411H1
Hours: 24L/12T
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.
Prerequisite: CSC207H1/ APS105H1/ APS106H1/ ESC180H1/ CSC180H1; MAT235Y1/ MAT237Y1/ MAT257Y1/ (minimum of 77% in MAT135H1 and MAT136H1)/ (minimum of 73% in MAT137Y1)/ (minimum of 67% in MAT157Y1)/ MAT291H1/ MAT294H1/ (minimum of 77% in MAT186H1, MAT187H1)/ (minimum of 73% in MAT194H1, MAT195H1)/ (minimum of 73% in ESC194H1, ESC195H1); MAT223H1/ MAT240H1/ MAT185H1/ MAT188H1; STA237H1/ STA247H1/ STA255H1/ STA257H1/ STA286H1/ CHE223H1/ CME263H1/ MIE231H1/ MIE236H1/ MSE238H1/ ECE286H1Exclusion: CSC411H1, STA314H1, ECE421H1, CSC311H5, CSC411H5, CSCC11H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: MAT235Y1/ MAT237Y1/ MAT257Y1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC316H1 - Data Visualization: Foundations and Advanced Programming
Hours: 24L/12T
The amount and complexity of information produced in science, engineering, business, and everyday human activity is increasing at staggering rates. The goal of this course is to expose you to visual representation methods and techniques that increase the understanding of complex data. Good visualizations not only present a visual interpretation of data, but do so by improving comprehension, communication, and decision making.
In this course you will learn how the human visual system processes and perceives images, good design practices for visualization, methods for visualization of data from a variety of fields, and programming of interactive web-based visualizations, using front-end libraries (e.g., D3 or Vega).
Prerequisite: CSC207H1Recommended Preparation: Javascript knowledge helpful, but not requiredBreadth Requirements: The Physical and Mathematical Universes (5)
CSC317H1 - Computer Graphics
Previous Course Number: CSC418H1
Hours: 24L/12T
Identification and characterization of the objects manipulated in computer graphics, the operations possible on these objects, efficient algorithms to perform these operations, and interfaces to transform one type of object to another. Display devices, display data structures and procedures, graphical input, object modelling, transformations, illumination models, primary and secondary light effects; graphics packages and systems. Students, individually or in teams, implement graphical algorithms or entire graphics systems.
Prerequisite: MAT235Y1/ MAT237Y1/ MAT257Y1/ MAT291H1/ MAT292H1/ MAT294H1/ ( MAT232H5/ MAT233H5, MAT236H5)/ ( MATB41H3, MATB42H3); MAT223H1/ MAT240H1/ MAT223H5/ MATA22H3/ MAT185H1/ MAT188H1; CSC209H1/ CSC209H5/ CSCB09H3/ proficiency in C or C++/ APS105H1/ ESC180H1/ CSC180H1Exclusion: CSC418H1, CSCD18H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: MAT244H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC318H1 - The Design of Interactive Computational Media
Hours: 24L/24T
User-centred design of interactive systems; methodologies, principles, and metaphors; task analysis. Interdisciplinary design; the role of graphic design, industrial design, and the behavioural sciences. Interactive hardware and software; concepts from computer graphics. Typography, layout, colour, sound, video, gesture, and usability enhancements. Classes of interactive graphical media; direct manipulation systems, extensible systems, rapid prototyping tools. Students work on projects in interdisciplinary teams.
Prerequisite: Any 0.5 credit in CSC/ ESC180H1/ ESC190H1/ APS105H1/ APS106H1Exclusion: CSC318H5, CSCC10H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC300H1 provides useful background for work in CSC318H1, so if you plan to take CSC300H1 then you should do it before CSC318H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC320H1 - Introduction to Visual Computing
Hours: 24L/12T
A first-principles introduction to the acquisition and computational processing of 2D images, aimed at students interested in computer vision, digital photography and computer graphics. The course serves as a stepping stone for tackling more advanced courses in those subjects and covers four broad themes: (1) mathematical and engineering foundations: introducing key concepts from geometry; multivariate calculus; linear algebra; image and signal processing; and human vision, (2) algorithms for low-level computer vision: image warping, morphing and stitching; image enhancement; image scissoring and inpainting; color image processing and display; face recognition; and 2D image matching, (3) implementing several such tools in Python, and (4) a first taste of vision and graphics research. Understanding how to turn algorithmic descriptions in research papers into working computer vision code—and how to evaluate its performance—will be key skills acquired in the course.
Prerequisite: CSC263H1/ CSC265H1/ ECE345H1/ ECE358H1/ MIE335H1, MAT223H1/ MAT240H1/ MAT185H1/ MAT188H1, ( MAT136H1 with a minimum mark of 77)/ ( MAT137Y1 with a minimum mark of 73)/ ( MAT157Y1 with a minimum mark of 67)/ MAT235Y1/ MAT237Y1/ MAT257Y1/ MAT291H1/ MAT292H1Exclusion: CSC320H5. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: MAT235Y1/ MAT237Y1/ MAT257Y1/ ( MAT232H5, MAT236H5)/ ( MAT233H5, MAT236H5)/ ( MATB41H3, MATB42H3)Breadth Requirements: The Physical and Mathematical Universes (5)
CSC324H1 - Principles of Programming Languages
Hours: 24L/12T
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).
Prerequisite: CSC263H1/ CSC265H1Exclusion: CSC324H5, CSCC24H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC336H1 - Numerical Methods
Hours: 24L/12T
The study of computational methods for solving problems in linear algebra, non-linear equations, and approximation. The aim is to give students a basic understanding of both floating-point arithmetic and the implementation of algorithms used to solve numerical problems, as well as a familiarity with current numerical computing environments.
Prerequisite: CSC148H1/ CSC111H1; MAT133Y1(70%)/ ( MAT135H1, MAT136H1)/ MAT135Y1/ MAT137Y1/ MAT157Y1, MAT223H1/ MAT240H1Exclusion: CSC338H5, CSCC37H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC343H1 - Introduction to Databases
Hours: 36L
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.
Prerequisite: CSC111H1/ CSC165H1/ CSC240H1/ ( MAT135H1, MAT136H1)/ MAT135Y1/ MAT137Y1/ MAT157Y1/ (MAT186H1, MAT187H1)/ ( MAT194H1, MAT195H1)/ (ESC194H1, ESC195H1); CSC207H1/ CSC207H5/ CSCB07H3/ ECE345H1/ ESC190H1Exclusion: CSC343H5, CSCC43H3, MIE253H1. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC367H1 - Parallel Programming
Hours: 24L/12T
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.
Prerequisite: CSC258H1/ CSC258H5/ CSCB58H3; CSC209H1/ CSC209H5/ CSCB09H3Exclusion: CSC367H5. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC368H1 - Computer Architecture
Hours: 24L/12T
An introduction to computer architecture and how to evaluate the performance of workloads running on processor architectures. Topics include statically and dynamically scheduling instructions in a processor pipeline; speculative execution through branch prediction; hardware cache organizations, their policies, and prefetching; multi-core processors, cache coherence, and synchronization primitives. Additional topics may include other relevant architectures, such as GPUs or domain specific accelerators.
Prerequisite: CSC209H1, CSC258H1 Exclusion: ECE552H1. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC369H1 - Operating Systems
Hours: 24L/12T
Principles of operating systems. The operating system as a control program and as a resource allocator. The concept of a process and concurrency problems: synchronization, mutual exclusion, deadlock. Additional topics include memory management, file systems, process scheduling, threads, and protection.
Prerequisite: CSC209H1/ CSC209H5/ CSCB09H3; CSC258H1/ CSC258H5/ CSCB58H3Exclusion: CSC369H5, CSCC69H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC373H1 - Algorithm Design, Analysis & Complexity
Hours: 36L/12T
Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, network flows, approximation algorithms. Brief introduction to NP-completeness: polynomial time reductions, examples of various NP-complete problems, self-reducibility. Additional topics may include approximation and randomized algorithms. Students will be expected to show good design principles and adequate skills at reasoning about the correctness and complexity of algorithms.
Prerequisite: CSC263H1/ CSC265H1 / CSC263H5/ CSCB63H3Exclusion: CSC375H1, CSC373H5, CSCC73H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC384H1 - Introduction to Artificial Intelligence
Hours: 24L/12T
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.
Prerequisite: ( CSC263H1/ CSC265H1/ CSC263H5/ CSCB63H3/ ECE345H1/ ECE358H1/ MIE245H1/ ( CSC148H1, enrolled in ASMAJ1446A, completed at least 9.0 credits), STA220H1/ STA237H1/ STA247H1/ STA255H1/ STA257H1/ STAB57H3/ STAB52H3/ ECE302H1/ STA286H1/ CHE223H1/ CME263H1/ MIE231H1/ MIE236H1/ MSE238H1/ ECE286H1/ PSY201H1)Exclusion: CSC384H5, CSCD84H3, MIE369H1. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC324H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC385H1 - Microprocessor Systems
Hours: 24L/24P
An examination of the issues unique to embedded computing and the Internet of Things (IoT). Software techniques for programming with sensors on lightweight, low-power processors. Topics include embedded processor architectures, interrupts, scheduling for real-time systems, power consumption, and connected device characteristics. Laboratory experiments provide hands-on experience with embedded systems. A refundable deposit of $90 will be charged for the use of discovery board in lab activities.
Prerequisite: CSC258H1, CSC209H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC396Y0 - Designing Systems for Real World Problems
This Summer Abroad special offering provides students with an opportunity to explore new environments, which improves their ability to see their own world with increased sensitivity and germinates new design ideas. In this course, students will identify a real problem in the world and work in groups on projects addressing this problem. Students will explore their problem space and the people within that space, identify needs, constraints, and requirements, and ultimately design solutions. Their designs will be iterated by gathering feedback and conducting usability testing on the early prototypes. The course projects will culminate with development of a technological solution that addresses the identified problem. Final project presentations will take place at the end of the course. This course can be counted as 0.5 credit at the 300-level for Computer Science program completion.
Prerequisite: Any CSC 0.5 credit, and ballotingExclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC401H1 - Natural Language Computing
Hours: 24L/12T
Introduction to techniques involving natural language processing and speech in applications such as information retrieval, speech recognition and synthesis, machine translation, summarization, and dialogue. N-grams, corpus analysis, neural methods, and information theory. Python and other software.
Prerequisite: CSC207H1/ CSC209H1/ CSC207H5/ CSCB07H3/ CSC209H5/ CSCB09H3/ APS105H1/ APS106H1/ ESC180H1/ CSC180H1; STA237H1/ STA247H1/ STA255H1/ STA257H1/ STAB57H3/ STAB52H3/ ECE302H1/ STA286H1/ CHE223H1/ CME263H1/ MIE231H1/ MIE236H1/ MSE238H1/ ECE286H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC311H1, MAT221H1/ MAT223H1/ MAT240H1 is strongly recommendedBreadth Requirements: The Physical and Mathematical Universes (5)
CSC404H1 - Introduction to Video Game Design
Hours: 36L
Concepts and techniques for the design and development of electronic games. History, social issues, and story elements. The business of game development and game promotion. Software engineering, artificial intelligence, and graphics elements. Level and model design. Audio elements. Practical assignments leading to team implementation of a complete game.
Students must submit an application to the course describing relevant interests, experience, and skills and general academic history. Application questions are set and assessed by the instructor. Applications from St. George students enroled in a Computer Science program or the Data Science Specialist program will be considered first. Applications by students from other programs with appropriate prerequisites will be considered as space permits.
Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details. A decision on your application will be confirmed approximately 2-3 weeks after the application deadline, so students should enrol in an alternate course until the results of their application are confirmed.
Prerequisite: CSC301H1/ CSC317H1/ CSC318H1/ CSC384H1/ CSC417H1/ CSC418H1/ CSC419H1Exclusion: CSC404H5. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: Creative and Cultural Representations (1)
CSC410H1 - Software Testing and Verification
Hours: 24L/24T
Concepts and state-of-the-art techniques in quality assessment for software engineering; quality attributes; formal specifications and their analysis; testing, verification, and validation.
Prerequisite: CSC207H1, CSC236H1/ CSC240H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC330H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC412H1 - Probabilistic Learning and Reasoning
Hours: 24L/12T
An introduction to probability as a means of representing and reasoning with uncertain knowledge. Qualitative and quantitative specification of probability distributions using probabilistic graphical models. Algorithms for inference and probabilistic reasoning with graphical models. Statistical approaches and algorithms for learning probability models from empirical data. Applications of these models in artificial intelligence and machine learning.
Prerequisite: CSC311H1/ CSC411H1/ STA314H1/ ECE421H1/ ROB313H1/ CSCC11H3/ CSC311H5Exclusion: STA414H1, STAD68H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC417H1 - Physics-Based Animation
Hours: 24L/12T
This course is designed to introduce students to the field of physics-based animation by exposing them to the underlying mathematical and algorithmic techniques required to understand and develop efficient numerical simulations of physical phenomena such as rigid bodies, deformable bodies and fluids. Topics covered include rigid body simulation, elasticity simulation, cloth simulation, collision detection and resolution and fluid simulation. Along the way, we will explore the underlying mathematics of ordinary differential equations, discrete time integration, finite element methods and more.
Students should have a strong background in Linear Algebra and Multivariate Calculus.
Prerequisite: MAT235Y1/ MAT237Y1/ MAT257Y1/ MAT291H1/ MAT294H1; MAT223H1/ MAT240H1/ MAT185H1/ MAT188H1; CSC209H1/ proficiency in C or C++/ APS105H1/ ESC180H1/ CSC180H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC419H1 - Geometry Processing
Hours: 24L/12T
Extending traditional signal processing, geometry processing interprets three-dimensional curves and surfaces as signals. Just as audio and image signal data can be filtered, denoised and decomposed spectrally, so can the geometry of a three-dimensional curve or surface. The course covers algorithms and mathematics behind fundamental operations for interpreting and manipulating geometric data. These essential tools enable: geometric modeling for computer aided design, life-like animations for computer graphics, reliable physical simulations, and robust scene representations for computer vision. Topics include: discrete curves and surfaces, curvature computation, surface reconstruction from point clouds, surface smoothing and denoising, parameterization, symmetry detection, and animation.
Prerequisite: MAT235Y1/ MAT237Y1/ MAT257Y1/ MAT291H1/ MAT294H1; MAT223H1/ MAT240H1/ MAT185H1/ MAT188H1; CSC209H1/ proficiency in C or C++/ APS105H1/ ESC180H1/ CSC180H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC317H1/ CSC418H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC428H1 - Human-Computer Interaction
Hours: 24L/12T
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.
Prerequisite: CSC318H1; STA237H1/ STA247H1/ STA255H1/ STA257H1/ ECE302H1/ STA286H1/ CHE223H1/ CME263H1/ MIE231H1/ MIE236H1/ MSE238H1/ ECE286H1; CSC207H1/ APS105H1/ ESC180H1/ CSC180H1Exclusion: CSC428H5. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: A course in PSY; ( STA248H1/ STA250H1/ STA261H1)/( PSY201H1, PSY202H1)/( SOC202H1, SOC300H1)Breadth Requirements: The Physical and Mathematical Universes (5)
CSC436H1 - Numerical Algorithms
Hours: 24L/12T
Numerical algorithms for the algebraic eigenvalue problem, approximation, integration, and the solution of ordinary differential equations. Emphasis is on the convergence, stability, and efficiency properties of the algorithms.
Prerequisite: CSC336H1/ CSC350H1Exclusion: CSC351H1, CSCD37H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: MAT235Y1/ MAT237Y1/ MAT257Y1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC438H1 - Computability and Logic
Hours: 24L/12T
Computable functions, Church's thesis, unsolvable problems, recursively enumerable sets. Predicate calculus, including the completeness, compactness, and Lowenheim-Skolem theorems. Formal theories and the Gödel Incompleteness Theorem. Ordinarily offered in years alternating with CSC448H1.
Prerequisite: ( CSC363H1/ CSC463H1)/ CSC365H1/ CSC373H1/ CSC375H1/ MAT247H1Exclusion: MAT309H1; PHL348H1. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC443H1 - Database System Technology
Hours: 24L/12T
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.
Prerequisite: CSC343H1, CSC369H1, CSC373H1/ CSC375H1Exclusion: CSCD43H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC446H1 - Computational Methods for Partial Differential Equations
Hours: 24L/12T
Finite Difference and Finite Element methods for boundary value problems including 2-point boundary value problems and 2-dimensional problems. Convergence of methods. Efficiency of the solution of linear systems. Finite difference methods for initial value problems. Consistency, stability and convergence. Method of lines. Special topics of interest among domain decomposition, multigrid, FFT solvers. Ordinarily offered in years alternating with CSC466H1.
Prerequisite: CSC351H1/ ( CSC336H1 (75%))/ equivalent mathematical background; MAT237Y1/ MAT257Y1; APM346H1/ MAT351Y1/ ( MAT244H1/ MAT267H1 and exposure to PDEs)Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC448H1 - Formal Languages and Automata
Hours: 24L/12T
Regular, deterministic, context free, context sensitive, and recursively enumerable languages via generative grammars and corresponding automata (finite state machines, push down machines, and Turing machines). Topics include complexity bounds for recognition, language decision problems and operations on languages. Ordinarily offered in years alternating with CSC438H1.
Prerequisite: CSC236H1/ CSC240H1, CSC263H1/ CSC265H1Exclusion: CSC448H5. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC373H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC454H1 - The Business of Software
Hours: 24L/12T
Designed and delivered by industry experts in successful commercialization of tech startups, this course focuses on the development of a viable business and startup in partnership and mentorship from industry businesses and entrepreneurs.
The course is designed to be taken by students from any faculty or discipline. It focuses on helping them understand and develop business sense, introduce modern customer development, and teach skills in product development, financial management, marketing, and leadership. Alongside the software engineering abilities of CSC491H1 teammates, skills learned in CSC454H1 will aid the development of a viable startup.
For more details visit our website at https://www.dcsil.ca/student-courses.
Not eligible for CR/NCR option.
Students must submit an application to the course describing relevant interests, experience, and skills and general academic history. On this application, you will indicate whether you wish to be considered for CSC454H1 only, or CSC454H1 and CSC491H1. Application questions are set and assessed by the instructor. Applications from St. George students enrolled in a Computer Science program or the Data Science Specialist program will be considered first. Applications by students from other programs with appropriate prerequisites will be considered as space permits.
Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details. A decision on your application will be confirmed approximately 2-3 weeks after the application deadline, so students should enrol in an alternate course until the results of their application are confirmed.
Prerequisite: 2.5 credits at the 300-level or higherExclusion: CSCD54H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC456H1 - High-Performance Scientific Computing
Hours: 24L/12T
Computationally-intensive applications in science and engineering are implemented on the fastest computers available, today composed of many processors operating in parallel. Parallel computer architectures; implementation of numerical algorithms on parallel architectures; performance evaluation. Topics from: matrix-vector product, solution of linear systems, sparse matrices, iterative methods, domain decomposition, Fourier solvers. For students in computer science, applied mathematics, science, engineering. Ordinarily offered in years alternating with CSC446H1.
Prerequisite: CSC436H1/ ( CSC336H1 (75%))/ equivalent mathematical background; CSC209H1/ proficiency in C, C++, or FortranExclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC457H1 - Principles of Computer Networks
Hours: 24L/12T
The course covers fundamental principles of computer networks, as well as currently used network architectures and protocols. Its emphasis is 1) to explain why reliable data transfer, addressing, routing and congestion control are the fundamental concepts, 2) to explore the design principles behind algorithms/protocols for reliable data transfer, addressing, routing and congestion control and 3) to use current protocols such as TCP/IP, ARQ, Ethernet, CSMA/CD, DNS and Internet routing protocols as examples of concrete implementations/designs of these protocols. It will highlight the trade-offs (and approaches to navigate these trade-offs) in the design of computer network protocols.
Prerequisite: CSC373H1/ CSC373H5/ CSCC73H3, STA247H1/ STA255H1/ STA257H1/ STA237H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC309H1, CSC369H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC458H1 - Computer Networking Systems
Hours: 24L/12T
Computer networks with an emphasis on network systems, network programming, and applications. Networking basics: layering, routing, congestion control, and the global Internet. Network systems design and programming: Internet design, socket programming, and packet switching system fundamentals. Additional topics include network security, multimedia, software-defined networking, peer-to-peer networking, and online social networks.
Prerequisite: CSC209H1, CSC258H1, CSC263H1/ CSC265H1, STA247H1/ STA255H1/ STA257H1/ STA237H1/ ECO227Y1Exclusion: CSC458H5, CSCD58H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC463H1 - Computational Complexity and Computability
Hours: 24L/12T
Introduction to the theory of computability: Turing machines and other models of computation, Church’s thesis, computable and noncomputable functions, recursive and recursively enumerable sets, many-one reductions. Introduction to complexity theory: P, NP, polynomial time reducibility, NP-completeness, self-reducibility, space complexity (L, NL, PSPACE and completeness for those classes), hierarchy theorems, and provably intractable problems.
Prerequisite: CSC236H1/ CSC240H1/ CSC236H5/ CSCB36H3Exclusion: CSC363H1/ CSC363H5/ CSCC63H3/ CSC365H1. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC465H1 - Formal Methods in Software Design
Hours: 24L
Using mathematics to write error-free programs. Proving each refinement; identifying errors as they are made. Program development to meet specifications; modifications that preserve correctness. Useful for all programming; essential for programs that lives depend on. Basic logic, formal specifications, refinement. Conditional, sequential, parallel, interaction, probabilistic programming, and functional programming.
Prerequisite: CSC236H1/ CSC240H1/ MAT309H1/ CSC236H5/ CSCB36H3Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC466H1 - Numerical Methods for Optimization Problems
Hours: 36L
Numerical methods for unconstrained optimization problems, in particular line search methods and trust region methods. Topics include steepest descent, Newton's method, quasi-Newton methods, conjugate gradient methods and techniques for large problems. This course will normally be offered every other year.
Prerequisite: CSC336H1, MAT223H1/ MAT240H1, MAT235Y1/ MAT237Y1/ MAT257Y1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC469H1 - Operating Systems Design and Implementation
Hours: 24L/12T
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.
Prerequisite: CSC369H1Exclusion: CSC469H5. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC473H1 - Advanced Algorithm Design
Hours: 24L/12T
Advanced algorithm design techniques, with emphasis on the role that geometry, approximation, randomization, and parallelism play in modern algorithms. Examples will be drawn from linear programming and basics of continuous optimization; randomized algorithms for string matching, graph problems, and number theory problems; streaming algorithms and parallel algorithms in the Map-Reduce model.
Prerequisite: CSC373H1, MAT223H1/ MAT240H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC485H1 - Computational Linguistics
Hours: 36L
Computational linguistics and the processing of language by computer. Topics include: context-free grammars; chart parsing, statistical parsing; semantics and semantic interpretation; ambiguity resolution techniques; reference resolution. Emphasis on statistical learning methods for lexical, syntactic, and semantic knowledge.
Prerequisite: CSC209H1/ APS105H1/ APS106H1/ ESC180H1/ CSC180H1; STA237H1/ STA247H1/ STA255H1/ STA257H1/ ECE302H1/ STA286H1/ CHE223H1/ CME263H1/ MIE231H1/ MIE236H1/ MSE238H1/ ECE286H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: CSC311H1, CSC324H1/ CSC384H1Breadth Requirements: The Physical and Mathematical Universes (5)
CSC486H1 - Knowledge Representation and Reasoning
Hours: 24L/12T
Representing knowledge symbolically in a form suitable for automated reasoning, and associated reasoning methods. Topics from: first-order logic, entailment, the resolution method, Horn clauses, procedural representations, production systems, description logics, inheritance networks, defaults and probabilities, tractable reasoning, abductive explanation, the representation of action, planning.
Prerequisite: CSC384H1/ CSC384H5/ ROB311H1Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC488H1 - Compilers and Interpreters
Hours: 24L/12T
The structure of compilers, Programming language processing. Scanning based on regular expressions, Parsing using context free grammars, Semantic analysis (type and usage checking), Compiler dictionaries and tables. Runtime organization and storage allocation, code generation, optimization. Use of modern compiler building tools. Course project involves building a complete compiler.
Prerequisite: CSC258H1/ CSC258H5/ CSCB58H3, CSC324H1/ CSC324H5/ CSCC24H3, CSC263H1/ CSC265H1/ CSC263H5/ CSCB63H3Exclusion: CSC488H5, CSCD70H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC490H1 - Capstone Design Project
Hours: 36L
This half-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. Project themes change each year. Contact the Computer Science Undergraduate Office for information about this year’s topic themes, required preparation, and course enrolment procedures. Not eligible for CR/NCR option. A refundable deposit of $90 will be charged for the use of Arduino kit in lab activities.
Students must submit an application to the course describing relevant interests, experience, and skills and general academic history. Application questions are set and assessed by the instructor. Applications from St. George students enrolled in a Computer Science program or the Data Science Specialist program will be considered first. Applications by students from other programs with appropriate prerequisites will be considered as space permits.
Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details. A decision on your application will be confirmed approximately 2-3 weeks after the application deadline, so students should enrol in an alternate course until the results of their application are confirmed.
Prerequisite: 1.5 credits of 300+ level CSC courses.Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC491H1 - Capstone Design Project
Hours: 36L
This course is designed and delivered by industry experts from the Software/Tech fields. Students will work with teammates from CSC454H1 to develop a marketable startup on a selected theme.
The class will be small and highly interactive. You will work to develop working software industry best practices. You are expected to have experience writing software and be able to learn on the go.
For more details, visit our website at https://www.dcsil.ca/student-courses. Not eligible for CR/NCR option.
Students submit a single application for CSC491H1 and CSC454H1, describing relevant interests, experience, and skills and general academic history. Application questions are set and assessed by the instructor. Applications from St. George students enrolled in a Computer Science program or the Data Science Specialist program will be considered first. Applications by students from other programs with appropriate prerequisites will be considered as space permits.
Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details. A decision on your application will be confirmed approximately 2-3 weeks after the application deadline, so students should enrol in an alternate course until the results of their application are confirmed.
Corequisite: CSC454H1/ CSC2527HExclusion: CSCD90H3. NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Recommended Preparation: 2.0 CSC credits at the 300+ level, 0.5 additional credits at the 300+ levelBreadth Requirements: The Physical and Mathematical Universes (5)
CSC494H1 - Computer Science Project
This half-course involves a significant project in any area of Computer Science. The project may be undertaken individually or in small groups. The course is offered by arrangement with a Computer Science faculty member, and is restricted to students in an Arts & Science Computer Science program or Data Science Specialist program. Not eligible for CR/NCR option.
Students must submit an application to the course. Applications request information about students’ planned project and project supervisor. Applications for each term are due no later than the end of the first week of classes in that term.
Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details. A decision on your application will be confirmed approximately 2-3 weeks after the application deadline, so students should enrol in an alternate course until the results of their application are confirmed.
Prerequisite: 1.5 credits of 300+ level CSC courses.Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC494Y1 - Computer Science Project
This course involves a significant multidisciplinary project in an area of Computer Science completed in partnership with another academic unit. Not eligible for CR/NCR option.
Students must submit an application to the course. Application requirements and timelines are set and assessed by the instructor or partnering program. Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details.
Prerequisite: 1.5 credits of 300+ level CSC courses.Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
CSC495H1 - Computer Science Project
This half-course involves a significant project in any area of Computer Science. The project may be undertaken individually or in small groups. The course is offered by arrangement with a Computer Science faculty member, and is restricted to students in an Arts & Science Computer Science program or Data Science Specialist program. Not eligible for CR/NCR option.
Students must submit an application to the course. Applications request information about students’ planned project and project supervisor. Applications for each term are due no later than the end of the first week of classes in that term.
Please visit https://q.utoronto.ca/courses/221753/pages/400-level-course-balloting-and-applications for application deadlines and details. A decision on your application will be confirmed approximately 2-3 weeks after the application deadline, so students should enrol in an alternate course until the results of their application are confirmed.
Prerequisite: CSC494H1. 1.5 credits of 300+ level CSC courses.Exclusion: NOTE: Students not enrolled in the Computer Science Major or Specialist program at A&S, UTM, or UTSC, or the Data Science Specialist at A&S, are limited to a maximum of 1.5 credits in 300-/400-level CSC/ECE courses.Breadth Requirements: The Physical and Mathematical Universes (5)
JCC250H1 - Computing for Science
Previous Course Number: CSC198H1
Hours: 24L/24T
Computational skills for the modern practice of basic and applied science. Applied computer programming with an emphasis on practical examples related to the simulation of matter, drawing from scientific disciplines including chemistry, biology, materials science, and physics. Studio format with a mixture of lecture, guided programming, and open scientific problem solving. Students will be exposed to Python numerical and data analysis libraries. No prior programming experience is required.
Prerequisite: CHM135H1/ CHM136H1/ CHM151Y1, 0.5 credit in MAT (excluding FYF courses)Exclusion: Any CSC course except CSC104H1, CSC196H1, CSC197H1Breadth Requirements: The Physical and Mathematical Universes (5)
JSC270H1 - Data Science I
Hours: 24L/24P
This course is restricted to students in the Data Science Specialist program. Data exploration and preparation; data visualization and presentation; and computing with data will be introduced. Professional skills, such as oral and written communication, and ethical skills for data science will be introduced. Data science workflows will be integrated throughout the course. These topics will be explored through case studies and collaboration with researchers in other fields.
Prerequisite: STA257H1, CSC207H1Corequisite: STA261H1, MAT237Y1/ MAT257Y1, CSC236H1/ CSC240H1Breadth Requirements: The Physical and Mathematical Universes (5)
JSC370H1 - Data Science II
Hours: 24L/24P
This course is restricted to students in the Data Science Specialist program. Students will learn to identify and answer questions through the application of exploratory data analysis, data visualization, statistical methods or machine learning algorithms to complex data. Software development for data science and reproducible workflows. Communication of statistical information at various technical levels, ethical practice of data analysis and software development, and teamwork skills. Topics will be explored through case studies and collaboration with researchers in other fields.
Prerequisite: JSC270H1, STA261H1, MAT237Y1/ MAT257Y1, CSC263H1/ CSC265H1/ CSC263H5/ CSCB63H3, STA302H1, CSC343H1/ CSC343H5/ CSCC43H3Corequisite: STA303H1/ STA305H1Breadth Requirements: The Physical and Mathematical Universes (5)
JSC470H1 - Data Science III
Hours: 24L/24P
This course is restricted to students in the Data Science Specialist program. Research topics and applications of data science methods will be explored through case studies and collaboration with researchers in other fields. Data analysis, visualization, and communication of statistical information at various technical levels, ethical practice of data analysis and software development, and teamwork skills.
Prerequisite: JSC370H1, STA314H1/ CSC411H1/ CSC311H1, STA303H1/ STA305H1Exclusion: STA490Y1Breadth Requirements: The Physical and Mathematical Universes (5)