Academic Calendar 2006 (old)» UNDERGRADUATE COURSE INFORMATION» Computer Science
print preview

Computer Science

Computer Science Courses
 
025a/b026a/b027a/b031a/b032a/b033a/b037a/b
208a/b209a/b210a/b211a/b212a/b/y305a/b307a/b/y
319a/b320a/b325a/b331a/b333a/b/y334a/b/y335a/b/y
336a/b/y340a/b342a/b346a/b350a/b357a/b374a/b
377a/b380F/G/Z388a/b402a/b411a/b412a/b413a/b
424a/b432a/b433a/b/y434a/b/y435a/b/y436a/b/y437a/b/y
438a/b/y442a/b444a/b445a/b447a/b457a/b/y460Z
461a/b462a/b463a/b470y471a/b472a/b473a/b
474a/b480y481a/b482a/b483a/b488a/b490Z

Computer Science 025a/b, Computer Science Fundamentals I
Description: The nature of Computer Science as a discipline; the design and analysis of algorithms and their implementation as modular, reliable, well-documented programs written in an object-oriented language (Java). Intended for students with significant programming experience in at least one high-level block-structured or object-oriented language.
Antirequisite(s): Computer Science 026a/b, Engineering Science 036a/b, the former Computer Science 036a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 026a/b, Computer Science Fundamentals I
Description: The nature of Computer Science as a discipline; the design and analysis of algorithms and their implementation as modular, reliable, well-documented programs written in an object-oriented language (Java). Intended for students with little or no background in programming.
Antirequisite(s): Computer Science 025a/b, Engineering Science 036a/b, the former Computer Science 036a/b.
3 lecture hours, 2 laboratory/tutorial hours, 0.5 course.
back to top

Computer Science 027a/b, Computer Science Fundamentals II
Description: A continuation for both Computer Science 025a/b and Computer Science 026a/b. Data organization and manipulation; abstract data types and their implementations in an object-oriented setting (Java); lists, stacks, queues, trees; pointers; recursion; file handling and storage.
Antirequisite(s): Computer Science 037a/b, the former Computer Science 226a/b.
Prerequisite(s): Computer Science 025a/b or Computer Science 026a/b.
3 lecture hours, 1 laboratory/tutorial hour, 0.5 course.
back to top

Computer Science 031a/b, Introduction to Computing and Communications Software.
Description: An introduction to computer-based problem solving for personal and professional computing environments. The basics of computer organization, electronic communications, networks, security, information storage and retrieval, systems analysis and design. Practical experience with word processing, spreadsheet, and database packages, and with the Internet.
Antirequisite(s): Computer Science 032a/b, and all Computer Science courses numbered 200 or higher.
3 lecture hours, 0.5 course.
To be withdrawn September 2007.
back to top

Computer Science 032a/b, Information Systems and Design
Description: Techniques used for determining technological needs of businesses; building and managing systems to meet those needs; development roles of individuals and organizations; planning and management of concepts, personnel and processes; related software tools (spreadsheets, databases). Intended primarily for Administrative and Commercial Studies students.
Antirequisite(s): Computer Science 031a/b, the former Computer Science 179a/b, and all Computer Science courses numbered 200 or higher.
3 lecture hours, 0.5 course.
back to top

Computer Science 033a/b, Multimedia and Communication
Description: This course explores the use of different types of media (e.g., text, images, sound, animation) to convey ideas and facilitate interaction. Topics include the design and use of a range of software tools for media creation and editing, covering image, sound, animation and video. This knowledge will be applied to authoring web sites.
Antirequisite(s): All Computer Science courses numbered 200 or higher.
2 lecture hours, 2 laboratory/tutorial hours, 0.5 course.
back to top

Computer Science 037a/b, Computer Science Fundamentals II
Description: A continuation for Engineering Science 036a/b and the former Computer Science 036a/b. Data organization and manipulation; abstract data types and their implementations in an object-oriented setting (C++); lists, stacks, queues, trees; pointers; recursion; file handling and storage. Intended for students in the Faculty of Engineering.
Antirequisite(s): Computer Science 027a/b, the former Computer Science 226a/b.
Prerequisite(s): Computer Science 036a/b.
3 lecture hours, 1 laboratory/tutorial hour, 0.5 course.
back to top

