Physics & Computer Science

Course Information

Fall 2018

AS101: Astronomy I: Our Place in the Cosmos

An introduction to the science of astronomy, the process by which we develop astronomical principles and the application of these techniques to gain a modern understanding of our Solar System. Topics covered include the historical development of astronomy, understanding the night sky, Newton's law of gravitation, light and telescopes, and a detailed study of the Solar System. New data from recent explorations of Mars, Saturn and other celestial objects will be discussed.

3 lecture hours

Credit: 0.50

Exclusion: AS105

Outline: https://bohr.wlu.ca/syllabi/as101_201809_syllabus.docx


CP104: Introduction to Programming

An introductory course designed to familiarize the student with modern software development techniques. Emphasis is on problem-solving and structured program design methodologies. Programming projects are implemented in a widely used high-level language.

3 lecture hours, 2.5 lab hours

Credit: 0.50

Outline: https://bohr.wlu.ca/cp104/syllabus.php

URL: https://bohr.wlu.ca/cp104/


CP164: Data Structures I

Introduction to the study of data structures and their applications. Recursion, searching, sorting. Queues, stacks, heaps. Introduction to the analysis of algorithms, big “O” notation.

3 lecture hours, 2.5 lab hours

Credit: 0.50

Prerequisite: CP104

Exclusion: CP114

Outline: https://bohr.wlu.ca/cp164/syllabus.php

URL: https://bohr.wlu.ca/cp164/


CP202: Website Design

This course provides an in depth understanding of website design and administration, short of server-side programming. Emphasis is on standards, good design practices, accessibility, and tools. By the end of the course students should have the skills to administer a website, deal with security issues, design readable, informative, attractive and accessible web pages that fit current standards, and apply a logical and consistent navigational scheme to an entire website.

3 lecture hours

Credit: 0.50

Prerequisite: CP102 or CP104

Exclusion: Registration in BA or BSc programs in Computing.

Outline: https://bohr.wlu.ca/syllabi/cp202_201809_syllabus.pdf


CP212: Windows Application Programming

This course is designed for students who have a basic understanding of spreadsheets, word processors, and databases as well as introductory programming experience. The course introduces methods to automate repetitive tasks and create user-friendly applications in spreadsheets, word processors, and databases using the powerful macro language, Visual Basic for Applications (VBA). Topics include: a review of programming constructs such as data types, looping, conditional statements, and arrays; the design of graphical interfaces with the typical "look and feel" of Windows software; the design of dialog boxes with controls and eventhandling code that responds to user input; automating tasks; consolidating data; providing userfriendly reports.

3 lecture hours, 1 lab hour

Credit: 0.50

Prerequisite: CP102 and previous programming experience, or CP104


CP213: Introduction to Object-Oriented Programming

Fundamentals of object-oriented programming, classes, subclasses, inheritance, references, overloading, event-driven and concurrent programming, using modern application programming interface. The language Java will be used.

3 lecture hours, 1 lab hours

Credit: 0.50

Prerequisite: CP164 (or CP114)

Outline: https://bohr.wlu.ca/syllabi/cp213_201809_syllabus.docx


CP220: Digital Electronics

Introduction to digital logic: logic gates, combinational circuit analysis using Boolean algebra and Karnaugh maps, number systems and codes, minimization techniques applied to combinational logic systems; flip-flops, multivibrators, counters and shift registers.

3 lecture hours

Credit: 0.50

Cross-Listed: PC220

Prerequisite: Registration status: Year 2

Exclusion: CP120/PC120


CP264: Data Structures II

A continuation of the study of data structures and their applications using C. Linked lists, binary search trees, balanced search trees. Hashing, collision-avoidance strategies. A continuation of basic algorithm analysis.

3 lecture hours, 1 lab hour

Credit: 0.50

Prerequisite: CP164

Exclusion: CP114


CP312: Algorithm Design and Analysis I

Analysis of the best, average, and worse case behaviors of algorithms. Algorithmic strategies: brute force algorithms, greedy algorithms, divide-and-conquer, branch and bound, backtracking. Fundamental computing algorithms: O (n log n) sorting, hash table, binary trees, depth- and breadth-first search of graphs.

3 lecture hours

Credit: 0.50

Prerequisite: CP264 (or CP114 and CP213) and MA238

Outline: https://bohr.wlu.ca/syllabi/cp312_201809_syllabus.pdf


CP317: Software Engineering

Discussion of software development activities, including software process models, analysis, design, implementation, testing, project management and advanced topics. Both traditional and object-oriented methods are considered.

3 lecture hours

Credit: 0.50

Prerequisite: CP213, CP217 or CP264

