Course Search

COPC99H3 - Integrating Your Work Term Experience Part II

This course is designed to provide students who have completed 2 work terms or more with tools and strategies to effectively integrate their recent work term experiences into their job search documents as well as practice articulating their new or enhanced skills and experience in an interview setting. Students are provided with opportunities to practice and refine their approach as they job search/compete for another Co-op work term. In class Apply Together sessions and one-on-one appointment consultations with your Work Term Engagement Coordinator will provide you with semester specific market trends, tools and resources to succeed in your job search. Having the experience of job searching and at least 8 months of work term experience, students share, compare, and contrast their individual experiences. There are also online and in person forums for sharing their work term and job search experience with junior Co-op students.

Prerequisite: COPC98H3/(COPD12H3) and completion of at least two work terms; restricted to students in the Arts and Science Co-op programs.
Exclusion: (COPD13H3)
Course Experience: Partnership-Based Experience
Note: Students complete this course each time they are job searching for a work term beyond their second work term.

CRTB01H3 - Introduction to Curating Art

An introduction to the theory, ethics and contexts of art museum/gallery curatorial practice. Emphasis on communication through exploring interpretations and considering ethical practice. Students will learn specialized knowledge, resources, references and methodologies and explore professional and academic responsibilities of art-based curatorial work.

Prerequisite: Any 2.0 credits at A-level
Exclusion: (VPHB72H3), FAH301H5, FAH310H5
Breadth Requirements: Arts, Literature and Language
Note: Restricted to students who have completed the A-level courses in the Major or Specialist programs in Art History, Arts Management, Studio Art, or Media Studies. Priority will be given to students enrolled in the Minor in Curatorial Studies. Additional students will be admitted as space permits.

CRTC72H3 - Art, the Museum, and the Gallery

Art and the settings in which it is seen in cities today. Some mandatory classes to be held in Toronto museums and galleries, giving direct insight into current exhibition practices and their effects on viewer's experiences of art; students must be prepared to attend these classes.
Same as VPHC72H3

Prerequisite: CRTB01H3 and CRTB02H3
Exclusion: VPHC72H3
Breadth Requirements: Arts, Literature and Language
Course Experience: Partnership-Based Experience

CRTC80H3 - Curator as Artist; Artist as Curator

Viewed from an artist’s perspective, this course considers the exhibition as medium, and curating as a creative act. By studying the history of exhibitions organized by artists and artist collectives, this course considers their influence on contemporary curatorial practice with a focus on historical and contemporary Canadian exhibitions.

Prerequisite: CRTB01H3
Breadth Requirements: Arts, Literature and Language
Note: Priority will be given to students enrolled in programs in Curatorial Studies, Art History and Visual Culture, Arts Management, Media Studies, and Studio Art.

CRTD43H3 - Curating Contemporary Art

Curatorial practice and the responsibilities of the curator, such as the intellectual and practical tasks of producing a contemporary art exhibition, researching Canadian contemporary art and artists, building a permanent collection, administrating a public art competition, and critical writing about works of visual art in their various contexts. Studio and/or gallery visits required.

Prerequisite: 11.0 credits including [VPHB39H3 and CRTB01H3 and CRTB02H3]
Exclusion: (VPHD43H3)
Breadth Requirements: Arts, Literature and Language
Course Experience: Partnership-Based Experience

CRTD44H3 - Curating Historical Art

Time and history bring different factors to our understanding and interpretation of artworks. Students will explore both intellectual and practical factors concerning curating historical art, from conservation, research, and handling issues to importance of provenance, collecting, and display, through workshops, critical writing and discussion, field trips, and guest speakers.

