2002/2003 Calendar
Calendar Home Calendar Contents Contact Us Arts and Science Home

CSC Courses

| Course Winter Timetable |


SCI199Y1
First Year Seminar 52T

Undergraduate seminar that focuses on specific ideas, questions, phenomena or controversies, taught by a regular Faculty member deeply engaged in the discipline. Open only to newly admitted first year students. It may serve as a distribution requirement course; see page 44.

NOTE
No late registration is permitted in any CSC course after the first two weeks of classes.
Enrolment in some CSC courses above 100-level is restricted. Consult the calendar or the Arts and Science website, index.htmlcrs_CSC.htm for details. Waiver deadline is the Monday after the deadline to add courses, no extensions will be granted.


CSC104H1
The Why and How of Computing 26L, 13T

Computer parts and their interconnection. Software: operating systems, files, interfaces. Hardware: storage media, memory, data representation, I/O devices. History of computing. Problem solving with computers: algorithms and basic programming concepts. Science and computer science; graphics, artificial intelligence. Common computer applications: databases, simulations. Implications for society: computers and work, office automation, computer security. (Students work with various applications and software, but the aim is to discuss general concepts of computer applications, not to serve as a tutorial for specific packages.)
Exclusion: SMC104H1; VIC104H1; grade 12/OAC computer studies or data processing.
NOTE: This course may not be taken after or concurrently with any other computing course.
This course is intended primarily for students in the Humanities and Social Sciences.


CSC107H1
Self-paced Introduction to Computer Programming 3L

Through independent study, students learn the material at their own pace. Structure of computers; the computing environment; programming in an object-oriented language such as Java. Program structure in an object-oriented language: classes, objects, methods, fields. Internal structure of methods: elementary data types, statements, control flow. Arrays; searching, sorting and complexity.
Exclusion: CSC108H1, 139H1, 148H1, 149H1, 150H1.
NOTE: You may not take this course after or concurrently with CSC148H1, but you may take CSC148H1 after CSC107H1.
Prerequisite: Grade 12 Mathematics


CSC108H1
Introduction to Computer Programming 39L, 12T, 12P

Structure of computers; the computing environment. Programming in an object-oriented language such as Java. Program structure in an object-oriented language: classes, objects, methods, fields. Internal structure of methods: elementary data types, statements, control flow. Arrays; searching, sorting and complexity. Practical (P) sections consist of supervised work in the computing laboratory. These sections are offered when facilities are available, and attendance is required.
Exclusion: CSC107H1, 139H1, 148H1, 149H1, 150H1.
NOTE: You may not take this course after or concurrently with CSC148H1, but you may take CSC148H1 after CSC108H1.
Prerequisite: Grade 12 Mathematics


CSC148H1
Introduction to Computer Science 26L, 13T, 12P

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 analyzing the efficiency of recursive code. This course assumes programming experience in an object-oriented language such as C++ or Java, 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.
Exclusion: CSC139H1, 149H1, 150H1
Prerequisite: CSC107H1/108H1, two OACs from Calculus, Algebra & Geometry, Finite Mathematics


CSC150H1
Accelerated Introduction to Computer Science 39L, 13T, 12P

An accelerated course covering all the material of CSC148H1 and also object-oriented topics (classes, objects, methods and fields, and program design). Suitable for students with a solid programming background in Turing, C, Pascal or a similar language, who are willing to accept a heavier workload than in CSC108H1 and CSC148H1


CSC165H1
Mathematical Expression and Reasoning for Computer Science 13T, 26P

Introduction to abstraction and rigour. Understanding, using and developing precise expressions of mathematical ideas, including definitions and theorems. Informal introduction to logical notation and reasoning.
Prerequisite: CSC107H1/108H1 (may be replaced with CSC150H1 as co-requisite)
NOTE
To enrol in any CSC course at the 200-level or higher, you must have a cumulative GPA of at least 2.50 (3.00 for 300-and 400-level courses) or be enrolled in a subject POSt sponsored by the Department of Computer Science.


CSC209H1
Software Tools and Systems Programming 26L, 13T

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, network programming (e.g. sockets).
Exclusion: CSC372H1, 408H1, 418H1, 468H1
Prerequisite: CSC270H1; CGPA 2.5/enrolment in a CSC subject POSt


CSC228H1
File Structures and Data Management 26L, 13T