Exclusion: CP417

Outline: https://bohr.wlu.ca/cp317/syllabus.php

URL: https://bohr.wlu.ca/cp317/


CP319: Digital System Design

Logic families and interfacing considerations for logic devices, VHDL; implementation techniques for combinational and sequential logic; introduction to finite state machines and design methodologies for synchronous and asynchronous sequential circuits; hazards, cycles and races; operation and interfacing of memory devices.

3 lecture hours

Credit: 0.50

Cross-Listed: as PC319

Prerequisite: CP104, CP220/PC220 (or CP120/PC120)

Co-requisite: CP300/PC300 recommended

Outline: https://bohr.wlu.ca/syllabi/cp319_201809_syllabus.pdf


CP320: Physical Computing: Digital Interaction with the Analog World

Design and construction of computational systems that interact with the physical world for applications such as home or experiment automation. Basics of electrical circuits, reading from analog and digital sensors, controlling analog and digital actuators, single board computers such as Arduino or Raspberry PI, analog components including diodes, transistors and operational amplifiers.

3 lecture hours

Credit: 0.50

Cross-Listed: PC320

Prerequisite: CP164 (or CP114), CP220/PC220 (or CP120/PC120)

Exclusion: CP300°/PC300°

Outline: http://denethor.wlu.ca/pc320/about320.shtml


CP322: Machine Learning

With the rise of data science and big data fields, machine learning has gained further recognition as the key driver behind the successful advance of these fields. However, many recent entrants to the field can only utilize the variety of machine learning algorithms as black boxes. This course aims to empower students to effectively use and understand the primary approaches so as to be able to modify them for specific uses. Our focus is less on theory and more on practice. Students engage in hands-on implementation of some of the fundamental algorithms such as predictive modeling and clustering applied to real, open-ended problems.

3 lecture hours

Credit: 0.50

Prerequisite: CP312

Outline: https://bohr.wlu.ca/syllabi/cp322_201809_syllabus.docx


CP351: Quantum Computing

Quantum computing offers the possibility of dramatic advances in computational power compared to the best computers we have today. In addition, novel quantum protocols such as teleportation and quantum cryptography have already been demonstrated. This course provides an introduction to this exciting and cutting-edge field. Topics include an overview of quantum theory, quantum algorithms, teleportation, secure quantum communication, Shor's factoring algorithm, Grover's search protocol, quantum error correction and the latest state-of-the-art experiments. No prior knowledge of quantum mechanics is required.

3 lecture/discussion hours

Credit: 0.50

Cross-Listed: PC351

Prerequisite: MA122 and registration status: Year 3 or Year 4, majoring in physics, computer science, mathematics or chemistry


CP364: Data Communications and Networks

Data communication fundamentals, with an emphasis on the physical layer, and telecommunication networks, with an emphasis on the architectures and protocols will be studied. Topics include transmission media, digital data transmission, architectures of telecommunication networks.

3 lecture hours, 1.5 lab hours

Credit: 0.50

Cross-Listed: as PC364

Prerequisite: CP120/PC120, CP200/PC200, or PC212 (or PC210 and PC211)


CP386: Operating Systems

Topics include operating system services, file systems, CPU scheduling, memory management, virtual memory, disk scheduling, deadlocks, concurrent processes, protection and distributed systems.

3 lecture hours

Credit: 0.50

Prerequisite: CP216, CP217 or CP264

Exclusion: CP466

Outline: https://bohr.wlu.ca/syllabi/cp386_201809_syllabus.pdf


CP411: Computer Graphics

The principles, algorithms, and techniques of computer graphics. Topics include introduction to graphics hardware, output primitives, two- and three-dimensional geometric transformations, three-dimensional object representation and viewing, illumination models and surface-rendering methods. Graphics software tools will be introduced in this course.

3 lecture hours

Credit: 0.50

Prerequisite: CP264 (or CP114 and CP217) and MA122


CP431: Parallel Programming

3 lecture hours

Credit: 0.50

Outline: http://web.wlu.ca/science/physcomp/ikotsireas/f2018ParallelProgramming.html


CP460: Applied Cryptography

Algorithms and issues in applied cryptography. Topics include history of cryptography, block ciphers, stream ciphers, public-key encryption, digital signatures, and key management. Also, discussions of current issues in information security.

3 lecture hours

Credit: 0.50

Prerequisite: MA121, CP213 or CP264 (or CP104 and a 0.5 MA credit at the 200 level with permission of the department)

Outline: https://bohr.wlu.ca/syllabi/cp460_201809_syllabus.pdf


CP467: Image Processing & Pattern Recognition

Introduction to vision systems for image acquisition and display. Comprehensive coverage of image enhancement, segmentation, feature extraction and classification.

3 lecture hours

Credit: 0.50

Prerequisite: CP213, MA240 or ST230 (or equivalent)


CP468: Artificial Intelligence

Examination of current concepts and techniques in artificial intelligence and machine learning. Topics include knowledge representation, automated reasoning, machine learning and knowledge-based systems. Extensive use of case studies and current applications.

3 lecture hours

Credit: 0.50

Prerequisite: CP213

Outline: http://web.wlu.ca/science/physcomp/ikotsireas/f2018ArtificialIntelligence.html


CP493: Directed Research Project I

An in-depth investigation of a computer science subject under faculty supervision, including the submission of a final report. Irregular course.

3 lecture hours

Credit: 0.50

Prerequisite: Registration status: Year 4 Honours Computing and Computer Electronics, or Computer Science, and permission of the department


CP494: Directed Research Project II

An in-depth investigation of a computer science subject under faculty supervision, including the submission of a formal report. Irregular course.

3 lecture hours

Credit: 0.50

Prerequisite: CP493 and permission of the Department.


CP600: Practical Algorithm Design

The techniques of algorithm design form one of the core practical technologies of computer science. This course focuses on advanced techniques for designing and analysing algorithms, and explores their use in a variety of application areas. Topics include: sorting and search algorithms, graph traversal algorithms, combinatorial search, heuristics methods, and dynamic programming, intractable problems. Students learn the skill of recognizing computational complexities of computing problems and designing solutions for them.

3 lecture hours

Credit: 0.50


CP630: Enterprise Computing

Enterprise computing offers integrated solutions to organizations that need help managing a variety of problems including software development, resource management and data analytics. This course extends traditional Computer Science education through a practical skills-based application focused on enterprise computing which integrates IT management and application development. Students examine the principles, techniques and practices in modern enterprise computing with a focus on backend business logic computing and the technical foundation of data analysis. Students will learn to manage all aspects of enterprise computing solutions including security, user experience, optimization, and distributed databases. Practical knowledge is further developed through lab work, case studies and guest-lectures of IT managers.

3 lecture hours

Credit: 0.50


CP685: Cyber Attack and Defense

This course focuses on both the principles and practice in computer security. It provides an introduction to fundamental principles of computer systems and network security. It also covers the best practices of computer systems and network security protection and defense. The roadmap for the course includes seven main sections, including security objectives, vulnerabilities, attacks and exploitation, wireless security, web application security, defense and countermeasures, and incident handling and forensic investigation. Specifically, it first covers security objectives such as confidentiality, data integrity, authentication, authorization, access control, availability, and non-repudiation. Also, it covers the fundamental theories of vulnerabilities in software, computer system, network protocols, cryptographic techniques and social engineering. It then covers various security protection and defense mechanisms, including major security protocols and standards, firewalls, intrusion detection, wireless security, and web application security. It also discusses the latest cutting-edge insidious attack vectors, and the patterns of denial-of-service attacks. This course also presents the understanding tools needed to defend against attackers maintaining access and covering their tracks. This course examines and reviews various types of hacking tools as well as ways to harden the system or application against these attacks.

3 lecture hours

Credit: 0.50


CP699: Master's Thesis

Students will complete a thesis based on original research and defend it before an examining committee.

3 lecture hours

Credit: 2.00


PC131: Mechanics

Calculus-based course, which introduces basic principles of physics. Detailed topics covered: one-dimensional motion, vectors, motion in two and three dimensions, force and motion, kinetic energy and work, potential energy, conservation of energy, collisions and momentum, rotational motion, simple harmonic motion, torque, angular momentum, and gravitation.

Lecture/Discussion: 3, Lab: 2 (biweekly)

Credit: 0.50

Prerequisite: OAC or Grade 12U Physics or Advanced Functions and Introductory Calculus

Co-requisite: MA110* or MA103 or MA105

Exclusion: PC100*, PC110*, PC141, PC151, PC161, SC100

Outline: https://bohr.wlu.ca/syllabi/pc131_201809_syllabus.pdf


PC141: Mechanics for the Life Sciences

Algebra-based course, which introduces basic principles of physics. Detailed topics covered: kinematics, motion in two dimensions, force, work and energy, linear momentum and collisions, circular motion and gravitation, rotational motion and equilibrium.

Lecture/Discussion: 3, Lab: 2 (biweekly)

Credit: 0.50

Prerequisite: One of OAC or Grade 12U Biology, Chemistry, or Physics

Exclusion: PC100*, PC110*, PC131, PC151, PC161, SC100


