Site Navigation
Welcome
Important Notice and Disclaimer
Academic Schedule
Types of Credentials and Sub-Degree Nomenclature
Undergraduate Degrees with a Major
Combined Degrees
Minor Programs
Student and Campus Services
Admissions
Academic Regulations
Experiential Learning
Tuition and General Fees
Student Financial Support
Architecture, Planning and Landscape, School of
Faculty of Arts
Cumming School of Medicine
Faculty of Graduate Studies
Haskayne School of Business
Faculty of Kinesiology
Faculty of Law
Faculty of Nursing
Qatar Faculty
Schulich School of Engineering
Faculty of Science
Faculty of Social Work
Faculty of Veterinary Medicine
Werklund School of Education
Embedded Certificates
Continuing Education
COURSES OF INSTRUCTION
How to Use
Courses of Instruction by Faculty
Course Descriptions
A
B
C
D
E
F
G
H
I
J, K
L
M
N, O
P
R
S
School of Creative and Performing Arts SCPA
Science SCIE
Slavic SLAV
Social Work SOWK
Sociology SOCI
Software Engineering SENG
Software Engineering for Engineers ENSF
South Asian Studies SAST
Space Physics SPPH
Spanish SPAN
Statistics STAT
Strategic Studies STST
Strategy and Global Management SGMA
Supply Chain Management SCMA
Sustainability Studies SUST
Sustainable Energy Development SEDV
T, U
V, W, Z
About the University of Calgary
Who's Who
Glossary of Terms
Contact Us
Archives
Summary of Changes for the 2021/22 Calendar
University of Calgary Calendar 2021-2022 COURSES OF INSTRUCTION Course Descriptions S Software Engineering for Engineers ENSF
Software Engineering for Engineers ENSF

For more information about these courses, see the Department of Electrical and Software Engineering: schulich.ucalgary.ca/electrical-computer.