Prerequisite: 11.0 credits including [VPHB39H3, CRTB01H3 and CRTB02H3
Exclusion: (VPHD44H3)
Breadth Requirements: Arts, Literature and Language
Course Experience: Partnership-Based Experience

CSCA08H3 - Introduction to Computer Science I

Programming in an object-oriented language such as Python. Program structure: elementary data types, statements, control flow, functions, classes, objects, methods. Lists; searching, sorting and complexity. This course is intended for students having a serious interest in higher level computer science courses, or planning to complete a computer science program.

Prerequisite: Grade 12 Calculus and Vectors and [one other Grade 12 mathematics course or CTL Math Preparedness course with additional resources for CMS students].
Exclusion: CSCA20H3, CSC108H, CSC110H, CSC120H. CSCA08H3 may not be taken after or concurrently with CSCA48H3. CSC110H cannot be taken after or concurrently with CSC111H.
Breadth Requirements: Quantitative Reasoning
Note: This course does not require any prior exposure to computer programming.

CSCA20H3 - Introduction to Programming

An introduction to computer programming, with an emphasis on gaining practical skills. Introduction to programming, software tools, database manipulation. This course is appropriate for students with an interest in programming and computers who do not plan to pursue a Computer Science program.

Exclusion: CSCA08H3, CSC108H, CSC110H, CSC120H. CSC110H cannot be taken after or at the same time as CSC111H.  
Breadth Requirements: Quantitative Reasoning
Note: This course does not require any prior exposure to computer programming.

CSCA48H3 - Introduction to Computer Science II

Abstract data types and data structures for implementing them. Linked data structures. Object Oriented Programming. Encapsulation and information-hiding. Testing. Specifications. Analyzing the efficiency of programs. Recursion.

Prerequisite: CSCA08H3
Exclusion: CSC148H, CSC111H
Breadth Requirements: Quantitative Reasoning

CSCA67H3 - Discrete Mathematics

Introduction to discrete mathematics: Elementary combinatorics; discrete probability including conditional probability and independence; graph theory including trees, planar graphs, searches and traversals, colouring. The course emphasizes topics of relevance to computer science, and exercises problem-solving skills and proof techniques such as well ordering, induction, contradiction, and counterexample.
Same as MATA67H3

Prerequisite: Grade 12 Calculus and Vectors and one other Grade 12 mathematics course
Exclusion: MATA67H3, (CSCA65H3), CSC165H, CSC240H, MAT102H
Recommended Preparation: CSCA08H3 or CSCA20H3
Breadth Requirements: Quantitative Reasoning

CSCB07H3 - Software Design

An introduction to software design and development concepts, methods, and tools, using a statically-typed object-oriented language such as Java. Topics from: version control, build management, unit testing, refactoring, object-oriented design and development, design patterns and advanced IDE usage.

Prerequisite: CSCA48H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC207H
Breadth Requirements: Quantitative Reasoning

CSCB09H3 - Software Tools and Systems Programming

Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the 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: CSCA48H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC209H
Breadth Requirements: Quantitative Reasoning

CSCB20H3 - Introduction to Databases and Web Applications

A practical introduction to databases and Web app development. Databases: terminology and applications; creating, querying and updating databases; the entity-relationship model for database design. Web documents and applications: static and interactive documents; Web servers and dynamic server-generated content; Web application development and interface with databases.

Prerequisite: Some experience with programming in an imperative language such as Python, Java or C.
Exclusion: This course may not be taken after - or concurrently with - any C- or D-level CSC course.
Recommended Preparation: CSCA08H3 or CSCA20H3
Breadth Requirements: Quantitative Reasoning

CSCB36H3 - Introduction to the Theory of Computation

Mathematical induction with emphasis on applications relevant to computer science. Aspects of mathematical logic, correctness proofs for iterative and recursive algorithms, solutions of linear and divide-and-conquer recurrences, introduction to automata and formal languages.

Prerequisite: CSCA48H3 and [(CSCA65H3) or CSCA67H3] and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC236H, CSC240H
Breadth Requirements: Quantitative Reasoning

CSCB58H3 - Computer Organization

Principles of the design and operation of digital computers. Binary data representation and manipulation, Boolean logic, components of computer systems, memory technology, peripherals, structure of a CPU, assembly languages, instruction execution, and addressing techniques. There are a number of laboratory periods in which students conduct experiments with digital logic circuits.

Prerequisite: [CSCA48H3 or PHYB57H3/(PSCB57H3)] and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC258H
Breadth Requirements: Quantitative Reasoning

CSCB63H3 - Design and Analysis of Data Structures

Design, analysis, implementation and comparison of efficient data structures for common abstract data types. Priority queues: heaps and mergeable heaps. Dictionaries: balanced binary search trees, B-trees, hashing. Amortization: data structures for managing dynamic tables and disjoint sets. Data structures for representing graphs. Graph searches.

Prerequisite: CSCB36H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC263H, CSC265H
Breadth Requirements: Quantitative Reasoning

CSCC01H3 - Introduction to Software Engineering

Introduction to software development methodologies with an emphasis on agile development methods appropriate for rapidly-moving projects. Basic software development infrastructure; requirements elicitation and tracking; prototyping; basic project management; basic UML; introduction to software architecture; design patterns; testing.

Prerequisite: CSCB07H3, CSCB09H3, and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC301H, (CSCC40H3), (CSCD08H3)
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCC09H3 - Programming on the Web

An introduction to software development on the web. Concepts underlying the development of programs that operate on the web. Operational concepts of the internet and the web, static and dynamic client content, dynamically served content, n-tiered architectures, web development processes and security on the web.

Prerequisite: CSCB09H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Corequisite: CSCC43H3
Exclusion: CSC309H
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCC10H3 - Human-Computer Interaction

The course will provide an introduction to the field of Human-Computer Interaction (HCI) with emphasis on guidelines, principles, methodologies, and tools and techniques for analyzing, designing and evaluating user interfaces. Subsequent topics include usability assessment of interactive systems, prototyping tools, information search and visualization, mobile devices, social media and social networking, and accessibility factors.

Prerequisite: CSCB07H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CCT380H, CSC318H
Breadth Requirements: Quantitative Reasoning

CSCC11H3 - Introduction to Machine Learning and Data Mining

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 and non-linear models, class-conditional models, neural networks, and Bayesian methods. Clustering algorithms and dimensionality reduction. Model selection. Problems of over-fitting and assessing accuracy. Problems with handling large databases.

Prerequisite: MATB24H3 and MATB41H3 and STAB52H3 and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement].
Exclusion: CSC411H, (CSCD11H3)
Recommended Preparation: CSCC37H3
Breadth Requirements: Quantitative Reasoning

