<?xml version="1.0" encoding="UTF-8"?>

<!-- edited by Yuan An (yuana@cs.toronto.edu) -->

<!-- XML file contains the information about the graduate courses offered
     by the Department of Computer Science, University of Toronto, 
     during the year of 2003-2004. -->
<!-- Note that the courses offered in Winter term may not
	 have location and textbook information yet.
	 -->
	 
<!DOCTYPE courses SYSTEM "course.dtd">
<courses>
	<course courseNo="CSC 2103/407" level="cross-listed" offeredTerm="Fall 2003">
		<title>Software Architecture and Design</title>
		<instructor>
			<name>Matthew Zaleski</name>
			<email>matz@cdf.cs.toronto.edu</email>
		</instructor>
		<location>BA1170</location>
		<lectureTime>Thursday 10:00-12:00</lectureTime>
		<calendar-description>This course is an introduction to the development of architectures and class-level designs for software systems.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~matz/instruct/csc407/</courseWebsite>
		<prereq>CSC340H (Information Systems Analysis and Design),
CSC378H (Data Structures and Algorithm Analysis) </prereq>
		<text>Design Patterns: Elements of Reusable Object-Oriented Software, Gamma et. al.
Addison-Wesley (Professional Computing Series), 1995
ISBN 0-201-63361-2
</text>
	</course>
	<course courseNo="CSC 2104/465" level="cross-listed" offeredTerm="Fall 2003">
		<title>Formal Methods of Program Design</title>
		<instructor>
			<name>E.C.R. Hehner</name>
			<email>hehner@cs.toronto.edu</email>
		</instructor>
		<location>BA5224</location>
		<lectureTime>Monday 2:00-3:00</lectureTime>
		<lectureTime>Wednesday 2:00-3:00</lectureTime>
		<calendar-description>The use of logic as an aid to programming. Refinement theorems: by steps, by parts, by cases. Timing: real time, recursive time. Formal semantics of programming languages. Recursive definition and the least fixed-point construction. Semantics of data types; data refinement. Imperative programs, functional programs, parallel processes, communicating processes.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~hehner/csc465/</courseWebsite>
		<text>E.C.R. Hehner, A Practical Theory of Programming, second edition, Springer, 2003</text>
	</course>
	<course courseNo="CSC 2105/408" level="cross-listed" offeredTerm="Fall 2003">
		<title>Software Engineering</title>
		<instructor>
			<name>David Wortman</name>
			<email>dw@cdf.toronto.edu</email>
		</instructor>
		<location>BA 1180</location>
		<lectureTime>Wednesday 11:00-12:00</lectureTime>
		<lectureTime>Monday 11:00-12:00</lectureTime>
		<calendar-description>An introduction to the field of software engineering assuming no previous knowledge in the area. Discussion of various topics related to the design, construction and maintenance of large software systems.</calendar-description>
		<courseWebsite>http://www.cdf.toronto.edu/~csc408h/fall/</courseWebsite>
		<prereq>CSC340, CSC378, or equivalent</prereq>
		<text>Hans van Vliet, Software Engineering - Principles and Practice (2nd ed.), John Wiley, 2000.</text>
	</course>
	<course courseNo="CSC 2108" level="graduate" offeredTerm="Fall 2003">
		<title>Automated Verification</title>
		<instructor>
			<name>Marsha Chechik</name>
			<email>chechik@cs.toronto.edu</email>
		</instructor>
		<location>Pratt 266</location>
		<lectureTime>Tuesday 2:00-5:00</lectureTime>
		<calendar-description>Several notations and methods have been developed to help the designer specify clear and unambiguous system requirements, verify that the requirements are consistent and correct, and verify that the refined design meets its specification. The goal of the course is to emphasize formal notations and methods that have tool support. We will cover some underlying theory and take a look at a few tools. Discussed topics include but not limited to - Executable specifications (Statecharts, PAISLey) - Reachability analysis (PROMELA/Spin) - Model-checking (SMV) - Bisimulation (Concurrency Workbench) - Simple Theorem-proving (Larch, PVS).
</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~chechik/courses03/csc2108/</courseWebsite>
		<prereq>Graduate standing or permission of instructor. Experience with model-checking and other formal methods, although helpful, is not necessary. However, the course assumes familiarity with basic computer science concepts: relations and functions; boolean and first-order logic (from undergrad discrete-math course), and finite-state machines. You are also expected to have basic knowledge of concurrency. The course includes a number of theoretical and engineering aspects. </prereq>
		<text>'Model Checking', by Clarke, Grumberg, Peled, 1999, MIT Press.</text>
	</course>
	<course courseNo="CSC 2204/468" level="cross-listed" offeredTerm="Fall 2003">
		<title>Operating Systems</title>
		<instructor>
			<name>G. S. Graham</name>
			<email>gsg@cs.toronto.edu</email>
		</instructor>
		<location>BA 1170</location>
		<lectureTime>Thursday 2:00-4:00</lectureTime>
		<calendar-description>Principles of operating systems. The operating system as a control program and as a resource allocator. The concept of a process is central: synchronization, mutual exclusion, deadlock. Additional topics include memory management, file systems, process scheduling, and protection. Some treatment of multiprocessor issues, such as threads and scheduling. Case studies from systems such as Unix and Mach. </calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~gsg/468/</courseWebsite>
		<prereq>CSC258H1, CSC209H1/knowledge of concurrent programming</prereq>
		<prereq>CGPA 3.0/enrollment in a CSC subject POSt
</prereq>
		<text>Applied Operating System Concepts (Windows XP Update), A. Silberschatz, P. B. GAlvin and G. Gagne, Wiley (2003).</text>
	</course>
	<course courseNo="CSC 2209/458" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Computer Networks</title>
		<instructor>
			<name>P. Marbach</name>
			<email>marbach@cs.toronto.edu</email>
		</instructor>
		<location>BA 1240</location>
		<lectureTime>Monday 12:00-1:00</lectureTime>
		<lectureTime>Wednesday 12:00-1:00</lectureTime>
		<calendar-description>The study of the design and operation of computer communication networks. Emphasis is on fundamental principles rather than case studies, although for each topic examples from real networks will be discussed. Issues discussed include: Layered network architecture, link layer protocols, queuing theory, local area networks, wide area networking issues including routing, flow control, and congestion control, and network naming and addressing.
</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~marbach/csc458_F03.html</courseWebsite>
		<prereq>CSC258H, 354H/364H/372H/378H/ECE385H, STA250H/255H/257H/(80% in STA220H/ECO220Y)</prereq>
		<prereq>CGPA 2.0</prereq>
		<text>Layered network architecture, ARQ retransmission strategies, delay models for data networks, multiaccess communication, routing, congestion control, addressing.</text>
	</course>
	<course courseNo="CSC 2221" level="graduate" offeredTerm="Fall 2003">
		<title>Topics in the Theory of Distributed Systems</title>
		<instructor>
			<name>Sam Toueg</name>
			<email>sam@cs.toronto.edu</email>
		</instructor>
		<instructor>
			<name>Vassos Hadzilacos</name>
			<email>vassos@cs.toronto.edu</email>
		</instructor>
		<location>BA 1200</location>
		<lectureTime>Friday 2:00-5:00</lectureTime>
		<calendar-description>We study a number of fundamental problems that arise in distributed systems, such as mutual exclusion, consensus, reliable broadcast and multicast, and the management of replicated data.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~vassos/teaching/2221/</courseWebsite>
	</course>
	<course courseNo="CSC 2228" level="graduate" offeredTerm="Fall 2003">
		<title>Topics in Mobile and Pervasive Computing</title>
		<instructor>
			<name>Eyal De Lara</name>
			<email>delara@cs.toronto.edu</email>
		</instructor>
		<location>BA 5256</location>
		<lectureTime>Tuesday 2:00-4:00</lectureTime>
		<calendar-description>Developing mobile and pervasive applications remains, however, a doubting task. High levels of device heterogeneity, limited and variable system resources, as well as system configuration are just a few of the challenges that complicate application development and deployment. This course provides a broad overview of the issues involved in developing mobile and pervasive applications. Some topics to be covered include: wireless technologies, disconnected operation, power and bandwidth adaptation, location awareness and tracking, resource discovery, Mobile-IP, and ad-hoc routing.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~delara/courses/csc2228/</courseWebsite>
		<prereq>Basic understanding of operating system principles and knowledge of network programming</prereq>
	</course>
	<course courseNo="CSC 2306/456" level="cross-listed" offeredTerm="Fall 2003">
		<title>High-Performance Scientific Computing</title>
		<instructor>
			<name>Christina C. Christara </name>
			<email>ccc@cs.toronto.edu</email>
		</instructor>
		<location>LM 155</location>
		<lectureTime>Wednesday 4:00-6:00</lectureTime>
		<calendar-description>Computationally-intensive applications in science and engineering are implemented on the latest computers available, today composed of many processors operating in parallel. Parallel computer architectures; implementation of numerical algorithms on parallel architectures. Topics from: performance evaluation; scientific visualization; numerical methods; applications from science and engineering. Emphasis on numerical linear algebra and partial differential equations. For students in computer science, applied mathematics, science, engineering.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~ccc/Courses/cs456-2306.html</courseWebsite>
		<prereq>Elementary calculus: Taylor series, Rolle's theorem, mean value theorem, graphs of functions, continuity, convergence, de l' Hospital's rule, etc.</prereq>
		<prereq>Numerical Linear Algebra (included in CSC350): rough knowledge of direct and iterative methods for solving linear systems. Fluency in matrix and vector manipulation, both algebraic and algorithmic.</prereq>
		<prereq>Interpolation (included in CSC351): spline interpolation.</prereq>
		<prereq>Partial Differential Equations: minimal knowledge of PDEs. </prereq>
		<prereq>Theory of Computer Algorithms: minimal knowledge of computer algorithms, data structures and computational complexity.</prereq>
		<prereq>Programming: proficiency in some conventional programming language, preferably FORTRAN or C.</prereq>
	</course>
	<course courseNo="CSC 2307" level="graduate" offeredTerm="Fall 2003">
		<title>Numerical Software</title>
		<instructor>
			<name>Ken Jackson</name>
			<email>krj@cs.toronto.edu</email>
		</instructor>
		<location>BA 2155</location>
		<lectureTime>Monday 11-1</lectureTime>
		<calendar-description>Development and certification of numerical software. The analysis of error, stability, reliability, efficiency, robustness, portability and correctness of programs for numerical computations. Language facilities.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~krj/courses/2307/</courseWebsite>
		<prereq>Any previous numerical methods, numerical analysis, or scientific computing course.</prereq>
		<text>The Engineering of Numerical Software, by Webb Miller, Prentice-Hall, 1984. Republished by the Custom Printing Dept., UofT Bookstore. </text>
		<text>Simplified Fortran Guide by K. R. Jackson, Custom Publishing.</text>
	</course>
	<course courseNo="CSC 2401" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Introduction to Computational Complexity</title>
		<instructor>
			<name>Allan Borodin</name>
			<email>bor@cs.toronto.edu</email>
		</instructor>
		<location>GB 412</location>
		<lectureTime>Thursday 10-12</lectureTime>
		<calendar-description>The first part of the course will be an introduction to complexity theory, discussing time and space classes, their properties, and related hierarchies. The second part will contain some recent fundamental results about these classes.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~bor/2401f03/index.html</courseWebsite>
		<text>Theory of Computational Complexity, Ding-Zhu Du and Ker-I KO</text>
	</course>
	<course courseNo="CSC 2404/438" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Computability and Logic</title>
		<instructor>
			<name>S. Cook</name>
			<email>sacook@cs.toronto.edu</email>
		</instructor>
		<location>BA 2156</location>
		<lectureTime>Monday 10</lectureTime>
		<lectureTime>Wednesday 10</lectureTime>
		<calendar-description>Computable functions, Church's thesis, unsolvable problems, recursively enumerable sets and degrees, computational complexity. Predicate calculus, including the completeness, compactness and Lowenheim-Skolem theorems. Formal theories and the Godel incompleteness theorem.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~sacook/csc438h/</courseWebsite>
		<prereq>CSC 364/MAT247</prereq>
	</course>
	<course courseNo="CSC 2405/448" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Automata Theory</title>
		<instructor>
			<name>Toniann Pitassi</name>
			<email>toni@cs.toronto.edu</email>
		</instructor>
		<location>SS 1072</location>
		<lectureTime>Tuesday 2-4</lectureTime>
		<calendar-description>The study of regular, deterministic, context free, context sensitive and recursively enumerable languages via generative grammars and corresponding automata (finite state machines, pushdown machines and Turing machines). Topics include complexity bounds for recognition, language decision problems and operations on languages.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~toni/Courses/448-2003/CS448.html</courseWebsite>
		<prereq>Some knowledge of computability theory is recommended.</prereq>
		<text>Introduction to the Theory of Computation, by Michael Sipser</text>
	</course>
	<course courseNo="CSC 2414" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Expander graphs and their Applications </title>
		<instructor>
			<name>Shlomo Hoory</name>
			<email>shlomoh@cs.toronto.edu</email>
		</instructor>
		<location>HA 316</location>
		<lectureTime>Tuesday 12-2</lectureTime>
		<calendar-description>The topics discussed in this course vary from year to year.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~shlomoh/ExpandersF03.html</courseWebsite>
		<prereq>This course has no prerequisites.</prereq>
	</course>
	<course courseNo="CSC 2416" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Machine Learning Theory</title>
		<instructor>
			<name>Toniann Pitassi</name>
			<email>toni@cs.toronto.edu</email>
		</instructor>
		<location>GB 220</location>
		<lectureTime>Thursday 3-5</lectureTime>
		<calendar-description>The goal of creating programs or computers that 
		learn with experience is one of the most intriguing problems in computer science. It is 
		of practical value since we want programs that will
		adapt to change, that can adapt to the needs of their 
		users, and that can find useful  information in extremely large amounts of data. 
		It is also closely connected to understanding human perception, since humans are 
		the ideal model of how we would like many of these 
		types of programs to act. In this course, we will study
		mathematical frameworks and foundations of machine 
		learning. These mathematical models should capture key
		aspects of machine learning systems. A good framework
		will allow us to study problems and algorithms, allowing 
		us to analyze the algorithms with respect to different
		measures, such as runtime efficiency, and accuracy. 
		We will analyze how hard it is to learn various problems
		and will mathematically analyze general issues such as 
		Occam's Razor. Most of the course will focus on the
		problem of concept learning. Given data (for example, 
		pictures of hippos and other zoo animals), we want to be 
		able to learn from this data to classify future examples
		(new unlabelled pictures) well. This seems like a restricted
		form of learning, but it turns out that most methods for
		other kinds of learning end up solving this sort of problem
		at their core. </calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~toni/Courses/MLTheory/ML.html</courseWebsite>
		<prereq>The only prerequisite for this course is the equivalent of CS364 (undergraduate 
		complexity </prereq>
		<text>An Introduction to Computational Learning Theory by Kearns and Vazirani.</text>
	</course>
	<course courseNo="CSC 2423" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Finite Model Theory and Descriptive Complexity</title>
		<instructor>
			<name>Leonid Libkin</name>
			<email>libkin@cs.toronto.edu</email>
		</instructor>
		<location>BA 2135</location>
		<lectureTime>Wednesday 3-6</lectureTime>
		<calendar-description>Examples from database theory, language theory, complexity First-order
		logic (FO), expressiveness, failure of classical techniques in the finite Ehrenfeucht-Fraisse 
		games, winning strategies, locality Ordered vs unordered settings, Gurevich's and Grohe- 
		Schwentick theorems Complexity of FO Extensions of FP: adding counting, locality; 
		Adding second-order quantification, monadic second-order (MSO), connection with regular
		languages and automata Coding Turing machines: Trakhtenbrot's theorem (failure of
		completeness in the finite), and Fagin's theorem (logical characterization of NP) Fixed
		point logics, Immerman-Vardi theorem capturing PTIME); other complexity classes 
	   	(logspace, pspace) Finite variable logic, pebble games 0-1 law for FO and finite 
		variable logic, the random graph; randomness phenomena over finite structures Finite
		structures embedded into infinite ones; connection with constraint databases; new
	    techniques for expressive power New directions, connections with formal 
		methods and constraint satisfaction.
 		</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~libkin/csc2423/f03/</courseWebsite>
		<prereq>being familiar with the basic notions of 
		first-order propositional and predicate logic (if you 
		took an undergrad logic.</prereq>
		<prereq>basic knowledge of complexity theory 
		(classes P, NP, PSPACE, LOGSPACE)</prereq>
		<prereq>basic knowledge of language theory 
		(regular languages, automata)</prereq>
		<text>L. Libkin, Elements of Finite Model Theory, 293pp, 1st draft</text>
	</course>
	<course courseNo="CSC 2429" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Dynamic Data Structure</title>
		<instructor>
			<name>Faith Fich</name>
			<email>fich@cs.toronto.edu</email>
		</instructor>
		<location>GB 412</location>
		<lectureTime>Tuesday 9:00-11:00</lectureTime>
		<calendar-description>This course will study a variety of interesting data structures that have fast query time and handle updates to the data efficiently. Topics will include priority queues (their relationship to sorting and a reasonable model in which operations take constant time), kinetic data structures (for example, where elements' priorities, are functions of time), cache oblivious data structures (where optimized performance can be achieved without knowing cache size), and general methods for making static data structures dynamic. Some complexity lower bounds will also be presented. Some distributed data structures may also be discussed. </calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~fich/DDS.html</courseWebsite>
		<prereq>A good undergraduate course in data structures (that focussed on correctness and complexity).</prereq>
	</course>
	<course courseNo="CSC 2501/485" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Introduction to Computational Linguistics</title>
		<instructor>
			<name>Suzanne Stevenson</name>
			<email>suzanne@cs.toronto.edu</email>
		</instructor>
		<location>SS 2129</location>
		<lectureTime>Wednesday 10-12</lectureTime>
		<calendar-description>An introduction to computational linguistics and to the understanding of natural language by computer. Syntactic processing: grammars; semantics and semantic interpretation; pragmatics: speech acts, pronouns, definite descriptions, discourse context.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~suzanne/2501/</courseWebsite>
		<prereq>a course in AI, knowledge of LISP, or Prolog; or a major in Linguistics; or permission of the instructor.</prereq>
		<text>Jurafsky, Daniel, Martin, James H. Speech and Language Processing. Prentice-Hall, 2000.</text>
		<text>Natural Language Understanding, 2nd  Edition. Benjamin/Cummings, 1995.</text>
	</course>
	<course courseNo="CSC 2502/486" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Introduction to Knowledge Representation</title>
		<instructor>
			<name>Hector Levesque</name>
			<email>hector@cs.toronto.edu</email>
		</instructor>
		<location>SS 2130</location>
		<lectureTime>Friday 12-2</lectureTime>
		<calendar-description>This course examines some of the techniques used to represent knowledge in artificial intelligence, and the associated methods of automated reasoning.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~hector/Courses/2502F03/</courseWebsite>
		<prereq>a course in AI and working knowledge of LISP and PROLOG</prereq>
		<text>A hardcopy of the text for the course, a draft of a book by Brachman and Levesque, will be distributed in class. </text>
	</course>
	<course courseNo="CSC 2503/487" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Computational Vision I</title>
		<instructor>
			<name>Allan Jepson</name>
			<email>jepson@cs.toronto.edu</email>
		</instructor>
		<location>UC 85</location>
		<lectureTime>Thursday 1-3</lectureTime>
		<calendar-description>Introduction to vision, visual processes, and image understanding. Camera system geometry and image acquisition, basic visual processes for recognition of edges, regions, lines, surfaces. Processing colour, stereo images, and motion in image sequences. View-based image models. Object recognition.</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~jepson/csc2503/</courseWebsite>
		<prereq>MAT235 and CSC324, or equivalents</prereq>
		<text>E. Trucco and A. Verri, Introductory Techniques for 3D Computer Vision, Prentice-Hall, 1998 (ISBN 0-13-261108-2).</text>
	</course>
	<course courseNo="CSC 2504/418" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Computer Graphics</title>
		<instructor>
			<name>Tina Nicholl</name>
			<email>tnicholl@cdf.toronto.edu</email>
		</instructor>
		<location>BA 1190</location>
		<lectureTime>Monday 1-2</lectureTime>
		<lectureTime>Wednesday 1-2</lectureTime>
		<calendar-description>This course introduces the basic concepts and algorithms of modern 3D computer graphics. Topics include colour representation, display devices, optics and imaging, representations of curves and surfaces, geometric transformations, clipping, visibility, local illumination, global illumination, sampling and graphics hardware.</calendar-description>
		<courseWebsite>http://www.cdf.toronto.edu/~tnicholl/csc418/syllabus.htm</courseWebsite>
		<prereq>proficiency in C, and preferably C++.</prereq>
		<text>F.S. Hill, Jr. Computer Graphics Using OpenGL, Second Edition, Prentice Hall, 2001.</text>
		<text>Mason Woo et al, OpenGL 1.2 Programming Guide, Third Edition, Addison-Wesley, 1999.</text>
	</course>
	<course courseNo="CSC 2504/418" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Computer Graphics</title>
		<instructor>
			<name>Karan Singh</name>
			<email>karan@dgp.toronto.edu</email>
		</instructor>
		<location>BA 1180</location>
		<lectureTime>Wednesday 7-9</lectureTime>
		<calendar-description>This course introduces the basic concepts and algorithms of modern 3D computer graphics. Topics include colour representation, display devices, optics and imaging, representations of curves and surfaces, geometric transformations, clipping, visibility, local illumination, global illumination, sampling and graphics hardware.
Students will implement algorithms and generate images and animations.
</calendar-description>
		<courseWebsite>http://www.dgp.toronto.edu/~karan/courses/csc418/fall_2003/syllabus.html</courseWebsite>
		<prereq>proficiency in C, and preferably C++.</prereq>
		<text>F.S. Hill, Jr. Computer Graphics Using OpenGL, Second Edition, Prentice Hall, 2001.</text>
		<text>Mason Woo et al, OpenGL 1.2 Programming Guide, Third Edition, Addison-Wesley, 1999.</text>
	</course>
	<course courseNo="CSC 2514/428" level="cross-listed" offeredTerm="Fall 2003/2004">
		<title>Human-Computer Interaction</title>
		<instructor>
			<name>Ravin Balakrishnan</name>
			<email>ravin@dgp.toronto.edu</email>
		</instructor>
		<location>BA 1210</location>
		<lectureTime>Thursday 6-8</lectureTime>
		<calendar-description>Methodologies for obtaining and interpreting human behaviour as it applies to the design of user interface. Work activity analysis, observational techniques, questionnaire administration and unobtrusive measures as they apply to specifying user interface functionality. The description of the human architecture and its application to engineering models of user activities. Task analysis and modeling techniques and their application to designing interface processes and metaphor selection. Methods for interface representation and prototyping tools. Cognitive walkthroughs, usability studies and verbal protocol analysis and their interpretive application to resolving interface problems. Case studies of the development and introduction of specific user interfaces will be discussed throughout the course.</calendar-description>
		<courseWebsite>http://www.dgp.toronto.edu/~ravin/courses/csc428f2003/</courseWebsite>
		<prereq>CSC318/324/372/378</prereq>
	</course>
	<course courseNo="CSC 2515" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Machine Learning</title>
		<instructor>
			<name>Sam Roweis</name>
			<email>roweis@cs.toronto.edu</email>
		</instructor>
		<location>HA 316</location>
		<lectureTime>Tuesday 2-4</lectureTime>
		<calendar-description>Basic methods for classification, regression, clustering, time series modeling, and novelty detection. These algorithms will include K-nearest neighbours, naive Bayes, decision trees, support vector machines, logistic regression, generalized additive models, K-means, mixtures of Gaussians, hidden markov models, principal components analysis, factor analysis and independent components analysis. Methods of fitting models including stochastic gradient and conjugate gradient methods, the Expectation Maximization algorithm and Markov Chain Monte Carlo. The fundamental problem of overfitting and techniques for dealing with it such as capacity control and model averaging. 
All the basic algorithms will be implemented in Matlab, but prior knowledge of Matlab is not required. 
</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~roweis/csc2515/info.html</courseWebsite>
		<text>Elements of Statistical Learning, Hastie, Tibsshirani, Friedman.</text>
	</course>
	<course courseNo="CSC 2519" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Natural Language Semantics</title>
		<instructor>
			<name>Gerald Penn</name>
			<email>gpenn@cs.toronto.edu</email>
		</instructor>
		<location>BA 2135</location>
		<lectureTime>Tuesday 5-7</lectureTime>
		<calendar-description>Philosophy of Language Lambda calculus and higher-order intensional logic.
		Categorical grammar. Discourse representation theory. Underspecified semantics. Anaphora resolution. 
		Semantic distance and clustering. Inconsistency and redundancy detection. 
		</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~gpenn/csc2519/</courseWebsite>
	</course>
	<course courseNo="CSC 2521" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Topics in Computer Graphics: Machine Learning</title>
		<instructor>
			<name>Aaron Hertzmann</name>
			<email>hertzman@dgp.toronto.edu</email>
		</instructor>
		<location>SS 1080</location>
		<lectureTime>Monday 3-5</lectureTime>
		<lectureTime>Wednesday 3-5</lectureTime>
		<calendar-description>This course will cover topics in computer graphics. The format will be a mix 
		of lectures, student paper presentations, and discussion. This Fall, the course will cover 
		applications of machine learning to computer graphics. Learning topics: Bayesian modeling, density 
		estimation, Monte Carlo, regression/classification. Graphics topics: Face and body modeling, 
		motion synthesis, image and video texture synthesis, non-photorealistic rendering. 
		</calendar-description>
		<courseWebsite>http://www.dgp.toronto.edu/~hertzman/courses/csc2521/fall_2003/</courseWebsite>
		<prereq>CS grads or instructor permission</prereq>
		<prereq>familiarity with probability, statistics, and linear algebra required (although you do not need to be an expert). </prereq>
		<prereq>Experience with computer graphics, vision, or learning useful but not required.
		</prereq>
		<text> Information Theory, Inference, and Learning Algorithms, by David MacKay</text>
	</course>
	<course courseNo="CSC 2524" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Topic in Interactive Computing</title>
		<instructor>
			<name>Ravin Balakrishnan</name>
			<email>ravin@dgp.toronto.edu</email>
		</instructor>
		<location>BA 2587</location>
		<lectureTime>Thurday 3-5</lectureTime>
		<calendar-description>A topics course covering current research in human-computer interaction.</calendar-description>
		<courseWebsite>http://www.dgp.toronto.edu/~ravin/courses/csc2524f2003/</courseWebsite>
	</course>
	<course courseNo="CSC 2525" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Querying peer-to-peer databases</title>
		<instructor>
			<name>Renee Miller</name>
			<email>miller@cs.toronto.edu</email>
		</instructor>
		<location>BA 5256</location>
		<lectureTime>Wednesday 1-3</lectureTime>
		<calendar-description>A large number of useful databases are currently accessible over the Web. 
		Other data collections are organized into highly available peer-to-peer networks. In addition to 
		being frequently updated, these data collections tend to be highly dynamic: new databases appear 
		often, and databases (just like Web sites) also disappear. Peer-to-peer and data-grid technology 
		have proven useful in locating replicas within such collections of files or databases in a timely 
		fashion, using centralized and distributed meta-data catalogs. However, in this environment, the 
		goal of providing flexible, timely and declarative query access over these databases remains 
		elusive. In this course, we will study recent literature on data sharing in networked and 
		peer-to-peer environments with the goal of understanding the open issues and promising research 
		directions. Students will be responsible for reading weekly papers from the research literature, 
		presenting at least one such paper, participating in class discussions, and undertaking a research 
		project. 
		</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~miller/2525/</courseWebsite>
	</course>
	<course courseNo="CSC 2541" level="graduate" offeredTerm="Fall 2003/2004">
		<title>Topics in Machine Learning</title>
		<instructor>
			<name>Richard Zemel</name>
			<email>zemel@cs.toronto.edu</email>
		</instructor>
		<location>BA 2135</location>
		<lectureTime>Friday 12-2</lectureTime>
		<calendar-description>This graduate course offers an introduction to current topics and methods in 
		computational neuroscience.  Theoretical analysis and computational methods are tools for 
		characterizing what nervous systems do and determining how and why they do it.  Neuroscience 
		encompasses approaches ranging from molecular studies to human psychophysics. Computational 
		neuroscience encourages cross-talk between the many levels of this broad field by constructing 
		compact descriptions of what has been learned at various levels, building bridges between these 
		descriptions, and identifying potential unifying concepts and principles.  This course will cover 
		the basic methods used for these purposes and discuss examples in which computational approaches 
		have yielded insight into brain function. Among the questions addressed are how neurons encode 
		information in spike trains and how these can be decoded, how individual neurons integrate their 
		inputs and generate spikes, what kind of computation can be performed when these neurons are 
		organized into feed-forward or recurrent networks, and what the consequences of different 
		synaptic modification rules can be in learning and development.
		</calendar-description>
		<courseWebsite>http://www.cs.toronto.edu/~zemel/Courses/csc2541.html</courseWebsite>
	</course>
	<course courseNo="CSC 2103/407" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Software Architecture And Design</title>
		<instructor>
			<name>Mathew Zaleski</name>
			<email>matz@cdf.toronto.edu</email>
		</instructor>
		<location>BA 1170</location>
		<lectureTime>Thursday 10-12</lectureTime>
		<calendar-description>This course is an introduction to the development of architectures and class-level designs for software systems.
</calendar-description>
		<prereq>CSC340H (Information Systems Analysis and Design), CSC378H (Data Structures and Algorithm Analysis).
</prereq>
	</course>
	<course courseNo="CSC 2106" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Requirement Engineering</title>
		<instructor>
			<name>Steve Easterbrook</name>
			<email>sme@cs.toronto.edu</email>
		</instructor>
		<location>UC 69</location>
		<lectureTime>Wednesday 2-5</lectureTime>
		<calendar-description>Requirements engineering practice; requirements processes; requirements elicitation, modelling, analysis and validation; formal requirements languages; capturing design rationale and early requirements.</calendar-description>
		<prereq>CSC408 or permission of the instructor.</prereq>
	</course>
	<course courseNo="CSC 2105/408" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Software Engineering</title>
		<instructor>
			<name>David Wortman</name>
			<email>dw@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Tuesday 10:00-11:00</lectureTime>
		<lectureTime>Thursday 10:00-11:00			</lectureTime>
		<calendar-description>An introduction to the field of software engineering assuming no previous knowledge in the area. Discussion of various topics related to the design, construction and maintenance of large software systems.</calendar-description>
		<prereq>CSC340, CSC378, or equivalent</prereq>
	</course>
	<course courseNo="CSC 2107/488" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Language Processors</title>
		<instructor>
			<name>David Wortman</name>
			<email>dw@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Tuesday 2-3</lectureTime>
		<lectureTime>Thursday 2-3</lectureTime>
		<calendar-description>Compiler organization, compiler writing tools, use of regular-expressions and context-free grammars to describe programming languages, parsing, semantic analysis, storage allocation, code generation, runtime organization.</calendar-description>
		<prereq>Courses in data structures and programming languages.</prereq>
		<prereq>Solid knowledge of C/C++.</prereq>
	</course>
	<course courseNo="CSC 2206" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Computer System Modelling</title>
		<instructor>
			<name>Peter Marbach</name>
			<email>marbach@cs.toronto.edu</email>
		</instructor>
		<location>KP 213</location>
		<lectureTime>Monday 3-4</lectureTime>
		<lectureTime>Wednesday 3-4</lectureTime>
		<calendar-description>The emphasis of the course is on models for systems with uncertainty. We study the properties of various models and discuss how they can be applied to analyze system performance. Concepts covered include Poisson, renewal, and Markov processes. Case studies involve computer networks, computer systems, and examples from machine learning.
</calendar-description>
		<prereq>Solid knowledge of basic probability theory.
</prereq>
	</course>
	<course courseNo="CSC 2209/458" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Computer Networks</title>
		<instructor>
			<name>Peter Marbach</name>
			<email>marbach@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Monday 1-2</lectureTime>
		<lectureTime>Wednesday 1-2</lectureTime>
		<calendar-description>The study of the design and operation of computer communication networks. Emphasis is on fundamental principles rather than case studies, although for each topic examples from real networks will be discussed. Issues discussed include: Layered network architecture, link layer protocols, queuing theory, local area networks, wide area networking issues including routing, flow control, and congestion control, and network naming and addressing.</calendar-description>
	</course>
	<course courseNo="CSC 2302" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Initial Value Methods For ODEs</title>
		<instructor>
			<name>Wayne Enright</name>
			<email>enright@cs.toronto.edu</email>
		</instructor>
		<location>BA 2179</location>
		<lectureTime>Tuesday 9-11</lectureTime>
		<calendar-description>Issues involved in the numerical solution of initial value problems in ODEs. Error propagation and the design of robust numerical methods. Methods designed for stiff and non-stiff problems will be reviewed and the significant difficulties arising in each area identified. State-of-the-art software will be surveyed and critically evaluated. The difficulty associated with implicit equations and algebraic constraints will also be considered.</calendar-description>
	</course>
	<course courseNo="CSC 2321" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Matrix Calculations</title>
		<instructor>
			<name>Christina Christara</name>
			<email>ccc@cs.toronto.edu</email>
		</instructor>
		<location>BL 327</location>
		<lectureTime>Monday 2-5</lectureTime>
		<calendar-description>The efficient solution of large sparse linear systems. Such systems arise from the discretisation of PDE problems, approximation problems or other science and engineering problems. Recent developments in the area of numerical linear algebra, including the basic iterative solvers, acceleration techniques, such as semi-iteration and conjugate gradient, preconditioning techniques, and applications to PDEs such as Schwarz splitting methods, domain decomposition methods, multigrid schemes and FFT methods.</calendar-description>
		<prereq>calculus, numerical linear algebra, interpolation, some knowledge of PDEs, programming preferably in FORTRAN.</prereq>
	</course>
	<course courseNo="CSC 2410" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Algorithms in Graph Theory</title>
		<instructor>
			<name>Avner Magen</name>
			<email>avner@cs.toronto.edu</email>
		</instructor>
		<location>WE 74</location>
		<lectureTime>Thursday 10-12</lectureTime>
		<calendar-description>The course concentrates on developing and analyzing algorithms for problems which arise in applications of graph theory, including minimum spanning tree, shortest path problems, depth first search and applications (finding biconnected components), network flow with applications to bipartite matching, general matching, planarity testing, graph colorability, etc.. Attention will be given to the mathematical theory that supports these algorithms. Depending on the year and instructor, a treatment of topics such as perfect graphs, randomized algorithms, average case analysis of algorithms, the class of #P and algorithms for enumeration problems, and algorithms designed for a parallel computer may be covered.</calendar-description>
	</course>
	<course courseNo="CSC 2415" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Theoretical Aspects of Concurrent Programming</title>
		<instructor>
			<name>Sam Toueg</name>
			<email>sam@cs.toronto.edu</email>
		</instructor>
		<instructor>
			<name>Vassos Hadzilacos</name>
			<email>vassos@cs.toronto.edu</email>
		</instructor>
		<location>WE 75</location>
		<lectureTime/>
		<calendar-description>Thursday 1-4</calendar-description>
		<prereq>This course will be concerned with various aspects of the theory underlying parallel architectures and concurrent programming. The following is a tentative list of topics: formalisms for expressing concurrency including flow expressions, path expressions, Petri nets; relative power of synchronization primitives; critical section solutions; the database consistency problem; language features for concurrent programming; e.g. monitors; proving the correctness of concurrent programs; mapping concurrent programs onto parallel architectures.</prereq>
	</course>
	<course courseNo="CSC 2426" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Topics in Cryptography</title>
		<instructor>
			<name>Charles Rackoff</name>
			<email>rackoff@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>MS 3290</lectureTime>
		<calendar-description>Tuesday 1-3</calendar-description>
		<prereq>An introduction to cryptography including rigorous definitions of security, a presentation of the number theoretic background, and applications of number theory to various cryptographic problems.</prereq>
	</course>
	<course courseNo="CSC 2427" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Topics in Graph Theory</title>
		<instructor>
			<name>Michael Molloy</name>
			<email>molloy@cs.toronto.edu</email>
		</instructor>
		<location>UC 257</location>
		<lectureTime>Tuesday 4-6</lectureTime>
		<calendar-description>The aim of this course is to highlight recent theoretical and algorithmic advances for various restricted graph classes. Examples of such classes include: perfect graphs and the various subclasses (e.g. chordal, interval, comparability, co-comparability and weakly chordal); "near perfect" graphs (e.g. asteroidal triple-free, partial k-trees, and circular arc); topological graphs (e.g. planar outerplanar and toroidal). Text: A Brandstadt, V. Le and J. Spinrad, "Graph classes - a survey", SIAM Monographs on Discrete Mathematics and Applications 1999. Background Preparation: A graduate course in graph theory such as CSC2410.</calendar-description>
	</course>
	<course courseNo="CSC 2506/412" level="cross" offeredTerm="Winter 2003/2004">
		<title>Probabilistic Reasoning</title>
		<instructor>
			<name>Sam Roweis</name>
			<email>roweis@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Monday 10-11</lectureTime>
		<lectureTime>Wednesday 10-11</lectureTime>
		<calendar-description>An introduction to probability as a means of representing and reasoning with uncertain knowledge, with an emphasis on graphical probability models. Topics covered will include: the formalism of probability and its interpretations, qualitative specification of probability distributions by means of independence relationships expressed using graphical models, quantitative specification of probability distributions parameterized using graphical models, algorithms for probabilistic reasoning with graphical models, elicitation of probability models from experts, learning probability models from empirical data, inferring causal relationships, alternative, non-probabilistic formalisms for expressing uncertain or imprecise knowledge.</calendar-description>
	</course>
	<course courseNo="CSC 2504/418" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Computer Graphics</title>
		<instructor>
			<name>Demetri Terzopoulos</name>
			<email>dt@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Wednesday 4-5</lectureTime>
		<lectureTime>Friday 4-5</lectureTime>
		<calendar-description>This course introduces the basic concepts and algorithms of modern 3D computer graphics. Topics include colour representation, display devices, optics and imaging, representations of curves and surfaces, geometric transformations, clipping, visibility, local illumination, global illumination, sampling and graphics hardware.</calendar-description>
		<prereq>proficiency in C, and preferably C++.</prereq>
	</course>
	<course courseNo="CSC 2504/418" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Computer Graphics</title>
		<instructor>
			<name>Aaron Hertzmann</name>
			<email>hertzman@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Tuesday 3-4</lectureTime>
		<lectureTime>Thursday 3-4</lectureTime>
		<calendar-description>This course introduces the basic concepts and algorithms of modern 3D computer graphics. Topics include colour representation, display devices, optics and imaging, representations of curves and surfaces, geometric transformations, clipping, visibility, local illumination, global illumination, sampling and graphics hardware.
Students will implement algorithms and generate images and animations.
</calendar-description>
		<prereq>proficiency in C, and preferably C++.</prereq>
	</course>
	<course courseNo="CSC 2510" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Conceptual Modeling</title>
		<instructor>
			<name>John Mylopoulos</name>
			<email>jm@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Tuesday 1-4</lectureTime>
		<calendar-description>The topics discussed in this course vary from year to year. Spring 2000 topic: Conceptual Modeling. This course is intended to teach conceptual modelling notations and how to use them. The bulk of the course is dedicated to introductions of three different modelling notations and their features. These are the Unified Modelling Language (UML), CLASSIC, and KAOS. UML is an object-oriented modelling language, for modelling all aspects of a software system. CLASSIC is a description-based knowledge representation language which supports a tractable form of inference. KAOS is a formal requirements modelling language for specifying goals, entities, relationships, actions and agents. In addition to covering in detail these three notations, the course reviews the history of conceptual modelling, and covers more advanced topics, such as modelling intentions and social settings.</calendar-description>
	</course>
	<course courseNo="CSC 2509" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Data Management Systems</title>
		<instructor>
			<name>Anthony Bonner</name>
			<email>bonner@cs.toronto.edu</email>
		</instructor>
		<location>SS 1083</location>
		<lectureTime>Thursday 3-5</lectureTime>
		<calendar-description>The use, management and theory of databases, especially relational databases. Topics to be selected from the following: the relational model: relations, operations on relations, relational algebra and calculi; defining and manipulating data: SQL, embedded SQL, Query-by-Forms, database applications programming; query optimization: indices, algebraic optimization, hypergraph representation of queries, optimization algorithms; transaction management: concurrency, serializability, deadlocks, transaction protocols, time stamps, crash recover; design theory for relational databases: functional dependencies, normal forms, decomposition of relations; security and integrity of data; distributed databases.
</calendar-description>
	</course>
	<course courseNo="CSC 2511/401 " level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>Natural Language Computing</title>
		<instructor>
			<name>Gerald Penn</name>
			<email>gpenn@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Monday 2-3</lectureTime>
		<lectureTime>Wednesday 2-3</lectureTime>
		<calendar-description>An introduction to techniques involving natural language and speech in applications such as information retrieval, extraction, and filtering; intelligent Web searching; spelling and grammar checking; speech recognition and synthesis; automatic text summarization; pseudo-understanding and generation of natural language; and multi-lingual systems including machine translation. Methods covered will include N-grams, POS-tagging, semantic distance metrics, indexing, on-line lexicons and thesauri, morphological analysis and parsing, text markup languages and document structure, corpora and collections of on-line documents, corpus analyses. Software tools employed will include Perl.
</calendar-description>
		<prereq>csc228, sta220/250/257 or equivalents			</prereq>
		<prereq>csc340 or equivalent is recommended</prereq>
	</course>
	<course courseNo="CSC 2512" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Constraint Satisfaction Problems</title>
		<instructor>
			<name>Fahiem Bacchus</name>
			<email>fbacchus@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Wednesday 3-6</lectureTime>
		<calendar-description>A course on algorithms and techniques for solving constraint satisfaction problems (CSPs). We start with an introduction to the formalism, and an examination of the range of problems that can be encoded as CSPs. Then we will examine systematic algorithms for solving CSPs. These algorithms are all built around backtracking, an algorithm that has been around for at least 100 years. We will examine a number of improvements to the generic backtracking algorithm, including the algorithms that are in use in various commercial systems. The famous Davis-Putnam algorithm is another instance of a backtracking algorithm, and we will examine it and some of the techniques used in the best performing DP implementations. Finally, we how constraint solving techniques are interfaced with logic programs in examine constraint logic programming languages. The course will involve a mixture of the theoretical (some lower bounds, algorithms, data structures) and the practical (modeling, empirical evaluation of algorithms, implementations).
</calendar-description>
		<prereq>an introductory AI course (CSC384 or equivalent) or permission of the instructor</prereq>
	</course>
	<course courseNo="CSC 2520" level="graduate" offeredTerm="Winter 2003/2004">
		<title>The Computational Lexicon</title>
		<instructor>
			<name>Suzanne Stevenson</name>
			<email>suzanne@cs.toronto.edu</email>
		</instructor>
		<location/>
		<lectureTime>Wednesday 10-12</lectureTime>
		<calendar-description>An introduction to the study of meaning, its formal representation, its derivation from natural language syntactic structures, and its combination through inference with knowledge about the world. Topics may include: introduction to philosophy of language, compositionality, categorical grammar, quantification and plurality, underspecification, lexical semantics, word-sense disambiguation, lexical choice and nuances of meaning, calculating semantic distance, semantic interpretation in natural language processing systems, and reasoning with the event calculus in natural language.
</calendar-description>
	</course>
	<course courseNo="CSC 2521 " level="graduate" offeredTerm="Winter 2003/2004">
		<title>Topics in Computer Graphics: Artificial Life</title>
		<instructor>
			<name>Demetri Terzopoulos</name>
			<email>dt@cs.toronto.edu</email>
		</instructor>
		<location>MS 2290</location>
		<lectureTime>Tuesday 4-6</lectureTime>
		<calendar-description>This course will cover topics in computer graphics. The format will be a mix of lectures, student paper presentations, and discussion.
This Fall, the course will cover applications of machine learning to computer graphics. Learning topics: Bayesian modeling, density estimation, Monte Carlo, regression/classification. Graphics topics: Face and body modeling, motion synthesis, image and video
texture synthesis, non-photorealistic rendering.
</calendar-description>
	</course>
	<course courseNo="CSC 2523" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Computational Vision II</title>
		<instructor>
			<name>Sven Dickinson</name>
			<email>sven@cs.toronto.edu</email>
		</instructor>
		<location>WB 258</location>
		<lectureTime>Tuesday 1-3</lectureTime>
		<calendar-description>In-depth treatments of several topics from Computational Vision I. Possible topics include: detailed discussion of selected topics in the neurophysiology and psychology of visual perception; complexity constraints on vision architectures that match the performance of human vision; control structures and search techniques for knowledge-based vision systems; representations for model-based recognition.</calendar-description>
		<prereq>CSC484 or equivalent, and CSC2503</prereq>
	</course>
	<course courseNo="CSC 2527/454" level="cross-listed" offeredTerm="Winter 2003/2004">
		<title>The Business of Software</title>
		<instructor>
			<name>TBA</name>
		</instructor>
		<location>TBA</location>
		<lectureTime>Monday 6-8</lectureTime>
		<calendar-description>Overview of the software industry, and principles of operation for successful software enterprises. Software business definition and planning; market and product planning; management of innovation, research and software development; software marketing and sales management; software manufacturing and support; financial management and finance for high-technology ventures; human resource management and development in high-technology industries. Students will write business plans, working in teams
</calendar-description>
		<prereq>CSC2204 (Operating Systems) or equivalent</prereq>
	</course>
	<course courseNo="CSC 2528" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Topics in Computational Linguistics</title>
		<instructor>
			<name>Graeme Hirst</name>
		</instructor>
		<location>UC 248</location>
		<lectureTime>Thursday 1-3</lectureTime>
		<calendar-description>A seminar-style course that continues 2501 (Computational Linguistics), and assumes the material presented therein. The course will take several topics of current research interest in computational linguistics, and study them in depth. The course will emphasize the interdisciplinary nature of computational linguistics. The interests of the class will determine exactly which topics are chosen; possibilities include the following: Knowledge representations for language. Modelling how people understand language, and how children learn it. Determining the speaker's intent. Pronouns and definite reference. Understanding references to time and space. Discourse coherence and discourse structure. Computer generation of paragraphs from internal representations. Machine translation and machine-aided translation. There will be a term paper. </calendar-description>
		<prereq>CSC2501(485) or permission of instructor 
Possible Preparatory Reading: Review the papers in recent issues of Computational Linguistics, and Proceedings of the annual conferences of the Association for Computational Linguistics.</prereq>
	</course>
	<course courseNo="CSC 2529" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Computer Animation</title>
		<instructor>
			<name>Karan Singh</name>
			<email>karan@cs.toronto.edu</email>
		</instructor>
		<location>BA 2159</location>
		<lectureTime>Wednesday 2-4</lectureTime>
		<calendar-description>The primary focus of this course is on kinematic and dynamic techniques for character animation. Topics include physical modelling and simulation, motion planning, control and learning algorithms, locomotion, motion trajectory optimization, scripting languages, motion capture and motion editing. Students will implement algorithms and interactive animation tools and then use these to produce motion for animations.</calendar-description>
	</course>
	<course courseNo="CSC 2530" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Visual Modeling</title>
		<instructor>
			<name>Kyros Kutulakos</name>
			<email>kyros@cs.toronto.edu</email>
		</instructor>
		<location>BA 5287</location>
		<lectureTime>Thursday 3-6</lectureTime>
		<calendar-description>This course takes a unified approach to computer graphics and computer vision. Vision (image analysis) and graphics (image synthesis) are studied formally as mutually converse problems. The course explores physics-based models and associated computational methods for tackling these problems. The emphasis will be on modeling and estimating the shapes and motions of rigid and deformable objects using mathematical physics, variational methods, and numerical simulation with finite-difference, finite-element, and multiscale algorithms. Graphics topics will include the modeling and animation of flexible objects in simulated physical worlds, force driven interaction, and constraint satisfaction methods. Vision topics will include regularization theory, visible-surface representations, active models, and multisensory fusion. Finally, the course will investigate some advanced applications in artificial life, including the modeling of humans and other autonomous agents in virtual worlds. 
</calendar-description>
		<prereq>CSC2503, 2504, or permission of instructor.
</prereq>
	</course>
	<course courseNo="CSC 2535" level="graduate" offeredTerm="Winter 2003/2004">
		<title>Computation in Neural Networks</title>
		<instructor>
			<name>Geoffrey Hinton</name>
			<email>hinton@cs.toronto.edu</email>
		</instructor>
		<location>KP 113</location>
		<lectureTime>Friday 11-1</lectureTime>
		<calendar-description>This course will cover methods of organizing computations in simulated networks of neuron-like processors. Topics will include: how brains differ from computers; the least mean squares and Perceptron convergence procedures; the backpropagation algorithm and some practical applications including phoneme recognition, hand-written character recognition, and non-linear controllers; ways to make backpropagation converge faster and generalize better; competitive learning and the EM algorithms; radial basis functions; hidden Markov models and the Baum-Welch algorithm; mixtures of competing expert networks; Hopfield nets, Boltzmann machines and mean field nets; the minimum description length approach and its relationship to clustering and principal components analysis; Helmhotlz machines and the wake-sleep algorithm.</calendar-description>
		<prereq>Some knowledge of calculus and linear algebra.</prereq>
	</course>
</courses>

