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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA5 | Virtual | - | Mr. Ismael Moumen |
A journey beyond our Solar System to develop a modern understanding of other stars, galaxies and the structure, origin and fate of the universe. Includes an introduction to basic concepts of relativity and quantum mechanics, lives of stars, evolution of galaxies, Hubble's law and the Big Bang. Objects such as black holes, supernovae, pulsars, dark matter and wormholes are encountered and studied along the way.
3 lecture hours
Credit: 0.50
Prerequisite: AS101
Exclusion: AS105
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA3 | Virtual | - | Mr. Ismael Moumen |
An introduction to the concepts of microcomputer hardware and software applications in a hands-on environment. Examples are based on the needs of students in the arts and sciences and are intended to give background knowledge and experience in the use of the microcomputer as a tool for many different applications. Topics include the history of technological innovation in microcomputer systems, design and operation, input/output devices, storage media and techniques, communications, operating systems, word processors, spreadsheets, statistics packages, computer-aided design and drawing, database management and system utilities.
3 lecture hours, 1 lab hour
Credit: 0.50
Exclusion: BU115, BU155, MB115; registration in BA or BSc programs in Computer Science or Physics; CS100 (University of Waterloo)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA5 | Virtual | - | Mr. Qutaiba Albluwi |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | MW | 02:30 PM - 03:50 PM | 1C17 | Mr. Muhammad Malik |
| L1 | Waterloo | R | 01:00 PM - 02:30 PM | N2095 | Dr. Heider Ali |
| VA4 | Virtual | - | Mr. Muhammad Malik |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | TR | 10:00 AM - 11:20 AM | LH3094 | Mr. Amgad Bassili |
| IC1 | Int College, Waterloo | - | Ms Zara Hamid | ||
| ICA | Int College, Waterloo | - | Ms Zara Hamid | ||
| L1 | Waterloo | W | 01:30 PM - 03:00 PM | BA113 | Ms Xuyang Ma |
| VA3 | Virtual | - | Dr. Abdullah Sawas |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| C | Waterloo | MW | 08:30 AM - 09:50 AM | SB106 | Dr. Heider Ali |
| L1 | Waterloo | W | 10:30 AM - 11:20 AM | BA113 | Dr. Heider Ali |
| L2 | Waterloo | W | 11:30 AM - 12:20 PM | BA113 | Dr. Heider Ali |
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)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| E | Waterloo | TR | 05:30 PM - 06:50 PM | SB106 | Ms. Somayeh Fatahi |
| L1 | Waterloo | W | 04:00 PM - 05:20 PM | BA113 | Ms Xuyang Ma |
| VA | Virtual | M | 01:30 PM - 02:30 PM | Ms Xuyang Ma | |
| VA3 | Virtual | - | Dr. Evgueni Zima |
Finite and discrete algebraic structures relating to computers: sets, functions, relations. Machine-oriented logic. Topics include: propositional and predicate calculus, Boolean algebra, combinatorial counting (including Pigeonhole principle, permutations and combinations), recurrence equations, applications of recurrence equations in sorting algorithms, relations (including equivalence relations, partial orders), algorithms to generate permutations and combinations, induction and recursive programs, correctness proofs for both recursive and iterative program constructions, countable and uncountable sets, Cantor’s theorem, introduction to graph theory and graph algorithms.
3 lecture/discussion hours
Credit: 0.50
Prerequisite: CP164
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | MW | 11:30 AM - 12:50 PM | SB106 | Dr. Zia Ud Din |
| VA3 | Virtual | - |
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)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| B | Waterloo | MW | 04:00 PM - 05:20 PM | LH1010 | Mr. Yichen Zhang |
| L1 | Waterloo | W | 03:00 PM - 04:00 PM | BA113 | Ms Xuyang Ma |
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
Prerequisite: Registration status: Year 2
Exclusion: CP120/PC120
Cross-Listed: PC220
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | MW | 01:00 PM - 02:20 PM | LH1009 | Dr. Heider Ali |
| L2 | Waterloo | M | 10:00 AM - 11:20 AM | N2083 | Dr. Heider Ali |
| L3 | Waterloo | M | 11:30 AM - 12:50 PM | N2083 | Dr. Heider Ali |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | TR | 11:30 AM - 12:50 PM | 2C3 | Ms. Somayeh Fatahi |
| L1 | Waterloo | R | 09:30 AM - 10:20 AM | N2095 | Dr. Heider Ali |
| VA3 | Virtual | - | Dr. Ank Zaman |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| E | Waterloo | TR | 01:00 PM - 02:20 PM | LH1009 |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| F | Waterloo | TR | 02:30 PM - 03:50 PM | LH3094 | Raed Karim |
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)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| E | Waterloo | MW | 10:00 AM - 11:20 AM | LH3094 | Mr. Habib-ur Rehman |
| MC1 | Milton | TR | 02:30 PM - 03:50 PM | MAC128 | Mr. Amgad Bassili |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| E | Waterloo | MW | 02:30 PM - 03:50 PM | LH3094 | Dr. Masoomeh Rudafshani |
| MC1 | Milton | TR | 11:30 AM - 12:50 PM | MAC128 | Ms Zara Hamid |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| E | Waterloo | TR | 04:00 PM - 05:20 PM | LH3094 | Dr. Jason Robinson |
| MC1 | Milton | TR | 10:00 AM - 11:20 AM | MAC128 | Dr. Jason Robinson |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | MW | 05:30 PM - 06:50 PM | LH1009 | Mr. Sukhjit Sehra |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| E | Waterloo | TR | 08:30 AM - 09:50 AM | SB106 | Mr. Lei Gao |
Recent years have seen a dramatic growth of natural language text data, including web pages, news articles, scientific literature, emails, enterprise documents, and social media such as blog articles, forum posts, product reviews, and tweets. Text data are unique in that they are usually generated directly by humans rather than a computer system or sensors, and are thus especially valuable for discovering knowledge about people’s opinions and preferences, in addition to many other kinds of knowledge that we encode in text. This course will cover search engine technologies, which play an important role in any data mining applications involving text data for two reasons. First, while the raw data may be large for any particular problem, it is often a relatively small subset of the data that are relevant, and a search engine is an essential tool for quickly discovering a small subset of relevant text data in a large text collection. Second, search engines are needed to help analysts interpret any patterns discovered in the data by allowing them to examine the relevant original text data to make sense of any discovered pattern. You will learn the basic concepts, principles, and the major techniques in text retrieval, which is the underlying science of search engines.
3 lecture hours
Credit: 0.50
Prerequisite: CP317
Corequisite: CP476
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| B | Waterloo | MW | 02:30 PM - 03:50 PM | 2C3 | Dr. Jisahu Zhao |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | MW | 11:30 AM - 12:50 PM | LH1009 | Dr. Jisahu Zhao |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| B | Waterloo | TR | 11:30 AM - 12:50 PM | SB106 | Raed Karim |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - |
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.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| BR5 | Brantford | M | 11:30 AM - 02:20 PM | RCW202 | Mr. Kaiyu Li |
This course provides students with a broad overview of the concepts, techniques and tools of modern data management and analysis. It compares traditional relational databases with an alternative model (a NoSQL database), and explains how to choose the most appropriate means of storing and managing data, depending on the size and structure of a particular dataset and its intended use. Students are guided through the basics of using Hadoop with MapReduce and Spark. In data analysis, both theoretical concepts and algorithms in Association Mining, Classification, Clustering, etc., and a range of advanced applications, including Link Analysis, Recommender Systems, Computational Advertising, etc., are introduced.
Credit: 0.50
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA2 | Virtual | - | Mr. Usama Mir |
Algorithms and issues in applied cryptography. Topics include block ciphers, stream ciphers, public-key cryptography, AES, elliptic curve cryptosystems, blockchain, digital signatures, zero knowledge proofs. Also, current issues in information security such as privacy enhancing technologies and post quantum cryptography.
Credit: 0.50
Exclusion: CP682B, CP460
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| BR1 | Brantford | W | 11:30 AM - 02:20 PM | RCW202 | Mr. Usama Mir |
Multiple organizations across multiple industries (e.g., finance, retail, manufacturing, communication) are mining and analyzing incredibly large sets of data in order to predict consumer behaviour and trends. In this course, students use the principles of data mining and practical knowledge to visualize and analyze data using data mining software such as Weka.
3 lecture hours
Credit: 0.50
Prerequisite: CP610
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | W | 02:30 PM - 05:20 PM | 2C4 | Mr. Lei Gao |
Parallel computers, or supercomputers or high-performance clusters are ubiquitous today in science and engineering. Parallel programming requires inventing new algorithms and programming techniques. This course covers the paradigms of parallel programming, with an emphasis on problem solving and actual applications. The parallel programming concepts and algorithms are illustrated via implementations in OpenMP and MPI (Message Passing Interface), as well as serial farming.
3 lecture hours
Credit: 0.50
Exclusion: CP431
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA1 | Virtual | - | Dr. Pawel Pomorski |
As the worldwide smartphone market continues to grow, so does the demand for mobile applications. This course provides students with the skills for creating and deploying applications for mobile devices using Android, the most widely used operating system. With an emphasis on the Model-View-Controller paradigm this course provides students with the foundational knowledge that underlies many popular programming languages. The course cumulates with the development of an original Android application. Knowledge of Java is required.
3 lecture hours
Credit: 0.50
Exclusion: CP470
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA1 | Virtual | - | Dr. Abdul Mawlood-Yunis |
This course is designed for students who take the course-based option in the Master of Applied Computing program. The instructor selects topics for study. The course material is presented through lectures, and possibly guest-speaker seminars. Students, with approval from the instructor, select a topic for an in-depth study. Students have the option to ask a full-time faculty member to supervise their project, in consultation with the instructor. Project topics might include a new contribution to a scientific area, or computer code to implement solution to a computing problem. The students' performance is evaluated based on course attendance, the written report, and oral presentations.
Credit: 0.50
Prerequisite: Completion of 5 courses in the MAC program.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| BF2 | Brantford | M | 04:00 PM - 06:50 PM | RCW202 | Mr. Kaiyu Li |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| BR1 | Brantford | W | 04:00 PM - 06:50 PM | RCW202 | Mr. Usama Mir |
Students will complete a thesis based on original research and defend it before an examining committee.
3 lecture hours
Credit: 2.00
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| L01 | Waterloo | T | 08:30 AM - 10:20 AM | N2089 | |
| L02 | Waterloo | T | 10:30 AM - 12:20 PM | N2089 | |
| L03 | Waterloo | T | 12:30 PM - 02:20 PM | N2089 | |
| T01 | Waterloo | R | 07:00 PM - 08:50 PM | SB106 | |
| Y | Waterloo | TR | 02:30 PM - 05:20 PM | SB106 | Dr. Maher Ahmed |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| T1 | Waterloo | R | 07:00 PM - 08:50 PM | SB106 | |
| Y | Waterloo | TR | 02:30 PM - 05:20 PM | SB106 | Dr. Maher Ahmed |
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
Prerequisite: Registration status: Year 2
Exclusion: CP120/PC120
Cross-Listed: CP220
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| D | Waterloo | MW | 01:00 PM - 02:20 PM | LH1009 | Dr. Heider Ali |
| L2 | Waterloo | M | 10:00 AM - 11:20 AM | N2083 | Dr. Heider Ali |
| L3 | Waterloo | M | 11:30 AM - 12:50 PM | N2083 | Dr. Heider Ali |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 05:30 PM - 06:50 PM | LH3094 | Mr. T. Stephen Sathiaraj |
| VA1 | Virtual | - | Mr. Ismael Moumen | ||
| VA2 | Virtual | - | Mr. Ismael Moumen |
An introduction to the concepts of microcomputer hardware and software applications in a hands-on environment. Examples are based on the needs of students in the arts and sciences and are intended to give background knowledge and experience in the use of the microcomputer as a tool for many different applications. Topics include the history of technological innovation in microcomputer systems, design and operation, input/output devices, storage media and techniques, communications, operating systems, word processors, spreadsheets, statistics packages, computer-aided design and drawing, database management and system utilities.
3 lecture hours, 1 lab hour
Credit: 0.50
Exclusion: BU115, BU155, MB115; registration in BA or BSc programs in Computer Science or Physics; CS100 (University of Waterloo)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA1 | Virtual | - | Mr. Qutaiba Albluwi | ||
| VA2 | Virtual | - | Mr. Qutaiba Albluwi |
This course is designed for students with little or no programming experience. Introduce non-Computer Science students to basic computer programming techniques. Emphasis is on problem-solving and structured program design methodologies. Programming projects are implemented in a widely used high-level language. Students will learn elementary computer science concepts with emphasis on procedural programming. Topics include control loops, functions, input and output, installing and using packages, basic debugging skill, introduction to GUI programming. You are required to have a personal computer capable of running the Python programming language and the IDLE (Integrated Development Environment). Windows, Mac, and Linux are all appropriate operating systems for this on desktop or laptop machines. Chromebooks are not appropriate.
Credit: 0.50
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 11:30 AM - 12:20 PM | BA112 | Mr. Muhammad Malik |
| L01 | Waterloo | R | 01:00 PM - 02:50 PM | BA113 | Dr. Heider Ali |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 08:30 AM - 09:20 AM | BA201 | Mr. Richard Hildred |
| B | Waterloo | MWF | 10:30 AM - 11:20 AM | BA201 | Mr. Richard Hildred |
| ICA | Int College, Waterloo | - | Mr. Muhammad Malik | ||
| L01 | Waterloo | R | 08:30 AM - 09:50 AM | BA113 | Mr. David Brown |
| L02 | Waterloo | R | 10:00 AM - 11:20 AM | BA113 | Mr. David Brown |
| MC1 | Milton | MW | 10:00 AM - 11:20 AM | MAC128 | Dr. Saiqa Aleem |
| ML1 | Milton | W | 04:00 PM - 05:20 PM | MAC117 | Dr. Manisha Krishnan |
| VA1 | Virtual | - | Mr. Muhammad Malik |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 09:30 AM - 10:20 AM | LH1009 | Mr. David Brown |
| IC1 | Int College, Waterloo | - | |||
| ICA | Int College, Waterloo | - | |||
| L01 | Waterloo | W | 11:30 AM - 12:50 PM | BA113 | Ms Xuyang Ma |
| VA1 | Virtual | - | Mr. David Brown |
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.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 10:00 AM - 11:20 AM | LH1010 | Mr. Asif Khan |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 10:00 AM - 11:20 AM | 1E1 | Dr. Li Wei |
| L01 | Waterloo | M | 12:30 PM - 01:20 PM | BA113 | Dr. Heider Ali |
| L02 | Waterloo | M | 01:30 PM - 02:20 PM | BA113 | Dr. Heider Ali |
| L03 | Waterloo | M | 10:30 AM - 11:20 AM | BA113 | Ms Xuyang Ma |
| L04 | Waterloo | M | 11:30 AM - 12:20 PM | BA113 | Ms Xuyang Ma |
| L05 | Waterloo | M | 02:30 PM - 03:20 PM | BA113 | Dr. Heider Ali |
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)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 01:00 PM - 02:20 PM | N1002 | Dr. Zia Ud Din |
| B | Waterloo | MW | 01:00 PM - 02:20 PM | LH1010 | Ms. Somayeh Fatahi |
| L01 | Waterloo | W | 03:30 PM - 04:20 PM | BA113 | Ms Xuyang Ma |
| L02 | Waterloo | W | 04:30 PM - 05:20 PM | BA113 | Ms Xuyang Ma |
| MC1 | Milton | MW | 08:30 AM - 09:50 AM | MAC128 | Ms Zara Hamid |
| ML1 | Milton | W | 02:30 PM - 03:50 PM | MAC117 | Dr. Manisha Krishnan |
| VA | Virtual | - | Mr. Muhammad Malik |
Finite and discrete algebraic structures relating to computers: sets, functions, relations. Machine-oriented logic. Topics include: propositional and predicate calculus, Boolean algebra, combinatorial counting (including Pigeonhole principle, permutations and combinations), recurrence equations, applications of recurrence equations in sorting algorithms, relations (including equivalence relations, partial orders), algorithms to generate permutations and combinations, induction and recursive programs, correctness proofs for both recursive and iterative program constructions, countable and uncountable sets, Cantor’s theorem, introduction to graph theory and graph algorithms.
3 lecture/discussion hours
Credit: 0.50
Prerequisite: CP164
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 07:00 PM - 08:20 PM | P110A/110B | Dr. Zia Ud Din |
| B | Waterloo | TR | 05:30 PM - 06:50 PM | BA101 | Ms. Shimaa Abdelmeguid |
| MC1 | Milton | TR | 01:00 PM - 02:20 PM | MAC128 | Dr. Samuel Okegbile |
| VA1 | Virtual | - | Dr. Angèle Foley |
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
Prerequisite: Registration status: Year 2
Exclusion: CP120/PC120
Cross-Listed: PC220
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 04:00 PM - 05:20 PM | BA201 | Dr. Maher Ahmed |
| B | Waterloo | TR | 05:30 PM - 06:50 PM | BA201 | Dr. Maher Ahmed |
| L01 | Waterloo | R | 11:30 AM - 12:50 PM | N2083 | Mr. Shaun Gao |
| L02 | Waterloo | W | 05:30 PM - 06:50 PM | N2083 | Dr. Heider Ali |
| L03 | Waterloo | R | 08:30 AM - 09:50 AM | N2083 | Mr. Shaun Gao |
| L04 | Waterloo | T | 01:00 PM - 02:20 PM | N2083 | Ms Xuyang Ma |
| L05 | Waterloo | T | 02:30 PM - 03:50 PM | N2083 | Ms Xuyang Ma |
| L06 | Waterloo | W | 11:30 AM - 12:50 PM | N2083 | Dr. Heider Ali |
| L09 | Waterloo | W | 08:30 AM - 09:50 AM | N2083 | Dr. Heider Ali |
| L10 | Waterloo | W | 10:00 AM - 11:20 AM | N2083 | Dr. Heider Ali |
| L13 | Waterloo | W | 02:30 PM - 03:50 PM | N2083 | Mr. Shaun Gao |
| MC1 | Milton | TR | 04:00 PM - 05:20 PM | MAC137 | Dr. Manisha Krishnan |
| ML1 | Milton | M | 10:00 AM - 11:20 AM | MAC117 | Dr. Manisha Krishnan |
| ML2 | Milton | M | 11:30 AM - 12:50 PM | MAC117 | Dr. Manisha Krishnan |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 08:30 AM - 09:20 AM | P110A/110B | Raed Karim |
| L01 | Waterloo | W | 10:00 AM - 11:20 AM | BA113 | Ms Xuyang Ma |
| VA1 | Virtual | - | Dr. Hongbing Fan |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 08:30 AM - 09:50 AM | 2C17 | Dr. Marek Wartak |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 11:30 AM - 12:20 PM | BA201 | Mr. Haytham Qushtom |
| B | Waterloo | MWF | 01:30 PM - 02:20 PM | N1001 | Dr. Evgueni Zima |
| C | Waterloo | TR | 10:00 AM - 11:20 AM | BA111 | Raed Karim |
| VA1 | Virtual | - | Dr. Masoomeh Rudafshani |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 02:30 PM - 03:50 PM | BA102 | Mr. Mustafa Daraghmeh |
| B | Waterloo | TR | 08:30 AM - 09:50 AM | P110A/110B | Mr. Asif Khan |
| VA | Virtual | - |
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
Prerequisite: CP104, CP220/PC220 (or CP120/PC120)
Corequisite: CP300/PC300 recommended
Cross-Listed: as PC319
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 11:30 AM - 12:50 PM | BA429 | Dr. Heider Ali |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 11:30 AM - 12:50 PM | LH1010 | Ms. Azam Asilian Bidgoli |
| B | Waterloo | TR | 01:00 PM - 02:20 PM | LH1010 | Ms. Somayeh Fatahi |
| C | Waterloo | TR | 05:30 PM - 06:50 PM | BA110 | Dr. Ahmed Ibrahim |
This course deals with the development of the Internet and its impacts on business transactions. The course explains key concepts and trends associated with e-commerce and online business. Topics include the role of the Internet, electronic marketplace, online marketing, web analytics, privacy and security issues and electronic payments.
3 lecture hours
Credit: 0.50
Prerequisite: CP213
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 09:30 AM - 10:20 AM | P110A/110B | Mr. Mustafa Daraghmeh |
| B | Waterloo | TR | 08:30 AM - 09:50 AM | LH1010 | Dr. Heider Ali |
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)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 10:30 AM - 11:20 AM | N1002 | Mr. Haytham Qushtom |
| B | Waterloo | MWF | 08:30 AM - 09:20 AM | N1002 | Mr. Haytham Qushtom |
| C | Waterloo | MWF | 09:30 AM - 10:20 AM | N1044 | Mr. Shaun Gao |
| MC1 | Milton | MW | 02:30 PM - 03:50 PM | MAC128 | Mr. Amgad Bassili |
| VA | Virtual | - | Mr. Haytham Qushtom |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 11:30 AM - 12:20 PM | N1002 | Ms. Lilatul Ferdouse |
| B | Waterloo | F | 10:30 AM - 01:20 PM | LH1010 | Mr. Usama Mir |
| C | Waterloo | MWF | 01:30 PM - 02:20 PM | N1002 | Mr. Tao Xu |
| MC1 | Milton | TR | 11:30 AM - 12:50 PM | MAC137 | Dr. Samuel Okegbile |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 05:30 PM - 06:50 PM | LH1010 | Dr. Alexei Kaltchenko |
| B | Waterloo | MW | 08:30 AM - 09:50 AM | LH1010 | Dr. Jason Robinson |
| MC1 | Milton | MW | 11:30 AM - 12:50 PM | MAC128 | Ms Sowmya Vishwanatha |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 04:00 PM - 05:20 PM | N1044 | Mr. Sukhjit Sehra |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - | Ms. Shimaa Abdelmeguid |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 02:30 PM - 03:50 PM | BA111 | Ms. Shimaa Abdelmeguid |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - | Ms. Somayeh Fatahi |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 04:00 PM - 05:20 PM | BA110 | Dr. Hongbing Fan |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 10:00 AM - 11:20 AM | LH1010 | Dr. Evgueni Zima |
| B | Waterloo | MW | 07:00 PM - 08:20 PM | LH1009 | Mr. Amgad Bassili |
| C | Waterloo | MW | 04:00 PM - 05:20 PM | BA112 | Dr. Evgueni Zima |
| D | Waterloo | TR | 04:00 PM - 05:20 PM | BA112 | Ms. Azam Asilian Bidgoli |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 11:30 AM - 12:50 PM | N1002 | Mr. Dariush Ebrahimi |
The explosion of social media and the computerization of every aspect of social and economic activity resulted in creation of large volumes of mostly unstructured data: web logs, videos, speech recordings, photographs, e-mails, Tweets, and similar data. The key objective of this course is to familiarize the students with key information technologies used in manipulating, storing, and analyzing big data. We look at the basic tools for statistical analysis, R and Python, and some key methods of machine learning. We review MapReduce techniques for parallel processing, Hadoop, an open source framework for running MapReduce on Internet scale problems and HDFS, Hadoop's Distributed File System. We teach Spark which emerged as the most important big data processing framework. We touch on tools that provide SQL-like access to unstructured data like Hive. We analyze so-called NoSQL storage solutions exemplified by Cassandra for their critical features: speed of reads and writes, and ability to scale to extreme volumes. We examine memory resident databases (VoltDB, SciDB) and graph databases (Ne4J). Students gain the ability to initiate and design highly scalable systems that can accept, store, and analyze large volumes of unstructured data in batch mode and/or real time. Most lectures are presented using Java examples. Some lectures use Python and R.
Credit: 0.50
Prerequisite: CP317
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 10:30 AM - 11:20 AM | LH1009 | Mr. Emad Mohammed |
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 courseCredit at the 200 level with permission of the department)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 04:00 PM - 05:20 PM | BA209 | Mr. Shaun Gao |
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)
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 11:30 AM - 12:50 PM | BA110 | Dr. Zia Ud Din |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 01:00 PM - 02:20 PM | BA102 | Dr. Masoomeh Rudafshani |
| B | Waterloo | TR | 08:30 AM - 09:50 AM | BA202 | Dr. Ahmed Ibrahim |
| BR | Brantford | M | 04:00 PM - 06:50 PM | GRH102A | Mr. Yichen Zhang |
How to write applications for the Android mobile devices using the Android Development Tools. Developing software with the Model-View-Controller paradigm. Knowledge of Java is required. The course project will be the development of an Android app.
3 lecture hours
Credit: 0.50
Prerequisite: CP213, CP317
Exclusion: CP400Q
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 02:30 PM - 03:50 PM | BA209 | Dr. Abdul Mawlood-Yunis |
| VA | Virtual | - |
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
Credit: 0.50
Prerequisite: CP213, CP372 or CP364/PC364.
Exclusion: CP400P.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 05:30 PM - 06:50 PM | BA210 | Mr. Dariush Ebrahimi |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - | Ms. Somayeh Fatahi |
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.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - | Dr. Ilias Kotsireas |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 02:30 PM - 03:50 PM | N1057 | Dr. Masoomeh Rudafshani |
| BR | Brantford | T | 11:30 AM - 02:20 PM | RCW203 | Mr. Lei Gao |
| VA | Virtual | - | Mr. Yichen Zhang |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 10:00 AM - 11:20 AM | BA210 | Dr. Yang Liu |
| BR1 | Brantford | T | 04:00 PM - 06:50 PM | RCW203 | Mr. Kaiyu Li |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA1 | Virtual | - | Dr. Hongbing Fan |
As the worldwide smartphone market continues to grow, so does the demand for mobile applications. This course provides students with the skills for creating and deploying applications for mobile devices using Android, the most widely used operating system. With an emphasis on the Model-View-Controller paradigm this course provides students with the foundational knowledge that underlies many popular programming languages. The course cumulates with the development of an original Android application. Knowledge of Java is required.
3 lecture hours
Credit: 0.50
Exclusion: CP470
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| VA | Virtual | - | Dr. Abdul Mawlood-Yunis |
This course is designed for students who take the course-based option in the Master of Applied Computing program. The instructor selects topics for study. The course material is presented through lectures, and possibly guest-speaker seminars. Students, with approval from the instructor, select a topic for an in-depth study. Students have the option to ask a full-time faculty member to supervise their project, in consultation with the instructor. Project topics might include a new contribution to a scientific area, or computer code to implement solution to a computing problem. The students' performance is evaluated based on course attendance, the written report, and oral presentations.
Credit: 0.50
Prerequisite: Completion of 5 courses in the MAC program.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| BF1 | Brantford | T | 07:00 PM - 09:50 PM | RCW203 | Mr. Lei Gao |
Students will complete a thesis based on original research and defend it before an examining committee.
3 lecture hours
Credit: 2.00
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
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
Corequisite: MA110* or MA103 or MA105
Exclusion: PC100*, PC110*, PC141, PC151, PC161, SC100
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 04:00 PM - 05:20 PM | 2-106 | Dr. Marek Wartak |
| L01 | Waterloo | M | 08:30 AM - 10:20 AM | N2090 | Dr. Hasan Shodiev |
| L02 | Waterloo | M | 10:30 AM - 12:20 PM | N2090 | Dr. Hasan Shodiev |
| L03 | Waterloo | M | 12:30 PM - 02:20 PM | N2090 | Dr. Hasan Shodiev |
| L04 | Waterloo | M | 02:30 PM - 04:20 PM | N2090 | Dr. Hasan Shodiev |
| L05 | Waterloo | M | 04:30 PM - 06:20 PM | N2090 | Dr. Hasan Shodiev |
| MC1 | Milton | - | |||
| ML1 | Milton | - | Dr. Manisha Krishnan | ||
| MT1 | Milton | - | |||
| T01 | Waterloo | R | 07:00 PM - 07:50 PM | N1057 | |
| T02 | Waterloo | R | 08:00 PM - 08:50 PM | N1057 | |
| T03 | Waterloo | R | 09:00 PM - 09:50 PM | N1057 |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 08:30 PM - 09:50 PM | N1001 | Dr. Maher Ahmed |
| L01 | Waterloo | T | 02:30 PM - 04:20 PM | N2089 | Dr. Hasan Shodiev |
| L02 | Waterloo | T | 04:30 PM - 06:20 PM | N2089 | Dr. Hasan Shodiev |
| L03 | Waterloo | T | 06:30 PM - 08:20 PM | N2089 | Dr. Hasan Shodiev |
| L04 | Waterloo | W | 08:30 AM - 10:20 AM | N2089 | Dr. Hasan Shodiev |
| L05 | Waterloo | W | 10:30 AM - 12:20 PM | N2089 | Dr. Hasan Shodiev |
| L06 | Waterloo | W | 12:30 PM - 02:20 PM | N2089 | Dr. Hasan Shodiev |
| L07 | Waterloo | W | 02:30 PM - 04:20 PM | N2089 | Dr. Hasan Shodiev |
| L08 | Waterloo | W | 04:30 PM - 06:20 PM | N2089 | Dr. Hasan Shodiev |
| L09 | Waterloo | W | 06:30 PM - 08:20 PM | N2089 | Dr. Hasan Shodiev |
| L10 | Waterloo | R | 02:30 PM - 04:20 PM | N2089 | Dr. Hasan Shodiev |
| L11 | Waterloo | R | 04:30 PM - 06:20 PM | N2089 | Dr. Hasan Shodiev |
| T01 | Waterloo | R | 07:00 PM - 07:50 PM | BA429 | |
| T02 | Waterloo | R | 08:00 PM - 08:50 PM | BA429 | |
| T03 | Waterloo | R | 09:00 PM - 09:50 PM | BA429 | |
| T04 | Waterloo | F | 09:30 AM - 10:20 AM | 2-101 | |
| T05 | Waterloo | F | 11:30 AM - 12:20 PM | 2-101 |
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
Corequisite: MA100 or MA110* or MA103 or MA105
Exclusion: PC131, PC141, PC161, BSc degree programs, physics minor
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 04:00 PM - 05:20 PM | 2-106 | Dr. Marek Wartak |
| T01 | Waterloo | R | 07:00 PM - 07:50 PM | N1057 | |
| T02 | Waterloo | R | 08:00 PM - 08:50 PM | N1057 |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 08:30 PM - 09:50 PM | N1001 | Dr. Maher Ahmed |
| T01 | Waterloo | R | 07:00 PM - 07:50 PM | BA429 | |
| T02 | Waterloo | R | 08:00 PM - 08:50 PM | BA429 | |
| T03 | Waterloo | R | 09:00 PM - 09:50 PM | BA429 | |
| T04 | Waterloo | F | 09:30 AM - 10:20 AM | 2-101 | |
| T05 | Waterloo | F | 11:30 AM - 12:20 PM | 2-101 |
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.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 05:30 PM - 06:50 PM | 2-105 | Dr. Li Wei |
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
Prerequisite: Registration status: Year 2
Exclusion: CP120/PC120
Cross-Listed: CP220
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 04:00 PM - 05:20 PM | BA201 | Dr. Maher Ahmed |
| B | Waterloo | TR | 05:30 PM - 06:50 PM | BA201 | Dr. Maher Ahmed |
| L01 | Waterloo | R | 11:30 AM - 12:50 PM | N2083 | |
| L02 | Waterloo | W | 05:30 PM - 06:50 PM | N2083 | |
| L03 | Waterloo | R | 08:30 AM - 09:50 AM | N2083 | |
| L04 | Waterloo | T | 01:00 PM - 02:20 PM | N2083 | |
| L05 | Waterloo | T | 02:30 PM - 03:50 PM | N2083 | |
| L06 | Waterloo | W | 11:30 AM - 12:50 PM | N2083 | |
| L07 | Waterloo | W | 01:00 PM - 02:20 PM | N2083 | |
| L08 | Waterloo | W | 04:00 PM - 05:20 PM | N2083 | |
| L09 | Waterloo | W | 08:30 AM - 09:50 AM | N2083 | |
| L10 | Waterloo | W | 10:00 AM - 11:20 AM | N2083 | |
| L11 | Waterloo | R | 01:00 PM - 02:20 PM | N2083 | |
| L12 | Waterloo | R | 02:30 PM - 03:50 PM | N2083 | |
| L13 | Waterloo | W | 02:30 PM - 03:50 PM | N2083 | |
| L14 | Waterloo | R | 10:00 AM - 11:20 AM | N2083 | |
| MC1 | Milton | TR | 04:00 PM - 05:20 PM | MAC137 | |
| ML1 | Milton | M | 10:00 AM - 11:20 AM | MAC117 | Dr. Manisha Krishnan |
| ML2 | Milton | M | 11:30 AM - 12:50 PM | MAC117 | Dr. Manisha Krishnan |
| ML3 | Milton | M | 02:30 PM - 03:50 PM | MAC117 | Dr. Manisha Krishnan |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - | |||
| *T | University of Waterloo | - |
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.
3 lecture hours
Credit: 0.50
Prerequisite: AS101
Exclusion: PC310B
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MWF | 10:30 AM - 11:20 AM | BA112 | Mr. Salim Al-Ajeel |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 08:30 AM - 09:50 AM | 2C17 | Dr. Marek Wartak |
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
Prerequisite: CP104, CP220/PC220 (or CP120/PC120)
Corequisite: CP300/PC300 recommended
Cross-Listed: as CP319
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 11:30 AM - 12:50 PM | BA429 | Dr. Heider Ali |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | MW | 04:00 PM - 05:20 PM | 2C15 | Mr. or Ms. Rajinder Kaur |
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.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | TR | 10:00 AM - 11:20 AM | N1059 | Mr. Salim Al-Ajeel |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| *0 | University of Waterloo | - |
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.
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - |
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
| Section | Campus | Days | Times | Room | Instructor |
|---|---|---|---|---|---|
| A | Waterloo | - |