PC151: Mechanics

Identical to PC131 but without the labs.

3 lecture/discussion hours

Credit: 0.50

Prerequisite: OAC or Grade 12U Physics or Advanced Functions and Introductory Calculus

Co-requisite: MA100 or MA110* or MA103 or MA105

Exclusion: PC131, PC141, PC161, BSc degree programs, physics minor


PC161: Mechanics for Life Sciences

Identical to PC141 but without the labs.

3 lecture hours

Credit: 0.50

Prerequisite: One of OAC or Grade 12U in Biology, Chemistry, or Physics

Exclusion: PC131, PC141, PC151, BSc degree programs, physics minor


PC212: Electricity and Magnetism

Introduction to electrostatics and magnetostatics including Gauss' law, electric potential, capacitance, electromagnetic induction. Introductory DC and AC circuit theory. Electromagnetic waves.

3 lecture/discussion hours

Credit: 0.50

Prerequisite: PC131, PC132 (or PC141 and PC142), MA122, and one of MA110* or MA103 or MA105.


PC220: Digital Electronics

Introduction to digital logic: logic gates, combinational circuit analysis using Boolean algebra and Karnaugh maps, number systems and codes, minimization techniques applied to combinational logic systems; flip-flops, multivibrators, counters and shift registers.

3 lecture hours

Credit: 0.50

Cross-Listed: CP220

Prerequisite: Registration status: Year 2

Exclusion: CP120/PC120


PC310B: Planetary and Space Science

This is an introductory course in planetary and space science. We will study the basic physics, structure, morphology and evolution of each planet separately, including comets, asteroids, and meteorites, Kuiper belt and Oort cloud. We will address the most recent theories of the Solar System formation and evolution hypotheses as a whole, and we will touch briefly upon all the known theories from the tidal theory to the most recent re-emergence of the nebular hypothesis. We will also examine the corresponding outstanding issues, as well as the solar evolution hypothesis. Finally, we will discuss in a fair amount of detail the most important up to date deep space missions, their findings, and their importance in the understanding of our neighborhood as a whole. It must be emphasized that this is a totally different course than the AS101A and AS101B.

3 lecture hours

Credit: 0.50

Prerequisite: Permission of the department.

Outline: https://bohr.wlu.ca/syllabi/pc310b_201809_syllabus.docx


PC319: Digital System Design

Logic families and interfacing considerations for logic devices, VHDL; implementation techniques for combinational and sequential logic; introduction to finite state machines and design methodologies for synchronous and asynchronous sequential circuits; hazards, cycles and races; operation and interfacing of memory devices.

3 lecture hours

Credit: 0.50

Cross-Listed: as CP319

Prerequisite: CP104, CP220/PC220 (or CP120/PC120)

Co-requisite: CP300/PC300 recommended


PC320: Physical Computing: Digital Interaction with the Analog World

Design and construction of computational systems that interact with the physical world for applications such as home or experiment automation. Basics of electrical circuits, reading from analog and digital sensors, controlling analog and digital actuators, single board computers such as Arduino or Raspberry PI, analog components including diodes, transistors and operational amplifiers.

3 lecture hours

Credit: 0.50

Cross-Listed: CP320

Prerequisite: CP164 (or CP114), CP220/PC220 (or CP120/PC120)

Exclusion: CP300°/PC300°

Outline: http://denethor.wlu.ca/pc320/about320.shtml


PC321: Quantum Mechanics I

Schroedinger equation, interpretation of the wave function, expectation value, Ehrenfest's theorem, wave packets, stationary states and energy quantization, potential wells and potential barriers, scattering and tunneling, the harmonic oscillator, Schroedinger equation in three dimensions, the hydrogen atom, WKB approximation.

3 lecture hours

Credit: 0.50

Prerequisite: PC242, MA205

Outline: https://bohr.wlu.ca/syllabi/pc321_201809_syllabus.pdf


PC344: Thermodynamics and Statistical Mechanics

An introduction to thermodynamics and its statistical basis at the microscopic level, with applications to problelms originating in a modern laboratory or engineering environment. Topics include thermodynamics of model systems, Maxwell-Boltzmann distribution, quantum statistics and applications.

3 lecture hours

Credit: 0.50

Prerequisite: PC131, PC132, (or PC141 and PC142), MA201.

Outline: https://bohr.wlu.ca/syllabi/pc344_201809_syllabus.pdf


PC351: Quantum Computing

Quantum computing offers the possibility of dramatic advances in computational power compared to the best computers we have today. In addition, novel quantum protocols such as teleportation and quantum cryptography have already been demonstrated. This course provides an introduction to this exciting and cutting-edge field. Topics include an overview of quantum theory, quantum algorithms, teleportation, secure quantum communication, Shor's factoring algorithm, Grover's search protocol, quantum error correction and the latest state-of-the-art experiments. No prior knowledge of quantum mechanics is required.

3 lecture/discussion hours

Credit: 0.50

Cross-Listed: CP351

Prerequisite: MA122 and registration status: Year 3 or Year 4, majoring in physics, computer science, mathematics or chemistry


PC364: Data Communications and Networks

Data communication fundamentals, with an emphasis on the physical layer, and telecommunication networks, with an emphasis on the architectures and protocols will be studied. Topics include transmission media, digital data transmission, architectures of telecommunication networks.

3 lecture hours, 1.5 lab hours

Credit: 0.50

Cross-Listed: as CP364

Prerequisite: CP320/PC320 (or CP120/PC120 and CP200°/PC200°), PC212


PC454: Solid State Physics

The purpose of this course is to acquaint the student with the fundamentals of solid state physics. This emphasis is on understanding the behavior of electrons in metals and semiconductors. Topics discussed: crystal structure, reciprocal lattice, crystal binding and elastic constants, phonons, free-electron Fermi gas, energy bands, semiconductor crystals and Fermi surfaces.

3 lecture hours

Credit: 0.50

Prerequisite: PC321

Outline: https://bohr.wlu.ca/syllabi/pc454_201809_syllabus.pdf


PC481: Fibre Optics

Types of fibres. Basic theory: characteristics, numerical aperture, losses, dispersion, modes. Passive fibre devices: couplers, connectors, splices. Light sources: LED, solid and semiconductor lasers. Modulators. Detectors. Systems design.

3 lecture hours, 2 lab hours

Credit: 0.50

Prerequisite: PC237

Outline: https://bohr.wlu.ca/syllabi/pc481_201809_syllabus.docx


PC491: Directed Research Project I

An in-depth investigation of a topic under faculty supervision, including the submission of a formal report.

3 lecture hours

Credit: 0.50

Prerequisite: Registration status: Year 4 Honours Computing and Computer Electronics, Honours Physics or Honours Photonics and permission of the department.


PC492: Directed Research Project II

An in-depth investigation of a topic under faculty supervision, including the submission of a formal report.

3 lecture hours

Credit: 0.50

Prerequisite: PC491 and permission of the Department


Winter 2019

AS101: Astronomy I: Our Place in the Cosmos

An introduction to the science of astronomy, the process by which we develop astronomical principles and the application of these techniques to gain a modern understanding of our Solar System. Topics covered include the historical development of astronomy, understanding the night sky, Newton's law of gravitation, light and telescopes, and a detailed study of the Solar System. New data from recent explorations of Mars, Saturn and other celestial objects will be discussed.

3 lecture hours

Credit: 0.50

Exclusion: AS105


CP104: Introduction to Programming

An introductory course designed to familiarize the student with modern software development techniques. Emphasis is on problem-solving and structured program design methodologies. Programming projects are implemented in a widely used high-level language.

3 lecture hours, 2.5 lab hours

Credit: 0.50


CP164: Data Structures I

Introduction to the study of data structures and their applications. Recursion, searching, sorting. Queues, stacks, heaps. Introduction to the analysis of algorithms, big “O” notation.

3 lecture hours, 2.5 lab hours

Credit: 0.50

Prerequisite: CP104

Exclusion: CP114


CP212: Windows Application Programming

This course is designed for students who have a basic understanding of spreadsheets, word processors, and databases as well as introductory programming experience. The course introduces methods to automate repetitive tasks and create user-friendly applications in spreadsheets, word processors, and databases using the powerful macro language, Visual Basic for Applications (VBA). Topics include: a review of programming constructs such as data types, looping, conditional statements, and arrays; the design of graphical interfaces with the typical "look and feel" of Windows software; the design of dialog boxes with controls and eventhandling code that responds to user input; automating tasks; consolidating data; providing userfriendly reports.

3 lecture hours, 1 lab hour

Credit: 0.50

Prerequisite: CP102 and previous programming experience, or CP104


CP213: Introduction to Object-Oriented Programming

Fundamentals of object-oriented programming, classes, subclasses, inheritance, references, overloading, event-driven and concurrent programming, using modern application programming interface. The language Java will be used.

3 lecture hours, 1 lab hours

Credit: 0.50

Prerequisite: CP164 (or CP114)


CP216: Introduction to Microprocessors

A comprehensive study of a current commercial microprocessor, its architecture and assembly language. Emphasis on (1) the relationship between architecture, assembly language and system operation, and (2) the relationship between assembly language, high level languages and operating systems.

3 lecture hours, 1 lab hour

Credit: 0.50

Prerequisite: CP220/PC220 (or CP120/PC120) and CP164 (or CP114)


CP264: Data Structures II

A continuation of the study of data structures and their applications using C. Linked lists, binary search trees, balanced search trees. Hashing, collision-avoidance strategies. A continuation of basic algorithm analysis.

3 lecture hours, 1 lab hour

Credit: 0.50

Prerequisite: CP164

Exclusion: CP114


CP315: Introduction to Scientific Computation

An introduction to scientific computation, with substantial use of scientific software, such as Maple and Matlab. Scientific problems and models from different disciplines are considered. Numerical methods introduced in this course include interpolation, curve fitting, solving (systems of) linear and nonlinear equations, eigenvalue problems, integration and solving ordinary and partial differential equations.

3 lecture hours

Credit: 0.50

Cross-Listed: as PC315

Prerequisite: CP104, MA110* (or MA103), MA122, MA205

Exclusion: CP225/PC225


CP316: Microprocessor Systems & Interfacing

Interfacing a microprocessor or microcontroller with external devices for real-time hardware control. Microcontroller hardware and software in real time applications; serial and parallel IO; timing generation; priority interrupt structures and servicing; bus timing. Interpretation and use of industry documentation and data sheets.

3 lecture hours, 2.5 lab hours

Credit: 0.50

Prerequisite: CP216, CP320/PC320 (or CP300°/PC300°)


CP320: Physical Computing: Digital Interaction with the Analog World

Design and construction of computational systems that interact with the physical world for applications such as home or experiment automation. Basics of electrical circuits, reading from analog and digital sensors, controlling analog and digital actuators, single board computers such as Arduino or Raspberry PI, analog components including diodes, transistors and operational amplifiers.

3 lecture hours

Credit: 0.50

Cross-Listed: PC320

Prerequisite: CP164 (or CP114), CP220/PC220 (or CP120/PC120)

Exclusion: CP300°/PC300°


CP363: Database I

Introduction to database systems. Topics include data models, query languages, database design, recovery and concurrency, integrity and security.

3 lecture hours

Credit: 0.50

Prerequisite: CP164 (or CP114)


CP367: Introduction to System Programming

Contemporary ideas and techniques in system programming using the C language. Introduction to the Unix operating system and Unix commands. Directories and files, device control, signal handling, process intercommunication, shell programming in Unix. Using and implementing software tools: filters, pipelines, sorts, text patterns and others.

3 lecture hours, 1 lab hour

Credit: 0.50

Prerequisite: CP264

Exclusion: CP217


CP372: Computer Networks

Introduction to computer communication networks. The OSI reference model. Protocols for error and flow control. Medium access protocols. Routing and congestion control. Internet architecture and protocols. Unix network programming.

3 lecture hours

Credit: 0.50

Prerequisite: CP213, CP386


CP373: Ethics and Professional Practice in Computer Science

Introduction to ethics, computer reliability and safety, privacy, computer crime, intellectual property, impact of computers on work and society. Assessment includes written assignments and oral presentations.

3 lecture hours

Credit: 0.50

Prerequisite: Registration in Year 3 or Year 4 BA or BSc in Computing or Physics

Exclusion: CP400L


CP400S:

3 lecture hours

Credit: 0.50


CP414: Foundations of Computing