Computer Science 208a/b, Fundamentals of Computer Organization
Description: Computer architecture; data representations; hardware; memory management; instruction sets; exposure to an assembly language for a RISC machine; assembly and linking.
Prerequisite(s): Computer Science 027a/b with at least 60%.
3 lecture hours, 1 laboratory hour, 0.5 course.
back to top

Computer Science 209a/b, Applied Logic for Computer Science
Description: Propositional and predicate logic; representing static and dynamic properties of real-world systems; logic as a tool for representation, reasoning and calculation; logic and programming.
Prerequisite(s): Computer Science 027a/b and one full course or equivalent chosen from the following: Mathematics 030, Applied Mathematics 026, Calculus 050a/b, 051a/b, 081a/b, Linear Algebra 040a/b, or permission of the Department.
4 lecture hours, 0.5 course.
back to top

Computer Science 210a/b, Data Structures and Algorithms.
Description: Lists, stacks, queues, priority queues, trees, graphs, and their associated algorithms; file structures; sorting, searching, and hashing techniques; time and space complexity.
Antirequisite(s): The former Software Engineering 202a/b.
Prerequisite(s): Computer Science 027a/b with at least 60%, and one full course or equivalent, chosen from the following: Mathematics 030, Applied Mathematics 026, Calculus 050a/b, 051a/b, 081a/b, Linear Algebra 040a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 211a/b, Software Tools and Systems Programming.
Description: An introduction to software tools and systems programming. Topics include: understanding how programs execute (compilation, linking and loading); an introduction to a complex operating system (UNIX); scripting languages; the C programming language; system calls; memory management; libraries; multi-component program organization and builds; version control; debuggers and profilers.
Antirequisite(s): The former Software Engineering 201a/b, Engineering Science 250a/b, the former Computer Science 201.
Prerequisite(s): Computer Science 027a/b with at least 60%.
3 lecture hours, 0.5 course.
back to top

Computer Science 212a/b/y, Introduction to Software Engineering
Description: A team project course that provides practical experience in the software engineering field. Introduction to the structure and unique characteristics of large software systems, and concepts and techniques in the design, management and implementation of large software systems.
Antirequisite(s): Software Engineering 350y.
Prerequisite(s): Computer Science 210a/b and 211a/b.
3 lecture/tutorial hours, 0.5 course
back to top

Computer Science 305a/b, Operating Systems
Description: Survey of major operating systems; interprocess communication; multi-tasking; scheduling; memory management; performance and measurement issues; trade-offs in operating system design; concurrency and deadlock.
Prerequisite(s): One of (Computer Science 208a/b, and 212a/b/y) or (Computer Science 210a/b, SE 203a/b, 250a/b) or (Computer Science 208a/b, 210a/b, and 211a/b, and registration in the fourth year of the BESc program in Computer Engineering.)
3 lecture hours, 0.5 course.
back to top

Computer Science 307a/b/y, Object-Oriented Design and Analysis
Description: Software design and analysis techniques with particular emphasis on object-oriented design and analysis; a team project will be developed using an object-oriented language such as Java, C++ or Smalltalk.
Antirequisite(s): SE 203a/b, 352a/b
Prerequisite(s): Either (Computer Science 209a/b, and 212a/b/y) or (Computer Science 208a/b, 210a/b, 211a/b, and registration in the fourth year of the BESc program in Computer Engineering.)
3 lecture hours, 0.5 course.
back to top

Computer Science 319a/b, Databases I
Description: A comparative study of hierarchical, network and relational databases. A survey of some commercially available database systems. Database standards; security and integrity, database administration; database design; concurrency control.
Antirequisite(s): Software Engineering 352a/b
Prerequisite(s): Computer Science 210a/b and Computer Science 211a/b, or the former Computer Science 201.
3 lecture hours, 0.5 course.
back to top

Computer Science 320a/b, Numerical Computing I
Description: Numerical representations and their impact on numerical computing; error analysis. Numerical algorithms; reliability and portability of mathematical software; review of existing packages.
Prerequisite(s): Computer Science 212a/b/y; one full course or equivalent, chosen from the following: Mathematics 030, or Calculus 050a/b, plus one of the following: Calculus 051a/b, 081a/b, Linear Algebra 040a/b, Mathematics 028a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 325a/b, Law in Computer Science
Description: An examination of aspects of law and policy that relate to the creation, protection and implementation of software and hardware; attention is directed towards issues of current importance of which every computer scientist should be aware.

Note: Cannot be taken for credit by students in the concurrent degree program in Law and Computer Science.
Antirequisite(s): Computer Science 333a if taken in Winter 1999, 2000 or 2001; Computer Science 333b if taken in Winter 2002.
Prerequisite(s): Registration in the third or fourth year of a program in Computer Science
3 lecture hours, 0.5 course.
back to top

Computer Science 331a/b, Foundations of Computer Science I
Description: Languages as sets of strings over an alphabet; operations on languages; finite automata, regular expressions; language hierarchy; Turing machines; models of computation.
Prerequisite(s): (Mathematics 223b), or (registration in the third or fourth year of an honors program that combines Computer Science and another mathematical science), or (Software Engineering 251a/b and registration in the third year of the BESc program in Software Engineering).
3 lecture hours, 0.5 course.
back to top

Computer Science 333a/b/y, Selected Topics
Description: Special topics on the frontiers of Computer Science. The topic may vary each year.
Prerequisite(s): Computer Science 208a/b, 209a/b, 212a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 334a/b/y, Selected Topics
Description: Special topics on the frontiers of Computer Science. The topic may vary each year.
Prerequisite(s): Computer Science 208a/b, 209a/b, 212a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 335a/b/y, Selected Topics
Description: Special topics on the frontiers of Computer Science. The topic may vary each year.
Prerequisite(s): Computer Science 208a/b, 209a/b, 212a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 336a/b/y, Selected Topics
Description: Special topics on the frontiers of Computer Science. The topic may vary each year.
Prerequisite(s): Computer Science 208a/b, 209a/b, 212a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 340a/b, Analysis of Algorithms I
Description: Upper and lower time and space bounds; levels of intractability; graph algorithms; greedy algorithms; dynamic algorithms; exhaustive search techniques; parallel algorithms.
Prerequisite(s): Either (Computer Science 210a/b and 211a/b) or (Computer Science 210a/b, SE 203a/b, 250a/b); Mathematics 223b, or SE 251a/b, or registration in the third or fourth year of an honors program that combines Computer Science and another Mathematical Science, or registration in the fourth year of the BESc program in Computer Engineering.
3 lecture hours, 0.5 course.
back to top

Computer Science 342a/b, Organization of Programming Languages
Description: Specification and analysis of programming languages; data types and structures; bindings and access structures; run-time behavior of programs; compilation vs. interpretation. Comparative presentation of at least three programming languages addressing the above concepts.
Antirequisite(s): SE 352a/b.
Prerequisite(s): Either (Computer Science 208a/b and 212a/b/y) or (Computer Science 208a/b, 210a/b and 211a/b and registration in the fourth year of the BESc program in Computer Engineering).
3 lecture hours, 0.5 course.
back to top

Computer Science 346a/b, Artificial Intelligence I
Description: Introduction to Artificial Intelligence; logic programming; heuristic search; knowledge representation; expert systems.
Prerequisite(s): Either (Computer Science 210a/b and 211a/b) or (Computer Science 210a/b, SE 203a/b, 250a/b); Computer Science 209a/b, or registration in the BESc program in Computer Engineering or Software Engineering.
3 lecture hours, 0.5 course.
back to top

Computer Science 350a/b, Computer Architecture
Description: Topics include: semiconductor technologies, gates and circuits, buses, semiconductor memories, peripheral interfaces, I/O techniques, A/D conversion, standards, RISC.
Antirequisite(s): Engineering Science 375a/b.
Prerequisite(s): Computer Science 208a/b, 209a/b, 210a/b, 211a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 357a/b, Computer Networks I
Description: Common network protocols; inter-networking; gateways; routers; bridges; survey of commercial architectures; standards.
Antirequisite(s): Engineering Science 436a/b.
Prerequisite(s): Either (Computer Science 208a/b, 210a/b and 211a/b) or (Computer Science 210a/b, SE 203a/b, 250a/b).
3 lecture hours, 0.5 course.
back to top

Computer Science 374a/b, Design for Interactive Multimedia Learning
Description: Design for Interactive Multimedia Learning Theoretical and practical aspects related to human learning; how to design interactive multimedia technologies to support learning and knowledge construction; examination of various interactive multimedia learning environments; strategic approaches to educational multimedia design, and presentation design. Students design a scaled-down educational multimedia environment. Note: Same course as Media, Information and Technoculture 334a/b.
Antirequisite(s): MIT 334a/b; Computer Science 333b if taken in Winter 2001; Computer Science 335b if taken in Winter 2002.
Prerequisite(s): Computer Science 212a/b/y.
2 lecture hours, 2 laboratory/tutorial hours, 0.5 course.
back to top

Computer Science 377a/b, Software Project Management
Description: The software development life cycle; resourcing, scheduling and estimating techniques for software project management; project management organizational concerns, including project economic analysis, human resources, proposal development, risk management, software implementation, and technology-strategic alignment.
Antirequisite(s): SE 351a/b.
Prerequisite(s): Computer Science 212a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 380F/G/Z, Project
Description: A supervised study involving a research paper, the design of or development of a software project.
Antirequisite(s): Computer Science 480y, 490Z, the former Computer Science 380a/b/y, 490y.
Prerequisite(s): Permission from the department, plus: Computer Science 212a/b/y and registration in a general program or combined program, or an honors combined program in Computer Science. To be allowed into this course, the student must have found a topic and a willing departmental supervisor before the end of the add period.
No scheduled lecture or laboratory periods, 0.5 course.
back to top

Computer Science 388a/b, Computer Graphics I
Description: Graphics primitives. The viewing pipeline; clipping and visibility problems. The graphical kernel system; picture generation and user interfaces.
Prerequisite(s): Either (Computer Science 212a/b/y) or (Computer Science 210a/b, SE 203a/b, 250a/b); Mathematics 030 or Linear Algebra 040a/b or Applied Mathematics 025a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 402a/b, Distributed and Parallel Systems
Description: Issues arising in distributed and parallel systems and applications; related architectures such as connection machines, shared memory multiprocessors.
Antirequisite(s): Software Engineering 466a/b.
Prerequisite(s): Computer Science 305a/b, Computer Science 350a/b, and Computer Science 357a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 411a/b, Databases II
Description: A selection from the following topics: dependency theory; object-oriented databases; distributed databases and related algorithms; database hardware; information retrieval.
Prerequisite(s): Computer Science 307a/b/y, Computer Science 319a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 412a/b, Data Mining and its Applications
Description: Databases and data warehouses; on-line analytic processing (OLAP); applications of data mining in business intelligence, e-business, and bioinformatics; various inductive learning algorithms; clustering and learning associations; solving real-world problems with data mining.
Antirequisite(s): Computer Science 435a if taken in Winter 2002.
Prerequisite(s): Computer Science 319a/b and 346a/b; Statistical Sciences 222a/b or 241a/b or Biology 244a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 413a/b, Cryptography and Security
Description: Survey of the principles and practice of cryptography and network security: classical cryptography, public-key cryptography and cryptographic protocols, network and system security.
Antirequisite(s): Computer Science 434b if taken in Winter 2001 or 2002.
Prerequisite(s): Computer Science 340a/b, Mathematics 223b.
3 lecture hours, 0.5 course.
back to top

Computer Science 424a/b, Foundations of Computer Algebra
Description: Introduction to computer algebra, algorithms and data structures for integer and polynomial arithmetic, symbolic differentiation and integration, type systems for computer algebra, mathematical communication, software systems including Maple and MathML.
Antirequisite(s): The former Computer Science 422a/b.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or in one of the Mathematical Sciences.
3 lecture hours, 0.5 course.
back to top

Computer Science 432a/b, Foundations of Computer Science II
Description: Formal languages; recursive functions; abstract complexity; automaton models; array machines; systolic systems; cellular automata.
Prerequisite(s): Computer Science 331a/b or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 433a/b/y, Selected Topics
Description: Advanced Computer Science topics, reflecting current research interests within the Department. The particular topics will be available from the Department prior to registration.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or a combined program with Computer Science, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 434a/b/y, Selected Topics
Description: Advanced Computer Science topics, reflecting current research interests within the Department. The particular topics will be available from the Department prior to registration.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or a combined program with Computer Science, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 435a/b/y, Selected Topics
Description: Advanced Computer Science topics, reflecting current research interests within the Department. The particular topics will be available from the Department prior to registration.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or a combined program with Computer Science, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 436a/b/y, Selected Topics
Description: Advanced Computer Science topics, reflecting current research interests within the Department. The particular topics will be available from the Department prior to registration.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or a combined program with Computer Science, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 437a/b/y, Selected Topics
Description: Advanced Computer Science topics, reflecting current research interests within the Department. The particular topics will be available from the Department prior to registration.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or a combined program with Computer Science, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 438a/b/y, Selected Topics
Description: Advanced Computer Science topics, reflecting current research interests within the Department. The particular topics will be available from the Department prior to registration.
Prerequisite(s): Registration in the fourth year of a program in Computer Science or a combined program with Computer Science, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 442a/b, Artificial Intelligence II
Description: A selection from: first order logic and theorem proving; computational linguistics; computer vision; robotics; knowledge acquisition; machine learning.
Prerequisite(s): Computer Science 346a/b or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 444a/b, Semantics of Programming Languages
Description: Operational, denotational, and axiomatic semantics; lambda-calculus.
Prerequisite(s): Computer Science 209a/b and Computer Science 331a/b, or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 445a/b, Analysis of Algorithms II
Description: Parallel, distributed, probabilistic, and geometric algorithms; design and analysis; computational geometry; fractals and graphtals.
Prerequisite(s): Computer Science 340a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 447a/b, Compiler Theory
Description: Syntax-directed translation; LR(k), LL(k), attribute grammars; code generation; optimization; compiler compilers; code generator generators.
Prerequisite(s): Computer Science 208a/b, 212a/b/y, 331a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 457a/b/y, Computer Networks II
Description: Network layering, performance, management, modelling and simulation; faults and failures.
Prerequisite(s): Computer Science 305a/b, Computer Science 357a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 460Z, Bioinformatics Thesis
Description: A project or research paper in an area related to bioinformatics, completed under faculty supervision. An oral presentation plus a written submission will be required.
Antirequisite(s): Computer Science 380F/G/Z, 470y, 480y, 490Z, the former Computer Science 380a/b/y, 490y.
Prerequisite(s): Registration in Year 4 of the Honors BSc program in Computer Science with Bioinformatics Specialization.
3 lecture hours, 0.5 course.
back to top

Computer Science 461a/b, Bioinformatics Tools and Applications
Description: Introduction to popular bioinformatics software tools and their applications in solving complex biological problems; analysis of the algorithms behind bioinformatics tools.
Antirequisite(s): Biochemistry 445F/G, the former Biochemistry 445a/b.
Prerequisite(s): Computer Science 331a/b and 340a/b; Biochemistry 280a is recommended.
3 lecture hours, 0.5 course.
back to top

Computer Science 462a/b, DNA Computing
Description: Biomolecular (DNA) computing is a computation paradigm that proposes the use of molecular biology tools to solve mathematical and computational problems. Ways of encoding information in DNA sequences; molecular procedures used for computation; classes of problems solvable by DNA computing; feasibility and advantages of a DNA computer.
Prerequisite(s): Computer Science 209a/b and 331a/b; Biochemistry 280a is recommended.
3 lecture hours, 0.5 course.
back to top

Computer Science 463a/b, Computational Biology
Description: Bioinformatics studies biological problems using biological, computational, and mathematical methods. Computational biology studies computational techniques that can solve biological problems efficiently. This course emphasizes the design, analysis and implementation of algorithms for problems motivated from molecular biology research.
Prerequisite(s): Computer Science 331a/b and 340a/b; Biochemistry 280a is recommended.
3 lecture hours, 0.5 course.
back to top

Computer Science 470y, Software Maintenance and Configuration Management
Description: An examination of industrial-style software development issues related to managing and maintaining large-scale software systems; in a group project, students will examine software maintenance and configuration management concepts, tools, techniques, risks and benefits; case studies.
Antirequisite(s): Computer Science 480y, 490Z, Software Engineering 453a/b, the former Computer Science 490y.
Prerequisite(s): Registration in Year 4 of either the Honors BSc program in Computer Science with Software Engineering Specialization, or the Four Year General BSc program in Computer Science with Software Engineering Specialization.
2 lecture hours, 0.5 course.
back to top

