quinta-feira, 22 de junho de 2017

University of Toronto - computer science - matriz curricular

  o equivalente - matriz curricular - pesquisa em 22/06/2017 - considerada a 10 melhor de CC/EE
computer science / electrical engineering
 
Enrolment Requirements:
This is a limited enrolment program (Type 2L) that can only accommodate a certain number of students. Eligibility is based on the following criteria:
A. Completion of at least 4.0 FCEs including CSC148H1 (with a minimum grade of 70%) and CSC165H1/​CSC240H1 (with a minimum grade of 70%), AND
B. An average of the grades in CSC148H1/​CSC207H1 and CSC165H1/​CSC236H1/​CSC240H1 that meets the department's annual cutoff. When more than one course has been completed from a list of alternatives, the higher grades will be used. Also, CSC240H1 grades will be adjusted to account for the course's greater difficulty. Finally, note that the cutoff changes from year to year, depending on the current capacity of the program and the pool of applicants. For more information, including historical data, please visit http://web.cs.toronto.edu/program/ugrad/admission.htm.
Note that students admitted to the program after second or third year will be required to pay retroactive program fees.


Completion Requirements:
(12.0 full course equivalents [FCEs], including at least 1.5 FCEs at the 400-level)
First year (2.5 FCEs):
1. (CSC108H1, CSC148H1)/CSC150H1, CSC165H1/​CSC240H1; (MAT135H1, MAT136H1)/MAT137Y1/​MAT157Y1
Second year (3.5 FCEs):
2. CSC207H1, CSC209H1, CSC236H1/​CSC240H1, CSC258H1, CSC263H1/​CSC265H1; MAT221H1/​MAT223H1/​MAT240H1; STA247H1/​STA255H1/​STA257H1
Notes:
1. Students with a strong background in an object-oriented language such as Python, Java or C++ may omit CSC108H1 and proceed directly with CSC148H1. [There is no need to replace the missing half-credit for program completion; however, please base your course choice on what you are ready to take, not on "saving" a half-credit].
2. CSC240H1 is an accelerated and enriched version of CSC165H1 plus CSC236H1, intended for students with a strong mathematical background, or who develop an interest after taking CSC165H1. If you take CSC240H1 without CSC165H1, there is no need to replace the missing half-credit for program completion; but please see Note 1.
3. Consult the Undergraduate Office for advice about choosing among CSC108H1 and CSC148H1, and between CSC165H1 and CSC240H1.
Later years (6.0 FCEs):
3. CSC369H1, CSC373H1/​CSC375H1
4. 5.0 FCEs from the following:
with at most 2.0 FCEs from MAT or STA courses, and at least 1.5 FCEs from 400-level CSC, BCB, or ECE courses.
No more than 1.0 FCE from CSC490H1, CSC491H1, CSC494H1, CSC495H1, BCB430Y1 may be used to fulfill program requirements
The choices in 4 must satisfy the requirement for an integrative, inquiry-based activity by including one of the following half-courses: CSC301H1, CSC318H1, CSC404H1, CSC411H1, CSC418H1, CSC420H1, CSC428H1, CSC454H1, CSC485H1, CSC490H1, CSC491H1, CSC494H1, CSC495H1. This requirement may also be met by participating in the PEY (Professional Experience Year) program.
Preparing for graduate study in Computer Science
Strong students should consider the option of further study in graduate school (where the degrees offered are typically M.Sc. and Ph.D.). If you find yourself frequently receiving marks in the B+ range or better, you should consult with faculty members to learn more about graduate school and whether it would be a good option for you. You will want to ask for advice on your particular interestsand you will find faculty members are happy to talk to youbut there are also some course choices that should be considered by all students thinking of graduate study in Computer Science.
The focuses can help you further refine your areas of interest, but you should not take courses exclusively in one area. You will benefit by having taken an advanced course requiring considerable software development and a theory course.
It will be especially beneficial to have done a project course (CSC494H1/​CSC495H1), a capstone course (CSC490H1/​CSC491H1), and/or a summer research project. It is good if this individual work is in the area where you eventually decide you'd like to do your own research, but that is not essential; what you need most is some experience doing work on your own, under the mentorship of an experienced researcher.
Choosing courses
This program offers considerable freedom to choose courses at the 300-/400-level, and you are free to make those choices on your own. We are eager to offer guidance, however, and both our Undergraduate Office and individual faculty members are a rich source of advice.

 First year

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. No prior programming experience required.
NOTE: You may not take this course concurrently with CSC120H1/CSC148H1, but you may take CSC148H1 after CSC108H1.
Exclusion: 
Distribution Requirements: 
Science
Breadth 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 go to their college to drop down from CSC148H1 to CSC108H1. See above for the drop down deadline.
Prerequisite: 
CSC108H1/​(equivalent programming experience)
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

