|
For more information about these courses, see the Department of Electrical and Software Engineering: .
|
|
Software Engineering for Engineers
300
|
Software Engineering Practices for Data Management
|
|
Introduction to professional skills practices within software engineering. Individual software processes and reflection, resiliency and debugging skills, command line navigation, revision control. Foundations of database management systems. Types of data models, relational and entity-relationship models, integrity constraints, normalization, Structured Query Language (SQL). Data privacy, security, and ethical considerations.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Engineering 233 or Digital Engineering 233.
Antirequisite(s):
Credit for Software Engineering for Engineers 300 and Computer Science 471 will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
337
|
Programming Fundamentals for Software and Computer
|
|
Key features of the C programming language. Pointers, memory models and memory management. Manipulation of text files and binary files. Introduction to recursion. Introduction to a modern object-oriented language. Development of basic program design skills with small projects.
Course Hours:
3 units; (3-1T-1.5)
Prerequisite(s):
Engineering 233 or Digital Engineering 233.
Antirequisite(s):
Credit for Software Engineering for Engineers 337 and Computer Engineering 339 will not be allowed.
|
back to top | |
|
|
Software Engineering for Engineers
380
|
Object-Oriented Principles for Software Development
|
|
Fundamental object-oriented software design and development topics for software engineering. Object-oriented analysis, design and development. Inheritance, polymorphism, and application of common data structures. Best practices for tools for testing, debugging, and documentation.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 300 and 337.
Antirequisite(s):
Credit for Software Engineering for Engineers 380 and any of Software Engineering for Engineers 409, Electrical Engineering 409 or Computer Engineering 493 will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
381
|
Full Stack Web Development
|
|
A practical survey of fullstack software development including front-end and back-end design and development, relevant libraries and framework, principles of devOps and cloud integration, in the context of agile software development. Introduction to Continuous Integration and Continuous Delivery (CI/CD).
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 300 and 337.
 Â
