| 
		
				
						
								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.
  | 
		|  | 
		| 
	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.
		| Software Engineering
				2203A/B -			
				Software Design |  
 
Antirequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				2205A/B -			
				Algorithms and Data Structures for Object-Oriented Design |  
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	UNIX utilities, shell programming and the effective use of those utilities. Students will explore advanced C programming concepts, the use of standard library, and the UNIX kernel system calls. Students will be familiarized with tool, techniques, and methodologies required to construct, to deploy, and to maintain a software system.
		| Software Engineering
				2250A/B -			
				Software Construction |  
 
Antirequisite(s):
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	Logic, sets and functions, algorithms, mathematical reasoning, counting, relations, graphs, trees, Boolean Algebra, computation, modeling.
		| Software Engineering
				2251A/B -			
				Discrete Structures for Software Engineers |  
 
Antirequisite(s):
Mathematics 2155A. 
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3309A/B -			
				Database Management Systems |  
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3310A/B -			
				Theoretical Foundations of Software Engineering |  
 
Prerequisite(s):
Registration in third year of Software Engineering program. 
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3313A/B -			
				Operating Systems for Software Engineering |  
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3314A/B -			
				Computer Networks Applications |  
 
Antirequisite(s):
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	XML style sheets (XSL) and resource description framework (RD), web services description language (WSDL), simple object access protocol (SOAP), universal description, discovery and integration (UDDI). In each segment, we will also discuss the business implications of each of the protocols and their effect on application design.
		| Software Engineering
				3316A/B -			
				Web Technologies |  
 
Antirequisite(s):
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	Design and implementation of a large group project illustrating the design concepts being taught and promoting team interaction in a professional setting.
		| Software Engineering
				3350Y -			
				Software Engineering Design I |  
 
Antirequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3351A/B -			
				Software Project and Process Management |  
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3352A/B -			
				Software Requirements and Analysis |  
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				3353A/B -			
				Human-Computer Interaction |  
 
Prerequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				4410A/B -			
				Wireless LANs and WANs |  
 
Antirequisite(s):
 
Prerequisite(s):
SE 3314A/B, the former SE 3312A/B.
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				4450 -			
				Software Engineering Design II |  
 
Prerequisite(s):
Completion of third year of the Software Engineering program. 
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	The course focuses on software verification and validation throughout the software life cycle, including reviews (inspections and walkthroughs), testing techniques (functional and structural), levels of testing (unit, integration, system, and acceptance), and testing tools (static and dynamic).
		| Software Engineering
				4452A/B -			
				Software Verification and Validation |  
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	Software quality issues, defect detection and prevention, reliability engineering, examination of maintenance issues, configuration management. Software evolution issues, planning for evolution.
		| Software Engineering
				4453A/B -			
				Software Quality, Reliability and Maintenance |  
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	The course deals with topics of current interest in Software Engineering. Topics and course outline will be available at the time of registration.
		| Software Engineering
				4470A/B -			
				Selected Topics in Software Engineering I |  
 
Antirequisite(s):
 
Prerequisite(s):
Completion of the third year of the Software Engineering program.
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	The course deals with topics of current interest in Software Engineering. Topics and course outline will be available at the time of registration.
		| Software Engineering
				4471A/B -			
				Selected Topics in Software Engineering II |  
 
Antirequisite(s):
 
Prerequisite(s):
Completion of the third year of the Software Engineering program.
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  | 
		| 
	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.
		| Software Engineering
				4472A/B -			
				Information Security |  
 
Antirequisite(s):
 
Corequisite(s):
 
Pre-or Corequisite(s):
 
Extra Information:
 
		| back to top |  |