CSC165H1: Mathematical Expression and Reasoning for Computer Science 

Hours: 
36L/24T
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. 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: 
Exclusion: 
Distribution Requirements: 
Science
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.
NOTE: Students may go to their college to drop down from CSC240H1 to CSC165H1 (or to CSC236H1 if they have already passed CSC165H1). See above for the drop down deadline.
Corequisite: 
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

 

MAT135H1: Calculus 1(A) 

Hours: 
36L/12T
Review of trigonometric functions, trigonometric identities and trigonometric limits. Functions, limits, continuity. Derivatives, rules of differentiation and implicit differentiation, related rates, higher derivatives, logarithms, exponentials. Trigonometric and inverse trigonometric functions, linear approximations. Mean value theorem, graphing, min-max problems, l'Hôpital's rule; anti- derivatives. Examples from life science and physical science applications.
Prerequisite: 
High school level calculus
Exclusion: 
MAT133Y1, MAT136H1, MAT137Y1, MAT157Y1, MATA30H3, MATA31H3, MATA32H3, MATA33H3, MATA35H3, MATA36H3, MATA37H3, MAT133Y5, MAT134Y5, MAT135Y5, MAT137Y5, MAT138Y5, MAT186H, MAT187H, MAT194H, MAT195H, MAT196H & MAT197H
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

MAT136H1: Calculus 1(B) 

Hours: 
36L/12T
Definite Integrals, Fundamental theorem of Calculus, Areas, Averages, Volumes. Techniques: Substitutions, integration by parts, partial fractions, improper integrals. Differential Equations: Solutions and applications. Sequences, Series, Taylor Series. Examples from life science and physical science applications.
Prerequisite: 
Exclusion: 
MAT133Y1, MAT137Y1, MAT157Y1, MATA32H3, MATA33H3, MATA36H3, MATA37H3, MAT133Y5, MAT134Y5, MAT135Y5, MAT137Y5, MAT138Y5, MAT186H, MAT187H, MAT194H, MAT195H, MAT196H & MAT197H
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

MAT137Y1: Calculus 

Hours: 
72L/24T
A conceptual approach for students with a serious interest in mathematics. Attention is given to computational aspects as well as theoretical foundations and problem solving techniques. Review of Trigonometry. Limits and continuity, mean value theorem, inverse function theorem, differentiation, integration, fundamental theorem of calculus, elementary transcendental functions, Taylor's theorem, sequence and series, power series. Applications.
Prerequisite: 
High school level calculus
Exclusion: 
MAT135H1, MAT136H1, MAT157Y1, MATA35H3, MATA36H3, MATA37H3, MAT135Y5, MAT137Y5, MAT138Y5, MAT187H, MAT194H, MAT195H, MAT196H & MAT197H
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

MAT157Y1: Analysis I

 

Hours: 
72L/48T
A theoretical course in calculus; emphasizing proofs and techniques, as well as geometric and physical understanding. Trigonometric identities. Limits and continuity; least upper bounds, intermediate and extreme value theorems. Derivatives, mean value and inverse function theorems. Integrals; fundamental theorem; elementary transcendental functions. Techniques of integration. Taylor's theorem; sequences and series; uniform convergence and power series.
Prerequisite: 
High school level calculus
Exclusion: 
MAT137Y1, MATA37H3, MAT137Y5, MAT195H, & MAT197H
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

Second year

CSC207H1: Software Design 