An introduction to 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. Techniques for organizing and managing files: serial files, direct files, indexed files, multikey files, integrated files, file systems. Introduction to data base management systems with emphasis on relational data base systems.
Prerequisite: CSC270H1; CGPA 2.5/enrolment in a CSC subject POSt


CSC230H1
Logical Specifications 26L, 13T

Logic and its use as a declarative language in computer science. Syntax and semantics of propositional and predicate calculus. Proving entailment and non-entailment rigorously. Formal derivations. Applications, including information systems, program verification, artificial intelligence, software engineering. Computational tools, including Prolog. Other logics.
Prerequisite: CSC107H1/108H1 and two OACs from Calculus, Algebra & Geometry, Finite Mathematics, CGPA 2.5/enrolment in a CSC subject POSt


CSC236H1
Introduction to the Theory of Computation 26L, 13T

The rigorous application of logic and proof techniques to Computer Science. Mathematical induction; correctness proofs for iterative and recursive algorithms; recurrence equations and their solutions; properties of languages.
Exclusion: CSC238H1
Prerequisite: CSC148H1/150H1, 165H1, CGPA 2.5/enrolment in a CSC subject POSt


CSC238H1
Discrete Mathematics for Computer Science 26L, 13T

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.
Exclusion: MAT246Y1, 309H1
Prerequisite: CSC148H1/150H1; CGPA 2.5/enrolment in a CSC subject POSt
Recommended preparation: MAT137Y1


CSC258H1
Computer Organization 26L, 9P, 10T

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.
Exclusion: CSC257H1 as given before 1985
Prerequisite: CSC148H1/150H1; CGPA 2.5/enrolment in a CSC subject POSt


CSC260H1
Introduction to Scientific, Symbolic, and Graphical Computation 26L, 13T

Problems in transforming continuous mathematical models to discrete computational models. Inadequacy of naive computer solutions, and techniques to remedy inadequacies. Symbolic computation, plotting, 3-D graphics, and conventional programming languages. Intended for students from computer science, sciences and mathematics: for computer scientists, introduction to design and implementation of robust algorithms; for scientists, techniques in transforming scientific problems into computational solutions; for mathematicians, insight into differences between mathematical models and computational solutions.
Exclusion: CSC160H1 as taught in Spring 1992; after taking CSC270H1 and any 300-/400-level CSC course, you may not take CSC260H1 without departmental permission in writing
Prerequisite: CSC107H1/108H1/computing experience, as from a good high school programming course; CGPA 2.5/enrolment in a CSC subject POSt
Co-requisite: MAT135Y1/137Y1/157Y1, 223H1/240H1


CSC270H1
Fundamental Data Structures and Techniques 26L, 13T

Standard programming methods, with an introduction to C and C++. Use of classes to represent abstract data types. Graph representation and graph algorithms. Simulation: data structures and program organization for event-driven models. Representation of floating-point numbers; introduction to numerical methods. Optimization using dynamic programming. Programming assignments stress both the proper use of abstract data types (lists, stacks, trees, heaps) and approaches to writing larger, more complex programs.
Prerequisite: CSC148H1/150H1; CGPA2.5/enrolment in a CSC subject POSt
Co-requisite: MAT133Y1/135Y1/137Y1/157Y1


CSC300H1
Computers and Society 26L, 13T

Privacy and Freedom of Information; recent Canadian legislation and reports. Computers and work; employment levels, quality of working life. Electronic fund transfer systems; transborder data flows. Computers and bureaucratization. Computers in the home; public awareness about computers. Robotics. Professionalism and the ethics of computers. The course is designed not only for science students, but also those in social sciences or humanities.
Exclusion: PSCD03H (Scarborough Campus)
Prerequisite: Any half-course on computing; CGPA 3.0/enrolment in a CSC subject POSt


CSC309H1
Programming on the Web 26L, 13T

An introduction to software development on the web. Concepts underlying the development of programs that operate on the web; survey of technological alternatives; greater depth on some technologies. Operational concepts of the internet and the web, static client content, dynamic client content, dynamically served content, n-tiered architectures, web development processes, and security on the web. Assignments involve increasingly more complex web-based programs. Guest lecturers from leading e-commerce firms will describe the architecture and operation of their web sites. 26L, 13T
Prerequisite: CSC209H1, 228H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC310H1
Information Theory 26L, 13T

