All Classes and Descriptions

All Classes and Descriptions

Computer Science classes:

CSCA08: Introduction to Computer Science I

Link to course

A basic introduction to computer science using Python and including learning about control structures, data types, and complexity.

CSCA48: Introduction to Computer Science II

Link to course

A deeper dive into computer science fundamentals using C programming to illustrate data structures, efficiency, recursion, testing, abstract data types, and starts the conversation on OOP and encapsulation.

CSCB36: Introduction to the Theory of Computation

Link to course

Introduces the theories behind computer science, including mathematical logic, mathematical induction, proofs of correctness for algorithms, automata, and more.

CSCB09: Software Tools and System Programming

Link to course

Opens the door to Unix/Linux command line and scripting languages using C and bash. Wrote programs to illustrate pipes and filters, basic network programming, and system processes and calls.

CSC207: Software Design

Link to course

Software design concepts using Java, including unit testing, refactoring, design patterns, regexs, etc. Also has a large group project using Android Studio to create a mobile games app.

CSCB58: Computer Organization

Link to course

Design and operation of computers. This includes boolean logic, memory structure, CPU, assembly languages, and instruction execution. Has regular labs and a group project to create a hardware based game.

CSCB63: Design and Analysis of Data Structures

Link to course

Looks at the design and implemenation of various efficient data structures and abstract types. Dives into amortized complexity, hashing, red-black trees, disjoint sets, and dynamic tables.

CSCC01: Introduction to Software Engineering

Link to course

Carefully and completely studies the practices used in software engineering. This includes hands-on practice using Agile techniques, code reviews, and software architecture.

CSCC10: Human-Computer Interaction

Link to course

Emphasizes methodologies of designing and prototyping user interfaces. Includes a group project for researching and evaluating the created app’s UI over many stages of testing.

CSCC24: Principles of Programming Languages

Link to course

Studies functional programming (e.g. Haskell) to demonstrate definition and analysis in various languages.

CSC336: Numerical Methods

Link to course

Examines numerical methods in computing and algorithm implementation to solve problems with numerical solutions. Gives an understanding of small error causes in computation, non-linear equations, and accuracy in solutions.

CSCC43: Introduction to Databases

Link to course

Introduces relational algebra, normal forms, and database design. Teaches SQL concepts through abstraction before writing queries and highlights how integrity constraints can be efficiently used.

CSCC63: Computability and Computational Complexity

Link to course

Covers computability theory including turing machines, P and NP problems, NP-completeness, and reducability. Teaches students to think abstractly about computability problems and how to solve them.

CSCC73: Algorithm Design and Analysis

Link to course

An in-depth comprehensive dive into techniques for designing and analysing algorithms. Topics covered include divide-and-conquer, dynamic programming (DP), and linear programming.

CSCC69: Operating Systems

Link to course

An extremely hands-on course that builds up the mini operating system, Pintos. Consists of 4 increasingly difficult projects that cover bootstrapping, multithreading, virtual memory, and filesystems respectively.

CSCD01: Engineering Large Software Systems

Link to course

Continues the work of CSCC01 by uncovering the ideas behind designing larger software systems. This course contained a group project which had students work on an open source software. In our case, this was scikit-learn.

CSCD03: Social Impact of Information Technology

Link to course

Taken in the last year of every computer science degree, this course takes a hard look at the technologies that now exist or that may exist in the future and how they impact society. Topics include safety-critical software, privacy, cyber-crime, mental health, and ethics.

CSC410: Software Testing and Verification

Link to course

Jumps between coding languages and methods to prove algorithm correctness, formal specification, validation, and code analysis.

CSCD18: Computer Graphics

Link to course

Details how computer-generated images and videos are created while focusing on ray-tracing, path-tracing, illumination, object manipulation, cameras, and lenses. Builds the ability to create a fully working 3D rendering engine.

CSCD27: Computer and Network Security

Link to course

Explains how computers and networks function and different processes to make them more secure. This course covers hashing, key management, authentication, network attacks and prevention, as well as social engineering attacks and data integrity.