|
back to top | |
|
Software Engineering for Engineers
400
|
Software Engineering Industry Practices and Communication
|
|
Continuation of professional skills within the field of software engineering. Application of common tools for efficient software practice, cloud, continuous integration, and deployment. Introduction to innovation and ethics in design and entrepreneurial mindset. Licensing, legal, and internationalization issues.
Course Hours:
3 units; (2-3)
Prerequisite(s):
Software Engineering for Engineers 300.
|
back to top | |
|
|
|
Software Engineering for Engineers
460
|
Embedded Software and Hardware Systems
|
|
Embedded real-time applications and operations. Computer architecture, microcontrollers and their instruction sets. Control and interfacing for robotics applications using common input/output devices, debugging and other software engineering practices. Strategies for interrupt handling and exception handling.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Computer Engineering 369.
Antirequisite(s):
Credit for Software Engineering for Engineers 460 and Computer Engineering 511 will not be allowed.
|
back to top | |
|
|
|
|
Software Engineering for Engineers
519
|
Special Topics in Software Engineering
|
|
Current topics in software engineering.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Consent of the Department.
Notes:
Consult Department for announcement of topics.
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
|
|
Software Engineering for Engineers
592
|
Programming Fundamentals for Data Engineers
|
|
An introductory course in programming with an emphasis on data engineering. Topics include: Basic data structures and algorithms; Loops and iterations; Files and I/O, Functions, Classes, Modules, and Packages; Strings and text manipulation; Data wrangling; Network and web programming; Data visualization.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering or consent of the department.
Antirequisite(s):
Credit for Software Engineering for Engineers 592 and 519.48 (Prog Fundmtl's Data Engineers) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
593
|
Principles of Software Development I
|
|
A fundamental study of software design and development topics for Engineering students. Topics include: fundamental programming constructs; key features of an object-oriented programming language, especially inheritance and polymorphism, elements of object-oriented design; programming and application of common data structures; strategies and tools for testing and debugging.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering or consent of the department.
Antirequisite(s):
Credit for Software Engineering for Engineers 593 and 519.49 (Principles of Software Dev I) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
594
|
Principles of Software Development II
|
|
A fundamental study of software design and development topics for Engineering students. Topics include: parallel programming; event-driven programming; database programming; socket programming, and the development of client-server architectures; software engineering best practices.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering or consent of the department.
Antirequisite(s):
Credit for Software Engineering for Engineers 594 and 519.50 (Principles of Software Dev II) will not be allowed.
    Â
|
back to top | |
|
Graduate Courses
Registration in all courses requires the approval of the Department of Electrical and Software Engineering.
|
Software Engineering for Engineers
603
|
Modelling and Measurement of Software Performance
|
|
Performance-oriented review of computer systems; methodologies to evaluate software performance; fundamental performance laws; performance prediction using queuing network models; discrete event simulation of computer system performance, simulation input and output analysis; performance testing, monitoring and benchmarking; workload characterization; software performance engineering.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MSc or PhD with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 603 and 619.02 (SoftwareDevelpmnt OpenSource) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
604
|
Theoretical Foundations of Software Engineering
|
|
Explores formal principles of software engineering based on the common recognition that software engineering is not constrained by any physical laws as we know. The transdisciplinary foundations of software engineering are presented from the facets of information, computing, mathematics, cognitive, and management sciences, software engineering philosophies; engineering, mathematical, computational, management science, cognitive informatics, computational intelligence foundations and approaches of software engineering. As a result, a coherent framework of software engineering theories is learnt.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MSc or PhD with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 604 and Software Engineering 609.19 (TheoreticalFoundationsOfSeng) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
606
|
Software Engineering Fundamentals
|
|
Methodological foundation of software development principles from requirements analysis to software design and architecture.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 606 and either 614 or 619.16 (Software Engg Fundamentals) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
607
|
Advanced Software Development and Architecture
|
|
A study of software design topics including: abstraction, modularity, design patterns, software modelling, architectural patterns.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and completion of Software Engineering for Engineers 692, 693 and 694; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.
Antirequisite(s):
Credit for Software Engineering for Engineers 607 and 619.21 (Software Design & Arch I) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
608
|
Databases
|
|
A study of topics related to architecting software systems: database design, methods and technologies for developing web-based software systems, and architecting systems for non-functional software properties.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and completion of Software Engineering for Engineers 692, 693 and 694; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.
Antirequisite(s):
Credit for Software Engineering for Engineers 608 and 619.22 (Software Design & Arch II) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
609
|
Team Design Project in Software Engineering I
|
|
A team design project in either software development or software best practice and experience.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and Software Engineering for Engineers 607, 608, 611 and 614; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.
Antirequisite(s):
Credit for Software Engineering for Engineers 609 and 619.23 (Team Design Project I) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
610
|
Team Design Project in Software Engineering II
|
|
A team design project in either software development or software best practice and experience.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and completion of Software Engineering for Engineers 692, 693 and 694; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.
    Â
Antirequisite(s):
Credit for Software Engineering for Engineers 610 and 619.24 (Team Design Project II) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
611
|
Machine Learning for Software Engineers
|
|
Covers Machine Learning, which focuses on developing machine learning applications, specifically in the engineering domain. Covers basic techniques for supervised and unsupervised learning, with the emphasis on the applied aspects of the techniques.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and completion of Software Engineering for Engineers 692, 693 and 694; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.    Â
Antirequisite(s):
Credit for Software Engineering for Engineers 611 and either 519.47 (Applied Data Science) or 619.25 (Machine Learning for ENSF) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
612
|
Engineering Large Scale Data Analytics Systems
|
|
Sources and characteristics of large scale data, i.e., "big data", large scale data analysis, benefits of large scale data analysis to various industry domains, scalable data analysis frameworks, large scale data algorithms in selected application domains.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and completion of Software Engineering for Engineers 692, 693 and 694; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.
Antirequisite(s):
Credit for Software Engineering for Engineers 612 and 619.28 (Large Scale Analytics Systems) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
613
|
Software Requirements Analysis and Process Management
|
|
Introduction to software development process, product management, and software requirements analysis: Elicitation, modelling, and validation of requirements.
Course Hours:
3 units; (3-0)
Prerequisite(s):
Admission to the MSc or PhD with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 613 and 619.30 (Rqrm't Analysis & Process Mgmt) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
614
|
Advanced System Analysis and Software Design
|
|
Advanced topics on principles of system analysis, system thinking, requirements engineering, essential elements of quality software design, design patterns, and system-level software analysis.
Course Hours:
3 units; (3-1)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering and completion of Software Engineering for Engineers 692, 693 and 694; or admission to the MEng with specialization in Software Engineering, foundation courses exempt cohort.
Antirequisite(s):
Credit for Software Engineering for Engineers 614 and either 606 or 619.34 (AdvSytm analy&SoftwareDesgn) will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
619
|
Special Topics
|
|
A study of problems of particular interest to students specializing in Software Engineering.
Course Hours:
3 units; (3-1) or (3-0)
Prerequisite(s):
Admission to the MSc or PhD with specialization in Software Engineering.
MAY BE REPEATED FOR CREDIT
|
back to top | |
|
Software Engineering for Engineers
692
|
Programming Fundamentals for Data Engineers
|
|
An introductory course in programming with an emphasis on data engineering. Topics include: basic data structures and algorithms; loops and iterations; files and I/O, functions, classes, modules, and packages; strings and text manipulation; data wrangling; network and web programming; data visualization.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 692 and either 519.48 (Prog Fundmtl's Data Engineers) or 592 will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
693
|
Principles of Software Development I
|
|
A fundamental study of software design and development topics for engineering students. Topics include: fundamental programming constructs; key features of an object-oriented programming language, especially inheritance and polymorphism, elements of object-oriented design; programming and application of common data structures; strategies and tools for testing and debugging.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 693 and either 519.49 (Principles of Software Dev I) or 593 will not be allowed.
|
back to top | |
|
Software Engineering for Engineers
694
|
Principles of Software Development II
|
|
A fundamental study of data structures and algorithms for engineering students. Topics include arrays, lists, stacks, queues, trees, hash tables, graphs, algorithms for searching and sorting, and introduction to algorithm analysis.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Admission to the MEng with specialization in Software Engineering.
Antirequisite(s):
Credit for Software Engineering for Engineers 694 and either 519.50 (Principles of Software Dev II) or 594 will not be allowed.
|
back to top | |
|