Academic Calendar 2007 Table of Contents Office of the Registrar Western Homepage
Academic Calendar 2008 UNDERGRADUATE COURSE INFORMATION Software Engineering (E)
INTRODUCTION
UNDERGRADUATE SESSIONAL DATES
STUDENT SERVICES
ACADEMIC INFORMATION
STUDENT FINANCIAL SERVICES
FACULTIES
UNDERGRADUATE COURSE INFORMATION
FACULTY MEMBERS
AFFILIATED UNIVERSITY COLLEGES
GLOSSARY
NEW MODULES/PROGRAMS
TABLE OF CONTENTS




Software Engineering (E)

Note:  In order to find a course in the new 4 digit numbering system using an old 3 digit number, please refer to the conversion list below. Before registering for courses with the new 4 digit numbering system, please ensure that you have not previously taken the course in its 3 digit form.

Click here for conversion list of former 3-digit course numbers.

All Engineering Science courses are available only to students registered in the Faculty of Engineering unless indicated otherwise.
Software Engineering 2203A/B - Object Oriented Design for Software Engineers
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
Antirequisite(s):
Prerequisite(s): Computer Science 1026A/B or Engineering Science 1036A/B or the former Computer Science 036a/b, Computer Science 1027A/B or 1037A/B.
Corequisite(s): SE 2205A/B, SE 2250A/B.
Pre-or Corequisite(s):
Extra Information: 2 lecture hours, 3 laboratory hours, 1 tutorial hour, 0.5 course.
back to top
Software Engineering 2205A/B - Algorithms and Data Structures for Object-Oriented 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.
Antirequisite(s): Computer Science 2210A/B.
Prerequisite(s): Computer Science 1026A/B or Engineering Science 1036A/B or the former Computer Science 036a/b, Computer Science 1027A/B or 1037A/B, or permission of the Department.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 1 laboratory hour, 0.5 course
back to top
Software Engineering 2250A/B - Introduction to C and UNIX
Introduction of UNIX as a platform for software engineering. Comprehensive study of C language through a series of projects. Basic software engineering life cycle and the UNIX tools that support this. Examining advanced C programming techniques and UNIX kernel syscalls.
Antirequisite(s):
Prerequisite(s): Computer Science 1026A/B or Engineering Science 1036A/B, or the former Computer Science 036a/b.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 2 lecture hours, 2 laboratory hours, 0.5 course.
back to top
Software Engineering 2251A/B - Discrete Structures for Software Engineers
Logic, sets and functions, algorithms, mathematical reasoning, counting, relations, graphs, trees, Boolean Algebra, computation, modeling.
Antirequisite(s): Mathematics 2155A.
Prerequisite(s): Computer Science 1026A/B or Engineering Science 1036A/B or the former Computer Science 036a/b.
Corequisite(s): Computer Science 1027A/B or 1037A/B.
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 0.5 course.
back to top
Software Engineering 3309A/B - Database Management Systems
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.
Antirequisite(s): Computer Science 3319A/B.
Prerequisite(s): SE 2203A/B, SE 2205A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours/week, 2 laboratory hours/week, 0.5 course.
back to top
Software Engineering 3310A/B - Theoretical Foundations of Software Engineering
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.
Antirequisite(s): Computer Science 3331A/B, 3340A/B.
Prerequisite(s): Registration in third year of Software Engineering program.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 tutorial hours, 0.5 course.
back to top
Software Engineering 3312A/B - Introduction to Computer Networks
OSI reference model layers, path determination techniques, configuration and operation of routers, IP routing/addressing and subnetting techniques. The topics covered, along with laboratory exercises, help the student in constructing efficient networks and understanding new technologies.
Antirequisite(s): Computer Science 3357A/B.
Prerequisite(s): Registration in third or fourth year Engineering program.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 laboratory hours, 0.5 course.
back to top
Software Engineering 3313A/B - Operating Systems for Software Engineering
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.
Antirequisite(s): Computer Science 3305A/B.
Prerequisite(s): SE 2203A/B, SE 2205A/B, SE 2250A/B or completion of third year of the Computer Engineering Program.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 laboratory hours, 0.5 course.
back to top
Software Engineering 3314A/B - Design and Implementation of Computer Networks 
Design, configuration, and maintenance of switches, LANs, and VLANs leading to a thorough understanding of the real-world internetworking. At the completion of this, the student is well-prepared to write the Cisco CCNA Certification Examination.
Antirequisite(s):
Prerequisite(s): SE 3312A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 laboratory hours, 0.5 course.
back to top
Software Engineering 3350Y - Software Engineering Design I
Design and implementation of a large group project illustrating the design concepts being taught and promoting team interaction in a professional setting.
Antirequisite(s):
Prerequisite(s): SE 2203A/B.
Corequisite(s): SE 3351A/B, SE 3352A/B, SE 3353A/B.
Pre-or Corequisite(s):
Extra Information: 1 lecture hour, 3 tutorial/laboratory hours, both terms, 0.5 course.
back to top
Software Engineering 3351A/B - Software Project and Process Management
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 plan.
Antirequisite(s): Computer Science 3377A/B.
Corequisite(s): SE 3350Y.
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, one tutorial hour, 0.5 course.
back to top
Software Engineering 3352A/B - Software Engineering Design Tools
System tools (loaders, debuggers, libraries, archivers), survey of programming languages, run-time systems, introduction to parsing (yacc and lex), survey of database technology, Object Oriented languages, special topics.
Prerequisite(s): SE 3313A/B, SE 3351A/B.
Corequisite(s): SE 3350Y, SE 3310A/B.
Pre-or Corequisite(s):
Extra Information: 2 lecture hours, 2 tutorial hours, 0.5 course.
back to top
Software Engineering 3353A/B - Human-Computer Interaction
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.
Antirequisite(s): Computer Science 4474A/B.
Prerequisite(s):
Corequisite(s): SE 3313A/B.
Pre-or Corequisite(s):
Extra Information: 2 lecture hours, 2 tutorial hours, 0.5 course.
back to top
Software Engineering 4410A/B - Wireless LANs and WANs
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.
Antirequisite(s):
Prerequisite(s): SE 3312A/B, SE 3314A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 laboratory hours, 0.5 course.
back to top
Software Engineering 4411A/B - Internet Engineering
Technologies, protocols and architectures of the Internet. Engineering and business implications of each protocol and their effect on end-user application design will be stressed. The course will contain several case studies from industry.
Antirequisite(s): Computer Science 4457A/B/Y.
Prerequisite(s): SE 3312A/B or Computer Science 3357A/B
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 laboratory hours, 0.5 course.
back to top
Software Engineering 4450 - Software Engineering Design II
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.
Antirequisite(s): CBE 4415, CEE 4440, ECE 4416, MME 4419, MME 4499.
Prerequisite(s): Completion of third year of the Software Engineering program.
Corequisite(s): SE 4452A/B, SE 4453A/B.
Pre-or Corequisite(s):
Extra Information: 6 laboratory hours, both terms, 1.0 course.
back to top
Software Engineering 4452A/B - Software Requirements, Testing and Risk Assessment
Engineering requirements (including life cycle, process, elicitation, analysis, validation and management), inspections (life cycle, reviews, walkthroughs, metrics) and testing (techniques, classes of testing, metrics).
Antirequisite(s): Computer Science 4473A/B.
Prerequisite(s): SE 3351A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 0.5 course.
back to top
Software Engineering 4453A/B - Software Quality, Reliability and Maintenance 
Software quality issues, defect detection and prevention, reliability engineering, examination of maintenance issues, configuration management. Software evolution issues, planning for evolution.
Prerequisite(s): SE 4452A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 0.5 course.
back to top
Software Engineering 4455A/B - Performance Analysis of Computer Systems
Queuing and sampling theory, design of experiments, basic measurement theory, hardware tools, network tools, special problems of software measurement.
Antirequisite(s):
Prerequisite(s): Completion of third year in the Software Engineering program.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 0.5 course.
back to top
Software Engineering 4456A/B - Software for Communications Systems
Fundamental communications concepts; information, entropy, channel capacity, codes, data compression, modulation/demodulation of signals, use of signal processing, special problems of wireless transmission, characteristics of embedded communications software.
Antirequisite(s):
Prerequisite(s): SE 3314A/B, SE 3352A/B, ECE 3331A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 1 laboratory hour, 0.5 course.
back to top
Software Engineering 4466A/B - Distributed and Parallel Systems
Issues arising in distributed and parallel systems and applications; related architectures such as connection machines, networked machines, shared memory computers.
Antirequisite(s): Computer Science 4402A/B.
Prerequisite(s): SE 3313A/B, ECE 3375A/B.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 1 laboratory hour, 0.5 course.
back to top
Software Engineering 4470A/B - Selected Topics in Software Engineering I
The course deals with topics of current interest in Software Engineering. Topics and course outline will be available at the time of registration.
Antirequisite(s):
Prerequisite(s): Completion of the third year of the Software Engineering program.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 1 lab hour, 0.5 course.
back to top
Software Engineering 4471A/B - Selected Topics in Software Engineering II
The course deals with topics of current interest in Software Engineering. Topics and course outline will be available at the time of registration.
Antirequisite(s):
Prerequisite(s): Completion of the third year of the Software Engineering program.
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 1 lab hour, 0.5 course.
back to top
Software Engineering 4472A/B - Information Security
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.
Antirequisite(s):
Corequisite(s):
Pre-or Corequisite(s):
Extra Information: 3 lecture hours, 2 tutorial/laboratory hours, 0.5 course.
back to top
Academic Calendar 2008 UNDERGRADUATE COURSE INFORMATION Software Engineering (E)
Decision Academic