CSCD54: Technology Innovation and Entreprenurship

Link to course

This course is paired with CSCD90 to create an entreprenurial idea and bring it to life. D54 specifically puts a spotlight on business models, startup techniques, and financing.

CSCD84: Artificial Intelligence

Link to course

Theories and algorithms of artificial intelligence through assignments in game playing, decision making with uncertainty, and image recognition. Considers Markov decision processes, neural nets, heuristics, and reinforcement learning.

CSCD90: The Startup Sandbox

Link to course

This course is paired with CSCD54 to create an entreprenurial idea and bring it to life. D90 specifically focuses on creating and selling the product using written reports, pitches, and a showcase of the final product.

Math classes:

CSCA67: Discrete Mathematics

Link to course

Focuses on combinatorics, conditional probability, graph theory, and problem-solving skills. Also has a large focus on proof techniques and format.

MATA31: Calculus I

Link to course

Introduces calculus theories and functions, including differentiability, derivatives, optimization, antiderivatives, continuity, and the applications of each.

MATA37: Calculus II

Link to course

Follows MATA31 above, diving deeper into integral calculus, Riemann sums, Fundamental Theorm of Calulus, integration techniques, and convergence/divergence of a sequence and series.

MATA22: Linear Algebra I

Link to course

A conceptual approach to mathematical proofs, and includes matrix algebra, Euclidean n-spaces, linear systems, eigenvalues and vectors, and various theorems.

MATB24: Linear Algebra II

Link to course

More in-depth from the previous course, introducing inner product spaces, change of basis, and Hermitian matrices. Also includes the least-squares method and an introduction to coding theory.

MATB41: Techniques of Calculus of Several Variables I

Link to course

A look at partial derivatives in 3D and higher dimensions. Talks about Lagrange multiplies, spherical and cylindrical coordinates, and how the chain rule works.

STAA57: Introduction to Data Science

Link to course

An introduction to data science using R. This course introduces visualization, sampling, probability, and computational approaches to using real data.

STAB52: An Introduction to Probability

Link to course

Mathematical models of probability and distribution. Adds a stats background to the computer science and math by talking about the Central Limit Theorem, Weak and Strong Law of Large Numbers, random variables, etc.

Other classes:

PHLA10: Reason and Truth

Link to course

Focuses on issues of rationality and how we know about the world around us. Includes conversations about the existance of a God, the knowability of reality, and studies texts through the history of philosophy.

EESA06: Introduction to Planet Earth

Link to course

Explores the composition, structure, and origin of the Earth and its history from the last 4.5 billion years. Explains the current challenges (like global warming) that the world is facing and how human societies are impacting us now.

LINA01: Introduction to Linguistics

Link to course

Introduces theories and methods in linguistics. Covers semantics, sentence structure, words, and meanings as well as smaller topics relating to other languages.

LINA02: Applications of Linguistics

Link to course

Continues the theories and methods from LINA01 with a closer focus on how language changes. Covers language acquisition, how the brain processes language, and the sociology surrounding it.

LGGA60: Introductory Standard Chinese I

Link to course

An introduction to learning Mandarin, using speech, listening, and reading and writing characters. Starts the path to being able to speak and translate Mandarin.

LGGA61: Introductory Standard Chinese II

Link to course

A further introduction to Mandarin, including speech, listening, reading, and writing characters. Builds on the previous introductory course, LGGA60.

MGTA01: Introduction to Business

Link to course

Organizes theories and ideas about how businesses are run and how they work. Focuses on the planning and creation of businesses and how they nestle within economical systems.

MUS210: Music in Film

Link to course

Provides a window from the watcher’s perspective of how music and film influence each other. This class uses varying themes and decades to show how this changes throughout time.

VPAA10: Introduction to Arts and Media Management

Link to course

Gives an insider view into how media management works and what steps are involved in the management of the arts. Covers not-for-profit, as well as for-profit and enterprise sectors.

Author face

Nyah Way

Computer science specialist and the University of Toronto alumni, now pursuing her full-time career at Google.

Other things I've done: