Professional Degree courses in Dentistry, Education, Law, Medicine and Theology (MTS, MDiv)
Courses offered by Continuing Studies
Graduate Studies courses
* These courses are equivalent to pre-university introductory courses and may be counted for credit in the student's record, unless these courses were taken in a preliminary year. They may not be counted toward essay or breadth requirements, or used to meet modular admission requirements unless it is explicitly stated in the Senate-approved outline of the module.
1.0 course not designated as an essay course
0.5 course offered in first term
0.5 course offered in second term
0.5 course offered in first and/or second term
1.0 essay course
0.5 essay course offered in first term
0.5 essay course offered in second term
0.5 essay course offered in first and/or second term
1.0 accelerated course (8 weeks)
1.0 accelerated course (6 weeks)
0.5 graduate course offered in summer term (May - August)
0.25 course offered within a regular session
0.25 course offered in other than a regular session
1.0 accelerated course (full course offered in one term)
0.5 course offered in other than a regular session
0.5 essay course offered in other than a regular session
A course that must be successfully completed prior to registration for credit in the desired course.
A course that must be taken concurrently with (or prior to registration in) the desired course.
Courses that overlap sufficiently in course content that both cannot be taken for credit.
Many courses at Western have a significant writing component. To recognize student achievement, a number of such courses have been designated as essay courses and will be identified on the student's record (E essay full course; F/G/Z essay half-course).
A first year course that is listed by a department offering a module as a requirement for admission to the module. For admission to an Honours Specialization module or Double Major modules in an Honours Bachelor degree, at least 3.0 courses will be considered principal courses.
Object Oriented Design (OOD) using the Unified Modeling Language. Importance of the design process in the software life cycle. Review of traditional software design methods leading into fundamental OOD principles and practices. Reusability, use of tool sets and standards are stressed. Brief coverage of user-interface design, real-time and distributed systems, architectural design.
Survey of important computer algorithms and related data structures used in object-oriented software engineering. Design, performance analysis and implementation of such algorithms, stressing their practical use and performance certification of large software applications. Understand how to "seal" designs to guarantee performance goals and insure that all error conditions are caught.
Provides an in depth look at the implementation and test phases of the software construction process. This project based course provides hands-on experience on various aspects of software construction including practical experience on software construction tool chain, testing and debugging tools as well as change management tools.
The focus is to teach database fundamentals required in the development and evolution of most software applications by providing a basic introduction to the principles of relational database management systems such as Entity-Relationship approach to data modeling, relational model of database management systems and the use of query languages.
An investigation into the theoretical foundations of Software Engineering including automata theory, computability, analysis of algorithms and the application of formal specification methods to software specification.
Theory and construction of operating systems, including real-time and embedded systems aspect from an engineering point of view, stressing performance measurement and metrics. Quality of Service issues leading to certification that an operating system will satisfy hard real-time constraints.
This course examines and introduces advanced concepts in computer network and data communications. Topics include mobile and wireless data communications, multimedia networking, network management, distributed computing and clusters, and peer to peer network applications.
Project Management and Software Process life cycles. Includes detailed analysis of components of each process. Metrics, tools and related standards associated with those components. Integration into a complete software project planning including software effort, scheduling and cost estimation, software quality management, and software risk management.
Requirements includes a feasibility study of the desired systems, elicitations and analysis of user's needs, the creation of a precise description of what the system should and should not do along with any constraints on its operation and implementation, and the validation of this specification by the users.
Design and testing of user interfaces for the supervisory control of complex systems. Interfaces for human input and methods for displaying complex data using advanced graphics, interactive visualization methods. Advanced UI development software.
This course concentrates on advanced aspects of switching and routing of complex, diverse LAN, MAN and WAN networks, including the design and provisioning of global intranets. Included is a detailed examination of remote access, including various wireless protocols.
Design and implementation of a large software engineering project. Design, coding, testing and implementation are carried out by individual students or project groups under the supervision of a faculty member. Progress reports and a final engineering report are prepared; each student must deliver a public lecture on the work performed.
The course focuses on software testing, verification and validation, and maintenance issues. Topics include review/inspection, testing techniques, levels of testing (unit, integration, system, acceptance, regression, etc.), and testing tools (static and dynamic). Review of software tools/techniques to manage changes in software and to control the evolution of a software project.
The course concentrates on the fundamental elements of cloud computing such as resource virtualization and distributed systems including the main concepts of cloud infrastructures. Laboratory activities will allow students to be exposed to fundamental technologies used by cloud computing such as virtual machines, virtual machine monitors, resource allocations, etc.
The objective of this course is to introduce students to the fields of Machine Learning and Data Science. The students will learn various algorithms and how they are implemented to solve real world problems. Students will get hands-on experience in implementing these algorithms using various programming languages and platforms.
This course provides an introduction to the topic of security in the context of computer networks. The goals are to provide students with a foundation allowing them to identify, analyze, and solve network-related security problems in information systems with the emphasis on the engineering aspects of information security.