-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
453 lines (381 loc) · 44.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html lang="en">
<head>
<meta charset="UTF-8">
<title>York University CS classes</title>
<link rel="stylesheet" href="maine.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins&family=Saira+Condensed:wght@300&display=swap"
rel="stylesheet">
<script src="maine.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-H7GNRNGX6D"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-H7GNRNGX6D');
</script>
</head>
<body>
<div class="wide-bg-colour">
<h1 class="titl">York University Computer Science Skill Tree <br> (Course Prerequisite List) </h1>
</div>
<div hidden="hidden" id="templates">
<line x1="" y1="" x2="" y2="" style="stroke:rgb(0,0,0);stroke-width:1;" marker-end="url(#arrow)" class="svg-arrow"/>
</div>
<div id="root" style="width: 86em; height: 127.5em;" colorcode="dept">
<svg height="100%" width="100%" class="svgConns">
<defs>
<marker id="arrow" markerWidth="10" markerHeight="10" refX="10" refY="3" markerUnits="strokeWidth" orient="auto">
<path d="M0,0 L0,6 L9,3 z" fill="#000" />
</marker>
</defs>
</svg>
<!-- the courses div box goes here -->
<div class="classBox eecs yl-1" id="eecs1001" style="left: 2em; top: 2.0em;" prereq="">
<span class="course-code-full">EECS 1001 (1.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Research Directions in Computing</span>
<div class="course-description" hidden="hidden">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.</div>
</div>
<div class="classBox eecs yl-1" id="eecs1012" style="left: 16em; top: 2.0em;" prereq="">
<span class="course-code-full">EECS 1012 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Computing: A Net-centric Approach</span>
<div class="course-description" hidden="hidden">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.</div>
</div>
<div class="classBox eecs yl-1" id="eecs1015" style="left: 30em; top: 2.0em;" prereq="">
<span class="course-code-full">EECS 1015 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Computer Science and Programming</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox math yl-1" id="math1019" style="left: 44em; top: 2.0em;" prereq="">
<span class="course-code-full">MATH 1019 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Discrete Mathematics for Computer Science</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox math yl-1" id="math1025" style="left: 58em; top: 2.0em;" prereq="">
<span class="course-code-full">MATH 1025 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Applied Linear Algebra</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox math yl-1" id="math1300" style="left: 72em; top: 2.0em;" prereq="">
<span class="course-code-full">MATH 1300 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Differential Calculus with Applications</span>
<div class="course-description" hidden="hidden">Limits, derivatives with applications, antiderivatives, fundamental theorem of calculus, beginnings of integral calculus. </div>
</div>
<div class="classBox eecs yl-1" id="eecs1022" style="left: 2em; top: 9.0em;" prereq="eecs1012 eecs1015">
<span class="course-code-full">EECS 1022 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Programming for Mobile Computing</span>
<div class="course-description" hidden="hidden">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 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.</div>
</div>
<div class="classBox math yl-1" id="math1310" style="left: 16em; top: 9.0em;" prereq="math1300">
<span class="course-code-full">MATH 1310 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Integral Calculus with Applications</span>
<div class="course-description" hidden="hidden">Transcendental functions, differential equations, techniques of integration, improper integrals, infinite series. </div>
</div>
<div class="classBox math yl-1" id="math1090" style="left: 30em; top: 9.0em;" prereq="math1019">
<span class="course-code-full">MATH 1090 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Logic for Computer Science</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-2" id="eecs2001" style="left: 2em; top: 23.0em;" prereq="eecs1022 math1019">
<span class="course-code-full">EECS 2001 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to the Theory of Computation</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-2" id="eecs2021" style="left: 16em; top: 23.0em;" prereq="eecs1022">
<span class="course-code-full">EECS 2021 (4.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Computer Organization</span>
<div class="course-description" hidden="hidden">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.</div>
</div>
<div class="classBox eecs yl-2" id="eecs2030" style="left: 30em; top: 23.0em;" prereq="eecs1022">
<span class="course-code-full">EECS 2030 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Advanced Object Oriented Programming</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-2" id="eecs2031" style="left: 44em; top: 23.0em;" prereq="eecs1022">
<span class="course-code-full">EECS 2031 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Software Tools</span>
<div class="course-description" hidden="hidden">Tools commonly used in the software development process: the C language; shell programming; filters and pipes; version control systems and "make"; debugging and testing.</div>
</div>
<div class="classBox math yl-2" id="math2015" style="left: 58em; top: 23.0em;" prereq="math1310">
<span class="course-code-full">MATH 2015 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Applied Multivariate and Vector Calculus</span>
<div class="course-description" hidden="hidden">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.</div>
</div>
<div class="classBox math yl-2" id="math2030" style="left: 72em; top: 23.0em;" prereq="math1310">
<span class="course-code-full">MATH 2030 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Elementary Probability</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-2" id="eecs2101" style="left: 2em; top: 30.0em;" prereq="eecs2030 math1019">
<span class="course-code-full">EECS 2101 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Fundamentals of Data Structures</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox math yl-2" id="math2271" style="left: 16em; top: 30.0em;" prereq="math2015">
<span class="course-code-full">MATH 2271 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Differential Equations for Scientists and Engineers</span>
<div class="course-description" hidden="hidden">Introduction to ordinary and partial differential equations, including their classification, boundary conditions, and methods of solution. Equations, methods, and solutions relevant to science and engineering are emphasized, and exploration is encouraged with the aid of software. Three lecture hours per week. One term. Three credits. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3000" style="left: 2em; top: 44.0em;" prereq="eecs2030">
<span class="course-code-full">EECS 3000 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Professional Practice in Computing</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3101" style="left: 16em; top: 44.0em;" prereq="eecs2101 math1090 math1310">
<span class="course-code-full">EECS 3101 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Design and Analysis of Algorithms</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3201" style="left: 30em; top: 44.0em;" prereq="eecs1022 phys1412">
<span class="course-code-full">EECS 3201 (4.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Digital Logic Design</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3213" style="left: 44em; top: 44.0em;" prereq="eecs2030 eecs1310">
<span class="course-code-full">EECS 3213 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Communication Networks</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3214" style="left: 58em; top: 44.0em;" prereq="eecs2030">
<span class="course-code-full">EECS 3214 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Computer Network Protocols and Applications</span>
<div class="course-description" hidden="hidden">This course focuses on the higher-level network protocols, security issues, network programming, and applications. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3215" style="left: 72em; top: 44.0em;" prereq="eecs2031">
<span class="course-code-full">EECS 3215 (4.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Embedded Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3221" style="left: 2em; top: 51.0em;" prereq="eecs2030 eecs2021 eecs2031">
<span class="course-code-full">EECS 3221 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Operating System Fundamentals</span>
<div class="course-description" hidden="hidden">Principles of operating systems. Concurrent processes, CPU scheduling, deadlocks, memory management, file systems, protection and security, and case studies. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3311" style="left: 16em; top: 51.0em;" prereq="eecs2030 eecs2101 eecs2031 math1090">
<span class="course-code-full">EECS 3311 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Software Design</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3342" style="left: 30em; top: 51.0em;" prereq="eecs2030 eecs2101 math1090">
<span class="course-code-full">EECS 3342 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">System Specification and Refinement</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3401" style="left: 44em; top: 51.0em;" prereq="eecs2030 eecs2101 math1090">
<span class="course-code-full">EECS 3401 (3.00)</span><br>
<span class="course-name" style="font-size:0.9em;">Introduction to Artificial Intelligence and Logic Programming</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3421" style="left: 58em; top: 51.0em;" prereq="eecs2030">
<span class="course-code-full">EECS 3421 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Database Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3431" style="left: 72em; top: 51.0em;" prereq="eecs2030 math1025">
<span class="course-code-full">EECS 3431 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to 3D Computer Graphics</span>
<div class="course-description" hidden="hidden">Introduces the fundamental concepts and algorithms of three-dimensional computer graphics, including object modelling, transformations, cameras, visibility and shading. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3451" style="left: 2em; top: 58.0em;" prereq="eecs2021 math1310">
<span class="course-code-full">EECS 3451 (4.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Signals and Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3461" style="left: 16em; top: 58.0em;" prereq="eecs2030">
<span class="course-code-full">EECS 3461 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">User Interfaces</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3481" style="left: 30em; top: 58.0em;" prereq="eecs2101">
<span class="course-code-full">EECS 3481 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Applied Cryptography</span>
<div class="course-description" hidden="hidden">An overview of cryptographic algorithms and the main cryptosystems in use today, emphasizing the application of cryptographic algorithms to designing secure protocols.</div>
</div>
<div class="classBox eecs yl-3" id="eecs3482" style="left: 44em; top: 58.0em;" prereq="">
<span class="course-code-full">EECS 3482 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Computer Security</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-3" id="eecs3216" style="left: 2em; top: 65.0em;" prereq="eecs2031 eecs3201">
<span class="course-code-full">EECS 3216 (3.00)</span><br>
<span class="course-name" style="font-size:0.9em;">Digital Systems Engineering: Modeling, Implementation and Validation</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4101" style="left: 2em; top: 79.0em;" prereq="eecs2030 eecs2001 eecs3101">
<span class="course-code-full">EECS 4101 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Advanced Data Structures</span>
<div class="course-description" hidden="hidden">Amortized and worst-case analysis of data structures. Data structuring paradigms: self-adjustment and persistence. Lists: self-adjustment with the move-to-front heuristic. Search trees: splay trees, finger search trees. Heaps: skew heaps, Fibonacci heaps. Union-find trees. Link-and-cut trees. Multidimensional data structures and dynamization. Integrated with: GS/CSE 5101 3.00. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4111" style="left: 16em; top: 79.0em;" prereq="eecs2030 eecs2001 eecs3101">
<span class="course-code-full">EECS 4111 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Automata and Computability</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4141" style="left: 30em; top: 79.0em;" prereq="math1025 eecs2021 eecs3101">
<span class="course-code-full">EECS 4141 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Quantum Computing</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4161" style="left: 44em; top: 79.0em;" prereq="eecs3101">
<span class="course-code-full">EECS 4161 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Mathematics of Cryptography</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4201" style="left: 58em; top: 79.0em;" prereq="eecs3201 eecs3221">
<span class="course-code-full">EECS 4201 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Computer Architecture</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4214" style="left: 72em; top: 79.0em;" prereq="eecs3213 math2031 eecs3451">
<span class="course-code-full">EECS 4214 (4.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Digital Communications</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4215" style="left: 2em; top: 86.0em;" prereq="eecs2030 eecs3213">
<span class="course-code-full">EECS 4215 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Mobile Communications</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4312" style="left: 16em; top: 86.0em;" prereq="eecs2030 eecs3311">
<span class="course-code-full">EECS 4312 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Software Engineering Requirements</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4313" style="left: 30em; top: 86.0em;" prereq="eecs2030 eecs3311">
<span class="course-code-full">EECS 4313 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Software Engineering Testing</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4314" style="left: 44em; top: 86.0em;" prereq="eecs2030 eecs3311">
<span class="course-code-full">EECS 4314 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Advanced Software Engineering</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4315" style="left: 58em; top: 86.0em;" prereq="eecs2030 eecs3342">
<span class="course-code-full">EECS 4315 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Mission-Critical Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4401" style="left: 72em; top: 86.0em;" prereq="eecs2030 eecs3401">
<span class="course-code-full">EECS 4401 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Artificial Intelligence</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4404" style="left: 2em; top: 93.0em;" prereq="eecs2030 math2030">
<span class="course-code-full">EECS 4404 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Machine Learning and Pattern Recognition</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4411" style="left: 16em; top: 93.0em;" prereq="eecs2101 eecs2021 eecs2031 eecs3421">
<span class="course-code-full">EECS 4411 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Database Management Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4412" style="left: 30em; top: 93.0em;" prereq="eecs2030 eecs3101 eecs3421 math2030">
<span class="course-code-full">EECS 4412 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Data Mining</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4413" style="left: 44em; top: 93.0em;" prereq="eecs2030">
<span class="course-code-full">EECS 4413 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Building E-Commerce Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4414" style="left: 58em; top: 93.0em;" prereq="eecs3101 eecs3421 math2030">
<span class="course-code-full">EECS 4414 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Information Networks</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4415" style="left: 72em; top: 93.0em;" prereq="eecs3101 eecs3421">
<span class="course-code-full">EECS 4415 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Big Data Systems</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4421" style="left: 2em; top: 100.0em;" prereq="math1025 math1310 eecs2031">
<span class="course-code-full">EECS 4421 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Introduction to Robotics</span>
<div class="course-description" hidden="hidden">An introduction to robotic manipulators and autonomous vehicles. The course covers the kinematics and dynamics of manipulators and autonomous platforms, robot sensors and navigation. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4422" style="left: 16em; top: 100.0em;" prereq="math1025 math1310 eecs2031">
<span class="course-code-full">EECS 4422 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Computer Vision</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4441" style="left: 30em; top: 100.0em;" prereq="eecs2030 eecs3461">
<span class="course-code-full">EECS 4441 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Human-Computer Interaction</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4443" style="left: 44em; top: 100.0em;" prereq="eecs2030 eecs3461">
<span class="course-code-full">EECS 4443 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Mobile User Interfaces</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4452" style="left: 58em; top: 100.0em;" prereq="eecs3451">
<span class="course-code-full">EECS 4452 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Digital Signal Processing: Theory and Applications</span>
<div class="course-description" hidden="hidden">Fundamental digital signal processing. Inner product, Hilbert space, orthogonality principle, discrete-time Fourier transform, discrete Fourier transform, z-transform, multirate systems, sampling and interpolation. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4461" style="left: 72em; top: 100.0em;" prereq="eecs2030 eecs3461">
<span class="course-code-full">EECS 4461 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Hypermedia and Multimedia Technology</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4481" style="left: 2em; top: 107.0em;" prereq="eecs2030 eecs3214">
<span class="course-code-full">EECS 4481 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Computer Security Laboratory</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4482" style="left: 16em; top: 107.0em;" prereq="eecs3213 eecs3214 eecs3482">
<span class="course-code-full">EECS 4482 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Network Security and Forensics</span>
<div class="course-description" hidden="hidden">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. </div>
</div>
<div class="classBox eecs yl-4" id="eecs4491" style="left: 30em; top: 107.0em;" prereq="eecs2030 eecs3431 math1310">
<span class="course-code-full">EECS 4491 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Simulation and Animation for Computer Games</span>
<div class="course-description" hidden="hidden">Introduction to simulation and animation techniques used in computer games, with a focus on the algorithms and methods that support moving objects in the virtual environments. </div>
</div>
</div>
<!-- the explaination box -->
<div id="explain">
<div id="explain-main" style="display: none;">
<div id="explain-topp">
EECS 2101 (3.00)<br>
Fundamentals of Data Structures
</div>
<div id="explain-desc">
</div>
<div id="explain-prereq-list-div">
Prerequsites:
<ul id="explain-prereq-list">
</ul>
</div>
</div>
<div id="explain-hint">Click on a course to see its description here</div>
</div>
<div id="settings-bar">
<button id="switch-color-code">Color code by year</button>
<div id="zoom-size-div">
Zoom: <span id="zoom-value">1</span>x<br>
<input type="range" id="zoom-range-slider" min="0.35" max="2.0" value="1.0" step="0.05">
</div>
</div>
<div class="new-version">
<h3>There is now a new and improved version of this site!</h3>
Features include:
<ul>
<li>Prerequisite as logic equations</li>
<li>Filter by reachable (tick a box then turn on filter, accessible nodes will 'light up')</li>
<li>Submit suggestions for editing prereq equations</li>
<li>and more...!</li>
</ul>
<a href="https://coursedelta.yorku.dev/graph/?dept=eecs_math">https://coursedelta.yorku.dev/graph/?dept=eecs_math</a>
<div class="remove-cross">x</div>
</div>
<div class="madeby">Made by <a href="https://github.com/PresidentKevvol">PresidentKevvol / DeepFriedPancake</a> (2019-2023)</div>
</body>
</html>