Need a break? Check out Stuff UofT Professors Say on Zazzle

CSC343H1 Introduction to Databases[24L/12T]

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: CSC165H1/CSC240H1/(MAT135H1, MAT136H1)/MAT135Y1/MAT137Y1/MAT157Y1; CSC207H1. Prerequisite for Engineering students only: ECE345H1/CSC190H1/CSC192H1Exclusion: CSC434H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | T1-3 | D Horton |

R1 | D Horton | ||

| L0201 | T3-5 | R Miller |

R3 | R Miller | ||

| L2001 | T1-3 | |

R1 | |||

| L2003 | T3-5 | |

R3 | |||

| L2501 | T6-8 | |

T8 | |||

| L5101 | T6-8 | R Miller |

T8 | R Miller | ||

S | L0101 | MWF12-1 | D Horton |

| L0201 | MWF2 | D Horton |

| L2001 | MWF12-1 | D Horton |

| L2201 | MWF2 | D Horton |

| L2501 | T6-8 | D Horton |

T8 | D Horton | ||

| L5101 | T6-8 | D Horton |

T8 | D Horton |

CSC358H1 Principles of Computer Networks[24L/12T]

Introduction to computer networks with an emphasis on fundamental principles. Basic understanding of computer networks and network protocols. Topics include network hardware and software, routing, addressing, congestion control, reliable data transfer, performance analysis, local area networks, and TCP/IP.

Prerequisite: CSC209H1, CSC258H1, CSC263H1/CSC265H1, STA247H1/STA255H1/STA257H1/ECO227Y1Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

S | L0101 | M10 | A Chinaei |

T3-5 | A Chinaei | ||

| L0201 | W10 | |

R3-5 |