Measuring information. The source coding theorem. Data compression using ad hoc methods and dictionary-based methods. Probabilistic source models, and their use via Huffman and arithmetic coding. Noisy channels and the channel coding theorem. Error correcting codes, and their decoding by algebraic and probabilistic methods.
Prerequisite: CSC260H1/270H1, STA (107H1, 250H1)/255H1/257H1, MAT 223H1/240H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC318H1
The Design of Interactive Computational Media 26L, 13T

User-centred design of interactive systems; methodologies, principles, and metaphors; task analysis. Interdisciplinary design; the role of graphic design, industrial design, and the behavioural sciences. Interactive hardware and software; concepts from computer graphics. Typography, layout, colour, sound, video, gesture, and usability enhancements. Classes of interactive graphical media;
direct manipulation systems, extensible systems, rapid prototyping tools. Students work on projects in interdisciplinary teams.
Enrolment limited, but non-computer scientists welcome.
Prerequisite: Any CSC half-course; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: CSC300H1 provides useful background for work in CSC318H1, so if you plan to take CSC300H1 then you should do it before CSC318H1


CSC320H1
Introduction to Visual Computing 26L, 13P

A unified introduction to image synthesis and image analysis aimed at students with an interest in computer graphics, computer vision or the visual arts. Focus on three major topics: (1) visual computing principles - computational and mathematical methods for creating, capturing, analyzing and manipulating digital photographs (raster algorithms, image acquisition, basic image processing, image warping, anti-aliasing); (2) digital special effects - applying these principles to create special effects found in movies and commercials; (3) visual programming - using C/C++ and OpenGL to create graphical user interfaces for synthesizing and manipulating photographs.
Prerequisite: CSC260H1/270H1, MAT223H1/240H1, CGPA 3.0/enrolment in a CSC subject POSt


CSC321H1
Introduction to Neural Networks and Machine Learning 26L, 13P

Supervised neural networks: the perceptron learning procedure, the backpropagation learning procedure and its applications. Elaborations of backpropagation: activation and error functions, improving speed and generalization, Bayesian approaches. Associative memories and optimization: Gibbs sampling, mean field search. Representation in neural networks: distributed representations, effects of damage, hierarchical representations. Unsupervised neural networks: competitive learning, Boltzmann machines, sigmoid belief nets.
Prerequisite: CSC270H1, MAT223H1/240H1, STA107H1/250H1/257H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC324H1
Principles of Programming Languages 26L, 13T

Major topics in the development of modern programming languages. Syntax specification, type systems, type interface, exception handling, information hiding, structural recursion, run-time storage management, and programming paradigms. Two non-procedural programming paradigms: functional programming (illustrated by languages such as Lisp, Scheme, ML or Haskell) and logic programming (illustrated by languages such as Prolog, XSB or Coral).
Exclusion: CSC248H1
Prerequisite: CSC238H1/MAT246Y1, CSC148H1/150H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC336H1
Numerical Methods 26L, 13T

The study of computational methods for solving problems in linear algebra, non-linear equations, approximation, integration, and ordinary differential equations. The aim is to give students a basic understanding of both floating-point arithmetic and the methods used to solve numerical problems as well as a familiarity with the types of subroutines found in typical software packages.
Exclusion: ACT323H1, 335H1, CSC350H1, 351H1
Prerequisite: CSC260H1/270H1, MAT133Y1(70%)/135Y/137Y/157Y, 223H/240H; CGPA 3.0/enrolment in a CSC subject POSt


CSC340H1
Information Systems Analysis and Design 26L, 13T

Theory, tools and techniques of information systems analysis and design. Topics include: theory of systems and organizations; structured analysis and design; user interface design.
Prerequisite: CSC228H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC343H1
Introduction to Databases 26L, 13T

Concepts, approaches, and techniques in data base management systems (DBMS): relational data bases, querying and updating a data base, query language SQL, data base constraints and data base design, elements of data base technology.
Exclusion: CSC434H1
Prerequisite: CSC209H1/228H1, 238H1, CGPA 3.0/enrolment in a CSC subject POSt


CSC350H1
Numerical Algebra and Optimization 26L, 13T

