Electrical Engineering and Computer Science

Explore Lassonde

Close mobile menu

Learn about protecting the largest of databases to the smallest of IoT devices. The highly trained professionals who maintain and defend our security are in high demand from both government and the private sector.

Computer security is the specialized part of computer science that studies threats to computer systems and networks. It is the science and practice of how to mitigate them. In our Computer Security program, you will build a solid background in computer science and math. You will study a variety of courses, including cryptography and operating systems. You will become an expert on all those topics. 

We offer both BA and BSc degrees, which share the same computer science and math requirements. In the BA, you can complement your studies with courses from the Liberal Arts such as humanities, social sciences, history, philosophy and more – fields that help you understand human social and creative endeavours and the potential impact of computing. In the BSc, complementary courses will be in the sciences (e.g., biology, chemistry, physics).

Every part of modern life, whether it’s our financial systems, transportation, power supplies or distribution networks, depends on safe, protected IT systems. You’ll be prepared to protect these infrastructures with a Computer Security degree from Lassonde. 

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

For requirements by degree, visit York’s academic calendar.
Degree Checklists are a complete listing of all program-specific courses required for successful graduation. Recent degree checklists for the Computer Science program are listed below:

BSc Specialized Honours Computer Security
BA Specialized Honours Computer Security (revised June 23, 2020)
• Advanced knowledge of C and Java – used for projects involving software applications, server-side services, and mobile app development

• Software design models including design pattern and development

• Various networking and security tools

• Other languages include: C++, Eiffel, Unix Shell, SQL/mySQL database, PHP, Python
• Beyond Media

• CIBC

• Interac Corp

• University of Twente (Holland)

Sample Courses (BSc)

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

First Year

Fall

EECS 1001, 3 Credits

An introduction to research directions within the department and more broadly within the field. Students will attend lectures and other events organized by the department. Note: This course is expected to be completed in the first-year of study.
EECS 1012, 3 Credits

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 a 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.
EECS 1019, 3 Credits

Introduction to abstraction. Use and development of precise formulations of mathematical ideas. An 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.

Winter

EECS 1022, 3 Credits

Provides a first exposure to object-oriented programming and enhances student understanding of key computing skills such as reasoning about algorithms, designing user interfaces, 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 mobile software infrastructure (such as Java and the Android programming 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. Prerequisite: LE/EECS 1012 3.00 or LE/EECS 1015 3.00. Course credit exclusions: LE/EECS 1021 3.00, LE/EECS 1020 3.00 (prior to Fall 2014), LE/CSE 1020 3.00 (prior to Fall 2014), SC/CSE 1020 3.00 (prior to Summer 2013), AP/ITEC 1620 3.00.
MATH 1300, 3 Credits

Limits, derivatives with applications, antiderivatives, fundamental theorem of calculus, beginnings of integral calculus. Prerequisite: SC/MATH 1520 3.00 or SC/MATH 1710 6.00, or 12U Calculus and Vectors (MCV4U) or equivalent. Course credit exclusions: SC/MATH 1013 3.00, SC/MATH 1505 6.00, 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, SC/ISCI 1410 6.00.
MATH 1310, 3 Credits

Transcendental functions, differential equations, techniques of integration, improper integrals, infinite series. Prerequisite(s): One of SC/MATH 1013 3.00, SC/MATH 1300 3.00, GL/MATH 1901, SC/ISCI 1401 3.00; for non-science students only, six credits from SC/MATH 1530 3.00 and SC/MATH 1540 3.00, SC/MATH 1550 6.00, AP/ECON 1530 3.00 and AP/ECON 1540 3.00. Course credit exclusions: SC/MATH 1014 3.00, SC/MATH 1505 6.00, GL/MATH/MODR 1940 3.00, SC/ISCI 1402 3.00, SC/ISCI 1410 6.00.

Foundational science, 6 credits from:

SC/BIOL 1000 3.00, SC/BIOL 1001 3.00 (or SC/BIOL 1010 6.00), SC/CHEM 1000
3.00, SC/CHEM 1001 3.00, SC/PHYS 1410 6.00 or
SC/PHYS 1420 6.00 or SC/PHYS 1010 6.00

Second Year

Fall

EECS 2001, 3 Credits

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.
EECS 2030, 3 Credits

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

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

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

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

Winter

EECS 2031, 3 Credits

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
EECS 3421, 3 Credits

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.
MATH 1090, 3 Credits

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

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.

One of the following

PHIL 2075, 3 Credits

An introduction to ethics focusing on the application of ethical theories to controversial public issues such as abortion, affirmative action and euthanasia, among others. Course credit exclusion: GL/PHIL 2615 3.00.
ENVS 2150 3.00

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

Non-Science/Electives

Third Year

Fall

EECS 3000, 3 Credits

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. Course credit exclusions: LE/ENG 4000 6.00, SC/ENG 4000 6.00 (prior to Summer 2013).
EECS 3101, 3 Credits

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

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.
EECS 3214, 3 Credits

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; NCR: This course is not open for credit to students who passed LE/EECS 4213 3.00, LE/CSE 4213 3.00, SC/CSE 4213 3.00, LE/CSE 4213 3.00, SC/CSE 4213 3.00.

Winter

EECS 3221, 3 Credits

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

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

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 2011 3.00.
EECS 3482, 3 Credits

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: Any 12 university credits at the 2000-level in any discipline.

Non-Science/Electives

At least 6 additional credits from

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

Fourth Year

Fall

ENG 4413, 3 Credits

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

Winter

EECS 4480, 3 Credits

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.
EECS 4481, 3 Credits

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.

Additional elective credits, as required for an overall total of at least 120 credits,

of which at least 30 must be outside computer science, mathematics, statistics, and information technology. 18 of these 30 are satisfied by the General Education requirement.