CSCC24H3 - Principles of Programming Languages

Major topics in the design, definition, analysis, and implementation of modern programming languages. Study of programming paradigms: procedural (e.g., C, Java, Python), functional (e.g., Scheme, ML, Haskell) and logic programming (e.g., Prolog, Mercury).

Prerequisite: CSCB07H3 and CSCB09H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC324H
Breadth Requirements: Quantitative Reasoning

CSCC37H3 - Introduction to Numerical Algorithms for Computational Mathematics

An introduction to computational methods for solving problems in linear algebra, non-linear equations, approximation and integration. Floating-point arithmetic; numerical algorithms; application of numerical software packages.

Prerequisite: MATA22H3 and [MATA36H3 or MATA37H3] and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POst for which this specific course is a program requirement]
Exclusion: (CSCC36H3), (CSCC50H3), (CSCC51H3), CSC336H, CSC350H, CSC351H, CSC338H
Breadth Requirements: Quantitative Reasoning

CSCC43H3 - Introduction to Databases

Introduction to database management systems. The relational data model. Relational algebra. Querying and updating databases: the SQL query language. Application programming with SQL. Integrity constraints, normal forms, and database design. Elements of database system technology: query processing, transaction management.

Prerequisite: CSCB09H3 and CSCB63H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC343H
Breadth Requirements: Quantitative Reasoning

CSCC46H3 - Social and Information Networks

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: CSCB63H3 and STAB52H3 and [MATA22H3 or MATA23H3] and [a CGPA of 3.5 or enrolment in a CSC Subject POSt]
Breadth Requirements: Quantitative Reasoning

CSCC63H3 - Computability and Computational Complexity

Introduction to the theory of computability: Turing machines, Church's thesis, computable and non-computable functions, recursive and recursively enumerable sets, reducibility. Introduction to complexity theory: models of computation, P, NP, polynomial time reducibility, NP-completeness, further topics in complexity theory.
Note: Although the courses CSCC63H3 and CSCC73H3 may be taken in any order, it is recommended that CSCC73H3 be taken first.

Prerequisite: CSCB36H3 and CSCB63H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]]
Exclusion: CSC363H, CSC365H, CSC364H
Breadth Requirements: Quantitative Reasoning

CSCC69H3 - Operating Systems

Principles of operating systems. The operating system as a control program and as a resource allocator. The concept of a process and concurrency problem: synchronization, mutual exclusion, deadlock. Additional topics include memory management, file systems, process scheduling, threads, and protection.

Prerequisite: CSCB07H3 and CSCB09H3 and CSCB58H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC369H
Breadth Requirements: Quantitative Reasoning

CSCC73H3 - Algorithm Design and Analysis

Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, and possibly others.

Prerequisite: CSCB63H3 and STAB52H3 and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC373H, CSC375H, CSC364H
Breadth Requirements: Quantitative Reasoning

CSCC85H3 - Fundamentals of Robotics and Automated Systems

The course introduces the fundamental principles, problems, and techniques involved in the operation of mobile robots and other automated systems. Course topics include: components of automated systems, sensors and sensor management, signal acquisition and noise reduction, principles of robot localization, FSM-based A.I. for planning, fault-tolerance and building fault-tolerant systems, real-time operation and real-time operating systems; and computational considerations such as hardware limitations and code optimization. Ethical considerations in the implementation and deployment of automated systems are discussed. The concepts covered in the course are put in practice via projects developed on a Lego robotic platform.

Prerequisite: CSCB58H3 and CSCB09H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: ECE385H
Recommended Preparation: CSCB07H3
Breadth Requirements: Quantitative Reasoning

CSCD01H3 - Engineering Large Software Systems

An introduction to the theory and practice of large-scale software system design, development, and deployment. Project management; advanced UML; requirements engineering; verification and validation; software architecture; performance modeling and analysis; formal methods in software engineering.

Prerequisite: CSCC01H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC302H, (CSCD08H3)
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCD03H3 - Social Impact of Information Technology

The trade-offs between benefits and risks to society of information systems, and related issues in ethics and public policy. Topics will include safety-critical software; invasion of privacy; computer-based crime; the social effects of an always-online life; and professional ethics in the software industry. There will be an emphasis on current events relating to these topics.

Prerequisite: 14.0 credits and enrolment in a Computer Science Subject POSt. Restricted to students in the Specialist/Specialist Co-op programs in Computer Science or in the Specialist/Specialist Co-op programs in Management and Information Technology
Exclusion: CSC300H
Breadth Requirements: Social and Behavioural Sciences
Course Experience: University-Based Experience