CSC369H1 Operating Systems[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, CSC258H1Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | MWF2 | B Simion |

| L5101 | T6-8 | B Simion |

T8 | B Simion | ||

S | L0101 | M3 | B Simion |

TR2 | B Simion | ||

| L5101 | R6-8 | B Simion |

R8 | B Simion |

CSC373H1 Algorithm Design, Analysis & Complexity[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/CSC265H1Exclusion: CSC375H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | MWF10 | M Brudno |

R2 | M Brudno | ||

| L5101 | W6-9 | M Brudno |

R6 | M Brudno | ||

S | L0101 | MWF11 | A Jepson |

M4 | A Jepson | ||

| L0201 | MWF3 | A Jepson |

M4 | A Jepson |

CSC384H1 Introduction to Artificial Intelligence[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, STA247H1/STA255H1/STA257H1Recommended Preparation: CSC324H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | T3-5 | |

R4 | |||

| L2001 | T3-5 | |

R4 | |||

S | L0101 | MWF1 | S McIlraith |

| L0201 | MWF3 | S McIlraith |

| L2001 | MWF1 | S McIlraith |

| L2201 | MWF3 | S McIlraith |

CSC385H1 Microprocessor Systems[24L/12T/36P]

Microprocessor and embedded systems: Software techniques for real-time task creation and management. Connected device charachteristics and the hardware and software ramifications. System construction and management. An examination of the issues unique to or particulaly important to embedded computing. Laboratory experiments provide "hands on" experience. An open team project is done in the last few laboratory sessions.

Prerequisite: CSC258H1; CSC209H1/proficiency in CExclusion: CSC372H1, ECE385H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | T3-6 | P Anderson |

W3-5 | P Anderson | ||

F3 | P Anderson |

CSC396Y0 Designing Systems for Real World Problems[TBA]

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 FCE at the 300-level for Computer Science program completion.

Prerequisite: Any CSC half course, and ballotingDistribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

400-level courses

If you are not in our Major or Specialist program, you are limited to three 300-/400-level CSC/ECE half-courses.

**Class Time**

Not Available (Possibly Cancelled)

CSC401H1 Natural Language Computing[24L/12T]

Introduction to techniques involving natural language and speech in applications such as information retrieval, extraction, and filtering; intelligent Web searching; spelling and grammar checking; speech recognition and synthesis; and multi-lingual systems including machine translation. N-grams, POS-tagging, semantic distance metrics, indexing, on-line lexicons and thesauri, markup languages, collections of on-line documents, corpus analysis. PERL and other software.

Prerequisite: CSC207H1/CSC209H1; STA247H1/STA255H1/STA257H1Recommended Preparation: MAT221H1/MAT223H1/MAT240H1 is strongly recommended

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

S | L0101 | MWF10 | |

| L2001 | MWF10 |

CSC404H1 Introduction to Video Game Design[24L/12T]

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.

Prerequisite: CSC301H1/CSC318H1/CSC384H1/CSC418H1Distribution Requirement Status: Science

Breadth Requirement: Creative and Cultural Representations (1)

**Class Time** – Check current enrolment

F | L0101 | T10 | |

R10-12 | |||

S | L0101 | T10 | S Engels |

R10-12 | S Engels |

CSC410H1 Software Testing and Verification[24L/12T]

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/CSC240H1Recommended Preparation: CSC330H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | M2 | M Chechik |

M3-5 | M Chechik | ||

| L0201 | T2 | |

T3-5 |

CSC411H1 Machine Learning and Data Mining[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. Problems with handling large databases. Emphasis on statistical approaches.

Prerequisite: CSC263H1/CSC265H1, MAT(135H1,136H1)/MAT137Y1/MAT137Y1/MAT157Y1, STA247H1/STA255H1/STA257H1Recommended Preparation: CSC336H1/CSC350H1, STA248H1/STA250H1/STA261H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | M11-1 | R Urtasun |

M3 | R Urtasun | ||

| L0201 | W11-1 | R Urtasun |

W3 | R Urtasun | ||

| L0301 | F11-1 | R Zemel |

F3 | R Zemel | ||

| L2001 | M11-1 | |

M3 | |||

| L5101 | R4-6 | |

R6 | |||

S | L0101 | MWF12-1 | M Guerzhoy |

| L2001 | MWF12-1 | |

| L2501 | R6-8 | |

R8 | |||

| L5101 | R6-8 | M Guerzhoy |

R8 | M Guerzhoy |

CSC412H1 Probabilistic Learning and Reasoning[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: CSC411H1Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

S | L0101 | T3-5 | R Zemel |

R1 | R Zemel |

CSC418H1 Computer Graphics[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: CSC336H1/CSC350H1/CSC351H1/CSC363H1/CSC365H1/CSC373H1/CSC375H1/CSC463H1, (MAT135H1, MAT136H1)/MAT135Y1/MAT137Y1/MAT157Y1, CSC209H1/proficiency in C or C++; Prerequisite for Engineering students only: ECE345H1 or ECE352H1Recommended Preparation: MAT237Y1, MAT244H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | M12-1 | |

W12-2 | |||

| L0201 | M12-1 | K Singh |

T12-2 | K Singh | ||

| L2001 | M12-1 | |

W12-2 | |||

| L2201 | M12-1 | |

T12-2 | |||

S | L0101 | M3 | |

W3-5 | |||

| L2001 | M3 | |

W3-5 | |||

| L2501 | T6 | |

T7-9 | |||

| L5101 | T6 | |

T7-9 |

CSC420H1 Introduction to Image Understanding[24L/12P]

Introduction to basic concepts in computer vision. Extraction of image features at multiple scales. Robust estimation of model parameters. Multiview geometry and reconstruction. Image motion estimation and tracking. Object recognition. Topics in scene understanding as time permits.

Prerequisite: CSC263H1/CSC265H1, (MAT135H1, MAT136H1)/MAT135Y1/MAT137Y1/MAT157Y1, MAT221H1/MAT223H1/MAT240H1Recommended Preparation: CSC320H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | TR3 | |

R4 |

CSC428H1 Human-Computer Interaction[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; STA247H1/STA255H1/STA257H1,(STA248H1/STA250H1/STA261H1)/(PSY201H1, PSY202H1)/(SOC202H1, SOC300H1); CSC209H1/proficiency C++ or JavaRecommended Preparation: A course in PSY; CSC209H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L5101 | M6-8 | |

M8 | |||

S | L2501 | M6-8 | |

M8 | |||

| L5101 | M6-8 | |

M8 |

CSC436H1 Numerical Algorithms[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

Recommended Preparation: MAT235Y1/MAT237Y1/MAT257Y1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | M1-3 | C Christara |

R2 | C Christara |

CSC438H1 Computability and Logic[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; PHL344H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | MW4 | S Cook |

F12-1 | S Cook |

CSC443H1 Database System Technology[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/CSC375H1Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L2501 | M6-8 | |

M8 | |||

| L5101 | M6-8 | |

M8 | |||

S | L0101 | MWF2 | |

| L2001 | MWF2 |

CSC446H1 Computational Methods for Partial Differential Equations[24L/12T]

Finite difference methods for hyperbolic and parabolic equations; consistency, convergence, and stability. Finite element methods for 2-point boundary value problems and elliptic equations. Special problems of interest. Ordinarily offered in years alternating with CSC456H1.

Prerequisite: CSC351H1/(CSC336H1 (75%))/equivalent mathematical background; MAT237Y1/MAT257Y1; APM346H1/APM351Y1/(MAT244H1/MAT267H1 and exposure to PDEs)Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

S | L0101 | MWF1 | K Jackson |

CSC448H1 Formal Languages and Automata[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/CSC240H1Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | M10-12 | F Ellen |

T12-1 | F Ellen |

CSC454H1 The Business of Software[24L/12T]

The software and internet industries; principles of operation for successful software enterprises; innovation and entrepreneurship; software business definition and planning; business models, market and product planning; product development, marketing, sales, and support; financial management and financing of high-technology ventures; management, leadership, and partnerships. Students will all write business plans in teams.

Prerequisite: Five CSC half-courses at the 200-level or higherDistribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L5101 | W6-8 | |

W8 | |||

S | L5101 | W6-8 | |

W8 |

CSC456H1 High-Performance Scientific Computing[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 FortranDistribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time**

Not Available (Possibly Cancelled)

CSC458H1 Computer Networking Systems[24L/12T]

Computer networks with an emphasis on network programming and applications. An overview of networking basics: layering, naming, and addressing, packet switching fundamentals, socket programming, protocols, congestion control, routing, network security, wireless networks, multimedia, web 2.0, software-defined networking, and online social networks.

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L0101 | R1-3 | Y Ganjali |

F11 | Y Ganjali | ||

| L0201 | T1-3 | Y Ganjali |

F1 | Y Ganjali | ||

| L5101 | T6-8 | |

T8 |

CSC463H1 Computational Complexity and Computability[24L/12P]

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/CSC240H1Exclusion: CSC363H1/CSCC63H3, CSC365H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

S | L0101 | MWF2 | S Cook |

CSC465H1 Formal Methods in Software Design[24L/12T]

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/MAT309H1Recommended Preparation: CSC463H1

Distribution Requirement Status: Science

Breadth Requirement: The Physical and Mathematical Universes (5)

**Class Time** – Check current enrolment

F | L5101 | R6-9 |