ÃÛÌÒ´«Ã½app

Minor Software Engineering (18 credits)

important

Note: This is the 2019–2020 eCalendar. Update the year in your browser's URL bar for the most recent version of this page, or .

Offered by: Electrical & Computer Engr     Degree: Bachelor of Engineering

Program Requirements

Minor Adviser: Undergraduate Program Office, Department of Electrical and Computer Engineering (Lorne Trottier Building, Room 2070)

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.

The Minor program does not carry professional recognition.

Up to two courses (6 credits) may be double-counted towards a degree program.

Required Courses

12 credits

  • COMP 250 Introduction to Computer Science (3 credits)

    Offered by: Computer Science (Faculty of Science)

    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 2019, Winter 2020

    Instructors: Langer, Michael; Alberini, Giulia (Fall) Alberini, Giulia; Sarrazin Gendron, Roman (Winter)

    • 3 hours

    • Prerequisites: Familiarity with a high level programming language and CEGEP level Math.

    • Students with limited programming experience should take COMP 202 or equivalent before COMP 250. See COMP 202 Course Description for a list of topics.

  • ECSE 223 Model-Based Programming (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Integration of modelling with programming; abstraction in software engineering; structural modelling; state-based modelling; modelling of object-oriented systems, code generation; natural language constraints in modelling notations; architectural and design patterns; integrated development environments; programming tools (debugging, continuous build/integration, version control and code repositories, diff, defect and issue tracking, refactoring); code review processes.

    Terms: Fall 2019, Winter 2020

    Instructors: Varro, Daniel (Fall) Varro, Daniel (Winter)

  • ECSE 321 Introduction to Software Engineering (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2019, Winter 2020

    Instructors: Kanaan, Marwan (Fall) Kanaan, Marwan (Winter)

  • ECSE 428 Software Engineering Practice (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2020

    Instructors: Sabourin, Robert (Winter)

    • (3-1-5)

    • Students meet with the instructor and/or teaching assistant for one hour each week to discuss their project.

    • Prerequisite: ECSE 321 or COMP 335

Complementary Courses

6 credits from the following:

  • COMP 302 Programming Languages and Paradigms (3 credits)

    Offered by: Computer Science (Faculty of Science)

    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 2019, Winter 2020

    Instructors: Pientka, Brigitte; Errington, Jacob (Fall) Panangaden, Prakash (Winter)

  • COMP 409 Concurrent Programming (3 credits)

    Offered by: Computer Science (Faculty of Science)

    Overview

    Computer Science (Sci) : Characteristics and utility of concurrent programs; formal methods for specification, verification and development of concurrent programs; communications, synchronization, resource allocation and management, coherency and integrity.

    Terms: Winter 2020

    Instructors: Verbrugge, Clark (Winter)

  • COMP 421 Database Systems (3 credits)

    Offered by: Computer Science (Faculty of Science)

    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 2020

    Instructors: D'silva, Joseph (Winter)

  • COMP 424 Artificial Intelligence (3 credits) *

    Offered by: Computer Science (Faculty of Science)

    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 2020

    Instructors: Cheung, Jackie; Trischler, Adam (Winter)

  • COMP 527 Logic and Computation (3 credits)

    Offered by: Computer Science (Faculty of Science)

    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 2019-2020 academic year.

    Instructors: There are no professors associated with this course for the 2019-2020 academic year.

    • 3 hours

    • Prerequisite: COMP 302

    • Restriction: Not open to students who have taken COMP 426

  • ECSE 326 Software Requirements Engineering (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Techniques for eliciting requirements; languages and models for specification of requirements; analysis and validation techniques, including feature-based, goal-based, and scenario-based analysis; quality requirements; requirements traceability and management; handling evolution of requirements; requirements documentation standards; requirements in the context of system engineering; integration of requirements engineering into software engineering processes.

    Terms: Fall 2019

    Instructors: McIntosh, Shane (Fall)

  • ECSE 420 Parallel Computing (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2019

    Instructors: Zilic, Zeljko (Fall)

  • ECSE 421 Embedded Systems (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2020

    Instructors: Cooperstock, Jeremy (Winter)

  • ECSE 422 Fault Tolerant Computing (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2020

    Instructors: Maheswaran, Muthucumaru (Winter)

  • ECSE 424 Human-Computer Interaction (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2019

    Instructors: Cooperstock, Jeremy (Fall)

  • ECSE 425 Computer Architecture (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Trends in technology. CISC vs. RISC architectures. Pipelining. Instruction level parallelism. Data and Control Hazards. Static prediction. Exceptions. Dependencies. Loop level paralleism. Dynamic scheduling, branch prediction. Branch target buffers. Superscalar and N-issue machines. VLIW. ILP techniques. Cache analysis and design. Interleaved and virtual memory. TLB translations and caches.

    Terms: Winter 2020

    Instructors: Emad, Amin (Winter)

  • ECSE 427 Operating Systems (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2019, Winter 2020

    Instructors: Maheswaran, Muthucumaru (Fall) Vybihal, Joseph P (Winter)

  • ECSE 429 Software Validation (3 credits)

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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 2019

    Instructors: Radecka, Katarzyna (Fall)

  • ECSE 439 Software Language Engineering (3 credits) *

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Practical and theoretical knowledge for developing software languages and models; foundations for model-based software development; topics include principles of model-driven engineering; concern-driven development; intentional, structural, and behavioral models as well as configuration models; constraints; language engineering; domain-specific languages; metamodeling; model transformations; models of computation; model analyses; and modeling tools.

    Terms: This course is not scheduled for the 2019-2020 academic year.

    Instructors: There are no professors associated with this course for the 2019-2020 academic year.

    • (3-2-4)

    • Prerequisites: ECSE 321 or COMP 303.

    • Restricted to Software Engineering students.

  • ECSE 446 Realistic Image Synthesis (3 credits) *

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Introduction to mathematical models of light transport and the numerical techniques used to generate realistic images in computer graphics. Offline (i.e., raytracing) and interactive (i.e., shader-based) techniques.

    Terms: Fall 2019

    Instructors: Nowrouzezahrai, Derek (Fall)

  • ECSE 526 Artificial Intelligence (3 credits) *+

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    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: Winter 2020

    Instructors: Cooperstock, Jeremy (Winter)

  • ECSE 539 Advanced Software Language Engineering (4 credits) *+

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Practical and theoretical knowledge for developing software languages and models; foundations for model-based software development; topics include principles of model-driven engineering; concern-driven development; intentional, structural, and behavioral models as well as configuration models; constraints; language engineering; domain-specific languages; metamodelling; model transformations; models of computation; model analyses; and modeling tools.

    Terms: This course is not scheduled for the 2019-2020 academic year.

    Instructors: There are no professors associated with this course for the 2019-2020 academic year.

  • ECSE 546 Advanced Image Synthesis (4 credits) *+

    Offered by: Electrical & Computer Engr (Faculty of Engineering)

    Overview

    Electrical Engineering : Introduction to mathematical models of light transport and the numerical techniques used to generate realistic images in computer graphics. Offline (i.e., raytracing) and interactive (i.e., shader-based) techniques. Group project addressing important applied research problems.

    Terms: Fall 2019

    Instructors: Nowrouzezahrai, Derek (Fall)

    • (3-2-7)

    • Restrictions: For graduate students in Electrical and Computer Engineering and undergraduate Honours Electrical Engineering students.

    • Not open to students who have taken or are taking ECSE 446.

* Students may choose only one course in each of the following sets:
- COMP 424 and ECSE 526
- ECSE 439 and ECSE 539
- ECSE 446 and ECSE 546

+ Restricted to Honours students or Computer Engineering or Electrical Engineering students with CGPA of at least 3.0 and B+ or better in prerequisites

Faculty of Engineering—2019-2020 (last updated Sep. 11, 2019) (disclaimer)
Back to top