Senior Courses
Software Engineering for Engineers 310       Fundamentals of Software Design and Development
Introduction to design and implementation of software systems for engineering applications. Software design lifecycle. Source code management systems. Debugging and testing techniques. Illustration of common data structures and fundamental algorithms using a high-level language. Libraries for input/output. Software tools to facilitate data analysis and visualization.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Engineering 233 or Digital Engineering 233; and admission to the Digital Engineering Minor.
Antirequisite(s):
Credit for Software Engineering for Engineers 310 and 519.06 will not be allowed.     
back to top
Software Engineering for Engineers 311       Advanced Software Design and Development
Principles of software modeling and design. Key elements of object- oriented design. Advanced topics such as concurrent programming, socket programming, event-driven programming, and database programming. Systems integration techniques to build practical applications from engineering domains.
Course Hours:
3 units; (3-2)
Prerequisite(s):
3 units from Software Engineering for Engineers 310, Geomatics Engineering 333, Computer Engineering 335 or Software Engineering for Engineers 337 and admission to the Digital Engineering Minor.
Antirequisite(s):
Credit for Software Engineering for Engineers 311 and either Software Engineering for Engineers 409 or 519.07 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 409       Principles of Software Development
A survey of software design and development topics for Engineering students. Topics include: 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):
Computer Engineering 335 or 339 or Software Engineering for Engineers 337.
Antirequisite(s):
Credit for Software Engineering for Engineers 409 and either Electrical Engineering 409 or Computer Engineering 493 will not be allowed.
back to top
Software Engineering for Engineers 410       Fundamentals of Applied Artificial Intelligence
Techniques for extracting, cleaning, and visualizing data from engineering applications. Basic numerical computation techniques underlying learning algorithms. Fundamental supervised and unsupervised learning algorithms. Emphasis will be on designing practical applications that leverage existing software libraries and frameworks to solve problems in various engineering disciplines.
Course Hours:
3 units; (3-2)
Prerequisite(s):
3 units from Software Engineering for Engineers 310, 337, Computer Engineering 335 or Geomatics Engineering 333 and admission to the Digital Engineering Minor.
Antirequisite(s):
Credit for Software Engineering for Engineers 410 and either Software Engineering for Engineers 519.47 or 544 will not be allowed.
back to top
Software Engineering for Engineers 411       Advanced Applied Artificial Intelligence and Machine Learning
Advanced supervised and unsupervised learning algorithms. Introduction to modern neural network architectures. Emphasis will be on designing practical applications that leverage existing software libraries and frameworks to solve engineering problems.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 410 and admission to the Digital Engineering Minor.
Antirequisite(s):
Credit for Software Engineering for Engineers 411 and either Software Engineering for Engineers 519.47 or Electrical Engineering 525 will not be allowed.
back to top
Software Engineering for Engineers 480       Principles of Software Design
Brief overview of typical software development lifecycles. Systematic methods for designing large-scale, quality software. Concepts such as abstraction, modularity, and software modelling will be covered. Designing for non-functional properties of software will be introduced. Emphasis on individual skills.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 409 and Computer Engineering 369.
Antirequisite(s):
Credit for Software Engineering for Engineers 480 and any of Software Engineering 300, 301, 311, 411, Computer Science 301, 333, or 451 will not be allowed.
back to top
Software Engineering for Engineers 510       Cyber-Physical Systems
Fundamental principles related to the design of cyber-physical systems. Techniques to ensure reliability, performance, and security of cyber-physical systems. Emphasis will be on developing practical applications from engineering domains.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 311 and admission to the Digital Engineering Minor.
Antirequisite(s):
Credit for Software Engineering for Engineers 510 and Computer Engineering 511 will not be allowed.
back to top
Software Engineering for Engineers 511       Industrial Internet of Things Systems and Data Analytics
Fundamentals of Industrial Internet of Things (IIoT) Systems. Digital and software frameworks to support IIoT data analytics.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 510 and admission to the Digital Engineering Minor.
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 544       Data Science for Software Engineers
Fundamental topics in data collection, preparation, exploration, mining and machine learning will be covered with a focus on software development.
Course Hours:
3 units; (3-2)
Prerequisite(s):
3 units from Engineering 319, Digital Engineering 319 or Electrical Engineering 419; and 3 units from Software Engineering 337, Computer Engineering 335 or 339; and Computer Science 471.
Antirequisite(s):
Credit for Software Engineering for Engineers 544 and Electrical Engineering 525 will not be allowed.
back to top
Software Engineering for Engineers 545       Introduction to Virtual Reality
Introduce VR technologies. Emphasize on engineering methodologies of creating VR systems. Characterize VR systems, hardware and software, user 3D interaction, and VR applications and future.
Course Hours:
3 units; (3-2)
Prerequisite(s):
Software Engineering for Engineers 409.
Antirequisite(s):
Credit for Software Engineering for Engineers 545 and 519.45 will not be allowed.
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 as a Qualifying Student leading to the degree of MEng with Software Engineering specialization or consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 592 and 519.48 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 as a Qualifying Student leading to the degree of MEng with Software Engineering specialization or consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 593 and 519.49 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 as a Qualifying Student leading to the degree of MEng with Software Engineering specialization or consent of the Department.    
Antirequisite(s):
Credit for Software Engineering for Engineers 594 and 519.50 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)
Antirequisite(s):
Credit for Software Engineering 603 and 619.02 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)
Antirequisite(s):
Credit for Software Engineering for Engineers 604 and Software Engineering 609.19 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 or consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 606 and either 614 or 619.16 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 or consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 607 and 619.21 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 or consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 608 and 619.22 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 consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 609 and 619.23 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 Software Engineering for Engineers 607, 608, 611, and 614; or consent of the Department.    
Antirequisite(s):
Credit for Software Engineering for Engineers 610 and 619.24 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 or consent of the Department.    
Antirequisite(s):
Credit for Software Engineering for Engineers 611 and either 519.47 or 619.25 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 or consent of the Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 612 and 619.28 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 MEng with specialization in Software Engineering or consent of the Department.  
Antirequisite(s):
Credit for Software Engineering for Engineers 613 and 619.30 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 or consent of Department.
Antirequisite(s):
Credit for Software Engineering for Engineers 614 and either 619.34 or 606 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)
MAY BE REPEATED FOR CREDIT
back to top