Electrical Engineering and Computer Science

Explore Lassonde

Lassonde logo
Close mobile menu

About the Program

Software is used to control many aspects of the modern world, ranging from medical devices, nuclear power plants and airlines to Google and Amazon. Software engineering makes these complex systems possible, safe and reliable.

Lassonde’s Software Engineering program prepares you for a career using state-of-the-art computing labs, a full suite of software development tools, and hands-on experience in the design and development of software products. You’ll find your knowledge and skills to be valuable in systems at all scales and applications, from lightweight embedded Internet-of-things devices to massive data centres.

In a capstone project, you work with a team to design, test and deploy a significant and exciting product using all the knowledge and skills you have gained.

Student looking at laptop
A minimum of 30 course credits and at least half (50 percent) of the course credits required in each undergraduate degree program major/minor must be taken at York University.

Most 2000-, 3000-, and 4000-level EECS courses require the following general (that is, common) prerequisite, in addition to other course-specific prerequisites: a cumulative grade point average of 4.50 or better over all completed major EECS courses.

For requirements by degree, visit York’s academic calendar.
Degree Checklists are a complete listing of all program-specific courses required for successful graduation.
• Computing foundations including assembly languages, C, Java and MATLAB, used in a variety of domains such as app development, robotics and 3D graphics

• Linux system programming, shell scripting, shared memory and operating systems

• Embedded systems and digital logic design including interfacing and actuation of electrical and mechanical peripherals

• Software design including design patterns, unit/acceptance testing and design by contract

• Strong foundation in logic and its application to the specification and design of mission-critical systems

• Analysis, design and optimization of hardware and software
• IBM

• Ericsson

• BMO

• Nascent

• Ontario Ministry of Health and Long-Term Care

• Loyalty One

• Teledyne

• Telus

Sample Courses (Ordinary Stream)

For information on course requirements for other streams, refer to degree checklists above)

First Year

Fall

EECS 1101, 3 Credits

The Objectives of 1011 are threefold: providing a first exposure to procedural programming, teaching students a set of soft computing skills (such as reasoning about algorithms, tracing programs, test-driven development), and demonstrating how computers are used in a variety of engineering disciplines. It uses problem-based pedagogy to expose the underlying concepts and an experiential laboratory to implement them. An integrated computing environment (such as MATLAB) is used so that students can pick up key programming concepts(such as variables and control flow) without being exposed to complex or abstract constructs. The problems are chosen with consultation with the various engineering disciplines in the Faculty with a view of exposing how computing is used in these disciplines. Two hours per week for instructor’s lectures and three hours per week for lab work and tutorials. Prerequisites: None. Course credit exclusions: LE/EECS1541 3.00.
MATH 1028, 3 Credits

An introduction to propositional logic and application to switching circuits; sets, relations and functions; predicate logic and proof techniques; induction with applications to program correctness; basic counting techniques with applications; graphs and trees with applications in circuit analysis, information storage and retrieval, Huffman coding; automata and applications in software engineering. Prerequisites: MHF4U (Advanced Function) and MCV4U (Calculus and Vectors). Course Credit exclusions: LE/CSE 1019 3.00 (prior to Fall 2014), LE/EECS 1019 3.00, SC/CSE 1019 3.00 (prior to Summer 2013), SC/MATH 1019 3.00, SC/MATH 2320 3.00.
MATH 1013, 3 Credits

Introduction to the theory and applications of both differential and integral calculus. Limits. Derivatives of algebraic and trigonometric functions. Riemann sums, definite integrals and the Fundamental Theorem of Calculus. Logarithms and exponentials, Extreme value problems, Related rates, Areas and Volumes. Prerequisite: SC/MATH 1515 3.00 or SC/MATH 1520 3.00, or a high school calculus course. Course credit exclusions: SC/MATH 1000 3.00, SC/MATH 1300 3.00, SC/MATH 1505 6.00, SC/MATH 1513 6.00, SC/MATH 1530 3.00, SC/MATH 1550 6.00, GL/MATH/MODR 1930 3.00, AP/ECON 1530 3.00. Prior to Fall 2009: Prerequisite: AS/SC/MATH 1515 3.00 or AS/SC/MATH 1520 3.00, or a high school calculus course. Course credit exclusions: AS/SC/MATH 1000 3.00, AK/AS/SC/MATH 1300 3.00, AS/SC/MATH 1505 6.00, AS/SC/MATH 1513 6.00, AS/MATH 1530 3.00, AK/AS/MATH 1550 6.00, GL/MATH/MODR 1930 3.00, AS/ECON 1530 3.00.
MATH 1025, 3 Credits

Topics include spherical and cylindrical coordinates in Euclidean 3-space, general matrix algebra, determinants, vector space concepts for Euclidean n-space (e.g. linear dependence and independence, basis, dimension, linear transformations etc.), an introduction to eigenvalues and eigenvectors. Prerequisites: One 12U or OAC mathematics course or equivalent. Course credit exclusions: SC/MATH 1021 3.00, SC/MATH 2021 3.00, SC/MATH 2221 3.00, GL/MATH/MODR 26503.00. Prior to Fall 2009: Course credit exclusions: AK/AS/SC/MATH 1021 3.00, AS/SC/MATH 2021 3.00, AK/AS/SC/MATH 2221 3.00, GL/MATH/MODR 2650 3.00.
PHYS 1800, 3 Credits

Survey of the fundamental concepts of statics and dynamics with an emphasis on engineering applications. This is a calculus-based course intended primarily for engineering students. It includes tutorial and laboratory components. Three lecture hours per week; Two laboratory hours per week (for a total of Nine sessions); One tutorial hour per week. One term. Three credits. Prerequisites: 12U Physics or OAC Physics or SC/PHYS 1510 4.00. MHF4U Advanced Functions and MCV4U Calculus and Vectors, or 12U Advanced Functions and Introductory Calculus, or OAC Algebra and OAC Calculus. Corequisites: SC/MATH 1013 3.00 or SC/MATH 1300 3.00 or SC/MATH 1505 6.00. Course Credit Exclusions: SC/PHYS 1010 6.00, SC/PHYS 1410 6.00, SC/PHYS 1420 6.00.
ENG 1101, 4 Credits

Who is an engineer and what are his/her ethical and academic integrity obligations; communications strategies for technical subjects in oral and written forms; dealing with ambiguity, uncertainties, and open-ended problems in a technical context, problem definition strategies. 4 hours per week lectures and 1 hour per week tutorial session.

Winter

CHEM 1100, 4 Credits

The course is designed for Engineering students interested in refreshing and expanding their general chemistry knowledge while exploring the relationship between the structure of matter, properties and processing. This course will focus mainly on covering important introductory concepts to understand solution chemistry including reactivity, thermochemistry, structure and properties of materials. The course is divided into six sections. The first section covers an introduction to the topic of Materials Science and its impact on our daily lives as well as future trends and reviews key chemistry concepts required for this course. The second section will present the states of matter (gas, liquid and solid), their physical characteristics and the forces holding materials together (bonding and intermolecular forces). The third section will expend on the liquid phase and properties of solutions including equilibrium, solubility, pH and pKa. The fourth section will deal with thermochemistry and its first law with an emphasis on enthalpy as well as phase changes and phase diagrams. Section six will present an introduction to the properties of solids (electronic and mechanical) and criteria in the selection of materials will also be discussed. Section seven will present in more detail structure-properties and processing of soft materials (natural and artificial polymer) in the context of the material covered in the other sections. Four lecture hours per week, one tutorial hour per week, and three hours of laboratory or active learning exercises every other week. One term. Four credits. Prerequisites: 12U chemistry or equivalent. Course credit exclusion: SC/CHEM 1000 3.00.
EECS 1021, 3 Credits

The objective of 1021 is to introduce computational thinking – a process-based approach to problem-solving. It uses a problem-based pedagogy to expose the underlying concepts and an experiential laboratory to implement them. The programming language is chosen so that it is widely used in a variety of applications, is object-oriented, and is of industrial strength (Java is an example of such a language). The problems are chosen in order to expose abstract programming concepts by immersing them in relevant and engaging applications. The experiential laboratory is based on sensors and actuators that connect to a computer. The problems are chosen with consultation with the various engineering disciplines in the Faculty with a view of exposing how computing is used in these disciplines. Two hours per week lectures and three hours per week for lab work and tutorials. Prerequisites: LE/EECS1011 3.00. Course credit exclusions: LE/EECS 1022 3.00, LE/EECS1020 3.00, LE/CSE 1020 3.00, AK/AS/SC/CSE 1020 3.00.
MATH 1014, 3 Credits

Calculus in Polar Coordinates. Techniques of Integration. Indeterminate Forms. Improper Integrals. Sequences, infinite series and power series. Approximations. Introduction to ordinary differential equations. Prerequisite(s): One of SC/MATH 1000 3.00, SC/MATH 1013 3.00, SC/MATH 1300 3.00, or SC/MATH 1513 6.00; for non-science students only, six credits from SC/MATH 1530 3.00 and SC/MATH 1540 3.00, SC/MATH 1550 6.00, AP/ECON 1530 3.00 and AP/ECON 1540 3.00. Course credit exclusions: SC/MATH 1010 3.00, SC/MATH 1310 3.00, SC/MATH 1505 6.00, GL/MATH/MODR 1940 3.00. Prior to Fall 2009: Prerequisite(s): One of AS/SC/MATH 1000 3.00, AS/SC/MATH 1013 3.00, AK/AS/SC/MATH 1300 3.00, or AS/SC/MATH 1513 6.00; for non-science students only, six credits from AS/MATH 1530 3.00 and AS/MATH 1540 3.00, AK/AS/MATH 1550 6.00, AS/ECON 1530 3.00 and AS/ECON 1540 3.00. Course credit exclusions: AS/SC/MATH 1010 3.00, AK/AS/SC/MATH 1310 3.00, AS/SC/MATH 1505 6.00, GL/MATH/MODR 1940 3.00.
MATH 1013, 3 Credits

A survey of physics in which fundamental concepts in electricity, magnetism and optics are emphasized through engineering applications. This is a calculus-based course intended primarily for engineering students. It includes tutorial and laboratory components. Three lecture hours per week. Two laboratory hours per week (for a total of 9 sessions). One tutorial hour per week. One term. Three credits. Prerequisites: SC/PHYS 1800 3.00. Course Credit Exclusions: SC/PHYS 1010 6.00, SC/PHYS 1410 6.00, SC/PHYS 1420 6.00
ENG 1102, 4 Credits

This course will cover engineering design methodology; features and elements of good design with environment and human interface considerations; aesthetics in design and idea communication using graphics and technical drawings. Lectures: 4 hours per week for 12 weeks. Tutorials: 1 hour per week for 12 weeks Pre-req.: LE ENG 1101 4.0.

Second Year

Fall

MATH 1090, 3 Credits

The syntax and semantics of propositional and predicate logic. Applications to program specification and verification. Optional topics include set theory and induction using the formal logical language of the first part of the course. Prerequisite: SC/MATH 1190 3.00 or SC/MATH 1019 3.00. Course credit exclusion: SC/MATH 4290 3.00.
EECS 2011, 3 Credits

A study of fundamental data structures and their use in the efficient implementation of algorithms. Topics include abstract data types, lists, stacks, queues, trees and graphs. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”), LE/EECS 1030 3.00 or LE/EECS 2030 3.00, LE/EECS 1028 3.00 OR SC/MATH 1028 3.00 or LE/EECS 1019 3.00 or SC/MATH 1019 3.00. Previously offered as: LE/CSE 2011 3.00. The course discusses the fundamental data structures commonly used in the design of algorithms. Abstract operations on data structures are specified using pre and post conditions and/or system invariants. Trade-offs between a number of different implementations of each abstract data types (ADT) are analyzed. Each algorithm operating on data structures is proved correct using loop invariants or induction. Both formal and informal proofs are introduced though most of the reasoning is done informally. Data structures are coded and unit tested in an object-oriented language. Selecting the appropriate ADT and a suitable implementation depending on the application is covered. Prerequisites: EECS1019 or EECS1028, EECS1030 or 2030, MATHS1090
EECS 2021, 4 Credits

Introduction to computer organization and instruction set architecture, covering assembly language, machine language and encoding, addressing modes, single/multicycle datapaths (including functional units and controls), pipelining, memory segments and memory hierarchy. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 1021 3.00 or LE/EECS 1022 3.00 or LE/EECS 1720 3.00 or LE/EECS 1030 3.00. Previously offered as: LE/CSE 2021 4.00, SC/CSE 2021 4.00.
EECS 2030, 3 Credits

This course continues the separation of concern theme introduced in LE/EECS 1020 3.00 and LE/EECS1021 3.00. While 1020 and 1021 focuses on the client concern, this course focuses on the concern of the implementer. Hence, rather than using an API (Application Programming Interface) to build an application, the student is asked to implement a given API. Topics include implementing classes (non-utilities, delegation within the class definition, documentation and API generation, implementing contracts), aggregations (implementing aggregates versus compositions and implementing collections), inheritance hierarchies (attribute visibility, overriding methods, abstract classes versus interfaces, inner classes); applications of aggregation and inheritance in concurrent programming and event-driven programming; recursion; searching and sorting including quick and merge sorts); stacks and queues; linked lists; binary trees. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS1021 3.00 or LE/EECS 1020 (prior to Fall 2015) 3.00 or LE/EECS1022 3.00 or LE/EECS 1720 3.00. Course credit exclusions: AP/ITEC 2620 3.00. Previously offered as: LE/EECS1030 3.00, LE/CSE 1030 3.00.
EECS 2032, 4 Credits

This course introduces students to embedded systems. The students will learn basic features of embedded system architecture, as well as how to design, implement, and test programs for embedded systems. Topics include microcontrollers architectures, peripherals and communication protocols, interfacing, program development, and testing. Prerequisites: General Prerequisite: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”), LE/EECS 1021 3.00 , or LE/EECS 1022 3.00, and LE/EECS 2021 4.00. Course Credit Exclusion LE/EECS 2031 3.00, LE/EECS 3215 4.00, LE/CSE 3215 4.00. Co-requisites: LE/EECS 2030 3.00.
EECS 2200 , 3 Credits

This course covers the basic principles of linear circuits. Kirchhoff’s laws, circuit equations, RL, RC, and RLC circuits, three-phase circuits, power analysis and power factor, and magnetically coupled circuits. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit””5″), SC/PHYS 1010 6.00 or SC/PHYS 1801 3.00. Course credit exclusions: SC/PHYS 3050 3.00.

Winter

EECS 2311, 3 Credits

This course allows students to develop a significant piece of software utilizing all the skills they have acquired so far. This includes requirement elicitation, system specification, implementation, testing, deployment, and user documentation. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 1030 3.00 or LE/EECS 2030 3.00.
ENG 2001, 3 Credits

Introduction to management, economics and safety as they relate to engineering projects, including the following. Project management: work breakdown structures, Gantt charts, logic diagrams and change management. Engineering economics: time value of money, comparison methods, rates of return. Workplace safety. Group design projects. Weekly tutorial. Prerequisites: LE/ENG 1101 4.00 or LE/ENG 1000 6.0.
ENG 2003, 3 Credits

Students learn to effectively employ communication strategies essential to a successful engineering career, including the social, rhetorical, ethical, and practical aspects of professional communications. The focus is on building individuals’ confidence and judgment through communications assignments based on case studies. Two lecture hours per week. Two laboratory hours per week. Prerequisites: LE/ENG 1101 4.0.
MATH 2015, 3 Credits

Topics covered include partial derivatives; grad, div, curl and Laplacian operators; line and surface integrals; theorems of Gauss and Stokes; double and triple integrals in various coordinate systems; extrema and Taylor series for multivariate functions. Prerequisite: One of SC/MATH 1010 3.00, SC/MATH 1014 3.00, SC/MATH 1310 3.00; or SC/MATH 1505 6.00 plus permission of the course coordinator. Course credit exclusions: SC/MATH 2010 3.00, SC/MATH 2310 3.00, GL/MATH 2670 3.00, GL/MODR 2670 3.00, GL/MATH 3200 3.00.
CIVL 2390, 3 Credits

This is an applied probability and statistics course for engineering students. The aim is to provide an application-oriented introduction to probability and statistics. The examples will be from a wide selection of engineering disciplines. The probability component is about 30% of the lectures. About 40% of the time, the lectures and tutorials focus on solving practical statistical problems that emerge from engineering problems. Prerequisites: SC/MATH 1014 3.00 or equivalent; SC/MATH 1025 3.00 or equivalent; LE/EECS 1011 3.00 or equivalent. Course credit exclusions: SC/MATH 1131 3.00; SC/MATH 2560 3.00; SC/MATH 2570 3.00; SC/MATH 2565 3.00.
PHYS 2020, 3 Credits

The elements of electric and magnetic fields are developed together with DC and AC circuit theory. Prerequisites: SC/PHYS 1010 6.00, or SC/PHYS 1800 3.00 and SC/PHYS 1801 3.00, or SC/ISCI 1310 6.00, or a minimum grade of C in SC/PHYS 1410 6.00 or SC/PHYS 1420 6.00. Corequisite: SC/MATH 2015 3.00.
PHYS 2211, 1 Credit

An introductory laboratory course for second-year students. The course consists of 10 experiments covering basic concepts of electromagnetism. Normally three laboratory hours per week. One term. One credit. Prerequisite: SC/PHYS 1010 6.00, or SC/PHYS 1800 3.00 and SC/PHYS 1801 3.00, or SC/ISCI 1310 6.0 or a minimum grade of C in SC/PHYS 1410 6.00 or SC/PHYS 1420 6.00. Corequisite(s): SC/PHYS 2020 3.00. Course credit exclusion: SC/PHYS 2213 3.00

Third Year

Fall

EECS 3101, 3 Credits

Review of fundamental data structures. Analysis of algorithms: time and space complexity. Algorithm design paradigms: divide-and-conquer, exploring graphs, greedy methods, local search, dynamic programming, probabilistic algorithms, computational geometry. NP-complete problems. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2011 3.00; SC/MATH 1090 3.00; SC/MATH 1310 3.00. Course credit exclusion: LE/SC CSE 3101 3.00.
EECS 3201, 4 Credits

Theory, analysis, and design of logic circuits used in digital systems. Students will be introduced to the design of switching circuits to implement logic gates, digital number representation and arithmetic circuits. They will learn how to use logic gates to construct combinational and sequential logic circuits and functional blocks. The course and the laboratory introduce the students to hardware description language and modern cad tools. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses.(without second digit of ‘5 ) LE/EECS 1021 3.00 or LE/EECS 1022 3.00; SC/PHYS 1012 or SC/PHYS 1412 or SC/PHYS 1422 or SC/PHYS 1801 3.0 or SC/PHYS 1010
EECS 3221, 3 Credits

Principles of operating systems. Concurrent processes, CPU scheduling, deadlocks, memory management, file systems, protection and security, and case studies. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 2021 4.00 and LE/EECS 2031 3.00 or LE/EECS 2032 4.00. Course Credit Exclusion: LE/CSE 3221 3.00
EECS 3311, 3 Credits

A study of design methods and their use in the correct implementation, maintenance and evolution of software systems. Topics include design, implementation, testing, documentation needs and standards, support tools. Students design and implement components of a software system. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 2011 3.00; SC/MATH 1090 3.00; LE/EECS 2031 3.00 or LE/EECS 2032 4.00. Course Credit Exclusions: LE/CSE 3311 3.00

Winter

EECS 3451, 3 Credits

An introduction to the mathematical background in signals and systems; signal and image processing: sampling, discrete Fourier transform, filtering; linear system theory; Kalman filtering; feedback. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2021 4.00, SC/MATH 1310 3.00. Course credit exclusions: SC/MATH 4130B 3.00, SC/PHYS 4060 3.00. Previously offered as LE/CSE 3451 4.00. PRIOR TO FALL 2014: course credit exclusions: SC/MATH 4830 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 3451 4.00, SC/EATS 4020 3.00.
EECS 3342, 3 Credits

Theory and tools for specifying computer systems (sequential, concurrent and embedded). Specification (via set theory and predicate logic), modelling, abstraction, refinement and formal reasoning are undertaken before code development so that systems are correct by construction under the stated assumptions. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 2011 3.00; SC/MATH 1090 3.00.
ENG 3000, 3 Credits

An introduction to the legal and ethical frameworks of the engineering profession, preparing students for the Professional Practice Examination required for certification as a professional engineer. Also covered are associated professional issues such as entrepreneurship, intellectual property and patents. Prerequisites: LE/ENG 2001 3.00. Course credit exclusions: LE/EECS 3000 3.00

One of the following

ESSE 2210, 3 Credits

This course surveys a variety of Canadian case studies in environmental sustainability from an engineering perspective. The goal of this course is to provide students with exposure to the social aspects of large infrastructure projects, including the environmental assessment and stakeholder consultation processes. Climate change mitigation and adaptation are strong themes of this course.
ENVS 2150 3.00

