|
Computer Science
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 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 Management and Organizational Studies students. | Antirequisite(s): All Computer Science courses numbered 200 or higher and the former Computer Science 031a/b. | 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. | Prerequisite(s): Engineering Science 036a/b or the former 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 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): Software Engineering 250a/b and the former Software Engineering 201a/b. | 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 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. | 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 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 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): ECE 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 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 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 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 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 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/y, 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/y | 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 |
|
|