Professional Degree courses in Dentistry, Education, Law, Medicine and Theology (MTS, MDiv)
6000-6999
Courses offered by Continuing Studies
9000-9999
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.
Suffixes
no suffix
1.0 course not designated as an essay course
A
0.5 course offered in first term
B
0.5 course offered in second term
A/B
0.5 course offered in first and/or second term
E
1.0 essay course
F
0.5 essay course offered in first term
G
0.5 essay course offered in second term
F/G
0.5 essay course offered in first and/or second term
H
1.0 accelerated course (8 weeks)
J
1.0 accelerated course (6 weeks)
K
0.75 course
L
0.5 graduate course offered in summer term (May - August)
Q/R/S/T
0.25 course offered within a regular session
U
0.25 course offered in other than a regular session
W/X
1.0 accelerated course (full course offered in one term)
Y
0.5 course offered in other than a regular session
Z
0.5 essay course offered in other than a regular session
Glossary
Prerequisite
A course that must be successfully completed prior to registration for credit in the desired course.
Corequisite
A course that must be taken concurrently with (or prior to registration in) the desired course.
Antirequisite
Courses that overlap sufficiently in course content that both cannot be taken for credit.
Essay Courses
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).
Principal Courses
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.
This course is intended to explore the concepts of scripting programming using JavaScript including variable, flow control, expressions, arrays, and objects, to allow students writing functions using objects, properties and methods needed to deliver simple interactive web-based programs. The course also includes coverage of basic HTML and CSS and discusses topics such as the best-practice JavaScript programming patterns.
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 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.
Technologies, protocols and architectures of the Internet. From HTML, XML, JavaScript to paradigms such as ReST and AJAX and software frameworks for developing modern web applications and integrating services from 3rd parties. We will also look at semantic web, business implications of these protocols as well as legal, ethical and social issues surrounding these technologies.
Design and implementation of a large group project illustrating the design concepts being taught and promoting team interaction in a professional setting.
Antirequisite(s): Computer Science 3307 A/B/Y (if SE 3350A/B was taken prior to 2022/23 academic year).
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.
Prerequisite(s):SE 3314A/B, or the former SE 3312A/B
Extra Information: 3 lecture hours, 2 laboratory hours
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.
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.