Floating-point arithmetic. The efficiency and stability of solution techniques for systems of linear equations and least squares problems, including LU- and QR-based methods. Eigenvalue and eigenvector calculations. Algorithms for systems of non-linear equations and optimization problems, including linear programming.
Exclusion: CSC336H1, ACT323H1, 335H1
Prerequisite: CSC260H1/270H1, MAT223H1/240H1, 237Y1/257Y1; CGPA 3.0/enrolment in a CSC subject POSt


CSC351H1
Numerical Approximation, Integration and Ordinary Differential Equations 26L, 13T

Analysis of methods for approximation, integration and the solution of ordinary differential equations. Emphasis on the convergence and stability properties of the algorithms, rather than on their implementation.
Exclusion: ACT323H1, 335H1, CSC336H1
Prerequisite: CSC350H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC354H1
Discrete-Event Simulation and Modelling 26L, 13T

Simulation and mathematical analysis of models of queuing systems. Concentration on dynamic, stochastic, discrete-event systems. Simulation topics: selecting input probability distributions, generating random numbers and random variates, output data analysis for one or more system configurations, variance reduction techniques. Analysis topics: queuing characteristics, transient and steady-state behaviour, performance measures, the M/M/1 queue in detail, some non-Markovian queues.
Prerequisite: CSC260H1/270H1, STA250H1/255H1/257H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC364H1
Computational Complexity and Computability 26L, 13T

General techniques for efficient algorithm design: greedy algorithms, dynamic programming; other topics may include network flow, linear programming, randomized algorithms. Introduction to complexity theory: models of computation, the classes P and NP, polynomial time reducibility and NP-completeness, provably hard problems. Introduction to the theory of computability: Church’s thesis, computable and noncomputable functions, reductions, the analogies between complexity and computability theory.
Prerequisite: CSC238H1/(MAT246Y1/247H1, plus some knowledge of programming); CGPA 3.0/enrolment in a CSC subject POSt


CSC372H1
Microprocessor Software 26L, 13T, 39P

Development of reliable efficient software for controlling and monitoring an environment. Concurrent programming techniques, such as interrupt handling, buffer management, polling and time outs. Projects use microprocessors to control equipment (such as a robot arm) and to read sensors. Design, implementation and testing of software using high level software, such as Turing or C.
Prerequisite: CSC209H1, ECE385H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC378H1
Data Structures and Algorithm Analysis 26L, 13T

Abstract 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.
Prerequisite: CSC270H1; CSC238H1/MAT246Y1/247H1, STA107H1/257H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC384H1
Introduction to Artificial Intelligence 26L, 13T

A 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. Assignments provide practical experience, both theory and programming, of the core topics. LISP or Prolog programming is required for at least one assignment.
Exclusion: CSC484H1
Prerequisite: CSC324H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC401H1
Natural Language Computing 26L, 13T

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; and multi-lingual systems including machine translation. N-grams, POS-tagging, semantic distance metrics, indexing, on-line lexicons and thesauri, markup languages, collections of on-line documents, corpus analysis. PERL and other software.
Prerequisite: CSC209H1/228H1, STA107H1/220H1/250H1/257H1; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: MAT223H1/240H1 is strongly recommended


CSC407H1
Software Architecture and Design 26L, 13T

An introduction to the development of system-level architectures and class-level object-oriented designs for software systems. Special emphasis on the study of architecture and design patterns: the core of solutions to commonly occurring design problems. Representations of design/architecture (with emphasis on the use of UML as a class-level design notation), architectural assessment, product lines, architecture extraction, and re-factoring. There is no major project, but there is a series of smaller design and architecture exercises requiring some programming. A knowledge of UML as used for requirements analysis and a working knowledge of both the C++ and Java languages are assumed.
Prerequisite: CSC340H1, 378H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC408H1
Software Engineering 26L, 13T

The structure and unique characteristics of large software systems. The software process and software project management including project planning, risk management, staffing and organizational issues. Review of requirements analysis and specification. Software development techniques, version control, configuration management, system construction tools. Software system testing and quality assurance. Software maintenance and product delivery strategies. A course project is used to illustrate software engineering techniques.
Prerequisite: CSC340H1, 378H1; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: Proficiency in C or C++; CSC209H1, 318H1, 407H1


CSC411H1
Machine Learning and Data Mining 26L, 13T