Deterministic and nondeterministic finite automata (DFAs and NFAs), regular expressions, context-free grammars, relationship of push-down automata and context-free grammars, definintion of the classes P and NP, NP-completeness (Cook's Theorem), standard NP-complete problems, reduction techniques, Turing machines, the halting problem.

3 lecture hours

Credit: 0.50

Prerequisite: CP312, MA238


CP421: Data Mining

The course is aimed at an entry level study of information retrieval and data mining techniques. It is about how to find relevant information and subsequently extract meaningful patterns out of it. While the basic theories and mathematical models of information retrieval and data mining are covered, the course is primarily focused on practical algorithms of textual document indexing, relevance ranking, web usage mining, text analytics, as well as their performance evaluations. At the end of the course student are expected to understand the following:
1. The common algorithms and techniques for information retrieval (document indexing and retrieval, query processing, etc). 2. The quantitative evaluation methods for the IR systems and data mining techniques. 3. The popular probabilistic retrieval methods and ranking principles. 4. The techniques and algorithms existing in practical retrieval and data mining systems such as those in web search engines and recommender systems. 5. The challenges and existing techniques for the emerging topics of MapReduce, portfolio retrieval and online advertising.

3 lecture hours

Credit: 0.50

Prerequisite: CP312, CP317


CP464: Selected Topics in Computer Hardware

Topics may include computer classes and evolution, instruction set design, hardwired sequencer design, microprogramming, memory hierarchies, concurrency, multiple-processor systems, and fault-tolerant systems. Students will be required to design and build a computer, including the design of the instruction set and the control unit.

3 lecture hours

Credit: 0.50

Prerequisite: CP316, PC319


CP476: Internet Computing

The architecture of the Internet. Client-server programming, technologies of the web (URLs, HTML, HTTP, applets, etc.) Introduction to building web applications and server-side programming.

3 lecture hours

Credit: 0.50

Prerequisite: CP363, CP372


CP480: Wireless Communication & Networks

This course introduces fundamental concepts of wireless networks. Topics include wireless communication overview, physical layer, wireless concepts and protocols including TCP over wireless; cellular standards, WIFI WIMax, and Bluetooth standards; applications such as personal area networks and sensor networks; other issues such as mobile communication security.

3 lecture hours, 1.5 lab hours

Credit: 0.50

Prerequisite: CP213, CP372 or CP364/PC364.

Exclusion: CP400P.


CP493: Directed Research Project I

An in-depth investigation of a computer science subject under faculty supervision, including the submission of a final report. Irregular course.

3 lecture hours

Credit: 0.50

Prerequisite: Registration status: Year 4 Honours Computing and Computer Electronics, or Computer Science, and permission of the department


CP494: Directed Research Project II

An in-depth investigation of a computer science subject under faculty supervision, including the submission of a formal report. Irregular course.

3 lecture hours

Credit: 0.50

Prerequisite: CP493 and permission of the Department.


CP601: Seminar in Technology Entrepreneurship

This seminar focuses on the fundamentals of technology entrepreneurship. It involves taking a technology idea and finding a high-potential commercial opportunity, gathering resources such as talent and capital, figuring out how to sell and market the idea, and managing rapid growth. It also involves bringing incorporating a new technology idea into an existing business. There will be guest lecturers from the industry.

3 lecture hours

Credit: 0.50


CP610: Data Analysis

Data analysis is a burgeoning field that allows organizations to discover patterns in data to help explain current behaviours or predict future outcomes. In this course, students learn the theories, techniques and practices involved in modern data analysis in order to effectively collect, process, interpret and use data in decision making. The course utilizes case studies from fields such as finance and statistics to expose students to topics including data collection, storage, processing, representation, and reporting, and also further develop their decision-making skills using decision trees and artificial intelligence.

3 lecture hours

Credit: 0.50


CP640: Machine Learning

Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome. This course focuses on machine learning, data mining, and statistical pattern recognition. Topics include supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks) and unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). Students work with variety of learning algorithms and evaluate which are most likely to be successful.

3 lecture hours

Credit: 0.50


CP680: Capstone Project

This course is available only to students in the Co-Operative Education Option and will be completed in the term following their co-op terms. Students will complete a major project that integrates their academic and work experience.

3 lecture hours

Credit: 1.00


CP699: Master's Thesis

Students will complete a thesis based on original research and defend it before an examining committee.

3 lecture hours

Credit: 2.00


PC132: Thermodynamics and Waves

Calculus-based course, which introduces basic principles of physics. Detailed topics covered: elasticity, fluids, waves and sound, temperature and heat, the laws of thermodynamics, entropy, and an introduction to electricity.

Lecture/Discussion: 3, Lab: 2 (biweekly)

Credit: 0.50

Prerequisite: PC131, MA110* (co-requisite) or MA103 or MA105.

Exclusion: PC100*, PC110*, PC142


PC141: Mechanics for the Life Sciences

Algebra-based course, which introduces basic principles of physics. Detailed topics covered: kinematics, motion in two dimensions, force, work and energy, linear momentum and collisions, circular motion and gravitation, rotational motion and equilibrium.

Lecture/Discussion: 3, Lab: 2 (biweekly)

Credit: 0.50

Prerequisite: One of OAC or Grade 12U Biology, Chemistry, or Physics

Exclusion: PC100*, PC110*, PC131, PC151, PC161, SC100


PC142: Thermodynamics and Waves for the Life Sciences

Algebra-based course, which introduces basic principles of physics. Detailed topics covered: solids and fluids, temperature, heat, thermodynamics, vibrations and waves, sound.

Lecture/Discussion: 3, Lab: 2 (biweekly)

Credit: 0.50

Prerequisite: PC141 or PC131

Exclusion: PC100*, PC110*, PC132


