Note: This is the 2016–2017 edition of the eCalendar. Update the year in your browser's URL bar for the most recent version of this page, or click here to jump to the newest eCalendar.
Program Requirements
Minor Adviser: Faculty Student Adviser in the 91ÉçÇø Engineering Student Centre (Student Affairs Office) (Frank Dawson Adams Building, Room 22).
The Software Engineering Minor will prepare engineering students for a career in software engineering. It will provide a foundation in basic computer science, computer programming, and software engineering practice.
This Minor consists of 24 credits (eight courses). Up to four courses (12 credits) may be double-counted for credit toward the B. Eng. degree in Electrical Engineering or Computer Engineering. Students in other programs may double-count up to three courses (9 credits).
Students considering this Minor should consult with the Minor Adviser listed above.
Required Courses
12 credits
-
COMP 250 Introduction to Computer Science (3 credits)
Overview
Computer Science (Sci) : Mathematical tools (binary numbers, induction, recurrence relations, asymptotic complexity, establishing correctness of programs), Data structures (arrays, stacks, queues, linked lists, trees, binary trees, binary search trees, heaps, hash tables), Recursive and non-recursive algorithms (searching and sorting, tree and graph traversal). Abstract data types, inheritance. Selected topics.
Terms: Fall 2016, Winter 2017
Instructors: Langer, Michael (Fall) Blanchette, Mathieu (Winter)
-
ECSE 221 Introduction to Computer Engineering (3 credits)
Overview
Electrical Engineering : Data representation in digital computers. Boolean algebra. Basic combinational circuits; their analysis and synthesis. Elements of sequential circuits: latches, flip-flops, counters and memory circuits. Computer structure, central processing unit, machine language. Assemblers and assembler language.
Terms: Fall 2016, Winter 2017
Instructors: Davis, Donald Peter (Fall) Nowrouzezahrai, Derek (Winter)
(3-2-4)
Prerequisite: COMP 202
Tutorials assigned by instructor.
-
ECSE 321 Introduction to Software Engineering (3 credits)
Overview
Electrical Engineering : Design, development and testing of software systems. Software life cycle: requirements analysis, software architecture and design, implementation, integration, test planning, and maintenance. The course involves a group project.
Terms: Fall 2016, Winter 2017
Instructors: McIntosh, Shane (Fall) Varro, Daniel (Winter)
-
ECSE 428 Software Engineering Practice (3 credits)
Overview
Electrical Engineering : Software engineering practice in industry, related to the design and commissioning of large software systems. Ethical, social, economic, safety and legal issues. Metrics, project management, costing, marketing, control, standards, CASE tools and bugs. The course involves a large team project.
Terms: Winter 2017
Instructors: Sabourin, Robert (Winter)
Complementary Courses
12 credits from the following:
Engineering Courses
6-12 credits from the following:
-
CHEE 571 Small Computer Applications: Chemical Engineering (3 credits)
Overview
Chemical Engineering : The use of small computers employing a high level language for data acquisition and the control of chemical processes. Real-time system characteristics and requirements, analog to digital, digital to analog conversions and computer control loops are examined. Block level simulation.
Terms: This course is not scheduled for the 2016-2017 academic year.
Instructors: There are no professors associated with this course for the 2016-2017 academic year.
(3-0-6)
Prerequisite: permission of the instructor
-
CIVE 460 Matrix Structural Analysis (3 credits)
Overview
Civil Engineering : Computer structural analysis, direct stiffness applied to two and three dimensional frames and trusses, matrix force method, nonlinear problems, buckling of trusses and frames, introduction to finite element analysis.
Terms: Fall 2016
Instructors: Hartloper, Alexander (Fall)
-
CIVE 550 Water Resources Management (3 credits)
Overview
Civil Engineering : State-of-the-art water resources management techniques; case studies of their application to Canadian situations; identification of major issues and problem areas; interprovincial and international river basins; implications of development alternatives; institutional arrangements for planning and development of water resources; and, legal and economic aspects.
Terms: This course is not scheduled for the 2016-2017 academic year.
Instructors: There are no professors associated with this course for the 2016-2017 academic year.
(3-0-6)
Prerequisite (Undergraduate): CIVE 323 or equivalent
-
CIVE 572 Computational Hydraulics (3 credits)
Overview
Civil Engineering : Computation of unsteady flows in open channels; abrupt waves, flood waves, tidal propagations; method of characteristics; mathematical modelling of river and coastal currents.
Terms: Fall 2016
Instructors: Chu, Vincent H (Fall)
(3-0-6)
Prerequisite: CIVE 327 or equivalent
-
ECSE 322 Computer Engineering (3 credits)
Overview
Electrical Engineering : Data structures (arrays, lists, stacks, queues, dequeues and trees) and their machine representation and simple algorithms. Peripheral devices: printers, keyboards, magnetic type drives, magnetic disc drives. Peripheral interfacing and busses. Introduction to operating systems. System integration. Computer systems and networks.
Terms: Fall 2016, Winter 2017
Instructors: Davis, Donald Peter; Lowther, David Alister (Fall) Lowther, David Alister (Winter)
-
ECSE 420 Parallel Computing (3 credits)
Overview
Electrical Engineering : Modern parallel computing architectures for shared memory, message passing and data parallel programming models. The design of cache coherent shared memory multiprocessors. Programming techniques for multithreaded, message passing and distributed systems. Use of modern programming languages and parallel programming libraries.
Terms: Fall 2016
Instructors: Zilic, Zeljko (Fall)
(3-2-4)
Prerequisite: ECSE 427
-
ECSE 421 Embedded Systems (3 credits)
Overview
Electrical Engineering : Definition, structure and properties of embedded systems. Real-time programming: interrupts, latency, context, re-entrancy, thread and process models. Microcontroller and DSP architectures, I/O systems, timing and event management. Real-time kernels and services. Techniques for development, debugging and verification. Techniques for limited resource environments. Networking for distributed systems.
Terms: Winter 2017
Instructors: Meyer, Brett (Winter)
-
ECSE 422 Fault Tolerant Computing (3 credits)
Overview
Electrical Engineering : Introduction to fault-tolerant systems. Fault-tolerance techniques through hardware, software, information and time redundancy. Failure classification, failure semantics, failure masking. Exception handling: detection, recovery, masking and propagation, termination vs. resumption. Reliable storage, reliable communication. Process groups, synchronous and asynchronous group membership and broadcast services. Automatic redundancy management. Case studies.
Terms: Winter 2017
Instructors: Maheswaran, Muthucumaru (Winter)
(3-1-5)
Prerequisite: ECSE 322
-
ECSE 424 Human-Computer Interaction (3 credits)
Overview
Electrical Engineering : The course highlights human-computer interaction strategies from an engineering perspective. Topics include user interfaces, novel paradigms in human-computer interaction, affordances, ecological interface design, ubiquitous computing and computer-supported cooperative work. Attention will be paid to issues of safety, usability, and performance.
Terms: Fall 2016
Instructors: Cooperstock, Jeremy (Fall)
-
ECSE 427 Operating Systems (3 credits)
Overview
Electrical Engineering : Operating system services, file system organization, disk and cpu scheduling, virtual memory management, concurrent processing and distributed systems, protection and security. Aspects of the DOS and UNIX operating systems and the C programming language. Programs that communicate between workstations across a network.
Terms: Fall 2016, Winter 2017
Instructors: Maheswaran, Muthucumaru (Fall) Maheswaran, Muthucumaru (Winter)
-
ECSE 429 Software Validation (3 credits)
Overview
Electrical Engineering : Correct and complete implementation of software requirements. Verification and validation lifecycle. Requirements analysis, model based analysis, and design analysis. Unit and system testing, performance, risk management, software reuse. Ubiquitous computing.
Terms: Fall 2016
Instructors: Mussbacher, Gunter (Fall)
-
ECSE 526 Artificial Intelligence (3 credits)
Overview
Electrical Engineering : Design principles of autonomous agents, agent architectures, machine learning, neural networks, genetic algorithms, and multi-agent collaboration. The course includes a term project that consists of designing and implementing software agents that collaborate and compete in a simulated environment.
Terms: Fall 2016
Instructors: Cooperstock, Jeremy (Fall)
(3-0-6)
Prerequisite: ECSE 322
-
ECSE 532 Computer Graphics (3 credits)
Overview
Electrical Engineering : Introduction to computer graphics systems and display devices: raster scan, scan conversion, graphical input and interactive techniques - window environments; display files: graphics languages and data structures: 2D transformations; 3D computer graphics, hidden line removal and shading; graphics system design; applications. Laboratory project involving the preparation and running of graphics programs.
Terms: This course is not scheduled for the 2016-2017 academic year.
Instructors: There are no professors associated with this course for the 2016-2017 academic year.
(3-0-6)
Prerequisite: ECSE 322
-
MECH 524 Computer Integrated Manufacturing (3 credits)
Overview
Mechanical Engineering : A study of the present impact of computers and automation on manufacturing. Computer-aided systems. Information modelling. Information system structures. Study of several types of production systems. Integration issues: inter-and intra-enterprise. Laboratory experience with manufacturing software systems.
Terms: This course is not scheduled for the 2016-2017 academic year.
Instructors: There are no professors associated with this course for the 2016-2017 academic year.
(3-0-6)
Prerequisite: Permission of the instructor
-
MECH 539 Computational Aerodynamics (3 credits)
Overview
Mechanical Engineering : Fundamental equations. Basic flow singularities. Boundary element methods. Source, doublet and vortex panel methods for 2D and 3D incompressible and compressible flows. Method of characteristics. Euler equations for inviscid rotational flows. Finite-difference and finite-volume methods. Explicit and implicit time-integration methods. Quasi 1D solutions. Nozzle and confined aerofoil applications.
Terms: Winter 2017
Instructors: Nadarajah, Sivakumaran (Winter)
Computer Science Courses
0-6 credits from the following (no more than 6 credits will count toward the Minor):
-
COMP 302 Programming Languages and Paradigms (3 credits)
Overview
Computer Science (Sci) : Programming language design issues and programming paradigms. Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming.
Terms: Fall 2016, Winter 2017
Instructors: Verbrugge, Clark (Fall) Panangaden, Prakash (Winter)
3 hours
Prerequisite: COMP 250
-
COMP 421 Database Systems (3 credits)
Overview
Computer Science (Sci) : Database Design: conceptual design of databases (e.g., entity-relationship model), relational data model, functional dependencies. Database Manipulation: relational algebra, SQL, database application programming, triggers, access control. Database Implementation: transactions, concurrency control, recovery, query execution and query optimization.
Terms: Winter 2017
Instructors: D'silva, Joseph (Winter)
-
COMP 424 Artificial Intelligence (3 credits)
Overview
Computer Science (Sci) : Introduction to search methods. Knowledge representation using logic and probability. Planning and decision making under uncertainty. Introduction to machine learning.
Terms: Winter 2017
Instructors: Cheung, Jackie (Winter)
-
COMP 527 Logic and Computation (3 credits)
Overview
Computer Science (Sci) : Introduction to modern constructive logic, its mathematical properties, and its numerous applications in computer science.
Terms: This course is not scheduled for the 2016-2017 academic year.
Instructors: There are no professors associated with this course for the 2016-2017 academic year.