An introduction to methods for automated learning of relationships on the basis of empirical data. Classification and regression using nearest neighbour methods, decision trees, linear models, and neural networks. Clustering algorithms. Problems of overfitting and of assessing accuracy. Problems with handling large databases.
Prerequisite: CSC270H1; STA(107H1, 250H1)/255H1/261H1; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: CSC228H1


CSC412H1
Uncertainty and Learning in Artificial Intelligence 26L, 13T

Representing uncertain knowledge using probability and other formalisms. Qualitative and quantitative specification of probability distributions using graphical models. Algorithms for inference with graphical models. Statistical approaches and algorithms for learning models from experience. Application of these models in other areas of artificial intelligence and to problems such as medical diagnosis.
Prerequisite: CSC384H1, 411H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC418H1
Computer Graphics 26L, 13T

Identification and characterization of the objects manipulated in computer graphics, the operations possible on these objects, efficient algorithms to perform these operations, and interfaces to transform one type of object to another. Display devices, display data structures and procedures, graphical input, object modelling, transformations, illumination models, primary and secondary light effects; graphics packages and systems. Students, individually or in teams, implement graphical algorithms or entire graphics systems.
Prerequisite: CSC336H1/350H1/351H1/364H1/378H1, proficiency in C; MAT223H1/240H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC420H1
Introduction to Image Understanding 26L, 13P

Introduction to fundamental concepts in image understanding, the subdiscipline of artificial intelligence dealing with the automation of visual tasks by computer. Exploration of a number of real-world image interpretation problems, as motivation for key low- and intermediate-level vision algorithms. A course project will include the construction of a number of practical vision systems. Offered in winter 2004.
Prerequisite: CSC260H1/270H1, CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: CSC320H1


CSC428H1
Human-Computer Interaction 26L, 13T

Understanding human behaviour as it applies to user interfaces: work activity analysis, observational techniques, questionnaire administration and unobtrusive measures. Operating parameters of the human cognitive system, task analysis and cognitive modelling techniques and their application to designing interfaces. Interface representations and prototyping tools. Cognitive walkthroughs, usability studies and verbal protocol analysis. Case studies of specific user interfaces.
Prerequisite: CSC318H1; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: A course in PSY


CSC438H1
Computability and Logic 26L, 13T

Computable functions, Church’s thesis, unsolvable problems, recursively enumerable sets. Predicate calculus, including the completeness, compactness, and Lowenheim-Skolem theorems. Formal theories and the Gödel Incompleteness Theorem.
Exclusion: MAT309H1, PHL344H1
Prerequisite: CSC364H1/MAT247H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC443H1
Database System Technology 26L, 13T

Technology of a database management system: storage and memory management, query and transaction processing, parallel and distributed architectures. Modern application of database systems: data mining, data warehousing, OLAP, data on the web; object-oriented and object-relational systems.
Prerequisite: CSC343H1, 378H1, CGPA 3.0/enrolment in a CSC subject POSt


CSC446H1
Computational Methods for Partial Differential Equations 26L, 13T

Finite difference methods for hyperbolic and parabolic equations; consistency, convergence, and stability. Finite element methods for 2-point boundary value problems and elliptic equations. Special problems of interest.
Prerequisites: CSC351H1/(336H1 (75%))/equivalent mathematical background; MAT237Y1/257Y1; APM346H1/351Y1/(MAT244H1/267H1 and exposure to PDE’s); CGPA 3.0/enrolment in a CSC subject POSt


CSC448H1
Formal Languages and Automata 39L

Regular, deterministic, context free, context sensitive, and recursively enumerable languages via generative grammars and corresponding automata (finite state machines, push down machines, and Turing machines). Topics include complexity bounds for recognition, language decision problems and operations on languages.
Prerequisite: CSC364H1/MAT247H1; CGPA 3.0/enrolment in a CSC subject POSt


CSC454H1
The Business of Software 26L, 13T

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 of high-technology ventures; human resource management and development in high-technology industries. (Ordinarily offered in alternate years)
Prerequisite: Five CSC half-courses at the 200-level or higher; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: MGT120H1


CSC456H1
High-Performance Scientific Computing 26L, 13T

Computationally-intensive applications in science and engineering are implemented on the fastest 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. For students in computer science, applied mathematics, science, engineering.
Prerequisite: CSC350H1/(336H1 (75%))/equivalent mathematical background; CGPA 3.0/enrolment in a CSC subject POSt