Hours: 
24L/12T
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. Representation of floating-point numbers and introduction to numerical computation.
Prerequisite: 
60% or higher in CSC148H1
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)
Note: 
Please note: The minimum prerequisite grade in CSC148H1 and CSC165H1/CSC240H1 is lower than the minimum grade for program admission. If you take this course when your grade in CSC148H1 or CSC165H1/CSC240H1 is lower than the requirement for program admission, you will be unable to enrol in a Computer Science program. If you hope to enrol in a Computer Science program in future, please ensure that you satisfy the program admission grade requirements in CSC148H1 and CSC165H1/CSC240H1 before completing any 200-level course.

 

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: 
Exclusion: 
Distribution Requirements: 
Science
Breadth 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
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)
Note: 
Please note: The minimum prerequisite grade in CSC148H1 and CSC165H1/CSC240H1 is lower than the minimum grade for program admission. If you take this course when your grade in CSC148H1 or CSC165H1/CSC240H1 is lower than the requirement for program admission, you will be unable to enrol in a Computer Science program. If you hope to enrol in a Computer Science program in future, please ensure that you satisfy the program admission grade requirements in CSC148H1 and CSC165H1/CSC240H1 before completing any 200-level course.

 

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.
NOTE: Students may go to their college to drop down from CSC240H1 to CSC165H1 (or to CSC236H1 if they have already passed CSC165H1). See above for the drop down deadline.
Corequisite: 
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

CSC258H1: Computer Organization 

Hours: 
24L/12T/13P
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: 
70% or higher in CSC148H1, 70% or higher in CSC165H1/​CSC240H1
Distribution Requirements: 
Science
Breadth 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: 
Exclusion: 
Distribution Requirements: 
Science
Breadth 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. Students without the exact course prerequisites but with a strong mathematical background are encouraged to consult the Department about the possibility of taking this course.
NOTE: Students may go to their college to drop down from CSC265H1 to CSC263H1. See above for the drop down deadline.
Prerequisite: 
CSC240H1 or an A- in CSC236H1
Corequisite: 
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

MAT221H1: Applied Linear Algebra 

Hours: 
36L/12T
An application-oriented approach to linear algebra, based on calculations in standard Euclidean space. Systems of linear equations, matrices, Gauss-Jordan elimination, subspaces, bases, orthogonal vectors and projections. Matrix inverses, kernel and range, rank-nullity theorem. Determinants, eigenvalues and eigenvectors, Cramer's rule, diagonalization. This course has strong emphasis on building computational skills in the area of algebra. Applications to curve fitting, economics, Markov chains and cryptography.
Prerequisite: 
High school level calculus
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

MAT223H1: Linear Algebra I 

Hours: 
36L/12T
Systems of linear equations, matrix algebra, real vector spaces, subspaces, span,linear dependence andindependence, bases, rank, inner products, orthogonality, orthogonal complements, Gram-Schmidt, linear transformations, determinants,Cramer's rule, eigenvalues, eigenvectors, eigenspaces, diagonalization.
Prerequisite: 
High school level calculus
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

STA247H1: Probability with Computer Applications 

Hours: 
36L/24T
A theoretical approach to: vector spaces over arbitrary fields, including C and Z_p. Subspaces, bases and dimension. Linear transformations, matrices, change of basis, similarity, determinants. Polynomials over a field (including unique factorization, resultants). Eigenvalues, eigenvectors, characteristic polynomial, diagonalization. Minimal polynomial, Cayley-Hamilton theorem.
Prerequisite: 
High school level calculus
Corequisite: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

STA255H1: Statistical Theory 

ours: 

36L/12T
Introduction to the theory of probability, with emphasis on applications in computer science. The topics covered include random variables, discrete and continuous probability distributions, expectation and variance, independence, conditional probability, normal, exponential, binomial, and Poisson distributions, the central limit theorem, sampling distributions, estimation and testing, applications to the analysis of algorithms, and simulating systems such as queues (Note: STA247H1does not count as a distribution requirement course).
Prerequisite: 
Exclusion: 
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

STA257H1: Probability and Statistics I 

