Course |
|
Grade |
Introduction to Computer Science |
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. |
A |
Introduction to Language |
Introduction to Language is a general-interest course on language. Possible topics include: the structure of language;
how language changes over time, the social and psychological aspects of language, language and culture, the origin of language, writing systems, and language acquisition. |
A |
English Words |
English has a rich vocabulary. We will learn how it has developed over time, and investigate aspects of the meaning and pronunciation of words. Most of all,
we will study how words are put together, so that students will be able to recognize and analyze unfamiliar words. |
Credit |
Principles of Microeconomics |
An introduction to economic analysis and its applications: price determination, market structure,
decision making by individuals and firms, public policy. NOTE: extensive use of graphical and quantitative analysis. |
Credit |
Linear Algebra II |
Fields, complex numbers, vector spaces over a field, linear transformations, matrix of a linear transfromation, kernel, range, dimension theorem,
isomorphisms, change of basis, eigenvalues, eigenvectors, diagonalizability, real and complex inner products, spectral theorem, adjoint/self-adjoint/normal linear operators,
triangular form, nilpotent mappings, Jordan canonical form. |
A |
Mathematical Expression and Reasoning for Computer Science |
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. |
A+ |
Software Design |
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. |
A |
Globalization and Urban Change |
Focusing on the impacts that global flows of ideas, culture, people, goods, and capital have on cities throughout the globe,
this course explores some of the factors that differentiate the experiences of globalization and urban change in cities at different moments in history and in various geographic
locations. |
Credit |
Probability with Computer Applications |
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. |
A |
Cumulative GPA: 4.00 |
In Process |
Introduction to the Theory of Computation |
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. |
|
Computer Organization |
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. |
|