Computer Science 471a/b, Software Design and Architecture
Description: Introduction to advanced software design concepts; architectures of complex software systems; domain-independent design patterns; creation of a functional partitioning for a novel domain; recognition of common architectural idioms.
Prerequisite(s): Computer Science 307a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 472a/b, Specification, Testing and Quality Assurance
Description: Concepts and state of the art techniques in software specification and quality assessment for software engineering; quality attributes; formal specification and analysis; verification and validation.
Antirequisite(s): Software Engineering 452a/b, Software Engineering 453a/b.
Prerequisite(s): Computer Science 307a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 473a/b, Requirement Analysis
Description: The development of requirements for software-intensive systems through successful requirements analysis techniques and requirements engineering; an in-depth study of methods, tools, notations, and validation techniques for the analysis and specification of software requirements.
Antirequisite(s): Software Engineering 452a/b
Prerequisite(s): Computer Science 307a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 474a/b, Human-Computer Interaction
Description: Exposure to topics in human-computer interaction, including: frameworks for human-computer interaction; requirements gathering; rapid prototyping; user interface systems and tool kits.
Antirequisite(s): Software Engineering 353a/b
Prerequisite(s): Computer Science 307a/b/y.
3 lecture hours, 0.5 course.
back to top

Computer Science 480y, Game Development Project
Description: Industrial-style development issues related to the creation of games of commercial scale and quality, both for entertainment and serious game applications; in a group project, students will examine concepts, theories, tools, technologies, and techniques for code and content generation for modern games.
Antirequisite(s): Computer Science 380F/G/Z, 460Z, 470y, 490Z, the former Computer Science 380a/b/y, 490y
Prerequisite(s): Registration in the Minor in Game Development
Corequisite(s): Computer Science 482a/b, 483a/b
2 lecture hours, 0.5 course
back to top

Computer Science 481a/b, Image Compression
Description: Dealing with digital pictures (images) requires far more computer memory and transmission time than is needed for plain text. This course provides students with a solid understanding of the fundamentals and the principles of various digital still-image compression schemes.
Antirequisite(s): Computer Science 433b if taken in Winter 1999, 2000, or 2001; Computer Science 433a if taken in Winter 2002.
Prerequisite(s): Computer Science 307a/b/y or permission of the Department.
3 lecture hours, 0.5 course.
back to top

Computer Science 482a/b, Game Engine Development
Description: Core concepts and techniques of real-time rendering and physical simulation as applied to the development of interactive game and simulation software. Topics from: real-time programming, indoor and outdoor rendering algorithms, character animation, vertex and pixel shaders, shading models, real-time shadows, procedural methods, simulation of classical mechanics, numerical integration, threaded programming.
Antirequisite(s): Computer Science 438a if taken in W05
Prerequisite(s): Computer Science 305a/b, 307a/b, 340a/b, 388a/b
3 lecture hours, 0.5 course
back to top

Computer Science 483a/b, Game Design
Description: Concepts and issues that arise in the development of games for entertainment and serious game applications, focusing on providing players with more engaging, immersive, and rewarding gameplay experiences. Group project normally required.
Antirequisite(s): Computer Science 437b if taken in W03, 04 or 05
Prerequisite(s): Computer Science 307a/b
3 lecture hours, 0.5 course
back to top

Computer Science 488a/b, Computer Graphics II
Description: Geometric modelling; boundary and solid representations; spline curves and surfaces. Principles of animation, illumination and rendering.
Prerequisite(s): Computer Science 388a/b.
3 lecture hours, 0.5 course.
back to top

Computer Science 490Z, Thesis
Description: A project or research paper completed with minimal faculty supervision. An oral presentation plus a written submission will be required.
Antirequisite(s): Computer Science 380F/G/Z, 470y, 480y, the former Computer Science 380a/b/y, 490y.
Prerequisite(s): Registration in Year Four of an honors program in Computer Science or combined program with Computer Science.
No scheduled lecture or laboratory periods, 0.5 course.
back to top
Academic Calendar 2006 (old)» UNDERGRADUATE COURSE INFORMATION» Computer Science