Courses
Courses completed so far (1998-1999):
- Introduction to Programming (Java) {CSC108H}
- Statistics {STA107H}
- Economics {ECO100Y}An introduction to economic analysis and its applications: price determination; the role of competition; international trade and finance; the theory of production and employment; the role of money and the banking system; monetary and fiscal policy. NOTE graphical and quantitative analysis are used extensively
- Calculus I {MAT137Y}A conceptual approach for students with a serious interest in mathematics. Geometric and physical intuition are emphasized but some attention is also given to the theoretical foundations of calculus. Material covers the basic concepts of calculus: limits and continuity, the mean value and inverse function theorems, the integral, the fundamental theorem, elementary transcendental functions, Taylor's theorem, sequence and series, uniform convergence and power series
- Linear Algebra I {MAT223H}Matrices, linear systems, elementary matrices and the inverse of a matrix. Vector spaces over R, subspaces, basis and dimension. Real inner product spaces, geometry in Rn, lines and hyperplanes. Linear transformation, kernel, range, matrix representation, isomorphisms. The determinant, Cramer's rule, the adjoint matrix. Eigenvalues, eigenvectors, similarity, diagonalization. Projections, Gram-Schmidt process, orthogonal transformations and orthogonal diagonalization, isometries, quadratic forms, conics, quadric surfaces.
- Algorithms and Data Structures in Java {CSC148H}Abstract data types and data structures for implementing them. Linked data structures. Encapsulation and information-hiding. Object-oriented programming in a language such as Java. Specifications. Analyzing the correctness and efficiency of programs using mathematical reasoning. Recursion. Recurrence relations for analysing the efficiency of recursive code.
- Discrete Mathematics for Computer Science {CSC238H}A rigorous treatment of certain aspects of discrete mathematics, with applications to Computer Science. Topics include mathematical induction, program correctness, recurrences, divide-and-conquer algorithms, finite state machines, and an introduction to the propositional and predicate calculus
- Fundamental Data Structures and Techniques. {CSC270H} This course deals with standard
programming methods, with an intro to C and C++. Graph representation,
simulation, intro to numerical methods and optimization.
- Intro to Roman History {CLA231H}
Courses completed this year (1999-2000) are:
- Software Tools and System Programming. {CSC209H}Software development techniques, typically in the UNIX environment. Particular emphasis on what happens in the system when programs run. Core topics: software utilities (e.g. pipes, filters) shell programming, system calls, signals, file processing, introduction to concurrency (e.g. synchronization, mutual exclusion, race conditions, producer-consumer problem), processes. Additional topics may include: scripting languages, Internet programming languages, network programming (e.g. sockets).
- File Structures and Data Management. {CSC228H}Techniques for storing, accessing and managing long-term data in computer systems. Hardware and software aspects of data processing: processors, storage devices, communications, file I/O control. Organizing and managing files: serial files, direct files, indexed files, multikey files integrated files, file systems. Intro to database management systems with emphasis on relational data base systems.
- Computer Organization. {CSC258H}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.
- Principles of Programming Languages {CSC324H} .Lisp and Prolog
- Russian Poetry of the 1860-1920 {SLA440Y}
Courses completed summer (Summer 2000) are:
- Calculus II.
{aka MAT235Y}Differential and integral calculus of functions of several variables. Line and surface integrals, the divergence theorem, Stoke's theorem. Sequences and series, including an introduction to Fourier series. Some partial differential equations of Physics.
Courses completed Fall term 2000 are:
- CSC364H Computational Compubility and Complexity.
Measuring algorithm performance. Techniques of efficient algorithm design: divide and conquer, greedy method, dynamic programming, graph traversal, change of representation. Intro to complexity theory: models of computation, P, NP, polynomial time reducability, NP-completeness. Intro to the theory of computation: Church's thesis, computable and noncomputable functions, recursive and recursively enumerable sets, universality, many-one reducability.
- CSC468H Operating Systems
Principles of OS. The OS as a control program and as a resource allocator. The concept of a process is central: synchronization, mutual exclution, deadlock. Memory management, file systems, process scheduling and protection. Multiprocessor issues: threads and scheduling. Case studies from UNIX, Mach.
- STA250H Statistical Concepts
A survey of statistical methodology with emphasis on data analysis and applications. The topics covered include descriptive statistics, basic probability, simulation, data collection and the design of experiments, tests of significance and confidence intervals, power, multiple regression and the analysis of variance, and count data.
- PHL245H Modern Symbolic Logic
The application of symbolic techniques to the assessment of arguments. Propositional calculus and quantification theory. Logical concepts, techniques of natural deduction.
- SLA499Y Independent Studies
Translation of literary works from Russian to English and from English to Russian.
Courses that I am taking spring 2001 are:
- CSC378 Data Structures and Algorithm AnalysisAbstract data types such as priority queues and dictionaries. Advanced data structures for main memory resident information, such as binomial heaps, leftist trees, self-adjusting lists and balanced search trees. Algorithm analysis: worst case, average case, and amortized complexity. Introduction to lower bounds. Emphasis is given to problem solving and a theoretical treatment of the data structures.
- CSC336 Numerical Methods
The study of computational methods for solving problems in linear algebra, non-linear equations, approximation, integration, and ordinary differential equations.
- CSC384 Introduction to Artificial IntelligenceA broad introduction to the sub-disciplines of AI. Core topics: search methods, game playing and rule-based systems. Overview of: natural language understanding, knowledge representation, reasoning, planning, vision, robotics, learning and neural networks.