CSC457H1
Case Studies in Scientific Computation 26L, 13T

Introduction to complex problem-solving in the pure and applied sciences using numerical methods and high performance computing. Several case studies from current active areas in scientific research are examined as applications of methods in the reduction and analysis of experimental data, numerical simulation of physical phenomena and computer visualization. Emphasis is placed on the optimization and parallelization of algorithms in computationally intensive problems.
Prerequisite: CSC350H1, 351H1/equivalent experience; CGPA 3.0/enrolment in a CSC subject POSt


CSC458H1
Computer Networks 26L, 13T

Computer communication network design and operation. Representation of information on physical channels; error detection and recovery; local area networks; deadlock and congestion avoidance; internetworking and gateways; network naming and addressing; remote procedures. Emphasis on fundamental principles rather than case studies, but with examples from real networks.
Prerequisite: CSC258H1, 354H1/364H1/372H1/378H1/ECE385H1; STA250H1/255H1/257H1/(80% in STA220H1/ECO220Y1); CGPA 3.0/enrolment in a CSC subject POSt


CSC465H1
Formal Methods in Software Design 26L, 13T

The use of logic as an aid to programming. Formal semantics of programming languages: imperative programs, functional programs, parallel processes, communicating processes. Partial and total correctness. Refinement theorems: by steps, by parts, by cases. Semantics of recursion and the least-fixed-point construction; monotonicity, continuity. Semantics of data types; data refinement.
Prerequisite: CSC238H1/MAT309H1; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: CSC364H1


CSC468H1
Operating Systems 26L, 13T

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.
Prerequisite: CSC258H1, 209H1/knowledge of concurrent programming; CGPA 3.0/enrolment in a CSC subject POSt


CSC485H1
Computational Linguistics 26L, 13T

Computational linguistics and the understanding of language by computer. Augmented context-free grammars, chart parsing, parsing in Prolog. Semantics and semantic interpretation. Ambiguity resolution techniques. Statistical parsing and learning methods for lexical, syntactic and semantic knowledge. Discourse structure and reference resolution.
Prerequisite: CSC324H1/experience in Lisp or Prolog; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: Suggested background includes substantial programming experience and either a course in AI, such as CSC384H1, or a Linguistics course in syntax or semantics


CSC486H1
Knowledge Representation and Reasoning 26L, 13T

Representing knowledge symbolically in a form suitable for automated reasoning, and associated reasoning methods: first-order logic, entailment, the resolution method, Horn clauses, procedural representations, production systems, description logics, inheritance networks, defaults and probabilities, tractable reasoning, abductive explanation, the representation of action, planning.
Prerequisite: CSC384H1; CGPA 3.0/enrolment in a CSC subject POSt
Co-requisite: CSC438H1/MAT309H1/PHL344H1


CSC487H1
Computational Vision 26L, 13T

Introduction to vision, visual processes, and image understanding. Brief biological motivation for computational vision. 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. Active vision methods such as visual attention and interpretation-guided imaging system geometry changes. Object recognition. Applications of visual systems.
Prerequisite: CSC384H1, MAT235Y1/237Y1/257Y1; CGPA 3.0/enrolment in a CSC subject POSt


CSC488H1
Compilers and Interpreters 26L, 13T

Compiler organization, compiler writing tools, use of regular expressions, finite automata and context-free grammars, scanning and parsing, runtime organization, semantic analysis, implementing the runtime model, storage allocation, code generation.
Prerequisite: CSC258H1, 324H1, 378H1; CGPA 3.0/enrolment in a CSC subject POSt
Recommended preparation: Proficiency in C


CSC494H1/495H1
Computer Science Project

TBA
This half-course involves a significant project in any area of Computer Science. The project may be undertaken individually or in small groups. The course is offered by arrangement with a Computer Science faculty member.
Prerequisite: Three 300-level Computer Science half-courses, a CGPA of 3.00 (2.50 for students in a CSC program), and permission of the Undergraduate Coordinator


Calendar Home ~ C ale ndar Contents~ Contact Us ~ Arts and Science Home
Copyright © 2002, University of Toronto

Calendar Home ~ C ale ndar Contents~ Contact Us ~ Arts and Science Home
Copyright © 2002, University of Toronto