Students must check to ensure that prerequisites are met. Students may be deregistered, at the request of the instructor, from any course for which prerequisites and/or restrictions have not been met.
APPLIED COMPUTING COURSES
*APCO 1P00
Introduction to Media Computation
(also offered as IASC 1P00)
Programming by example, designing and debugging of programs, encoding and manipulation of text and graphics, file processing, simple HTML and automatic generation, and manipulating and parsing of web pages.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Restriction: not open to COSC (single or combined), BCB, CAST, CNET and DASA majors.
Note: prior computer experience is not required. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
*APCO 1P01
Fluency With Technology
(also offered as IASC 1P01)
Skills, concepts and capabilities of computers, networks and the Internet. Topics include representation of information, current hardware, software and network technologies, modelling with Excel, presentations with PowerPoint, Internet searching and basic web page development with HTML.
Lectures, 3 hours per week; lab, 2 hours per week.
Restriction: not open to COSC (single or combined), BCB, CAST, CNET and DASA majors.
Note: some prior computer experience is preferred but not required. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
#APCO 1P30
Programming for Interactive Media
(also offered as IASC 1P30)
Introduction to contemporary programming syntax including for classes, functions, properties and events for developing interactive media applications.
Lab, 4 hours per week.
Restriction: open to IASC (single or combined) and GAMD majors until date specified in Registration guide. Not open to COSC (single or combined), BCB, CAST, CNET and DASA majors.
Note: enrolment limited to 60 students. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
#APCO 1P50
Integrity and Literacy in the Information Age
(also offered as COSC 1P50 and IASC 1P50)
Issues in use of information technology including historic and social perspectives; legal, ethical and moral issues; intellectual property, licensing and copyright; privacy and freedom of expression; professional conduct and information literacy.
Lectures, 3 hours per week; seminar, 1.5 hours per week.
Note: this course involves seminars and considerable written work. A good command of written and spoken English is required. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
*APCO 1P93
Applied Programming
(also offered as IASC 1P93)
Modern software techniques including problem solving and design of effective algorithms, structured program design methodology, subprogram library usage, documentation, correctness, floating-point arithmetic and error analysis.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Restriction: not open to COSC (single or combined), BCB, CAST, CNET and DASA majors.
Prerequisite(s): APCO 1P00 or 4U Mathematics credit.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
*APCO 2P11
Personal Computers and Networks
(also offered as IASC 2P11)
Inner workings of modern computers from a user's point of view. Understanding the hardware, network and system software. Topics include CPUs, memory, video, input/output, networks, security, installation of operating systems and hands-on trouble shooting.
Lectures, 3 hours per week; lab, 3 hours per week.
Restriction: open to APCO minors until date specified in Registration guide.
Prerequisite(s): APCO 1P01 (minimum 60 percent) or COSC 1P02.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in APCO 2P01.
#APCO 2P61
Website Creation
(also offered as STAC 2P61 and VISA 2P61)
Creative approaches to basic technical and design foundations of website design and development. Processing and management of images and other media assets, structuring websites, development tools and applications, web hosting and dissemination strategies. Contemporary web-based art practices within the broader history of cultural production.
Lectures, lab, 5 hours per week.
Restriction: open to STAC, VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide. After that date open to STAC, VISA (single or combined), VISA (Honours)/BEd (Intermediate/Senior) majors and APCO minors.
Prerequisite(s): VISA 1P95 (minimum 60 percent) and 1P96 (minimum 60 percent) or permission of the instructor.
Note: students will need additional materials, which they must supply. Field trips may be required. Students are expected to pay their own expenses. VISA 1P95 recommended. Due to space limitations, audits are not permitted in studio classes. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
#APCO 2P89
Internet Technologies
(also offered as COSC 2P89 and IASC 2P89)
Concepts and techniques for building and maintaining advanced interactive Web sites. Topics include XML and SGML, database connectivity and forms handling, basic animation, graphics optimization for the Web, scripting, advanced searching and Web design for accessibility.
Lectures, 3 hours per week; lab/seminar, 2 hours per week.
Prerequisite(s): APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent) or COSC 1P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
APCO 2P99
Project in Applied Computing
Development project in computing, Internet programming or directed reading essay under the supervision of a faculty member.
Prerequisite(s): two APCO credits (minimum 70 percent).
Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. Further information (including project guidelines and project list) is available on the department Web pages. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
#APCO 3P94
Human Computer Interaction
(also offered as COSC 3P94 and IASC 3P94)
Human factors in the design and support of computing systems. Design methodologies such as GOMS, TAGs and Task Analysis. Design principles relating to various interaction paradigms.
Lectures, 3 hours per week; lab/seminar, 2 hours per week.
Prerequisite(s): two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COMPUTER SCIENCE COURSES
COSC 1P02
Introduction to Computer Science
Foundations of Computer Science and computer programming in a high-level language. Topics include computer fundamentals, representation of information, problem solving and software development, programming language syntax and semantics, methods, input/output, control structures and data types.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Note: This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 1P03
Introduction to Data Structures
Programming and problem solving in a high-level programming language. Data structures including arrays and linked-lists. Modularity, abstraction and abstract data types including stacks, queues and lists. Introduction to searching and sorting, recursion, algorithm analysis and object-orientation.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Prerequisite(s): COSC 1P02 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
*COSC 1P50
Integrity and Literacy in the Information Age
(also offered as APCO 1P50 and IASC 1P50)
Issues in use of information technology including historic and social perspectives; legal, ethical and moral issues; intellectual property, licensing and copyright; privacy and freedom of expression; professional conduct and information literacy.
Lectures, 3 hours per week; seminar, 1.5 hours per week.
Note: this course involves seminars and considerable written work. A good command of written and spoken English is required. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 1P71
Essentials of Artificial Intelligence
Introductory, non-technical survey of artificial intelligence (AI) basics. Historical review of AI, from early approaches to contemporary technologies. Critical overview of successes and limitations. Ethical ramifications of AI, including its risks and safety, impact on society, industry, science, as well as problems arising from bias and misuse.
Lectures, 3 hours per week
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2P03
Advanced Data Structures
Implementation and use of advanced data structures including trees, graphs, hash tables and advanced list structures, sorting and searching, recursion and traversals. Analysis of algorithms.
Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week.
Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors.
Prerequisite(s): COSC 1P03 (minimum 60 percent), MATH 1P66 and 1P67.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2P05
Programming Languages
Fundamental concepts of programming languages including syntax, semantics, program translation, virtual machines, control, data types, multi-threading, exception handling and abstraction mechanisms. Introduction to programming paradigms including imperative, applicative, logic and object-oriented.
Lectures, 3 hours per week.
Prerequisite(s): COSC 2P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 2P90 and 3P05.
#COSC 2P08
Programming for Big Data
(also offered as DASA 2P08)
Introduction to Python programming and its Data Science ecosystem; handling and analyzing large datasets; data visualization; integrating Python into big data ecosystems; hands-on exercises and projects.
Lectures, 3 hours per week; lab, 1 hour per week.
Prerequisite(s): COSC 1P03.
COSC 2P12
Introduction to Computer Architecture
Evolution of digital computer. Computer organization including functional units, instruction cycle, control, buses and memory. Instruction types and memory access, instruction sequencing and call/return. Basic assembly language programming.
Lectures, 3 hours per week; lab, 2 hours per week.
Prerequisite(s): COSC 1P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2P13
Introduction to Operating Systems
Operating systems and management principles of computing resources and processing. Resource sharing including file, processor, I/O and memory management. Concurrency including: context switching, interprocess communication, and synchronization. Protection and security including encryption. Distributed systems including synchronization algorithms and fundamentals of computer networks.
Lectures, 3 hours per week.
Prerequisite(s): COSC 2P03 (minimum 60 percent) for COSC (single or combined), BCB, CAST, CNET and NEUR neurocomputing majors; COSC 2P03 (minimum 60 percent), CPCF 1F25 and IASC 2P04 for GAMP majors.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
*COSC 2P89
Internet Technologies
(also offered as APCO 2P89 and IASC 2P89)
Concepts and techniques required for building and maintaining advanced interactive Web sites. Topics include XML and SGML, database connectivity and forms handling, basic animation, graphics optimization for the Web, scripting, advanced searching, Web design for accessibility.
Lectures, 3 hours per week; lab/seminar, 2 hours per week.
Prerequisite(s): COSC 1P03 (minimum 60 percent) or APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2P95
Programming in C++ with Applications
C++ as a second language. Basic language structure, data structures, libraries for application. Introduction to object-orientation and UNIX commands.
Lectures, 3 hours per week; labs 2 hours per week.
Prerequisite(s): one of COSC 1P03, APCO 1P93, MATH 2P40.
Note: students should select the lab appropriate for their application domain (Computer Science or Mathematics). This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
#COSC 2P96
Introduction to 3D Modelling and Animation
(also offered as STAC 2P96 and VISA 2P96)
Concepts and skills of 3D modelling and rendering using Autodesk Maya. Approaches to building models, using texturizing, lighting, cameras and rendering as well as basic animation techniques. Relevant historical and theoretical perspectives on 3D and virtuality situating 3D within creative process and broader critical practices in cultural production.
Lectures, lab, 5 hours per week.
Restriction: open to COSC (single or combined), IASC (single or combined), STAC, VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide.
Prerequisite(s): one of four COSC credits, IASC 1F01 (1F00), one credit from VISA 1P93 (minimum 60 percent), 1P94 (minimum 60 percent), 1P95 (minimum 60 percent), 1P96 (minimum 60 percent).
Note: students will need additional materials and equipment, which they must supply. Field trips may be required. Students are expected to pay their own expenses. VISA 1P95 recommended. Due to space limitations, audits are not permitted in studio classes. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in IASC 2P96.
COSC 3P01
Computer Networking
Principles of computer network: basic networking issues, concepts and solution approaches. Protocol stack and encapsulation including ISO-OSI and TCP/IP models. Application layer including common applications. Transport layer including reliable and unreliable delivery. Network layer including addressing, routing and datagram forwarding. Link layer including MAC addressing and fundamentals on access control. Network programming including client/server programming designs.
Lectures, 3 hours per week
Prerequisite(s): COSC 2P03 (minimum of 60 percent) and COSC 2P13 (minimum of 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P03
Algorithms
Design and analysis of computer algorithms. Topics include asymptotic notations, solving recurrences, order statistics, general algorithm design techniques such as divide-and-conquer, greedy algorithms, dynamic programming, backtracking and branch-and-bound. Graph and string algorithms. Introduction to NP-Completeness and complexity theory.
Lectures, 3 hours per week.
Prerequisite(s): COSC 2P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P32
Database Systems
Fundamental database concepts: specification, design and applications; various models including the relational model; normal forms, efficiency considerations, queries using SQL, database administration and security. Practical experience in a group project.
Lectures, 3 hours per week; lab, 2 hours per week.
Prerequisite(s): COSC 2P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 2P32.
COSC 3P71
Artificial Intelligence
Historic and philosophical foundations of AI; knowledge representation and reasoning; problem spaces; blind and heuristic search; adversarial search in game playing; machine learning; social and ethical considerations.
Lectures, 3 hours per week; tutorial, 1 hour per week.
Prerequisite(s): COSC 2P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P90
Software Development
Introduction to modern software engineering techniques and applications; Contemporary approaches to software development; Generally applicable principles in software engineering; Hands-on applications of software development.
Lectures, 3 hours per week; Lab, 1 hour per week
Prerequisite(s): COSC 2P03 (minimum 60 percent)
COSC 3P91
Advanced Object-Oriented Programming
Topics may include graphical user interfaces, animation, sound, music, networking, parallelism, client-server and XML using game design as an example. Object-oriented program design including UML and design patterns. Introduction to advanced Java APIs.
Lectures, 3 hours per week; lab 2 hours per week.
Prerequisite(s): two COSC credits.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 3P40.
COSC 3P92
Computer Architecture
Topics include buses, internal and external memory, I/O and interfacing, computer arithmetic, instruction sets, RISCs, microprogrammed control, parallel organization.
Lectures, 3 hours per week.
Prerequisite(s): COSC 2P12 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P93
Parallel Computing
Origins of parallelism, classification of designs, characterization of performance. Pipelined computers: selection and comparison, case studies. Processor arrays: switching networks, case studies. Parallel languages: general principles, parallel constructs, vectorizing compilers, issues of portability. Practical exposure to a parallel programming language and parallel computing hardware. Parallel algorithms: general principles, recurrences, parallel approach to data structures and computational structures. Future trends: technology, design limitations, future supercomputers.
Lectures, 3 hours per week.
Prerequisite(s): COSC 2P13 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
*COSC 3P94
Human Computer Interaction
(also offered as APCO 3P94 and IASC 3P94)
Human factors in the design and support of computing systems. Design methodologies such as GOMS, TAGs and Task Analysis. Design principles relating to various interaction paradigms.
Lectures, 3 hours per week; lab/seminar, 2 hours per week.
Prerequisite(s): two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P95
Software Analysis and Testing
Principles of software development besides programming, such as static and dynamic analysis, debugging, diagnosing bugs, and testing. Topics include fundamental properties of software analysis and testing techniques, program analysis and code inspection, defect tracking, causality analysis, software measurement, software profiling, software tracing, acceptance testing, integration testing, regression testing, and performance testing.
Lectures, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST, GAMP, and NEUR majors.
Prerequisite(s): COSC 2P03 (minimum 60 percent) and COSC 2P05.
COSC 3P96
Machine Learning
Fundamental machine learning techniques with emphasis on using these techniques to design and implement small practical learning systems. Topics include learning as a search, inductive bias, concept learning, computational learning, explanation-based learning and reinforcement learning.
Lectures, seminar, 3 hours per week.
Prerequisite(s): COSC 3P71 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P97
Mobile Computing
Overview of mobile applications, technologies and communication. Common paradigms in mobile computing. Application frameworks and application development. Interaction styles for user interface.
Lectures 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors.
Prerequisite(s): COSC 2P13 (minimum 60 percent) and COSC 3P32 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 3V97.
COSC 3P98
Computer Graphics
Topics include 2-D and 3-D graphics, curve and surface fitting, light and colour models, real time interfaces, animation and hardware issues (knowledge of C assumed).
Lectures, 3 hours per week.
Prerequisite(s): COSC 2P03 (minimum 60 percent), three COSC credits and MATH 1P12.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3P99
Computing Project
Half-year development project or directed reading essay under faculty supervision.
Seminar, 2 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors with a minimum 75 percent major average (or permission of project supervisor) and permission of project coordinator.
Prerequisite(s): COSC 2P03.
Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. Further information (including project guidelines and project list) is available on the department Web pages. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3Q95
Internship in Game Programming
Internship in a business related to the gaming industry.
Restriction: open to GAMP majors and permission of the Game Program Director.
Prerequisite(s): COSC 2P03 (minimum 60 percent) and permission of Game Programming Director.
Note: application required. Enrolment will be limited to the number of placements available. Students will be required to attend orientation meetings, occasional meetings with the Student Support Co-ordinator and develop professional learning objectives. Additional components typically include a site visit, a work term report and an employer performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 3V90-3V99
Computing Topics I
Selected topics in computer science.
Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors.
COSC 4F90
Computing Project
Full-year project under the supervision of a faculty member.
Seminar, 2 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST and CNET majors with a minimum 75 percent major average, a minimum 10.0 overall credits and permission of project co-ordinator.
Prerequisite(s): COSC 2P03 (minimum 60 percent).
Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. This course is strongly recommended for students considering graduate school. Students must consult with faculty at the end of year 3 regarding supervision of projects. Further information (including project guidelines and project list) is available on the department Web pages. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P01
Software Engineering 1
Theory of software engineering. Topics include plan-driven development, Agile development, software requirements elicitation and presentation, verification of software correctness, redundancy, robustness, safety and security. Creation of robust software requirements document. Introduction to tools such as Git and Azure DevOps.
Lectures, 3 hours per week; tutorial, 1 hour per week.
Restriction: open to COSC (single or combined), BCB and CAST majors with a minimum of 14.0 overall credits.
Prerequisite(s): COSC 2P03 and COSC 3P32 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 4F00.
COSC 4P02
Software Engineering 2
Application of software engineering. The development of a large-scale software engineering project in a competitive team setting, including creation of complete documentation for a working system.
Lectures, Seminars, Project Consultation, 3 hours per week.
Restriction: open to COSC (single or combined), BCB and CAST majors.
Prerequisite(s): COSC 4P01 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 4F00.
COSC 4P03
Advanced Algorithms
Classical and evolving problems and algorithms in Computer Science. Topics include classical design and analysis techniques, cryptography, combinatorics.
Lectures, seminar, 3 hours per week.
Prerequisite(s): COSC 3P03 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P04
Graph Drawing and Information Visualization
Different embeddings, models and representations of graphs and networks, including planar drawing, radial drawing, layered drawing. Algorithms and techniques for network visualization, planarity testing, optimization of graph features such as area or angular resolution. Practical application of network visualization in biology, cartography, data analytics.
Lectures, 3 hours per week.
Prerequisite(s): COSC 3P03 (minimum 60 percent).
Note: this course may be offered in multiple mods of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P13
Operating Systems: Design and Implementation
Design and implementation of UNIX and other operating systems. Topics include process and thread management, interprocess communication, synchronization and scheduling, multiprocessing, device drivers, kernel memory management, distributed and advanced file systems and STREAMS (knowledge of C assumed).
Lectures, lab, 3 hours per week; lab, 2 hours per week.
Prerequisite(s): COSC 2P13 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P14
Advanced Computer Networks
Advanced topics in computer networking, including computer network security, wireless and high-speed networking, computer network management and performance evaluation.
Lectures, 3 hours per week; lab, 2 hours per week.
Prerequisite(s): COSC 2P13 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P32
Advanced Database Systems
Design and implementation of database management systems (DBMS). Topics include: transaction management, crash recovery, query processing algorithms, query optimization, advanced indexing techniques, introductory topics on big data management, and parallel and distributed databases.
Lectures, 3 hours per week.
Prerequisite(s): COSC 3P32 (minimum 60 percent)
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P41
Functional Programming
Introduction to functional programming using the languages Haskell and SML. Topics include all data types, type inference, pattern-matching, recursion, polymorphism, higher-order functions, lazy vs eager evaluation, modules and monads.
Lectures, 3 hours per week; lab, 2 hours per week
Prerequisite(s): three and one-half COSC credits.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P42
Formal Methods in Software Engineering
Specification and correctness of software. Topics include algebraic specifications, semantics of programming languages, Hoare/dynamic logic, specification languages, program transformation.
Lectures, 3 hours per week; lab, 2 hours per week.
Prerequisite(s): three and one-half COSC credits and MATH 1P67.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P50
Introduction to Cyber Security
Senior-level course focuses on offensive security and defensive science. Topics include: reconnaissance, scanning, enumeration, exploitation of computer systems and networks, firewalls, intrusion detections and prevention, access control list, encryption, etc.
Lecture, 3 hours per week.
Prerequisite(s): three and one-half COSC credit.
*COSC 4P61
Theory of Computation
(also offered as MATH 4P61)
Regular languages and finite state machines: deterministic and non-deterministic machines, Kleene's theorem, the pumping lemma, Myhill-Nerode Theorem and decidable questions. Context-free languages: generation by context-free grammars and acceptance by pushdown automata, pumping lemma, closure properties, decidability. Turing machines: recursively enumerable languages, universal Turing machines, halting problem and other undecidable questions.
Lectures, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors.
Prerequisite(s): MATH 1P67 (minimum 60 percent) and three and one-half COSC credits.
Note: MATH students may take this course with permission of the Mathematics Department. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P78
Robotics
Computer control aspects of robots focusing on behaviour-based robot control architectures. Topics include robot components and subsystems, sensors and perception, object location and manipulation, mobile robot navigation, task planning, control architectures, adaptive and social behaviour.
Lectures, 2 hours per week; lab, 2 hours per week.
Prerequisite(s): COSC 3P71 (minimum 60 percent).
Note: PHYS 1P91 and 1P92 are recommended. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P80
Artificial Neural Networks
Practical problem solving using artificial neural networks. Supervised learning, single- and multilayer feed-forward networks and backpropagation and refinements; recurrent neural networks; Hopfield networks and Boltzmann machines. Unsupervised learning, competitive learning, Kohonen map and self-organizing feature maps.
Lectures, seminar, 3 hours per week.
Prerequisite(s): COSC 3P71 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P81
AI Programming
Developing computer applications for AI problem solving. Topics in AI software systems, programming languages and paradigms, and their suitability in different problem domains. Languages relevant to AI programming.
Lectures, 3 hours per week.
Prerequisite(s): COSC 3P71 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P82
Genetic Programming
Synthesis of computer programs using evolutionary computation. Different representations, including tree, linear, grammatical. Theoretical analyses, including the effects of operators, representations and fitness landscapes. Practical applications in problem solving, decision making, classification, computer vision and design.
Lectures, seminar, 3 hours per week.
Prerequisite(s): COSC 3P71 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P83
Reinforcement Learning
Multi-armed bandits, Markov decision processes, model-based and model-free methods (such as dynamic programming, Monte Carlo methods, and temporal-difference methods) for learning value and policy functions. Approximation solutions including deep reinforcement learning.
Lectures, 3 hours per week.
Restriction: open to COSC single or combined, GAME, NEUR, and Data Science programs.
Prerequisite(s): COSC 3P71 (minimum 60 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P84
Natural Language Processing
Introduction to the computational modelling of natural language, including techniques and algorithms, formalisms, and applications. Fundamental topics covered include computational morphology, semantics, syntactic parsing, language modelling, summarization, machine translation, coreference resolution, and contemporary machine learning techniques.
Lectures, seminar, 3 hours per week.
Prerequisite(s): MATH 1P67 (minimum 60 percent), STAT 1P98, COSC 3P71.
Note: this course may be offered in multiple mods of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4P96
Topics in Computational Intelligence
Current methods their practical applications. Emphasis on evolutionary computation, swarm intelligence, artificial immune systems, and neural networks. Applications include optimization, classification, games, swarm robotics, image processing, and network science. Survey and discussion of current literature.
Lectures, seminar, 3 hours per week.
Restriction: COSC 3P71 (minimum 70 percent).
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
Completion of this course will replace previous assigned grade and credit obtained in COSC 4V96.
COSC 4P98
Topics in Computer Media and Digital Audio
Fractals, digital audio fundamentals, Fourier analysis, MIDI, computer composition, music and sound processing and user interfaces. Programming assignments may use C, Java, Supercollider and Csound.
Lectures, 3 hours per week.
Prerequisite(s): three and one-half COSC credits.
Note: this course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 4V80-4V99
Computing Topics II
Selected topics in computer science.
Lectures, seminar, 3 hours per week.
Restriction: open to COSC (single or combined), BCB, CAST, CNET, GAMP and NEUR Neurocomputing stream majors.
CO-OP COURSES
COSC 0N01
Co-op Work Placement I
First co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.
COSC 0N02
Co-op Work Placement II
Second co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.
COSC 0N03
Co-op Work Placement III
Third co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.
COSC 0N04
Co-op Work Placement IV
Optional co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.
COSC 0N05
Co-op Work Placement V
Optional co-op work placement (4 months) with an approved employer.
Restriction: open to COSC and BCB Co-op students.
COSC 2C01
Co-op Reflective Learning and Integration I
Provides students with the opportunity to apply what they haveve learned in their academic studies through career-oriented work experiences at employer sites.
Restriction: open to BCB, COSC and CNET Co-op students.
Prerequisite(s): SCIE 0N90.
Corequisite(s): COSC 0N01.
Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2C02
Co-op Reflective Learning and Integration II
Provides students with the opportunity to apply what they haveve learned in their academic studies through career-oriented work experiences at employer sites.
Restriction: open to BCB and COSC Co-op students.
Prerequisite(s): SCIE 0N90.
Corequisite(s): COSC 0N02.
Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2C03
Co-op Reflective Learning and Integration III
Provides students with the opportunity to apply what they haveve learned in their academic studies through career-oriented work experiences at employer sites.
Restriction: open to BCB and COSC Co-op students.
Prerequisite(s): SCIE 0N90.
Corequisite(s): COSC 0N03.
Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2C04
Co-op Reflective Learning and Integration IV
Provides students with the opportunity to apply what they haveve learned in their academic studies through career-oriented work experiences at employer sites.
Restriction: open to BCB and COSC Co-op students.
Prerequisite(s): SCIE 0N90.
Corequisite(s): COSC 0N04.
Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
COSC 2C05
Co-op Reflective Learning and Integration V
Provides students with the opportunity to apply what they haveve learned in their academic studies through career-oriented work experiences at employer sites.
Restriction: open to BCB and COSC Co-op students.
Prerequisite(s): SCIE 0N90.
Corequisite(s): COSC 0N05.
Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. This course may be offered in multiple modes of delivery. The method of delivery will be listed on the academic timetable, in the applicable term.
|
|