Hours: 
36L/12T
This courses deals with the mathematical aspects of some of the topics discussed in STA250H1. Topics include discrete and continuous probability distributions, conditional probability, expectation, sampling distributions, estimation and testing, the linear model (Note: STA255H1 does not count as a distribution requirement course).
Prerequisite: 
STA220H1/​ STA221H1/​ ECO220Y1 (note: ECO220Y1 may be taken as a co-requisite), MAT133Y1(70%)/ (MAT135H1,MAT136H1)/ MAT137Y1/​MAT157Y1
Exclusion: 
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

 

 

Notes:
1. Students with a strong background in an object-oriented language such as Python, Java or C++ may omit CSC108H1 and proceed directly with CSC148H1. [There is no need to replace the missing half-credit for program completion; however, please base your course choice on what you are ready to take, not on "saving" a half-credit].
2. CSC240H1 is an accelerated and enriched version of CSC165H1 plus CSC236H1, intended for students with a strong mathematical background, or who develop an interest after taking CSC165H1. If you take CSC240H1 without CSC165H1, there is no need to replace the missing half-credit for program completion; but please see Note 1.
3. Consult the Undergraduate Office for advice about choosing among CSC108H1 and CSC148H1, and between CSC165H1 and CSC240H1.
Later years (6.0 FCEs):
3. CSC369H1, CSC373H1/​CSC375H1
4. 5.0 FCEs from the following:
with at most 2.0 FCEs from MAT or STA courses, and at least 1.5 FCEs from 400-level CSC, BCB, or ECE courses.
No more than 1.0 FCE from CSC490H1, CSC491H1, CSC494H1, CSC495H1, BCB430Y1 may be used to fulfill program requirements
The choices in 4 must satisfy the requirement for an integrative, inquiry-based activity by including one of the following half-courses: CSC301H1, CSC318H1, CSC404H1, CSC411H1, CSC418H1, CSC420H1, CSC428H1, CSC454H1, CSC485H1, CSC490H1, CSC491H1, CSC494H1, CSC495H1. This requirement may also be met by participating in the PEY (Professional Experience Year) program.
Preparing for graduate study in Computer Science
Strong students should consider the option of further study in graduate school (where the degrees offered are typically M.Sc. and Ph.D.). If you find yourself frequently receiving marks in the B+ range or better, you should consult with faculty members to learn more about graduate school and whether it would be a good option for you. You will want to ask for advice on your particular interestsand you will find faculty members are happy to talk to youbut there are also some course choices that should be considered by all students thinking of graduate study in Computer Science.
The focuses can help you further refine your areas of interest, but you should not take courses exclusively in one area. You will benefit by having taken an advanced course requiring considerable software development and a theory course.
It will be especially beneficial to have done a project course (CSC494H1/​CSC495H1), a capstone course (CSC490H1/​CSC491H1), and/or a summer research project. It is good if this individual work is in the area where you eventually decide you'd like to do your own research, but that is not essential; what you need most is some experience doing work on your own, under the mentorship of an experienced researcher.
Choosing courses
This program offers considerable freedom to choose courses at the 300-/400-level, and you are free to make those choices on your own. We are eager to offer guidance, however, and both our Undergraduate Office and individual faculty members are a rich source of advice.

 

 

 

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: 
Distribution Requirements: 
Science
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: 
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)

 

 

 

 App2

http://web.cs.toronto.edu/program/ugrad/programs/Game_Design.htm

 

Video game design combines several disciplines within computer science, including software engineering, graphics, artificial intelligence, and human-computer interaction. It also incorporates elements of economics, psychology, music, and creative writing, requiring video game researchers to have a diverse, multidisciplinary set of skills.

Students who wish to pursue video game design should have an understanding of linear algebra (for computer graphics modeling), computer hardware and operating systems (for console architecture), data structures, and algorithm design. Students will gain a general knowledge of the more advanced topics listed in the courses below.

Required

Courses:

  1. CSC300H1, CSC301H1, CSC318H1, CSC324H1, CSC384H1, CSC418H1CSC404H1

Suggested

Related

Courses:

  1. CSC358H1, CSC458H1, CSC428H1,
  2. MUS300H1, CIN212H1, CIN432H1ENG235H1
  3. ECO326H1RSM482H1

Contacts: