-
Notifications
You must be signed in to change notification settings - Fork 1
/
index_2022.html
687 lines (615 loc) · 50.1 KB
/
index_2022.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
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
<!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 (Course Prerequisite List)
<br>
<span class="smol">(under construction)</span></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="eecs2011" style="left: 2em; top: 30.0em;" prereq="eecs2030 math1019">
<span class="course-code-full">EECS 2011 (3.00)</span><br>
<span class="course-name" style="font-size:1.0em;">Fundamentals of Data Structures</span>
<div class="course-description" hidden="hidden">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. 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. </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="eecs2011 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 eecs2011 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 eecs2011 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 eecs2011 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="eecs2011">
<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="eecs2011 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 2011 (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"><strong>1</strong></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="madeby">
Made by <a href="https://github.com/PresidentKevvol">PresidentKevvol</a> <br>
New CSS style suggested by Joshua D <br>
(2019-2021)
</div>
</body>
</html>