| CS 100s |
|
| CS 200s |
|
| CS 300s |
|
| CS 400s |
|
In using the course information, please be aware of the following limitations. Courses are displayed by our best guess of anticipated offerings, though circumstances may change in such a way that actual offerings differ. Access indicates courses that are available to at least some students in a given category; please check the course descriptions for detailed information about prerequisites and access. Senior students might also wish to check graduate course offerings for other options.
Note: We have started to rewrite the "course descriptions" in a new format. We hope that the new format will provide more useful information. It will take some time to rewrite them all. In the meantime, you can easily tell the difference—old-format descriptions start with a header "Objectives", while the new-format ones start with the header "General Description".
In order to view the list of courses filtered by term of offering, accessibility or level, select from the appropriate list and press submit.
| Course | Title | Additional Information | |||
|---|---|---|---|---|---|
| CS 100 Online/DE | Introduction to Computer Usage | Course Description | Webpage | Calendar entry | |
| CS 115 | Introduction to Computer Science 1 | Course Description | Webpage | Calendar entry | |
| CS 116 | Introduction to Computer Science 2 | Course Description | Webpage | Calendar entry | |
| CS 135 | Designing Functional Programs | Course Description | Webpage | Calendar entry | |
| CS 136 | Elementary Algorithm Design and Data Abstraction | Course Description | Webpage | Calendar entry | |
| CS 137 | Programming Principles | Course Description | Webpage | Calendar entry | |
| CS 138 | Functional Programming and Data Abstraction | Course Description | Webpage | Calendar entry | |
| CS 145 | Design, Abstraction and Implementation | New Description | Webpage | Calendar entry | |
| CS 146 | Elementary Algorithm Design and Data Abstraction (advanced version) | New Description | Webpage | Calendar entry | |
| CS 200 | Concepts for Advanced Computer Usage | Course Description | Webpage | Calendar entry | |
| CS 230 | Introduction to Computers and Computer Systems | New Description | Webpage | Calendar entry | |
| CS 234 | Data Types and Structures | New Description | Webpage | Calendar entry | |
| CS 240 | Data Structures and Data Management | New Description | Webpage | Calendar entry | |
| CS 241 | Foundations of Sequential Programs | New Description | Webpage | Calendar entry | |
| CS 245 | Logic and Computation | New Description | Webpage | Calendar entry | |
| CS 246 | Object-Oriented Software Development | New Description | Webpage | Calendar entry | |
| CS 247 | Software Abstraction and Specification | Course Description | Webpage | Calendar entry | |
| CS 251 | Computer Organization and Design | New Description | Webpage | Calendar entry | |
| CS 330 | Management Information Systems | Course Description | Webpage | Calendar entry | |
| CS 335 | Computational Methods in Business and Finance | New Description | Webpage | Calendar entry | |
| CS 338 | Computer Applications in Business | Course Description | Webpage | Calendar entry | |
| CS 341 | Algorithms | Course Description | Webpage | Calendar entry | YouTube |
| CS 343 | Concurrent and Parallel Programming | Course Description | Webpage | Calendar entry | YouTube |
| CS 348 | Introduction to Database Management | Course Description | Webpage | Calendar entry | YouTube |
| CS 349 | User Interfaces | Course Description | Webpage | Calendar entry | YouTube |
| CS 350 | Operating Systems | Course Description | Webpage | Calendar entry | |
| CS 360 | Introduction to the Theory of Computing | Course Description | Webpage | Calendar entry | YouTube |
| CS 365 | Models of Computation | Course Description | Webpage | Calendar entry | YouTube |
| CS 370 | Numerical Computation | Course Description | Webpage | Calendar entry | YouTube |
| CS 371 | Introduction to Computational Mathematics | Course Description | Webpage | Calendar entry | YouTube |
| CS 399 | Readings in Computer Science | Course Description | Webpage | Calendar entry | |
| CS 430 | Applications Software Engineering | Course Description | Webpage | Calendar entry | |
| CS 432 | Business Systems Analysis | Course Description | Webpage | Calendar entry | |
| CS 436 | Distributed Computer Systems | New Description | Webpage | Calendar entry | |
| CS 442 | Principles of Programming Languages | Course Description | Webpage | Calendar entry | YouTube |
| CS 444 | Compiler Construction | Course Description | Webpage | Calendar entry | YouTube |
| CS 445 | Software Requirements Specification and Analysis | Course Description | Webpage | Calendar entry | YouTube |
| CS 446 | Software Design and Architectures | Course Description | Webpage | Calendar entry | YouTube |
| CS 447 | Software Testing | Course Description | Webpage | Calendar entry | |
| CS 448 | Database Systems Implementation | Course Description | Webpage | Calendar entry | YouTube |
| CS 449 | Human Computer Interaction | New Description | Webpage | Calendar entry | YouTube |
| CS 450 | Computer Architecture | Course Description | Webpage | Calendar entry | |
| CS 452 | Real-Time Programming | Course Description | Webpage | Calendar entry | YouTube |
| CS 454 | Distributed Systems | Course Description | Webpage | Calendar entry | |
| CS 456 | Computer Networks | Course Description | Webpage | Calendar entry | |
| CS 458 | Computer Security and Privacy | Course Description | Webpage | Calendar entry | |
| CS 462 | Formal Languages and Parsing | Course Description | Webpage | Calendar entry | YouTube |
| CS 466 | Algorithm Design and Analysis | Course Description | Webpage | Calendar entry | YouTube |
| CS 467 | Introduction to Quantum Information Processing | Course Description | Webpage | Calendar entry | YouTube |
| CS 473 | Medical Image Processing | Course Description | Webpage | Calendar entry | YouTube |
| CS 475 | Computational Linear Algebra | Course Description | Webpage | Calendar entry | YouTube |
| CS 476 | Numeric Computation for Financial Modeling | Course Description | Webpage | Calendar entry | YouTube |
| CS 482 | Computational Techniques in Biological Sequence Analysis | Course Description | Webpage | Calendar entry | |
| CS 483 | Computational Techniques in Structural Bioinformatics | Course Description | Webpage | Calendar entry | |
| CS 484 | Introduction to Computational Vision | Course Description | Webpage | Calendar entry | |
| CS 485 | Machine Learning | New Description | Webpage | Calendar entry | YouTube |
| CS 486 | Introduction to Artificial Intelligence | Course Description | Webpage | Calendar entry | YouTube |
| CS 487 | Introduction to Symbolic Computation | Course Description | Webpage | Calendar entry | YouTube |
| CS 488 | Introduction to Computer Graphics | Course Description | Webpage | Calendar entry | YouTube |
| CS 490 | Information Systems Management | Course Description | Webpage | Calendar entry | |
| CS 492 | The Social Implications of Computing | Course Description | Webpage | Calendar entry | YouTube |
| CS 499R | Readings in Computer Science | Course Description | Webpage | Calendar entry | |
| CS 499T | Honours Thesis | Course Description | Webpage | Calendar entry | |

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1
Tel: 519-888-4567 x33293
Fax: 519-885-1208
Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics