Courses Prerequisite Skill Tree for EECS Department
Caution: visuals here is for simple reference only and may not perfectly represent course relations. We are working on eliminating bugs.
Legend:
prerequisite
(sometimes color-coded for convenient)
Credit Exclusion
(sometimes color-coded for convenient)
At least one of the above
All of the above
At least n credits from above
LE/EECS 1001 (1.00)Research Directions in Computing
An introduction to research directions within the department and more broadly within the field. Students will attend lectures and other events organised by the department. Note: This course is expected to be completed in the first-year of study.
LE/EECS 1011 (3.00)Computational Thinking Through Procedural Programming and Mechatronics
The objectives of 1011 are threefold: providing a first exposure to procedural programming, teaching students a set of computing skills (such as reasoning about algorithms, debugging and hardware interfacing and interaction), and demonstrating how computers are used in a variety of engineering disciplines. It uses problem-based pedagogy to expose the underlying concepts and experiential laboratory activities and projects to implement them. An integrated computing environment (such as MATLAB) is used so that students can learn 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. In support of program-related objectives, WHMIS I and Active Bystander training will take place in this course. Course credit exclusions: LE/EECS 1541 3.00.
LE/EECS 1012 (3.00)Introduction to Computing: A Net-centric Approach
The objectives of 1012 are threefold: providing a first exposure to event-driven programming, teaching students a set of computing skills (including reasoning about algorithms, tracing programs, test-driven development, unit testing), and providing an introduction to computing within a mobile, net-centric context. It uses problem-based approach to expose the underlying concepts and an experiential laboratory to implement them. A mature mobile software infrastructure
(such as HTML, CSS, and JavaScript) is used so that students can pick up key programming concepts (such as variables and control flow) within a client-server context without being bogged down in complex or abstract constructs. Laboratory exercises expose students to a range of real-world problems with a view of motivating computational thinking and grounding the material covered in lecture. Prerequisites: One of (1)-(3) below must be met: (1) (New high school curriculum): One 4U Math course with a grade of at least 75%. (2) Completion of six credits from York University MATH courses (not including courses with second digit 5) with a GPA of 5.00 or better over these credits; (3) Completion of six credits from York University mathematics courses whose second digit is 5, with an average grade not below 7.00 (B+). Course credit exclusions: AP/ITEC 3020 3.00, SC/CSE 2041 4.00 (prior to Summer 2013) Previously offered as: LE/CSE 2041 4.00, LE/EECS 2041 4.00.
LE/EECS 1015 (3.00)Introduction to Computer Science and Programming
This course is an introduction to the concepts and tools of computer science as students learn a procedural subset of the Python programming language. Python has a variety of libraries in different domains allowing for the solution of interesting problems which has made it a popular language in industry and the academy. Students do hands-on work to design, write, debug and test computer programs that solve problems computationally.
Students study variables, assignments, expressions (arithmetic, relational and logical) and sequencing of statements to implement solutions for computational problems, in Python. They document programs with comments and preconditions. They analyze the type correctness of programs via a type checker. They use an Integrated Development Environment (IDE) to develop, unit-test and debug programs given a problem specification. They apply conditionals (including nested conditionals) to implement algorithms to solve computational problems. They code functions to develop modular programming solutions for computational problems. They apply Python loops (including nested loops) to implement algorithms to solve computational problems. They apply data structures, including tuples, sets, lists and dictionaries, to implement algorithms to solve computational
problems. They code simple recursive functions to implement algorithms to solve computational problems. Prerequisites: One of (1)-(3) below must be met: (1) (New high school curriculum): One 4U Math course with a grade of at least 75%. (2) Completion of six credits from York University MATH courses (not including courses with second digit 5) with a GPA of 5.00 or better over these credits; (3) Completion of six credits from York University mathematics courses whose second digit is 5, with an average grade not below 7.00 (B+).
LE/EECS 1019 (3.00)Discrete Mathematics for Computer Science
Introduction to abstraction. Use and development of precise formulations of mathematical ideas. Informal introduction to logic; introduction to naïve set theory; induction; relations and functions; big O-notation; recursive definitions, recurrence relations and their solutions; graphs and trees. Prerequisites: SC/MATH 1190 3.00, or two 4U Math courses, including MHF4U (Advanced Function). Course credit exclusions: LE/EECS 1028 3.00, SC/MATH 1028 3.00, SC/MATH 2320 3.00.
LE/EECS 1019 (3.00)Discrete Mathematics for Computer Science
Introduction to abstraction. Use and development of precise formulations of mathematical ideas. Informal introduction to logic; introduction to naïve set theory; induction; relations and functions; big O-notation; recursive definitions, recurrence relations and their solutions; graphs and trees. Three lecture hours per week. Plus, drop-in optional problem sessions as well as instructor office hours, as these are announced in each term. Prerequisites: SC/MATH 1190 3.00 or SC/MATH 1200 3.00 or SC/MATH 2200 3.00, or two 4U Math courses, including MHF4U (Advanced Function). Course credit exclusions: LE/EECS 1028 3.00, SC/MATH 1028 3.00.
LE/EECS 1021 (3.00)Object Oriented Programming from Sensors to Actuators
"Introduces student to 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. Prerequisites: LE/EECS1011 3.00. Course credit exclusions: LE/EECS 1022 3.00. Previously offered as: LE/EECS1020 3.00, LE/CSE 1020 3.00.
LE/EECS 1022 (3.00)Introduction to Object Oriented Programming
Provides a first exposure to object-oriented programming and enhances student understanding of key computing skills such as programming with objects and simple data structures (e.g., arrays, linked lists), reasoning about algorithms, and working with software tools. It uses a problem-based approach to expose the underlying concepts and an experiential laboratory to implement them. A mature Integrated Development Environment (such as Java and the Eclipse programming, testing, and debugging environment) is used to expose and provide context to the underlying ideas. Laboratory exercises expose students to a range of real-world problems with a view of motivating computational thinking and grounding the material covered in lectures. Prerequisites: LE/EECS 1012 3.00 or LE/EECS 1015 3.00. Course credit
exclusions: LE/EECS 1021 3.00, LE/EECS 1020 3.00, LE/CSE 1020 3.00 , SC/CSE 1020 3.00, AP/ITEC 1620 3.00.
LE/EECS 1028 (3.00)Discrete Mathematics for Engineers
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.
LE/EECS 1516 (3.00)Object Oriented Design and Principles using Python
This course introduces the core concepts of object-oriented programming aiming at data science students with no prior experience of object-oriented design and programming. It focuses on subjects such as classes, objects, encapsulation, abstraction, inheritance, polymorphism, and the practical application of object-oriented design that is most useful in the domain of data science. These topics include data structures such as Stacks, Queues, linked data structures and trees. Data Science professionals require to work with algorithms that run in a reasonable time on large data sets. For this, computational complexity as a tool to evaluate the efficiency of designed algorithms is introduced. The language of choice is Python. Prerequisite: LE/EECS 1015 3.00.
An An introduction to the use of computers focusing on concepts of computer technology and organization (hardware and software) and the use of applications such as spreadsheets and information retrieval tools for problem solving. This course is designed for students who are not engineering or computer science majors. Students who plan to major in engineering or computer science are advised to take LE/EECS 1011 3.00 or LE/EECS 1012 3.00, respectively. Course credit exclusions: LE/CSE 1520 3.00, AK/AS/SC/CSE 1520 3.00. NCR Note: This course is not open to any student who has passed or is taking LE/EECS 1020 3.00, LE/CSE 1020 3.00, AK/AS/SC/CSE 1020 3.00, LE/EECS 1021 3.00, LE/EECS 1022 3.00.
Concepts of computer systems and technology - e.g. software engineering, algorithms, programming languages, theory of computation. Practical work focuses on problem solving using a high-level programming language. The course requires extensive laboratory work. This course is designed for students who are not Computer Science majors, but may be used as preparation by those who wish to major in Computer Science but lack programming background. Course credit exclusions: LE/EECS 1540 3.00, LE/CSE 1540 3.00 (prior to Fall 2014), SC/CSE 1540 3.00 prior to Summer 2013). Previously offered as: LE/CSE 1530 3.00, SC/CSE 1530 3.00. NCR: any student who has passed or is taking LE/EECS 1020 3.00 or LE/CSE 1020 3.00 or SC/CSE 1020 3.00 or LE/EECS 1021 3.00 or LE/EECS 1022 3.00 or AP/ITEC 1620 3.00.
LE/EECS 1540 (3.00)Computer Use for the Natural Sciences
Introduction to problem solving using computers - top down and modular design; implementation in a procedural programming language - control structures, data structures, subprograms; application to simple numerical methods, modelling and simulation in the sciences; use of library subprograms. Course credit exclusions: LE/EECS 1530 3.00. NCR: any student who has passed or is taking LE/EECS 1020 3.00, LE/CSE 1020 3.00 or LE/EECS 1021 3.00 or LE/EECS 1022 3.00 or AP/ITEC 1620 3.00. Previously offered as: LE/CSE 1540 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 1530 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 1540 3.00.
LE/EECS 1541 (3.00)Introduction to Computing for the Physical Sciences
An introduction to scientific computing using an integrated computing and visualization platform. Elements of procedural programming such as: control structures, data types, program modules. Visualization in two and three dimensions. Applications to numerical computation and simulations relevant to the physical sciences. Prerequisite: SC/MATH 1013 3.00 or equivalent; Corequisites: SC/PHYS 1010 6.00 or SC/PHYS 1410 6.00 or SC/PHYS 1420 6.00; and SC/MATH 1021 3.00 or SC/MATH 1025 3.00. Course credit exclusions: LE/EECS 1011 3.00, LE/ EECS 1560 3.00, LE/EECS 1570 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 1560 3.00, LE/SE1570 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 1560 3.00, SC/CSE1570 3.00.
LE/EECS 1560 (3.00)Introduction to Computing for Mathematics and Statistics
An introduction to scientific computing using an integrated computing and visualization environment. The course presents computer-based problem-solving techniques through a series of applications rooted in Mathematics and Statistics. Prerequisite: SC/MATH 1300 3.00: Corequisites: SC/MATH 1310 3.00; SC/MATH 1131 3.00 or SC/MATH 2030 3.00. Course credit exclusions: LE/EECS 1541 3.00, LE/EECS 1570 3.00. This course is not open to any student who has passed or is taking SC/PHYS 2030 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 1541 3.00, LE/CSE 1570 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 1541 3.00, SC/CSE 1570 3.00.
LE/EECS 1570 (3.00)Introduction to Computing for Psychology
An introduction to computing concepts with applications to problems drawn from psychology, including concepts of computer programming in an integrated computing and visualization environment. Prerequisite: SC/MATH 1505 6.00. Course credit exclusions: LE/EECS 1541 3.00, LE/EECS 1560 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 1541 3.00, LE/CSE 1560 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 1541 3.00, SC/CSE 1560 3.00.
LE/EECS 1580 (3.00)Introduction to Computing & Programming
This is an introductory course in computer science and programming languages for the science programs at the Glendon campus. The course is designed to train students to use popular programming platforms R and Python to solve computational problems arising in the sciences.
LE/EECS 1580 (3.00)Introduction à l'informatique et à la programmation
Il s'agit d'un cours d'introduction à l'informatique et aux langages de programmation. Le cours est conçu pour former les étudiants à l'utilisation des plates-formes R et Python pour résoudre les problèmes de calcul qui se posent dans les sciences.
Introduction to program design and implementation focusing on digital media projects including sound, images, and animation; includes algorithms, simple data structures, control structures, and debugging techniques. Course credit exclusions: LE/EECS 1530 3.00, LE/CSE 1530 3.00, SC/CSE 1530 3.00, AP/ITEC 1620 3.00. NCR: Students who completed or are taking LE/EECS 1021 3.00 or LE/EECS 1022 3.00 or LE/EECS 1020 3.00 or LE/CSE 1020 3.00, SC/CSE 1020 3.00.
A second course teaching more advanced programming concepts within the context of image, sound and interaction using an object-oriented language; introduction to interactive systems, user interfaces, event-driven programming, object design and inheritance; implementation using debuggers, integrated development environments, user interface builders. Prerequisite: LE/EECS 1710 3.00. Course credit exclusions: LE/EECS 1020 3.00, LE/EECS 1022 3.00, AP/ITEC 1620 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 1020 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 1020 3.00.
LE/EECS 2001 (3.00)Introduction to the Theory of Computation
Introduction to the theory of computing, including automata theory, formal languages and Turing machines; theoretical models and their applications in various fields of computer science. The emphasis is on practical applications of the theory and concepts rather than formal rigour. 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; 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 2001 3.00. PRIOR TO SUMMER 2013: SC/CSE 2001 3.00.
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. Course Credit Exclusion LE/DIGT 2103 4.00.
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.
Tools commonly used in the software development process: the C language; shell programming; filters and pipes; version control systems and "make"; debugging and testing. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); one of LE/EECS 1021 3.00 or LE/EECS 1022 3.00 or LE/EECS 1030 3.00 or LE/EECS 1720 3.00. Course Credit Exclusion: LE/DIGT 2103 4.00; LE/EECS 2032 3.00.
LE/EECS 2032 (4.00)Introduction to Embedded Systems
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, and 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-requsities: LE/EECS 2030 3.00.
LE/EECS 2101 (3.00)Fundamentals of Data Structures
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, but 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: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS1019 3.00 or LE/EECS1028 3.00 or SC/MATH1019 3.00 or SC/MATH1028 3.00; LE/EECS1030 3.00 or LE/EECS2030 3.00. Course Credit Exclusion and previously offered as: LE/EECS 2011 3.00 and LE/DIGT 2102 8.00.
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.
LE/EECS 2210 (3.00)Electronic Circuits and Devices
This course covers the basic material required in the design of both analog and digital electronic circuits. Diodes, transistors (both BJT and FET), amplifiers, rectifiers. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), LE/ENG 2200 3.00. Course credit exclusion: SC/PHYS 3150 3.00.
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. Course Credit Exclusion: LE/DIGT 2107 3.00.
LE/EECS 2501 (1.00)Fortran and Scientific Computing
Covers computer-based problem solving in a variety of scientific and engineering settings. Introduces the FORTRAN programming language and its interface with scientific libraries. Applications are drawn mainly from scientific areas such as numerical methods, processing experimental data, simulation and data visualization. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (EECS courses with the second digit "5" are not major courses.); One of LE/EECS 1020 3.00 or EECS1021 3.00 or EECS1022 3.00 or LE/EECS 1530 3.00.
LE/EECS 2502 (3.00)Data Structures for Data Science
This course is designed to provide a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation. Initially, students become familiar with fundamental data structures (i.e., arrays and link lists) that are the building blocks for constructing all higher-level complex data structures. Then, recursion and algorithm analysis is covered. This course presents a subset of higher-level data structures that are more pertinent to data science by way of abstract data types. Trade-offs between a number of different implementations of each abstract data type (ADT) are analyzed.
Prerequisites: LE/EECS 1019 3.00 or LE/EECS 1028 3.00 or SC/MATH 1019 3.00 or SC/MATH 1028 3.00; LE/EECS 1516 3.00.
Course Credit Exclusion: LE/EECS 2011 3.00, LE/EECS 2101 3.00, LE/DIGT 2102 8.00.
LE/EECS 3000 (3.00)Professional Practice in Computing
Professional, legal and ethical issues in the development, deployment and use of computer systems; their impact on society including privacy and security, computer crime, malware, and intellectual property; professional ethics and responsibilities; guest lecturers from industry, government and university. 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 3101 (3.00)Design and Analysis of Algorithms
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 2101 3.00 or LE/EECS 2011 3.00; SC/MATH 1090 3.00; SC/MATH 1310 3.00. Course credit exclusion: LE/SC CSE 3101 3.00; LE/DIGT 2102 8.00.
An introductory course in computational linear algebra. Topics include simple error analysis, linear systems of equations, non-linear equations, linear least squares and interpolation. Prerequisites: One of SC/MATH 1010 3.00, SC/MATH 1014 3.00, SC/MATH 1310 3.00; one of SC/MATH 1021 3.00, SC/MATH 1025 3.00, SC/MATH 2221 3.00; one of LE/EECS 1540 3.00, LE/EECS 2031 3.00, or LE/EECS 2501 1.00. Course credit exclusions: LE/EECS 3121 3.00, LE/CSE 3121 3.00 (prior to Fall 2014), SC/CSE 3121 3.00 (prior to Summer 2013).
Algorithms and computer methods for solving problems of differentiation, integration, systems of non-linear equations and matrix eigenvalues. Prerequisite: SC/MATH 3241 3.00 or LE/EECS 3121 3.00. Course credit exclusions: LE/EECS 3122 3.00, LE/CSE 3122 3.00 (prior to Fall 2014), SC/CSE 3.00 (prior to Summer 2013).
Theory, analysis, and design of logic circuits used in digital systems. Students will be introduced to 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 introduces 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
Introduces the basics of communications and networking. Topics include transmission media; fundamental limits; protocols and hierarchies; the OSI model; encoding of data as signals; error and flow control; medium access; routing; internetworking; transport services; high-level applications. 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; SC/MATH 1310 3.00. Previously offered as: LE/CSE 3213 3.00. PRIOR TO SUMMER 2013: SC/CSE 3213 3.00.
LE/EECS 3214 (3.00)Computer Network Protocols and Applications
This course focuses on the higher-level network protocols, security issues, network programming, and applications. 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; Course Credit Exclusion: LE/DIGT 2206 3.00.
Introduction to the design of embedded systems using both hardware and software. Topics include microcontrollers; their architecture, and programming; design and implementation of embedded systems using field programmable gate arrays. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 2031 3.00, LE/EECS 3201 4.00. Course Credit Exclusion: LE/CSE 3215 4.00.
LE/EECS 3216 (3.00)Digital Systems Engineering: Modeling, Implementation and Validation
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.
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; LE/DIGT 2307 3.00
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 2101 3.00 or 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
LE/EECS 3342 (3.00)System Specification and Refinement
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 2101 3.00 or LE/EECS 2011 3.00; SC/MATH 1090 3.00.
LE/EECS 3401 (3.00)Introduction to Artificial Intelligence and Logic Programming
Artificial Intelligence (AI) deals with how to build intelligent systems. In this course, we examine fundamental concepts in AI: knowledge representation and reasoning, search, constraint satisfaction, reasoning under uncertainty, etc. The course also introduces logic programming and Prolog. 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 2101 3.00 or LE/EECS 2011 3.00; MATH 1090 3.00. Previously offered as: LE/CSE 3401 3.00. PRIOR TO FALL 2014: course credit exclusion: LE/CSE 3402 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 3401 3.00, SC/CSE 3402 3.00.
Machine learning is the study of algorithms that learn how to perform tasks or predict outcomes from prior experience. This course introduces students to basic machine learning concepts and algorithms in an accessible and application- oriented way. A project-based learning approach is used to explore how machine learning methods are used in diverse real-world applications and introduces students to popular machine learning toolkits, focusing on the programming required to build machine learning systems to solve practical problems. The course will also discuss potential limitations and risks of machine learning systems, including ethical issues, bias, data ownership and privacy. Course Credit Exclusions: LE/EECS 3405 3.00; LE/EECS 4404 3.00. Course Prerequisites: One of the following: LE/EECS 1516 3.00 or LE/EECS 2032 3.00 or LE/EECS 2031 3.00; One of SC/MATH 1025 3.00 or SC/MATH 1021 3.00.
LE/EECS 3405 (3.00)Fundamentals of Machine Learning
This course introduces fundamental machine learning concepts and techniques in a rigorous way to illustrate how basic machine learning methods are constructed from the underlying motivations and mathematical principles. It also explores in depth how to formulate machine learning problems and how to implement basic machine learning systems to solve various problems from diverse real-world application domain. The course emphasizes the mathematical foundations of machine learning as well as practical experience in implementing machine learning algorithms. Pre-requisites: LE/EECS 2030 3.00 or LE/EECS 2031 3.00 or LE/EECS 2032 4.00 or LE/EECS 1516 3.00; SC/MATH 2030 3.00 or SC/MATH 2930 3.00 or SC/MATH 1131 3.00; SC/MATH 1025 3.00 or SC/MATH 1021; SC/MATH 2015 3.00 or SC/MATH 2310 3.00. Course Credit Exclusions: LE/EECS 3404 3.00 and LE/EECS 4404 3.00.
LE/EECS 3421 (3.00)Introduction to Database Systems
Concepts, approaches and techniques in database management systems (DBMS). Logical model of relational databases. An introduction to relational database design. Other topics such as query languages, crash recovery and concurrency control. 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; Course credit exclusions: AP/ITEC 3220 3.00. Previously offered as: LE/CSE 3421 3.00. PRIOR TO SUMMER 2013: SC/CSE 3421 3.00.
LE/EECS 3431 (3.00)Introduction to 3D Computer Graphics
Introduces the fundamental concepts and algorithms of three-dimensional computer graphics, including object modelling, transformations, cameras, visibility and shading. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 2030 3.00;
SC/MATH 1025 3.00. Course credit exclusions: AK/AS/SC/CSE 4431 3.00.
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.
Introduces user interfaces and the tools and mechanisms to create and prototype them. Students work in small groups and learn how to design user interfaces, how to realize them and how to evaluate the end result. 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. Course credit exclusions: AP/ITEC 3230 3.00. Previously offered as: LE/CSE 3461 3.00. PRIOR TO SUMMER 2013: SC/CSE 3461 3.00.
An overview of cryptographic algorithms and the main cryptosystems in use today, emphasizing the application of cryptographic algorithms to designing secure protocols. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 2101 3.00 or LE/EECS 2011 3.00.
LE/EECS 3482 (3.00)Introduction to Computer Security
Introduces fundamental computer security concepts. Topics include security goals and terminology, an overview of the various security domains, an introduction to cryptography, security policies, risk management and auditing. Laboratory exercises emphasize these topics in a practical manner. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS2030 3.00. Course Credit Exclusion: LE/DIGT 2302 3.00.
LE/EECS 3505 (3.00)Electrical Systems for Mechanical Engineers
Many mechanical systems today are integrated with electrical systems. This course will prepare students to work on electromechanical systems by introducing them to topics such as: The basics of circuit analysis and setup, as well as electronics; power systems including 3-phase; DC and AC motors; electro-mechanical actuators; and, time permitting, basics of communication protocols. Prerequisites: SC/PHYS 1801 3.00, LE/MECH 2502 3.00.
LE/EECS 3603 (4.00)Electromechanical Energy Conversion
This course covers the basic construction and principles of operation of different types of electric machines; magnetic circuit analysis, single-phase and poly-phase transformers, principles of electromechanical energy conversion, DC machines, three-phase induction machines, synchronous machines, and special machines (stepper motors, linear motors and brushless DC (BLDC) motors). The transients and dynamics of machines are analyzed. Introduction of Solid-State control of motors. In addition to lectures and tutorials, field trip: six hours. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 2200 3.00, SC/PHYS 2020 3.00.
Provides the student with an introduction to the mathematics of electromagnetic wave propagation. This fundamental concept is expanded at length throughout the course by teaching specific applications such as electromagnetic propagation in free space, transmission lines, guided waves, and antennas. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); SC/MATH 1014 3.00 and SC/MATH 1025 3.00 and SC/PHYS 2020 3.00.
This course focuses on the analysis and design of analog electronic circuits in bipolar and CMOS technology. It covers the aspects of circuit design from single transistor operation to complex amplifiers, operational amplifiers and feedback. Prerequisites: Cumulative GPA of 4.50 or better over all
major EECS courses (without second digit "5"); LE/EECS 2210 3.00.
The course discusses the basic modeling and analysis techniques in electrical energy systems including generation, transmission, and distribution systems. It covers the power system fundamentals consisting of 3-phase systems, complex and phasor quantities, single line diagrams and Per Unit system of calculations. Concept of complex power and active and reactive power are covered and reactive power compensation is also described. Functional descriptions and modeling of generators, transformers, transmission lines, motors and other loads are discussed. Various types of renewable energy systems are also introduced and basic functionality of the critical components of these systems are discussed. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 2200 3.00. Course Credit Exclusion LE/EECS 4622 4.00
LE/EECS 3640 (4.00)Introduction to Biomedical Engineering for Electrical/Computer Engineering
This course provides a comprehensive overview of interdisciplinary field of biomedical engineering, where engineering principles are harnessed to drive advancements in healthcare. Students will explore the historical development of biomedical engineering and its role in engineering diagnostic tools, prosthetics, and regenerative medicine technologies. Key topics covered include biomedical instrumentation, medical imaging, and biomechanics. Students will learn about various diagnostic and imaging modalities such as X-rays, MRI, ultrasound, and CT, and develop skills in analyzing and interpreting medical data. The principles of biomechanics will be explored, focusing on the mechanical properties of biological tissues and their applications in artificial organs, implants, and assistive devices. Students will also gain an understanding of principles and techniques involved in designing and developing advanced instruments used in medical diagnosis and research. This includes topics such as sensor technology, signal processing, and data acquisition. By studying instrumentation, students will acquire necessary skills to create innovative and accurate devices that aid in measurement, monitoring, and analysis of physiological parameters, enhancing overall effectiveness of medical procedures and interventions. The course also addresses ethical considerations and safety standards in biomedical engineering, emphasizing responsible practices in healthcare innovation. Students will gain a solid foundation in biomaterials and their role in tissue engineering and medical device design, considering biocompatibility and biofunctionality. By the end of the course, students will have a strong understanding of the field's core concepts, preparing them for further studies/careers in biomedical engineering, research, or related areas. Prerequisites: LE/EECS 2200 3.00 and LE/EECS 3451 4.00.
LE/EECS 3641 (4.00)Introduction to Medical Devices and Biological Instruments
This course builds on the foundation in measurement techniques by developing the students' understanding of electrophysiological sensing systems and biosensors used within the medical and biological fields. This course applies the classical knowledge of electronic circuits and systems techniques to the development of medical devices and biological instruments. Background in electronic circuit design, basic knowledge of human physiology and body system, and basic knowledge of cellular and molecular biology are required before taking the course. Topics include the design of medical devices such as Electro-Encephalography (EEG) and Electromyography (EMG) devices used for disease diagnostics; biological instruments such as cell counter; handheld sensing devices used for various point-of-care (PoC) applications such as glucose measurement, blood pressure monitoring and early detection of cancer; and wearable sensing devices used for fitness applications. In the design of each medical device or biological instrument, students are also introduced the related theoretical and practical issues with a focus on needs assessment, creativity, and innovation as they seek to identify market opportunities. Prerequisites: cumulative GPA of 4.50 or better overall major EECS courses (without second digit "5"); LE/EECS 1021 3.00, LE/EECS 2210 3.00. Course Credit Exclusion: LE/EECS 4641 4.00
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: EECS credits in the 2000 level
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: EECS credits in the 2000 level
By special arrangement, a student may carry out independent study in a specialized area of computer science or engineering under the direction of a member of the EECS department. The student will be expected to meet regularly with the supervisor throughout the term. In addition to regular meetings with the supervisor, a student is expected to do about 10 hours per week on reading and preparation of assigned work. 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, successful completion of 24 credits in EECS and permission of course coordinator.
A project in computer science chosen in consultation with, and supervised by, a member of the department. 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; permission of the Instructor. Normally restricted to students who have taken 36 credits in computer science. Course credit exclusions: LE/EECS 4081 6.00, LE/EECS 4082 6.00, LE/EECS 4084 6.00, LE/EECS 4088 6.00, LE/EECS 4480 6.00, LE/ENG 4000 6.00. PRIOR TO FALL 2014: Course credit exclusions: LE/CSE 4081 6.00, SC/CSE 4081 6.00, LE/CSE 4082 6.00, SC/CSE 4082 6.00, LE/CSE 4084 6.00, SC/CSE 4084 6.00, LE/CSE 4088 6.00, SC/CSE 4088 6.00, LE/CSE 4480 3.00, SC/CSE 4480. LE/EECS 4700 6.00, LE/CSE 4700 6.00, LE/ENG 4000 6.00, SC/ENG 4000 6.00.
A project in computer science chosen in consultation with, and supervised by, a member of the department. 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, permission of the Instructor. Normally restricted to students who have taken 36 credits in computer science. Course credit exclusions: LE/EECS 4080 3.00, LE/EECS 4081 6.00, LE/EECS 4082 6.00, LE/EECS 4084 6.00, LE/EECS 4480 3.00, LE/EECS 4700 6.00, LE/ENG 4000 6.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 4080 3.00, LE/CSE 4081 6.00, LE/CSE 4082 6.00, LE/CSE 4084 6.00, LE/CSE 4480 3.00, LE/CSE 4700 6.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 4080 3.00, SC/CSE 4081 6.00, SC/CSE 4082 6.00, SC/CSE 4084 6.00, SC/CSE 4480 3.00, SC/ENG 4000 6.00.
LE/EECS 4090 (6.00)Software Development Capstone Project
Large-scale project involving all stages of the software development life cycle: requirements, analysis and design, implementation, testing and delivery. Team work. Open only to students in the Software Development Stream. Prerequisites: LE/EECS 3311 3.00 (with minimum grade of B), LE/EECS 3101 3.00, LE/EECS 3342 3.00. Corequisites: LE/EECS 4312 3.00, LE/EECS 4313 3.00.
LE/EECS 4141 (3.00)Introduction to Quantum Computing
This course presents an overview of the quantum computing field without assuming any prior exposure to quantum mechanics. Drawing parallels between quantum and classical computing, the course covers the physical layer briefly before moving to quantum gates, the circuit model, and quantum algorithms. Quantum information is covered through applications. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), SC/MATH 1025 3.00, LE/EECS 2021 4.00, LE/EECS 3101 3.00.
Probability, information theory and number theory and applications to cryptography. Classical codes such as Caesar shift, Vigenere, ADFGVX, rectangular substitution, and others. Other topics: comma free codes, perfect secrecy, index of coincidence, public key systems, primality testing and factorization algorithms. Prerequisites: At least 12 credits from 2000-level (or higher) MATH courses (without second digit "5", or second digit "7"); or LE/EECS 3101 3.00 or permission of the Instructor.
This course will cover two or three topics selected from the following list.
- Approximation algorithms for NP-hard problems, which may not find optimal solutions, but are guaranteed to be close to optimal.
- Online algorithms, where the input arrives piece by piece and irrevocable decisions about the output must be made before the entire input is known.
- Randomized algorithms, which make use of random choices and can sometimes be simpler than their deterministic counterparts while solving the problem with high probability or with good expected resource usage.
- Parametrized algorithms, whose complexity is studied in finer detail to see how it depends on multiple parameters, rather than just input size, which can lead to good performance for certain classes of inputs.
- Concurrent algorithms, where several processes cooperate to solve a problem and must deal with the difficulties of asynchrony, failures and partial knowledge of the system-wide state.
- Parallel algorithms, where many processes operate synchronously on data in shared memory to solve a problem much more quickly than a single process can solve it.
- Algorithmic game theory and mechanism design, where algorithms must be designed for multiple agents who have different goals.
- Computational geometry, where the goal is to solve problems related to geometric objects such as points, lines, polygons and solid figures.
- Combinatorial optimization algorithms for maximizing or minimizing some objective function over a finite set of objects
Prerequisite: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 3101 3.00 ; SC/MATH 2030 3.00
The internal structure and design ideas embodied in many computers and the techniques for evaluating them. Fast arithmetic algorithms, memory system designs, pipeline techniques, input-output subsystems and parallel computing structures. Future trends in computer architecture. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 3201 4.00, LE/EECS 3221 3.00. Previously offered as: LE/CSE 4201 3.00.
Introduces fundamental principles underlying design and analysis of digital communication systems. Develops mathematical/physical understanding from the information source through the transmitter, channel, receiver, and information sink. Topics include baseband transmission, matched filtering, modulation, channel coding, and spread spectrum. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), LE/EECS 3213 3.00, One of SC/MATH 2030 3.00 or SC/MATH 2930 3.00, One of LE/EECS 3451 4.00, LE/EECS 3602 4.00, LE/ESSE 4020 3.00, SC/MATH 4830 3.00, SC/PHYS 4060 3.00 or SC/PHYS 4250 3.00. Previously offered as: LE/CSE 4214 4.00. PRIOR TO SUMMER 2013: course credit exclusion: SC/CSE 4214 4.00.
Provides an overview of the latest developments and trends in wireless mobile communications, and addresses the impact of wireless transmission and user mobility on the design and management of wireless mobile systems. 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 3213 3.00.
Principles and design techniques for compilers and interpreters. Compiler organization, compiler writing tools, scanning, parsing, semantic analysis, run-time storage organization, memory management, code generation and optimization. Students implement a substantial portion of a compiler in a project. 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 2101 3.00 or LE/EECS 2011 3.00; LE/EECS 3301 3.00 is recommended.
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.
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.
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.
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.
This is a second course in Artificial intelligence that covers selected topics in this area such as: reasoning about action and planning, uncertain and fuzzy reasoning, knowledge representation, automated reasoning, non-monotonic reasoning and answer set programming, ontologies and description logic, local search methods, Markov decision processes, autonomous agents and multi-agent systems, machine learning, reasoning about beliefs and goals, and expert systems. 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 3401 3.00.
A study of principles of database management systems. A thorough analysis of theory of normal, relational algebra and calculus and query languages based on these concepts. Other topics: security and integrity issues, concurrency control, distributed systems, query optimization. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS2101 3.00 or LE/EECS2011 3.00; LE/EECS 2021 4.00; LE/EECS 2031 3.00 or LE/EECS 2032 4.00; LE/EECS 3421 3.00. Course Credit Exclusion: LE/CSE 4411 3.00.
Introduces and presents basic concepts of data mining, data mining techniques, models and applications. Topics include association rule mining, classification models, sequential pattern mining and clustering. 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 3101 3.00, LE/EECS 3421 3.00 and one of SC/MATH 2030 3.00 or SC/MATH 2930 3.00 or SC/MATH 1131 3.00. Previously offered as: LE/CSE 4412 3.00.
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.
Information networks are effective representations of pairwise relationships between objects. Examples include technological networks (e.g., World Wide Web), online social networks (e.g., Facebook), and biological networks (e.g., Protein-to-Protein interactions). The study of information networks is an emerging discipline of immense importance that combines graph theory, probability and statistics, data mining and analysis, and computational social science. This course provides students with both theoretical knowledge and practical experience of the field by covering models and algorithms of information networks and their basic properties. In addition, analysis of information networks provides the means to explore large, complex data coming from vastly diverse sources and to inform computational problems and better decisions. Topics include: basic graph theory, network measurements, network models, community detection, graph partitioning, link analysis, link prediction, information cascades & epidemics, influence maximization, network ties, recommendation systems, mining graphs, and connections to problems in the social sciences and economics. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), LE/EECS 3421 3.00, LE/EECS 3101 3.00, SC/MATH 2030 3.00 or SC/MATH 2930 3.00.
Date of submission: 2017-03-07
Storing, managing, and processing datasets are foundational to both computer science and data science. The enormous size of today's data sets and the specific requirements of modern applications necessitated the growth of a new generation of data management systems, where the emphasis is put on distributed and fault-tolerant processing. New programming paradigms have evolved, an abundance of information platforms offering data management and analysis solutions appeared and a number of novel methods and tools have been developed. This course introduces the fundamentals of big data storage, retrieval, and processing systems. As these fundamentals are introduced, exemplary
technologies are used to illustrate how big data systems can leverage very large data sets that become available through multiple sources and are characterized by diverse levels of volume (terabytes; billion records), velocity (batch; real-time; streaming) and variety (structured; semi-structured; unstructured). The course aims to provide students with both theoretical knowledge and practical experience of the field by covering recent research on big data systems and their basic properties. Students consider both small and large datasets because both are equally important and justify different trade-offs. Topics include: software frameworks for distributed storage and processing of very large data sets, MapReduce programming model, querying of structured data sets, column stores, key-value stores, document stores, graph databases, distributed stream processing frameworks. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), LE/EECS 3421 3.00, LE/EECS 3101 3.00
An introduction to robotic manipulators and autonomous vehicles. The course covers the kinematics and dynamics of manipulators and autonomous platforms, robot sensors and navigation. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); SC/MATH 1025 3.00, SC/MATH 1310 3.00, LE/EECS 2031 3.00. Previously offered as: LE/CSE 4421 3.00.
Fundamental concepts of Computer vision and including aspects of biological vision, image formation process, image processing, feature extraction and matching, 3-D parameter estimation, applications and statistical techniques. Twelve supervised laboratory hours. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); SC/MATH1025 3.00; SC/MATH1310 3.00; LE/EECS2031 3.00 or LE/EECS 2032 4.00.
Introduces the concepts and technology necessary to design, manage and implement interactive software. Students work in small groups and learn how to design user interfaces, how to realize them and how to evaluate the end result. Both design and evaluation are emphasized. 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 3461 3.00. Previously offered as: LE/CSE 4441 3.00.
The design and implementation of user interfaces for touchscreen devices and tablet computers. Students develop user interfaces that include touch, multi-touch, vibration, device motion, position, and orientation, environment sensing, video capture, and audio capture. Twelve Supervised laboratory hours that emphasize these topics in a practical manner. Prerequisites: General prerequisite; LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/EECS 3461 3.00. (NOTE: The General Prerequisite is a cumulative GPA of 4.50 or better over all major EECS courses. EECS courses with the second digit "5" are not major courses.)
LE/EECS 4461 (3.00)Hypermedia and Multimedia Technology
Design and application of computer systems which provide information resources for learning, online-help, conceptual exploration, visualization and entertainment; e.g. hypertext/hypermedia, networked information-servers, systems for collaborative work, and "virtual reality". One or two topics are discussed in depth using current research literature. 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 3461 3.00. Previously offered as: LE/CSE 4461 3.00.
This course introduces the basic principles of digital audio, and presents several of its applications. Students will learn the physics of sound and the human auditory system, how analog audio is converted to digital, and the properties of different digital audio formats. They will also get hands-on experience with creating audio plugins for digital audio workstations, as well as creating sound engines for games. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5") , LE/EECS 2031 3.00
Date of submission: 2018-03-06
LE/EECS 4471 (3.00)Introduction to Virtual Reality
Introduction to the basic principles of Virtual Reality and its applications. The necessary hardware and software components of interactive 3D systems as well as human factors are discussed. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), SC/MATH 1025 3.00, SC/MATH 1310 3.00, LE/EECS 3431 3.00;
Date of submission: 2018-03-06
This is a capstone project course for computer security students. The students engage in a significant research and/or development project that has major computer security considerations. Prerequisites: Restricted to students in the Computer Security degree. Students must have passed 40 EECS or CSE credits. Permission of the Instructor is needed. Course credit exclusions: LE/EECS 4080 3.00; LE/EECS 4081 6.00; LE/EECS 4082 6.00; LE/EECS 4084 6.00; LE/EECS 4088 6.00; LE/EECS 4700 6.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 4080 3.00, LE/CSE 4081 6.00, LE/CSE 4084 6.00, LE/CSE 4088 6.00, LE/CSE 4700 6.00, LE/CSE 4082 6.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 4080 3.00, SC/CSE 4081 6.00, SC/CSE 4084 6.00, SC/CSE 4088 6.00, SC/CSE 4700 6.00, SC/CSE 4082 6.00.
Provides a thorough understanding of the technical aspects of computer security. It covers network, operating systems, and application software security. Computer laboratory projects provide exposure to various tools in a hands-on setting. 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 3214 3.00. Note: Students with background equivalent to the stated prerequisites are encouraged to seek permission to enrol.
This course provides a comprehensive coverage of theoretical and practical aspects of network security and forensics. The emphasis is on the limitations and attacks against network protocols and architectures most widely used in practice, as well as the best known detection, prevention and remediation techniques against these attacks. The course also has a strong emphasis on hands-on learning either by using already existing real-world tools or by developing new custom software. Familiarity with the TCP/IP protocol suite and basic computer networking concepts is required. Prerequisites: LE/EECS 3213 3.00 or LE/EECS 3214 3.00 and LE/EECS 3482 3.00.
This course provides a comprehensive coverage of the construction and development of modern malicious code, the methods employed by malware to exploit weaknesses in systems, as well as the techniques and tools that can be utilized to defend and recover from malware attacks. The course also examines different methods for the identification, investigation, and analysis of malicious code. Prerequisites: LE/EECS 2101 3.00 or LE/EECS 2011 3.00; LE/EECS 3221 3.00; LE/EECS 3482 3.00.
LE/EECS 4486 (3.00)Technological Countermeasures to Financial Crimes
Financial technology is an emerging industry that aims to replace or enhance traditional financial services with technological solutions. While financial technology aims to make financial services more
accessible to the general public, it is also a crucial component in the fight against financial crimes. The rapid advancement of technology and digital transformation has contributed to the growth and
complexity of financial crimes. This course provides an overview of financial crimes and examines key technologies used to combat them.
* Students gain a broad view of financial crimes including history, definitions, methodologies, financial intelligence units, regulations, and financial crime investigation. Various concepts such as Know Your Customer, Customer Due Diligence, Anti-Money Laundering, Combating the Financing of Terrorism, regulatory reporting, and risk assessment will be covered.
* Students study current and emerging key technologies employed to identify and combat financial crimes such as artificial intelligence, machine learning, natural language processing, big data analytics, distributed ledgers, virtual currency, and privacy enhancing technologies.
* Students apply the technologies to solve real-world problems via case studies and projects.
* Students benefit from many experiential education opportunities via guest lecturers from industry, and case studies and projects suggested and mentored by volunteer professionals currently working in the field.
This course is suitable for students who intend to pursue a career in banking, accounting, finance, financial technology, anti-money laundering, fraud management, corporate security, law enforcement,
compliance, policy making, and cyber-security. Prerequisites: Cumulative grade point average of 4.5 or higher over all major EECS courses; LE/EECS 2101 3.00 or LE/EECS 2011 3.00.
This course presents analog circuit principles for the analysis and design of high-performance circuits in modern technologies. Its techniques enable the realization of wide-band amplifiers, low-noise amplifiers, operational amplifiers, and feedback amplifiers. Advanced computer simulation, and
physical layout are presented.Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 3611 4.00
LE/EECS 4612 (4.00)Digital Very Large Scale Integration
An introductory course on the design of VLSI CMOS chips. Key elements of complex digital system design are presented including nanoscale MOS fundamentals, CMOS combinational and sequential logic design, datapath and control system design, memories, testing, packaging, l/O, scalability, reliability, and IC design economics. Prerequisites: Cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); LE/EECS 2200 3.00, LE/EECS 2210 3.00, LE/EECS 3201 4.00.
The objective of this course is to understand the basic operating principles of power conversion using advanced electronic devices. The structure and characteristics of several switching devices are reviewed. Basic power electronic converters and inverters such as AC/DC rectifiers, DC/DC switch mode converters and voltage source DC/AC inverters are studied. Resonant DC/DC converters are introduced. Computation of circuit quantities such as average and RMS value, average power, power factor, total harmonics distortion and power efficiency are also studied. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), LE/EECS 2210 3.00. Corequisite: LE/EECS 3603 4.00.
This course is intended to teach students the basic operating principles, modeling practices and design methods that are applicable to renewable energy sources, their grid integration, and their potential
effects on power systems. The main topics include: (i) Introduction to the status and integration experiences of wind and solar sources in different countries, (ii) The characteristics of photovoltaic
(PV) cells for solar energy conversion, structure of solar PV farms, topology and control of power electronic converters in PV farms, including maximum power point tracking methods, (iii) The
mechanical characteristics of wind energy conversion systems, the topology and configuration of different types of wind turbines, modeling and analysis of power electronic converters used in wind
generators, layout and components of wind power generation and (iv) Grid code requirements for renewable energy sources, overview of integration studies for renewable energy sources, the technical
impacts of renewable energy sources on power system operation, and energy storage technologies for grid connection of renewable energy sources. Prerequisites: LE/EECS 3622 4.00.
LE/EECS 4640 (4.00)Medical Imaging Techniques: Principles and Applications
This course introduces principles of medical imaging, focusing on major imaging modalities including ultrasound, X-ray radiography, computed tomography, magnetic resonance imaging, and nuclear medicine imaging. The course covers the physics and engineering aspects of how various imaging signals are acquired and processed in order to form medically useful images. The course applies the classical knowledge of engineering physics and signals and systems techniques to the development of various medical imaging technologies. Basic mathematical tools required to understand how the tomographic imaging modalities work are presented. Sources of image noise and other causes of artifacts are introduced,
and the mechanisms that govern the achievable resolution of the different modalities are discussed. The course also covers essentials of medical image analysis. The students will learn the fundamentals, basic design and applications of medical imaging systems, imaging signal processing and
medical image analysis. Background in signals and systems, and basic knowledge of physics are required before taking the course. Integrated with: GS/EECS 5640 3.00. Prerequisites: LE/EECS 2602 4.00 or LE/EECS 3451 4.00
This course involves the completion of a significant body of work in the area of Digital Media. The project will normally be a team project involving the development and analysis of a digital media work potentially having elements of interactivity, animation, 3-D graphics, and sound for example. The project will be presented at a public workshop towards the end of the year. Prerequisites: Only open to students in the final year of the Digital Media program. Course credit exclusions: LE/EECS 4080 3.00; LE/EECS 4081 6.00; LE/EECS 4082 6.00; LE/EECS 4084 6.00; LE/EECS 4088 6.00; LE/EECS 4480 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 4080 3.00, LE/CSE 4081 6.00, LE/CSE 4082 6.00, LE/CSE 4084 6.00, LE/CSE 4088 6.00, LE/CSE 4480 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 4080 3.00, SC/CSE 4081 6.00, SC/CSE 4082 6.00, SC/CSE 4084 6.00, SC/CSE 4088 6.00, SC/CSE 4480 3.00.
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: EECS credits in the 3000 level
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: EECS credits in the 3000 level
The course discusses advanced data structures: heaps, balanced binary search trees, hashing tables, red--black trees, B--trees and their variants, structures for disjoint sets, binomial heaps, Fibonacci heaps, finger trees, persistent data structures, etc. When feasible, a mathematical analysis of these structures will be presented, with an emphasis on average case analysis and amortized analysis. If time permits, some lower bound techniques may be discussed, as well as NP-completeness proof techniques and approximation algorithms.
Study of time and space and other computational resources required for efficient solution of classes of computational problems, including P and NP, PSPACE. Proof techniques including diagonalization, simulation, reduction and completeness. Models of computation, nondeterminism, randomness. Intractability. Prerequisite: LE/EECS 3101 3.0 or equivalent.
Introduces the basic concepts in Computer Vision. Primarily a survey of current computational methods, we begin by examining methods for measuring visual data (image based operators, edge detection, feature extraction), and low-level processes for feature aggregation (optic flow, segmentation, correspondence). Finally, we consider some issues in "high-level" vision by examining current high-level vision systems.
Introduces concepts in Robotics. The course begins with a study of the mechanics of manipulators and robot platforms. Trajectory and course planning, environmental layout and sensing are discussed. Finally, high-level concerns are introduced. The need for real-time response and dynamic-scene analysis are covered, and recent development in robotics systems from an Artificial Intelligence viewpoint are discussed.
This course is an in-depth treatment of one or more specific topics within the field of Artificial Intelligence. Integrated with the undergraduate course LE/EECS 4401 3.00.
GS/EECS 5327 (3.00)Introduction to Machine Learning
This course extends the undergraduate machine learning to cover more advanced topics in machine learning. At the discretion of instructors, each course offering may select some advanced topics from, but not limited to, the following list: statistical learning theory, modern deep learning techniques, kernel methods, statistical models, deep generative models, Bayesian learning, graphical methods, reinforcement learning, meta learning, causal inference. Furthermore, the course also teaches how to apply and/or adapt these advanced machine learning methods to more realistic settings in artificial intelligence such as computer vision, natural language processing, robotics, computer games and bioinformatics and so on.
Introduces the concepts and technology necessary to design, manage and implement interactive software. Students work in small groups and learn how to design user interfaces, how to realize them and how to evaluate the end result. Both design and evaluation are emphasized.
Information networks are effective representations of pairwise relationships between objects. Examples include technological networks (e.g., the Web), social networks (e.g., Facebook), biological networks (e.g., protein-to-protein interactions), and more. Analysis of information networks is an emerging discipline of immense importance. This course provides students with theoretical knowledge and practical experience of the field by covering models and algorithms of information networks.
Provides an overview of the latest technology, developments and trends in wireless mobile communications, and addresses the impact of wireless transmission and user mobility on the design and management of wireless mobile systems.
This course presents the core concepts of computer architecture and design ideas embodied in many machines and emphasizes a quantitative approach to cost/performance tradeoffs. This course concentratres on uniprocessor systems. A few machines are studies to illustrate how these concepts are implemented; how various tradeoffs that exit among design choices are treated; and how good designs make efficient use of technology. Future trends in computer architecture are also discussed.
Integrated with the undergraduate course Computer Science 4201.03.
GS/EECS 5612 (3.00)Digital Very Large Scale Integration
A course on modern aspects of VLSI CMOS chips. Key elements of complex digital system design are presented including design automation, nanoscale MOS fundamentals, CMOS combinational and sequential logic design, datapath and control system design, memories, testing, packaging, I/O, scalability, reliability, and IC design economics.
This course builds on the foundations of electromagnetic theory and wave propagation to teach fundamentals of optical propagation in solids and light- matter interaction. Topics include light propagation in crystals & optical fibers, polarization, semiconductors, light generation & detection, lasing, optical modulation and nonlinear optics. Integrated with the undergraduate course Lassonde Electrical Engineering & Computer Science 4614 3.0
A reading course suited to students with special interests. Students select areas of study in consultation with their supervisor. These areas should not significantly overlap with material covered in courses currently offered at York University and undergraduate or graduate courses taken by the student either at York University or elsewhere.
Directed reading courses require a completed Directed Reading Form, which can be obtained from the Assistant of the Graduate Program in Electrical Engineering & Computer Science. Normally, students may take only directed reading course (EECS 6002) during a degree program.
GS/EECS 6111 (3.00)Advanced Algorithm Design and Analysis
This is an advanced theoretical computer science course directed at non-theory students with the standard undergraduate background. The goal is to survey the key theory topics that every computer science graduate student should know. In about two weeks for each selected topic, we will gain insights into the basics and study one or two example in depth. These might include: a deepening of student's knowledge of key algorithmic techniques, randomized algorithms, NP-completeness, approximation algorithms, linear programming, distributed systems, computability, concurrency theory, cryptography, structural complexity, data structures, and quantum algorithms. Students will be expected to give a presentation on some topic new to them and solve some difficult problems in homework assignments.
Prerequisites: LE/EECS 3101 3.00 and any fourth-year theory course.
This course takes a foundational perspective on machine learning and covers some of its underlying mathematical principles. Topics range from well-established results in learning theory to current research challenges. We start with introducing a formal framework, and then introduce and analyze learning methods, such as Nearest Neighbors, Boosting, Support Vector Machines (SVMs) and Neural Networks. Finally, students present and discuss recent research papers.
This course introduces students to the fundamentals of information theory, as well as methods for achieving information-theoretic results using source codes and channel codes. Students will learn Shannon's source coding and channel coding theorems, as well as the mathematical machinery required to prove these and other information theoretic results. Students will also be exposed to source coding techniques, as well as channel coding techniques for state-of-the-art systems. Advanced topics such as multiterminal (Slepian-Wolf) source coding and rateless codes will also be covered, time permitting.
GS/EECS 6320 (3.00)Fairness and Bias in Artificial Intelligence
This course cover bias and fairness evaluation in artificial intelligence (AI) models. Bias is systematic differences in AI model performance among subgroups, leading to a higher failure rate against some groups. The course has a final project on the algorithmic bias. Students should have hands-on programming skills in machine/deep learning. Prerequisites: experience with machine learning and python programming.
GS/EECS 6322 (3.00)Neural Networks and Deep Learning
This course covers the theory and practice of deep learning and neural networks. Topics covered include training methods and loss functions, automatic differentiation and backpropagation, network architectures for different learning problems, validation, model selection and software tools.
Prerequisites: EECS 5327 or EECS 6327 or permission of instructor
GS/EECS 6326 (3.00)Principles of Human Perception and Performance in Human-Computer Interactions/Same as Computer Science 6326 3.0
This course considers the role of human perception in human-computer interaction particularly computer generated graphics/sound and immersive virtual reality. Fundamental findings from sensory physiology and perceptual psychophysics are presented in the context of interface and display design.
Intelligent systems must make effective judgements in the face of uncertainty. This requires probabilistic models to represent complex relationships between random variables (learning) as well as algorithms that produce good estimates and decisions based on these models (inference). This course explores both probabilistic learning and inference, in a range of application areas.
GS/EECS 6329 (3.00)Empirical Research Methods for Human-Computer Interaction
This course examines advanced concepts and technologies for Human-Computer Interaction. Students will learn about advanced input and output devices (e.g. for mobile computing and/or Virtual Reality), about advanced design methods, how to implement effective interfaces, and how to perform rapid, effective iterative user tests.
GS/EECS 6350 (3.00)Privacy in Sociotechnical Systems: Theory and Applications
This course covers theory and application of digital privacy in sociotechnical systems. The first half of the course focuses on a privacy analysis of technologies that both enhance and threaten privacy through the lenses of law, policy, and theory. The second half covers topics on user privacy like profiling, online tracking, and anonymization. The evaluation is project-based.
Introduces fundamental concepts of data mining. It presents various data mining technologies, algorithms and applications. Topics include association rule mining, classification models, sequential pattern mining and clustering.
GS/EECS 6414 (3.00)Data Analytics and Visualization
Data analytics and visualization is an emerging discipline of immense importance to any data-driven organization. This is a project-focused course that provides students with knowledge on tools for data mining and visualization and practical experience working with data mining and machine learning algorithms for analysis of very large amounts of data. It also focuses on methods and models for efficient communication of data results through data visualization.
This course introduces the notion of system assurance. In this regard, the course describes the structure of assurance cases as well as the various types of assurance cases. The course also explores the different notations used to depict assurance cases elements and relationships. The course analyzes the core differences between static assurance cases and dynamic assurance cases. The course presents the different processes used to support system assurance in safety-critical and security-critical systems. The course examines the most recent open source and industrial tools used to support system assurance. The course examines the different industrial standards that assurance cases support. The course also investigates how key technological enablers (e.g., IoT, AI) influence system assurance. The course presents the various challenges associated to the assurance of ML-enabled systems.
Adaptive software systems are software systems that change their behaviour and structure to cope with changes in environment conditions or in user requirements. Adaptation includes self-optimization, self-protection, self-configuration and self-healing. This course covers basic and advanced concepts in engineering adaptive systems and has a special focus on self-optimization. It introduces the students to the mathematical foundations of adaptive systems including performance models, estimators for performance models, feedback loop architectures and strategies, and optimization.
GS/EECS 6444 (3.00)Mining Software Engineering Data to Support the Development, Testing and Maintenance of Large Scale Software Systems
Software engineering data (such as source code repositories, execution logs, performance counters, developer mailing lists and bug databases) contains a wealth of information about a project's status and history. Applying data mining techniques on such data, researchers can gain empirically based understanding of software development practices, and practitioners can better manage, maintain and evolve complex software projects.
GS/EECS 6446 (3.00)Analytical Performance Modeling and Design of Computing Systems
In distributed systems, one can choose from a variety of load balancing policies, a wide range of migration policies, capacity provisioning schemes, power management policies, etc. Ideally, one would like to have answers to these questions before investing the time and money to build a system. This course introduces students to stochastic and queuing modeling to answer the above questions.
GS/EECS 6448 (3.00)Data Science for Requirements: From Mining Software Requirements to Planning Products
The course focuses on data mining techniques and analytical models for eliciting, prioritizing, and planning software requirements and releases, along with the importance of non-functional requirements, requirements change and reuse. The course provides examples by referring to the state of the art and state of the practice for mobile software applications. Prior background in software design and requirements is recommended.
GS/EECS 6466 (3.00)Software Defect Detection, Tolerance, and Repair
Software bugs significantly hurt software reliability and security: causing 30% of system failures and at least 39% of the reported security vulnerabilities. In addition, with the the rapid development of ML techniques, ML-enabled systems are now becoming the new targets for malicious attacks, reliability and robustness are the key required characteristics for AI applications because of the impact they can have on human life. This course discusses a broad range of state-of-the-art software quality assurance techniques for automatically detecting, debugging, and fixing software bugs and improving software reliability and security for both general software and ML-enabled systems.
Prior background in software testing and design (EECS 4313 and EECS 3311) is strongly recommended.
The sustained demand for increased memory and computational power has driven the physical size of electronic components to nanoscale dimensions. The need to investigate size effects and to find viable ways to manufacture at the nanoscale has also led to the discovery of new phenomena and functionality. This course covers electronic transport and other properties in nanoscale systems, devices, characterization and fabrication techniques. Topics to be covered include quantum confinement, quantum dots, nanowires, 2D electron gases, single electron transistors, spintronic devices, electronic transport and optical properties, nanoscale materials, top-down and bottom-up fabrication approaches.
Printed electronics is a novel microfabrication technology that promises to fabricate low-cost microelectronics on large-area, flexible substrates such as plastic or paper. Potential applications include RFID tags, bendable displays or wearable sensors. Students learn the fundamentals and recent developments in the field. Topics covered include printable materials, printing physics, various printing methods and printed devices. Prerequisite: EECS 3610 or equivalent.
This course introduces several important concepts and techniques in low power ASIC design. It covers VSLI design methodology, ASIC design flow, low power digital circuit design principles, timing closure in ASIC, power analysis, and power optimization. Student will have the opportunities to perform circuit design tasks using the state-of-the-art EDA tools. The concepts are enhanced through readings and projects.
This course highlights design and analysis of major mixed-signal microsystems and their building blocks. Topics include introduction to design and analysis of switched-capacitor circuits, sampling circuits and architectures, comparators, continuous-time and discrete-time active filters, fundamentals of digital-to-analog and analog-to-digital data conversion, Nyquist-rate, multi-step, pipeline, and oversampled A/D architectures.
The following topics are covered: introduction to electric power distribution system structure and components; concept of distributed and renewable energy resources (DG); distribution system load/DG characteristics and modelling; integration of DG in power flow analysis; voltage and reactive power planning and control with consideration of DG; self-healing mechanisms; microgrids concept, planning, operation, and energy management.
GS/EECS 6708 (3.00)Introduction to Nonlinear Control Systems
This course presents the analysis of dynamical systems modelled by nonlinear ordinary differential equations (ODEs). The course first introduces the mathematical tools and approaches for modelling and analysis of nonlinear systems. Various stability analysis methods, e.g., linearization, Lyapunov theorem, boundedness, etc, are presented. In the second part of the course, an introduction to control design for these systems is presented.
This course offers an introduction to the Biochips. This course takes a multi-path approach: micro-fabrication techniques, microelectronic design and implementation of bio interfaces offering a vital contemporary view of a wide range of integrated circuits and system for electrical, magnetic, optical and mechanical sensing and actuating devices and much more; classical knowledge of biology, biochemistry as well as micro-fluidics. The coverage is both practical and in depth integrating experimental, theoretical and simulation examples.
This course provides an introduction to implantable biomedical microsystems, their design, and applications. Engineering design, implementation, and test of a wide variety of biomedical implants is discussed. This includes system-level and architectural design, circuit design (analog and mixed-signal, generic/application-specific), wireless interfacing (power and bidirectional data telemetry), hardware-embedded biological signal processing, design & implementation of non-circuit modules such as microelectrode arrays.
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: 12 EECS credits in the 1000 level
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: 12 EECS credits in the 1000 level
LE/EECS 3301 (3.00)Programming Language Fundamentals
Formal syntax: Backus-Naur form and extensions, syntax diagrams, grammars and parsing; elements of formal language theory; type theory and data structures of algorithmic languages; control structures and their composition. Subprograms: argument-parameter binding mechanisms. 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 2101 3.00 or LE/EECS 2011 3.00; LE/EECS 2001 3.00. Previously offered as: LE/CSE 3301 3.00. PRIOR TO SUMMER 2013: course credit exclusion: SC/CSE 3301 3.00.
LE/EECS 3610 (4.00)Semiconductor Physics and Devices
This course is intended to teach students the basic working principles and modern challenges of semiconductor devices. The main topics will be: (i) Semiconductor physics, (ii) Diodes including p-nand metal-semiconductor junctions, (iii) Metal-oxide-semiconductor capacitors (MOSCAPs), (iv) Metaloxide-semiconductor field-effect transistors (MOSFETs) and related field-effect transistors, (v) Introduction to microfabrication illustrated by the basic MOSFET process, and (vi) State-of-the-art MOSFET scaling challenges and solutions such as high-k dielectrics, strain and FinFET in the context of the International Technology Roadmap for Semiconductors (ITRS) and its successor the International Roadmap for Devices and Systems (IRDS). The students use device simulation software to model device behavior. Prerequisites: A cumulative GPA of 4.50 or better
over all major EECS courses (without second digit "5"); LE/EECS 2210 3.00 or SC/PHYS 3050 3.00.
LE/EECS 3900 (0.00)Computer Science Internship Work Term
This experiential education course reflects the work term component of the Technology Internship Program (TIP). Qualified Honours students gain relevant work experience as an integrated complement to their academic studies, reflected in the requirements of a learning agreement and work term report. Students are required to register in this course for each four month work term, with the maximum number of work term courses being four (i.e. 16 months). Students in this course receive assistance from the Career Centre prior to and during their internship, and are also assigned a Faculty Supervisor/Committee. Prerequisites: Enrolment is by permission only. Criteria for permission include: 1. that students have successfully completed at least nine EECS or CSE credits at the 3000-level including LE/EECS 3311 3.00 or LE/CSE 3311 3.00 or SC/CSE 3311 3.00, with a GPA of at least 6.0 in all mathematics and computer science courses completed; 2. that students are enrolled full-time in the Honours program prior to beginning their internship and have attended the mandatory preparatory sessions as outlined by the Career Centre; 3. that students have not been absent for more than two consecutive years as a full-time student from their Honours degree studies; 4. that upon enrolling in this course students have a minimum of 9 credits remaining toward their Honours degree and need to return as a full-time student for at least one academic term to complete their degree after completion of their final work term. Registration in LE/EECS 3900 0.00 (formerly LE/CSE 3900 0.00, SC/CSE 3900 0.00) provides a record on the transcript for each work term.
LE/EECS 3980 (0.00)Computer Security Internship Work Term
This experiential education course reflects the work term component of the Technology Internship Program (TIP). Qualified Honours students gain relevant work experience as an integrated complement to their academic studies, reflected in the requirements of a learning agreement and work term report. Students are required to register in this course for each four month work term, with the maximum number of work term courses being four (i.e. 16 months). Students in this course receive assistance from the Career Centre prior to and during their internship, and are also assigned a Faculty Supervisor/Committee. Prerequisites: Enrolment is by permission only. Criteria for permission include: 1. that students have successfully completed at least nine EECS or CSE credits at the 3000-level including LE/EECS 3482 3.00 or LE/CSE 3482 3.00 or SC/CSE 3482 3.00, with a GPA of at least 6.00 in all mathematics and computer science courses completed; 2. that students are enrolled full-time in the Honours program prior to beginning their internship and have attended the mandatory preparatory sessions as outlined by the Career Centre; 3. that students have not been absent for more than two consecutive years as a full-time student from their Honours degree studies; 4. that upon enrolling in this course students have a minimum of nine credits remaining toward their Honours degree and need to return as a full-time student for at least one academic term to complete their degree after completion of their final work term. Registration in LE/EECS 3980 0.00 (formerly LE/CSE 3980 0.00, SC/CSE 3980 0.00) provides a record on the transcript for each work term.
Introduction to more advanced topics in theoretical foundations of computer science, including the study of formal languages and automata, formal models of computation, and computational complexity measures. Integrated with: GS/CSE 5111 3.00. 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 2001 3.00, LE/EECS 3101 3.00. Previously offered as: LE/CSE 4111 3.00.
Study of time and space and other computational resources required for efficient solution of classes of computational problems, including P and NP, PSPACE. Proof techniques including diagonalization, simulation, reduction and completeness. Models of computation, nondeterminism, randomness. Intractability. 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 2001 3.00; LE/EECS 3101 3.00. Previously offered as: LE/CSE 4115 3.00.
This is an introductory course in Distributed Computing Systems. This course is the study of how to design and implement a computer system where the state of the system is divided over multiple computing
nodes. More specifically, this course teaches design and implementation techniques that enable the building functional, fast, fault-tolerant and scalable distributed systems. To make the issues more
concrete, the class includes project(s) requiring significant design and implementation which enables students to gain practical experience in designing, implementing, and debugging real distributed systems.
Topics may include, distributed communication models, distributed file systems, replication, consistency models, fault tolerance, QoS and performance, scheduling, concurrency, agreement and commitment,
Paxos-based consensus, MapReduce and NoSQL datastores, decentralized systems and cloud computing systems. Prerequisites: LE/EECS 3101 3.00, LE/EECS 3213 3.00 or LE/EECS 3214 3.00, LE/EECS 3221 3.00.
LE/EECS 4404 (3.00)Introduction to Machine Learning and Pattern Recognition
Machine learning is the study of algorithms that learn how to perform a task from prior experience. This course introduces the student to machine learning concepts and techniques applied to pattern recognition problems in a diversity of application areas. 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; one of SC/MATH 2030 3.00 or SC/MATH 2930 3.00 or SC/MATH 1131 3.00.
This course builds on the foundations of electromagnetic theory and wave propagation to teach fundamentals of optical propagation in solids and light- matter interaction. Topics include light propagation in crystals & optical fibers, polarization, semiconductors, light generation & detection, lasing, optical modulation and nonlinear optics. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"), LE/EECS 3604 4.00 or SC/PHYS 4020 3.00, LE/EECS 2210 3.00 or SC/PHYS 3150 3.00.
This course reviews the fundamentals of short-circuit fault analysis and symmetrical components for three-phase systems. The concept of relaying to protect a power system during faults and to maintain the integrity of the system is discussed. Introductory descriptions of electromechanical, static, and digital protective relays are presented and their features are elaborated. The measurement devices used in protection systems are introduced, and their non-ideal features are discussed. The operating principles of various types of relays such as overcurrent, differential, and distance relays are discussed and some coordination techniques and potential applications are covered. In addition, different types of pilot protection schemes implemented using distance and directional relays are introduced. Throughout the course, computer simulations of power systems are used to analyze protection functions. Prerequisite: LE/EECS 3622 4.00 or LE/EECS 4622 4.00
The sensing, detection, processing, estimation and classification of biological signals are core to biomedical engineering. This course builds on basic understanding of discrete- and continuous-time signals and applies it to the processing of biomedical signals that can be used to infer the physiological state of a living organism. Time, frequency, and joint time-frequency domain processing of specific important biological signals such as EEG, ECG and vital signs (such as heart rate, blood pressure and respiration) are considered. Understanding of linear systems theory in both discrete and continuous time is required before taking this course. Prerequisites: cumulative GPA of 4.50 or better over all major EECS courses (without the second digit "5"); LE/EECS 3602 4.00 or LE/EECS 3451 4.00.
GS/EECS 6154 (3.00)Digital Image Processing: Theory and Algorithms
Fundamental image processing theories and algorithms. Signal representation using transforms, wavelets and frames is overviewed. Signal reconstruction methods using total variation, sparse coding and low-rank prior, based on convex optimization, are discussed. Applications include image compression, restoration and enhancement.
Prior background in digital signal processing (Electrical Engineering & Computer Science 4452 3.0 or equivalent) and numerical linear algebra is strongly recommended.
GS/EECS 6330 (3.00)Critical Technical Practise: Computer Accessibility and Assistive Technology
This course examines issues of technological design in computer accessibility and computational forms of assistive technology (hardware and/or software). Students learn to critically reflect on the hidden assumptions, ideologies and values underlying the design of these technologies, and to analyse and to design them.
Modern data systems seek to extract value from data and enable data-driven decisions sweeping all aspects of society, ranging from natural sciences to government to business. Big data involves analyzing massive data volumes and variety of data sources. Doing so effectively needs high quality data to ensure that the analyses and resulting decisions are meaningful and do not fall prey to the garbage in, garbage out (GIGO) syndrome. This course covers big data systems, that is infrastructures that are utilized to handle all steps in typical big data processing pipelines, which include data management and analysis. We introduce data systems for data profiling, repairing inconsistencies in the data, and for analyzing data in the presence of these inconsistencies. We explore system design for turning large scale semistructured and even unstructured data into actionable insights. Students get an experience with big data analysis tools, data stream processing, distributed data platforms, NoSQL and NewSQL technologies.
GS/EECS 6505 (3.00)Physical and Systems Design Issues in Application Specific Integrated Circuits (ASICs)
Designers of modern very large scale integrated (VLSI) systems face the conflicting pressure of realizing application-specific integrated circuits (ASICs) with increasingly complex and varied functionality while subject to more demanding physical electronic constraints. This design-centric course addresses critical issues in both of these aspects by giving students a hands-on opportunity to architect VLSI systems using modern CAD tools spanning both physical and systems design. Topics include: high-speed/low-power circuit analysis and design strategies, interconnect, clock and power distribution, timing strategies, floor-planning and layout, synthesis and verification.
GS/EECS 6703 (3.00)Computational Methods for the Power Grid
This course aims to provide an introduction to applied mathematical constructs such as convex optimization, game theory and dynamic programming in the context of the modern power grid. With the recent proliferation of flexible power components that are able to communicate and intelligently actuate, scalable computational methods and effective modelling techniques that capture underlying interactions and dependencies are imperative for optimally coordinating today's electric grid. Students will be equipped with the ability to identify and apply various mathematical tools introduced in the course for power grid applications and also understand the associated advantages and tradeoffs.
Electromagnetic-transient modelling of power system is of the most crucial requirements for many power system studies and engineering practices. This course covers fundamentals of the transient phenomena such as lightning, faults, switching, and discusses the principles of protecting power system equipment from the transient overvoltages. Electromagnetic transient models of power equipment are presented and advanced modelling features are discussed.
This course introduces microgrid systems and their constituting components, and presents design methods for their control systems. Distributed generations (DGs), voltage source converters (VSCs), distributed energy resources (DERs), mathematical modelling, synchronization techniques, islanding detection and protection, control strategies, and power quality issues related to microgrids are studied. During the course lectures, students will acquire the theoretical skills to model, analyze and design controllers for microgrids with high penetration of power electronic based DER units. They will also be equipped with the software tools during tutorial sessions which help them verify the performance of the designed microgrid systems.
GS/EECS 6803 (3.00)Micro-fluidics for Cellular and Molecular Biology
An introduction to the micro-fluidics for life science applications. This course offers a unique opportunity to all science, health and engineering students to learn the fundamental of micro-fluidic technologies for a variety of cellular and molecular applications. The coverage is both practical and in depth integrating experimental, theoretical and simulation examples.
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: No prerequisite
This course is only available to students in the Industry Partnership Stream of the Computer Science Honours BSc (enrollment by permission). Students in the stream may enroll in the course during a term for which they are employed by the industrial partner. The learning outcomes of the course will be approved by the instructor prior to enrollment. Prerequisites: No prerequisite
LE/EECS 2011 (3.00)Fundamentals of Data Structures
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
Date of submission: 2013-13-03
This course will provide an introduction to several of the major imaging modalities ranging from X-ray projection radiography to magnetic resonance imaging (MRI). This course applies the classical knowledge of physics, circuits, and signal and systems techniques to the development of medical imaging systems. Background in medical devices, electronic circuit, signal and systems, basic knowledge of human physiology and body system, and basic knowledge of physics are required before taking the course. Topics include the physics of radiography; fundamental of X-ray projection radiography and X-ray computed tomography (CT); Fundamental of ultrasound imaging techniques and ultrasound imaging systems; and introduction of magnetic resonance imaging (MRI) system. Three lecture hours per week. Three laboratory hours per week. Prerequisites: General Prerequisite; LE/EECS 2030 3.00 or LE/EECS 1030 3.00; LE/ EECS 2210 3.00, LE/EECS 3602 4.00 or LE/EECS 3451 4.00. (NOTE: The General Prerequisite is a cumulative GPA of 4.50 or better over all major EECS courses. EECS courses with the second digit "5" are not major courses.)
Industrial software systems are usually large and complex, while knowledge of their structure is either lost or inadequately documented. This course presents techniques that aid the comprehension and design recovery of large software systems.
This course introduces classical and modern optimization techniques to solve engineering analysis and design problems. Students will learn how to formulate single- and multi-variable engineering problems as optimization problems and how to solve such problems using appropriate optimization techniques. The details of specific techniques required to solve the formulated problems will be discussed from theory and application points of view.
SC/MATH 1019 (3.00)Discrete Mathematics for Computer Science
Introduction to abstraction. Use and development of precise formulations of mathematical ideas. Informal introduction to logic; introduction to naïve set theory; induction; relations and functions; big O-notation; recursive definitions, recurrence relations and their solutions; graphs and trees. Prerequisites: SC/MATH 1190 3.00, or two 4U Math courses, including MHF4U (Advanced Function). Course credit exclusions: LE/EECS 1028 3.00, SC/MATH 1028 3.00, SC/MATH 2320 3.00.
SC/PHYS 1801 (3.00)Electricity, Magnetism and Optics for Engineers
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. Prerequisite: SC/PHYS 1800 3.00 and SC/MATH 1013 3.00 or equivalent. Corequisites: SC/MATH 1014 3.00 or SC/MATH 1310 3.00 or SC/MATH 1505 6.00. Course Credit Exclusions: SC/PHYS 1010 6.00, SC/PHYS 1012 3.00, SC/PHYS 1410 6.00, SC/PHYS 1412 3.00, SC/PHYS 1420 6.00, SC/PHYS
1422 3.00, SC/ISCI 1310 6.00, SC/ ISCI 1302 3.00.
SC/MATH 1090 (3.00)Introduction to Logic for Computer Science
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 or
SC/MATH 1200 3.00 or SC/MATH 2200 3.00.
SC/MATH 2310 (3.00)Calculus of Several Variables with Applications
Vector functions, partial derivatives, gradient, multiple integrals, line integrals, optimization, applications. Prerequisite: SC/MATH 1014 3.00 or SC/MATH 1310 3.00 or SC/ISCI 1402 3.00 or SC/ISCI 1410 6.00. Students should have a knowledge of vector algebra in two and three dimensions. Course credit exclusions: SC/MATH 2015 3.00, GL/MATH/MODR 2670 3.00, GL/MATH 3200 3.00.
Topics include logic, sets, functions, relations, modular arithmetic and applications of elementary number theory, proof techniques, induction. Prerequisite: Advanced Functions (MHF4U) or equivalent, or SC/MATH 1510 6.00, or GL/MATH 1670 6.00. NCR Note: This course may not be taken for degree credit by
any student who has passed SC/MATH 1019 3.00, SC/MATH 1200 3.00, SC/MATH 2200 3.00, or any 3000- or higher-level
mathematics course.
Course credit exclusion: GL/CSLA/MATH/MODR 1650 3.00
SC/MATH 1200 (3.00)Problems, Conjectures and Proofs
Extended exploration of elementary problems leading to conjectures, partial solutions, revisions, and convincing reasoning, and hence to proofs. Emphasis on problem solving, reasoning, and proving. Regular participation is required. Prerequisite: 12U Advanced Functions (MHF4U) or equivalent. Course credit exclusion 2200 3.00. NCR note: Not open to any student who is taking or has passed a MATH course at the 3000 level or higher.
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 1520 3.00, or 12U Calculus and Vectors (MCV4U) or equivalent. Course credit exclusions: SC/MATH 1300 3.00, SC/MATH 1506 3.0; SC/MATH 1530 3.00, SC/MATH 1550 6.00, GL/MATH/MODR 1930 3.00, AP/ECON 1530 3.00, SC/ISCI 1401 3.00 and SC/ISCI 1410 6.00.
SC/MATH 1028 (3.00)Discrete Mathematics for Engineers
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.
Displaying and describing distributions; relations in categorical data; Simpson's paradox and the need for design; experimental design and sampling design; randomization; probability laws and models; central limit theorem; statistical inference including confidence intervals and tests of significance; matched pairs; simulation. Prerequisite: At least one 12U mathematics course or equivalent is recommended. Course credit exclusion: SC/MATH 2560 3.00, SC/MATH 2930 3.00, GL/MATH/MODR 1610 3.00, SC/BIOL 2060 3.00
SC/MATH 2015 (3.00)Applied Multivariate and Vector Calculus
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.
LE/MECH 2502 (3.00)Modern Instrumentation and Measurement Techniques
This experiential learning course covers underlying physics as well as knowledge and skills needed for design and development of modern measurement systems for various phenomena. Weekly laboratories and final group projects (mentored by academic and industry experts) provide students with applied knowledge and hands-on skills for developing instrumentation systems involving various sensors and actuators, computerized data acquisition, and artificial intelligence (AI)-powered data/signal analytics and system control. Prerequisites: SC/MATH 1013 3.00, SC/MATH 1014 3.00, SC/MATH 1025 3.00, LE/EECS 1011 3.00.
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: 12U Advanced functions (MHF4U) or equivalent. Course credit exclusions: SC/MATH 1021 3.00, SC/MATH 2221 3.00, GL/MATH/MODR 2650 3.00.
An introductory course in computational linear algebra. Topics include simple error analysis, linear systems of equations, non-linear equations, linear least squares and interpolation. Prerequisites: One of SC/MATH 1010 3.00, SC/MATH 1014 3.00, SC/MATH 1310 3.00; one of SC/MATH 1021 3.00, SC/MATH 1025 3.00, SC/MATH 2221 3.00; one of LE/EECS 1540 3.00, LE/EECS 2031 3.00, or LE/EECS 2501 1.00. Course credit exclusions: LE/EECS 3121 3.00, LE/CSE 3121 3.00 (prior to Fall 2014), SC/CSE 3121 3.00 (prior to Summer 2013).
Introduction to the theory of probability as preparation for further study in either mathematical or applied probability and statistics. Topics include probability spaces, conditional probability, independence, random variables, distribution functions, expectation, Chebyshev's inequality, common distributions, moment-generating functions and limit theorems. Prerequisite: One of SC/MATH 1014 3.00, SC/MATH 1310 3.00, SC/ISCI 1402 3.00, SC/ISCI 1410 6.00.
SC/MATH 2930 (3.00)Introductory Probability and Statistics
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.
The elements of electric and magnetic fields are developed together with DC and AC circuit theory. Prerequisites: SC/PHYS 1011 3.00 and SC/PHYS 1012. 3.00 or SC/PHYS 1800 3.00 and SC/PHYS 1801 3.00, or SC/ISCI 1301 3.00 and SC/ISCI 1302 3.00, or a minimum grade of C in SC/PHYS 1411 3.00 and SC/PHYS 1412 3.00 or SC/PHYS 1421 3.00 and SC/PHYS 1422 3.00. Corequisite: SC/MATH 2015 3.00.
Introduction to physical electronics including DC and AC circuit theory and network analysis; bandpass filter; introduction to the p-n junction and semiconductor devices: diodes, DC power supplies, transistors, analysis and design of basic amplifiers, operational amplifiers. With laboratory exercises. 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; SC/PHYS 2020 3.00. Course credit exclusion: LE/ENG
2200 3.00. PRIOR TO SUMMER 2013: Prerequisites: SC/PHYS 1010 6.00; SC/PHYS 2020 3.00 and SC/PHYS 2211 1.00.
SC/MATH 1019 (3.00)Discrete Mathematics for Computer Science
Introduction to abstraction. Use and development of precise formulations of mathematical ideas. Informal introduction to logic; introduction to naïve set theory; induction; relations and functions; big O-notation; recursive definitions, recurrence relations and their solutions; graphs and trees. Three lecture hours per week. Plus, drop-in optional problem sessions as well as instructor office hours, as these are announced in each term. Prerequisites: SC/MATH 1190 3.00 or SC/MATH 1200 3.00 or SC/MATH 2200 3.00, or two 4U Math courses, including MHF4U (Advanced Function). Course credit exclusions: LE/EECS 1028 3.00, SC/MATH 1028 3.00.
Systems of linear equations, matrix algebra, determinants and diagonalization, vector geometry, and the vector space R^n. Prerequisite: 12U Advanced Functions (MHF4U) or equivalent. Course credit exclusions:: SC/MATH 1025 3.00, GL/MATH/MODR 1660 3.00.
Time-dependent electric and magnetic fields, Maxwell's differential equations in linear, isotropic, homogeneous conductors and dielectrics; the radiation and transmission of electromagnetic energy; relativistic transformation; scalar diffraction theory. Prerequisites: SC/PHYS 3020 3.00; recommended SC/PHYS 2040 3.00
The concept of feedback and its use in circuits employing operational amplifiers; analysis/design of such circuits, including amplifiers, filters, oscillators, pulse generators; digital concepts and logic circuits with applications to data manipulation (computers) and storage. Prerequisite: SC/PHYS 3050 3.00. Course credit exclusion: LE/ENG 2210 3.00. PRIOR TO SUMMER 2013: Prerequisite: SC/PHYS 1010 6.00; and SC/PHYS 3050 3.00 recommended. Course credit exclusion: SC/ENG 2210 3.00.