PC152: Thermodynamics & Waves

Identical to PC132 but without the labs.

3 lecture/discussion hours

Credit: 0.50

Prerequisite: PC151 or PC131

Exclusion: PC132, PC142, PC162, BSc degree programs, physics minor


PC161: Mechanics for Life Sciences

Identical to PC141 but without the labs.

3 lecture hours

Credit: 0.50

Prerequisite: One of OAC or Grade 12U in Biology, Chemistry, or Physics

Exclusion: PC131, PC141, PC151, BSc degree programs, physics minor


PC162: Thermodynamics & Waves

Identical to PC142 but without the labs.

3 lecture/discussion hours

Credit: 0.50

Prerequisite: PC161 (or PC131 or PC141 or PC151)

Exclusion: PC132, PC142, PC152, BSc degree programs, physics minor


PC221: Analog Electronics I

AC circuit theory, complex impedance, resonance, Norton and Thvenin Theorems, semiconductor diodes, bipolar transistors, bias circuits, h-parameters, amplification, feedback.

3 lecture hours, 2 lab hours

Credit: 0.50

Prerequisite: CP220/PC220 (or CP200/PC200 or CP120/PC120), PC212


PC235: Classical Mechanics

This is an intermediate level course in classical mechanics. The major topics covered are Newtonian dynamics, dynamics of particles, non-inertial frames of reference, Lagrangian and Hamiltonian dynamics, oscillations, rigid body motion.

3 lecture hours

Credit: 0.50

Prerequisite: PC131, MA201, MA205.


PC237: Optics

Nature of light: Huygen's principle, Fermat's principle. Geometrical optics: reflection and refraction at plane and curved surfaces, lenses and lens systems. Wave optics: interference, diffraction, polarization.

3 lecture hours, 2 lab hours

Credit: 0.50

Prerequisite: PC131, PC132 (or PC141, PC142) and one of MA110* or MA103 or MA105.


PC242: Modern Physics

Failure of classical physics and early quantum theory, blackbody radiation and Planck's theory, the photoelectric effect and light quanta, wave particle duality, Compton scattering, De Broglie and matter waves, Davisson and Germer experiment, energy quantization, Bohr's theory of hydrogen, topics in atomic theory and the periodic table, X-ray spectra, molecules, phenomenological description of solids, Fermi statistics, conduction, semiconductors, energy bands. Nuclear physics, radioactivity, and modern particle physics, accelerators. Relativity.

3 lecture hours

Credit: 0.50

Prerequisite: PC131, PC132, (or PC141, PC142), MA205.


PC315: Introduction to Scientific Computation

An introduction to scientific computation, with substantial use of scientific software, such as Maple and Matlab. Scientific problems and models from different disciplines are considered. Numerical methods introduced in this course include interpolation, curve fitting, solving (systems of) linear and nonlinear equations, eigenvalue problems, integration and solving ordinary and partial differential equations.

3 lecture hours

Credit: 0.50

Cross-Listed: as CP315

Prerequisite: CP104, MA110* (or MA103), MA122, MA205

Exclusion: CP225/PC225


PC320: Physical Computing: Digital Interaction with the Analog World

Design and construction of computational systems that interact with the physical world for applications such as home or experiment automation. Basics of electrical circuits, reading from analog and digital sensors, controlling analog and digital actuators, single board computers such as Arduino or Raspberry PI, analog components including diodes, transistors and operational amplifiers.

3 lecture hours

Credit: 0.50

Cross-Listed: CP320

Prerequisite: CP164 (or CP114), CP220/PC220 (or CP120/PC120)

Exclusion: CP300°/PC300°


PC331: Quantum Mechanics II

Advanced quantum mechanics. Topics covered include identical particles, time-independent and time-dependent perturbation theory, variational principle and Wentzel-Kramers-Brillouin approximation.

3 lecture hours

Credit: 0.50

Prerequisite: PC321, MA205


PC360: Electromagnetic Theory

Maxwell's equations, plane wave theory of waveguides, radiating systems.

3 lecture hours

Credit: 0.50

Prerequisite: PC212, PC237, MA201, MA205


PC475: Design of Control Systems

Modeling of physical systems using differential equations, block diagrams, signal flow graphs, transfer functions, step response, PID controller, root locus design, Bode plots, Nyquist stability criteria, state-space design.

3 lecture hours

Credit: 0.50

Prerequisite: PC221, MA205


PC492: Directed Research Project II

An in-depth investigation of a topic under faculty supervision, including the submission of a formal report.

3 lecture hours

Credit: 0.50

Prerequisite: PC491 and permission of the Department