Examines current national information societies and their possible transformation into a global information society by analyzing the interplay between the causes for the globalization of information and communication technologies, as well as the societal impact of these technologies.

At least 3 additional credits from

SC/BIOL 1000 3.00, SC/BIOL 1001 3.00, SC/CHEM 1001 3.00, SC/CHEM
2011 3.00, LE/ESSE 1011 3.00, LE/ESSE 1012 3.00, SC/PHYS 1070 3.00,
SC/PHYS 1470 3.00, SC/PHYS 2010 3.00, SC/PHYS 2040 3.00, SC/PHYS
2060 3.00, HH/IHST 1001 3.00, HH/IHST 1002 3.00

Complementary Studies (9 credits)

Fourth Year

Fall

EECS 3216, 3 Credits

This is a project intensive course to introduce students to modeling, implementation, testing, and validation of hardware-based embedded systems. The emphasis in this course is on complex digital systems that interact with physical systems. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”), LE/EECS 2032 4.00, or LE/EECS 2031 3.00, and LE/EECS 3201 3.00.
EECS 4312, 3 Credits

This course deals with the elicitation, specification and analysis of software requirements and provides a critical description of available methods and tools and practical exercises on applying these methods and tools to realistic problems. Three lecture hours per week. One laboratory hour per week. One term. Three credits. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 3311 3.00. Course credit exclusions: LE/CSE 4312 3.00, AK/AS/SC/CSE 4312 3.00.
EECS 4313, 3 Credits

An introduction to systematic methods of testing and verification, covering a range of static and dynamic techniques and their use within the development process; emphasizes the view that design should be carried out with verification in mind to achieve overall project goals. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS1030 3.00; LE/EECS 3311 3.00. Previously offered as: LE/CSE 4313 3.00.
EECS 4314, 3 Credits

Advanced software engineering methods, processes and measurements (from requirements through to system evolution) for managing and delivering reliable software on time and within budget. Understanding the different types of systems and their associated technical, ethical and professional issues. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 3311 3.00.

Winter

EECS 4315, 3 Credits

Theory and practical tools underlying deductive and algorithmic methods for ensuring the safety and correctness of mission critical systems (e.g. medical systems, nuclear reactors and train systems) with the practical ability to use verification tools to perform software certification. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 3342 3.00.
EECS 4413, 3 Credits

A study of the technical infrastructure that underlies Electronic Commerce on the Internet. The foundational concepts are presented through a series of projects that use an industrial-strength framework on the server side, standard-compliant technologies on the client side, and a variety of messaging protocols on the network side. Best practices, security concerns, and performance issues are emphasized throughout. Prerequisite: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit “5”); LE/EECS 2030 3.00 or LE/EECS 1030 3.00. Previously offered as: LE/CSE 4413 3.00.
ENG 4550, 3 Credits

This course provides an introduction to classical control theory. From a base of dynamic system modeling the course will develop methods for modifying system behaviour through feedback so as to produce desired performance and meet specifications in spite of disturbances and modeling errors. Students are expected to be versed in Linear Algebra, Ordinary Differential Equations, and Complex Variables. Signals and Systems would also be a definite asset. Prerequisites: SC/MATH 2015 3.00.
ENG 4000, 6 Credits

The project will include significant elements of design and implementation. The format is intended to resemble engineering projects in practice, including specifications, background research, innovative solutions, analysis, testing and communication. 2 terms. Prerequisite(s): 21 3000-level science or engineering credits in the Engineering Program, exclusive of LE/ENG 3000 3.00. Prerequisite or corequisite: LE/ENG 3000 3.00. Course credit exclusions: CIVL4000 , ESSE4000.

Plus 9 additional credits from computer science courses at the 3000
and 4000 level. At least 6 of these credits must be from the following
list:

LE/EECS 3214 3.00, LE/EECS 3421 3.00, LE/EECS 3461 3.00, LE/EECS
3481 3.00, LE/EECS 3482 3.00, LE/EECS 4214 3.00, LE/EECS 4215 3.00,
LE/EECS 4411 3.00, LE/EECS 4412 3.00, LE/EECS 4441 3.00, LE/EECS
4481 4.00, LE/EECS 4482 3.00, LE/EECS 4404 3.00