-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcpsc.json
More file actions
446 lines (446 loc) · 26.3 KB
/
Copy pathcpsc.json
File metadata and controls
446 lines (446 loc) · 26.3 KB
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
[
{
"code": "CPSC 100",
"name": "Computational Thinking",
"cred": "3",
"desc": "Meaning and impact of computational thinking. Solving problems using computational thinking, testing, debugging. How computers work. No prior computing experience required. Not for students with existing credit for or exemption from CPSC 107, CPSC 110 or APSC 160. [3-1-0]"
},
{
"code": "CPSC 101",
"name": "Connecting with Computer Science",
"cred": "4",
"desc": "Fundamentals of computer science and their connections with the arts, psychology, and biology. Historical, cultural, and gender perspectives of important contributions to the field will be discussed. No prior computing background required. [3-3-0]"
},
{
"code": "CPSC 103",
"name": "Introduction to Systematic Program Design",
"cred": "3",
"desc": "Computation as a tool for systematic problem solving in non-computer-science disciplines. Introductory programming skills. Not for credit for students who have credit for, or exemption from, or are concurrently taking CPSC 110 or APSC 160. No programming experience expected. [3-0-1]"
},
{
"code": "CPSC 107",
"name": "Systematic Program Design",
"cred": "3",
"desc": "Fundamental computation and program structures. Continuing systematic program design from CPSC 103. [3-2-0]",
"prer": "CPSC 103.",
"preq": "CPSC 103"
},
{
"code": "CPSC 110",
"name": "Computation, Programs, and Programming",
"cred": "4",
"desc": "Fundamental program and computation structures. Introductory programming skills. Computation as a tool for information processing, simulation and modelling, and interacting with the world. [3-3-0]"
},
{
"code": "CPSC 121",
"name": "Models of Computation",
"cred": "4",
"desc": "Physical and mathematical structures of computation. Boolean algebra and combinations logic circuits; proof techniques; functions and sequential circuits; sets and relations; finite state machines; sequential instruction execution. [3-2-1]",
"prer": "Principles of Mathematics 12 or Pre-calculus 12.",
"preq": "Principles of Mathematics 12 or Pre-calculus 12",
"crer": "One of CPSC 107, CPSC 110.",
"creq": "CPSC 107 or CPSC 110"
},
{
"code": "CPSC 203",
"name": "Programming, Problem Solving, and Algorithms",
"cred": "3",
"desc": "Analysis of increasingly complex algorithmic problems, using a modern programming language and a variety of approaches. Problem decomposition and abstraction guide explorations of topics from applied algorithms, for example Voronoi Diagrams, Markov Chains, Bin Packing, and Graph Search. Not for students with credit for CPSC 210 or CPEN 221. [3-0-1]",
"prer": "One of CPSC 103, CPSC 110, EOSC 211, MATH 210, PHYS 210, COMM 337.",
"preq": "CPSC 103 or CPSC 110 or EOSC 211 or MATH 210 or PHYS 210 or COMM 337"
},
{
"code": "CPSC 210",
"name": "Software Construction",
"cred": "4",
"desc": "Design, development, and analysis of robust software components. Topics such as software design, computational models, data structures, debugging, and testing. [3-2-0]",
"prer": "One of CPSC 107, CPSC 110.",
"preq": "CPSC 107 or CPSC 110"
},
{
"code": "CPSC 213",
"name": "Introduction to Computer Systems",
"cred": "4",
"desc": "Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks. [3-3-0]",
"prer": "All of CPSC 121, CPSC 210.",
"preq": "CPSC 121 and CPSC 210"
},
{
"code": "CPSC 221",
"name": "Basic Algorithms and Data Structures",
"cred": "4",
"desc": "Design and analysis of basic algorithms and data structures; algorithm analysis methods, searching and sorting algorithms, basic data structures, graphs and concurrency. [3-2-0]",
"prer": "One of CPSC 210, EECE 210, CPEN 221 and one of CPSC 121, MATH 220.",
"preq": "(CPSC 210 or EECE 210 or CPEN 221) and (CPSC 121 or MATH 220)"
},
{
"code": "CPSC 259",
"name": "Data Structures and Algorithms for Electrical Engineers",
"cred": "4",
"desc": "Advanced procedural programming. Fundamental algorithms for sorting and searching. Data structures including lists, trees, and hash tables. Introduction to scripting languages and file input/output. [3-2-0]",
"prer": "APSC 160.",
"preq": "APSC 160"
},
{
"code": "CPSC 261",
"name": "Basics of Computer Systems",
"cred": "4",
"desc": "Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks. [3-2-1]",
"prer": "One of EECE 259, CPEN 211 and one of EECE 210, CPEN 221.",
"preq": "(EECE 259 or CPEN 211) and (EECE 210 or CPEN 221)"
},
{
"code": "CPSC 298",
"name": "Co-operative Work Placement I",
"cred": "3",
"desc": "Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during Winter Session of second year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. "
},
{
"code": "CPSC 299",
"name": "Co-operative Work Placement II",
"cred": "3",
"desc": "Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the summer following the second year. Technical report required. Restricted to students admitted to the Co-operative Education. ",
"prer": "CPSC 298.",
"preq": "CPSC 298"
},
{
"code": "CPSC 301",
"name": "Computing in the Life Sciences",
"cred": "3",
"desc": "Basic concepts, tools, and techniques for working with scientific data at larger scales, higher speeds, and lower costs that would otherwise be impossible. Applications and examples drawn from the life sciences. No prior computing background is required. Not for credit for students who have credit for any of the following: APSC 160, Computer Science AP, IB Computer Science, EOSC 211, or 3 credits of CPSC beyond CPSC 101. [3-2-0]",
"prer": "Third-year standing or higher.",
"preq": "Third-year standing or higher"
},
{
"code": "CPSC 302",
"name": "Numerical Computation for Algebraic Problems",
"cred": "3",
"desc": "Numerical techniques for basic mathematical processes involving no discretization, and their analysis. Solution of linear systems, including analysis of round-off errors; norms and condition number; introduction to iterative techniques in linear algebra, including eigenvalue problems; solution to nonlinear equations. [3-0-0]",
"prer": "One of CPSC 103, CPSC 110, EOSC 211, PHYS 210 and one of MATH 101, MATH 103, MATH 105, MATH 121 and one of MATH 152, MATH 221, MATH 223.",
"preq": "(CPSC 103 or CPSC 110 or EOSC 211 or PHYS 210) and (MATH 101 or MATH 103 or MATH 105 or MATH 121) and (MATH 152 or MATH 221 or MATH 223)"
},
{
"code": "CPSC 303",
"name": "Numerical Approximation and Discretization",
"cred": "3",
"desc": "Numerical techniques for basic mathematical processes involving discretization, and their analysis. Interpolation and approximation, including splines and least squares data fitting; numerical differentiation and integration; introduction to numerical initial value ordinary differential equations. [3-0-0]",
"prer": "One of CPSC 103, CPSC 110, EOSC 211, PHYS 210 and one of MATH 101, MATH 103, MATH 105, MATH 121 and one of MATH 152, MATH 221, MATH 223.",
"preq": "(CPSC 103 or CPSC 110 or EOSC 211 or PHYS 210) and (MATH 101 or MATH 103 or MATH 105 or MATH 121) and (MATH 152 or MATH 221 or MATH 223)"
},
{
"code": "CPSC 304",
"name": "Introduction to Relational Databases",
"cred": "3",
"desc": "Overview of database systems, ER models, logical database design and normalization, formal relational query languages, SQL and other commercial languages,data warehouses, special topics. [3-0-1]",
"prer": "CPSC 221.",
"preq": "CPSC 221"
},
{
"code": "CPSC 310",
"name": "Introduction to Software Engineering",
"cred": "4",
"desc": "Specification, design, implementation and maintenance of large, multi-module software systems. Principles, techniques, methodologies and tools for computer aided software engineering (CASE); human-computer interfaces, reactive systems, hardware-software interfaces and distributed applications. [3-2-0]",
"prer": "CPSC 210.",
"preq": "CPSC 210"
},
{
"code": "CPSC 311",
"name": "Definition of Programming Languages",
"cred": "3",
"desc": "Comparative study of advanced programming language features. Statement types, data types, variable binding, parameter passing mechanisms. Methods for syntactic and semantic description of programming languages. [3-0-1]",
"prer": "CPSC 210.",
"preq": "CPSC 210"
},
{
"code": "CPSC 312",
"name": "Functional and Logic Programming",
"cred": "3",
"desc": "Principles of symbolic computing, using languages based upon first-order logic and the lambda calculus. Algorithms for implementing such languages. Applications to artificial intelligence and knowledge representation. [3-0-0]",
"prer": "One of CPSC 210, EECE 210, EECE 309, CPEN 221.",
"preq": "CPSC 210 or EECE 210 or EECE 309 or CPEN 221"
},
{
"code": "CPSC 313",
"name": "Computer Hardware and Operating Systems",
"cred": "3",
"desc": "Instruction sets, pipelining, code optimization, caching, virtual memory management, dynamically linked libraries, exception processing, execution time of programs. [3-0-1]",
"prer": "All of CPSC 213, CPSC 221.",
"preq": "CPSC 213 and CPSC 221"
},
{
"code": "CPSC 314",
"name": "Computer Graphics",
"cred": "3",
"desc": "Human vision and colour; geometric transformations; algorithms for 2-D and 3-D graphics; hardware and system architectures; shading and lighting; animation. [3-1-0]",
"prer": "CPSC 221 and one of MATH 200, MATH 217, MATH 226, MATH 253 and one of MATH 152, MATH 221, MATH 223.",
"preq": "CPSC 221 and (MATH 200 or MATH 217 or MATH 226 or MATH 253) and (MATH 152 or MATH 221 or MATH 223)"
},
{
"code": "CPSC 317",
"name": "Internet Computing",
"cred": "3",
"desc": "Computer networking, basic communication protocols, network infrastructure and routing. Common application-level protocols and principles associated with developing distributed applications. [3-0-1]",
"prer": "All of CPSC 213, CPSC 221.",
"preq": "CPSC 213 and CPSC 221"
},
{
"code": "CPSC 319",
"name": "Software Engineering Project",
"cred": "4",
"desc": "The design, implementation, and test of a large software system, using a team approach. [3-0-2]",
"prer": "CPSC 310.",
"preq": "CPSC 310"
},
{
"code": "CPSC 320",
"name": "Intermediate Algorithm Design and Analysis",
"cred": "3",
"desc": "Systematic study of basic concepts and techniques in the design and analysis of algorithms, illustrated from various problem areas. Topics include: models of computation; choice of data structures; graph-theoretic, algebraic, and text processing algorithms. [3-0-1]",
"prer": "CPSC 221 and at least 3 credits from COMM 291, BIOL 300, MATH or STAT at 200 level or above.",
"preq": "CPSC 221 and (at least 3 credits from COMM 291 or BIOL 300 or MATH or STAT at 200 level or above)"
},
{
"code": "CPSC 322",
"name": "Introduction to Artificial Intelligence",
"cred": "3",
"desc": "Problem-solving and planning; state/action models and graph searching. Natural language understanding Computational vision. Applications of artificial intelligence. [3-0-0]",
"prer": "CPSC 221.",
"preq": "CPSC 221"
},
{
"code": "CPSC 330",
"name": "Applied Machine Learning",
"cred": "3",
"desc": "Application of machine learning tools, with an emphasis on solving practical problems. Data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results. [3-0-1]",
"prer": "Either (a) one of CPSC 203, CPSC 210, CPEN 221 or (b) MATH 210 and one of CPSC 107, CPSC 110.",
"preq": "((CPSC 203 or CPSC 210 or CPEN 221) or MATH 210) and (CPSC 107 or CPSC 110)"
},
{
"code": "CPSC 340",
"name": "Machine Learning and Data Mining",
"cred": "3",
"desc": "Models of algorithms for dimensionality reduction, nonlinear regression, classification, clustering and unsupervised learning; applications to computer graphics, computer games, bio-informatics, information retrieval, e-commerce, databases, computer vision and artificial intelligence. [3-0-1]",
"prer": "CPSC 221 and one of MATH 152, MATH 221, MATH 223 and one of MATH 200, MATH 217, MATH 226, MATH 253, MATH 254 and one of STAT 241, STAT 251, ECON 325, ECON 327, MATH 302, STAT 302, MATH 318.",
"preq": "CPSC 221 and (MATH 152 or MATH 221 or MATH 223) and (MATH 200 or MATH 217 or MATH 226 or MATH 253 or MATH 254) and (STAT 241 or STAT 251 or ECON 325 or ECON 327 or MATH 302 or STAT 302 or MATH 318)"
},
{
"code": "CPSC 344",
"name": "Introduction to Human Computer Interaction Methods",
"cred": "3",
"desc": "Basic tools and techniques, teaching a systematic approach to interface design, task analysis, analytic and empirical evaluation methods. [2-2-2]",
"prer": "One of CPSC 210, EECE 210, EECE 309, CPEN 221.",
"preq": "CPSC 210 or EECE 210 or EECE 309 or CPEN 221"
},
{
"code": "CPSC 349",
"name": "Honours Research Seminar",
"cred": "0",
"desc": "Students will attend a series of research seminars presented by faculty members, produce a thesis proposal, and choose their honours thesis supervisor. Available to Honours students. Majors students with satisfactory standing may also be permitted to enrol. [1-0-0]"
},
{
"code": "CPSC 398",
"name": "Co-operative Work Placement III",
"cred": "3",
"desc": "Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the summer following the third year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. "
},
{
"code": "CPSC 399",
"name": "Co-operative Work Placement IV",
"cred": "3",
"desc": "Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the fall term of the fourth year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. "
},
{
"code": "CPSC 402",
"name": "Numerical Linear Algebra",
"cred": "3",
"desc": "Investigation of the practical techniques of computational linear algebra. Orthogonal transformations and their application to the solution of linear equations, the eigenproblem, and linear least squares. Complete solution of the symmetric eigenproblem, including bisection and the QR method. Refinements of these techniques for sparse matrices. [3-0-0]",
"prer": "One of CPSC 302, CPSC 303, MATH 307.",
"preq": "CPSC 302 or CPSC 303 or MATH 307"
},
{
"code": "CPSC 404",
"name": "Advanced Relational Databases",
"cred": "3",
"desc": "Physical database design, indexing, relational query processing and optimization, transaction processing, concurrency control, crash recovery, data warehouses, data cubes, views, special topics. [3-0-0]",
"prer": "CPSC 304 and one of CPSC 213, CPSC 261.",
"preq": "CPSC 304 and (CPSC 213 or CPSC 261)"
},
{
"code": "CPSC 406",
"name": "Computational Optimization",
"cred": "3",
"desc": "Formulation and analysis of algorithms for continuous and discrete optimization problems; linear, nonlinear, network, dynamic, and integer optimization; large-scale problems; software packages and their implementation; duality theory and sensitivity. [3-0]",
"prer": "One of CPSC 302, CPSC 303, MATH 307.",
"preq": "CPSC 302 or CPSC 303 or MATH 307"
},
{
"code": "CPSC 410",
"name": "Advanced Software Engineering",
"cred": "3",
"desc": "Specification, design, construction and validation of multi-version software systems. [3-0-0]",
"prer": "Either (a) CPSC 310 or (b) one of EECE 310, CPEN 321 and one of EECE 315, CPEN 331.",
"preq": "(CPSC 310 or (EECE 310 or CPEN 321)) and (EECE 315 or CPEN 331)"
},
{
"code": "CPSC 411",
"name": "Introduction to Compiler Construction",
"cred": "3",
"desc": "A practical introduction to lexical analysis, syntactic analysis, type-checking, code generation and optimization. This will be used to design and implement a compiler for a small language. [3-0-0]",
"prer": "All of CPSC 213, CPSC 221, CPSC 311.",
"preq": "CPSC 213 and CPSC 221 and CPSC 311"
},
{
"code": "CPSC 415",
"name": "Advanced Operating Systems",
"cred": "3",
"desc": "Process synchronization and communication schemes, including message-passing and concepts of monitor and serializer. Virtual memory systems management and the problem of information sharing in such systems. The working set principle. Traps and interrupt handling. Elementary queuing theory and its application such as process scheduling, system balancing and load control. File systems and operating system design methodologies. [3-0-0]",
"prer": "One of CPSC 313, EECE 315, CPEN 331.",
"preq": "CPSC 313 or EECE 315 or CPEN 331"
},
{
"code": "CPSC 416",
"name": "Distributed Systems",
"cred": "3",
"desc": "Concepts and design of distributed systems. Communication architecture and models for interprocess communication. Process migration, naming, distributed file systems, fault tolerance, and concurrency control. [3-0-0]",
"prer": "One of CPSC 313, EECE 315, CPEN 331 and one of CPSC 317, EECE 358, ELEC 331.",
"preq": "(CPSC 313 or EECE 315 or CPEN 331) and (CPSC 317 or EECE 358 or ELEC 331)"
},
{
"code": "CPSC 417",
"name": "Computer Networking",
"cred": "3",
"desc": "Network protocols and architecture including internetworking, the Internet, layered communication protocols, routing, flow and congestion control, network performance, wired and wireless data communication. [3-0]",
"prer": "All of CPSC 313, CPSC 317 and one of STAT 200, STAT 241.",
"preq": "(CPSC 313 and CPSC 317) and (STAT 200 or STAT 241)"
},
{
"code": "CPSC 418",
"name": "Parallel Computation",
"cred": "3",
"desc": "Algorithms, architectures, and programming paradigms for parallel computation. Shared memory, message passing, and data parallel architectures and programming models. Parallel algorithms including reduce, scan, and sorting networks. Reasoning about the correctness of parallel programs. Performance analysis and measurement for parallel programs. [3-0-0]",
"prer": "One of CPSC 261, CPSC 313, EECE 476, CPEN 411 and one of CPSC 320, EECE 320.",
"preq": "(CPSC 261 or CPSC 313 or EECE 476 or CPEN 411) and (CPSC 320 or EECE 320)"
},
{
"code": "CPSC 420",
"name": "Advanced Algorithms Design and Analysis",
"cred": "3",
"desc": "The study of advanced topics in the design and analysis of algorithms and associated data structures. Topics include algorithms for graph-theoretic; algebraic and geometric problems; algorithms on nonsequential models; complexity issues; approximation algorithms. [3-0-0]",
"prer": "CPSC 320.",
"preq": "CPSC 320"
},
{
"code": "CPSC 421",
"name": "Introduction to Theory of Computing",
"cred": "3",
"desc": "Characterizations of computability (using machines, languages and functions). Universality, equivalence and Church's thesis. Unsolvable problems. Restricted models of computation. Finite automata, grammars and formal languages. [3-0-0]",
"prer": "CPSC 221. CPSC 320 is recommended.",
"preq": "CPSC 221. CPSC 320 is recommended"
},
{
"code": "CPSC 422",
"name": "Intelligent Systems",
"cred": "3",
"desc": "Principles and techniques underlying the design, implementation and evaluation of intelligent computational systems. Applications of artificial intelligence to natural language understanding, image understanding and computer-based expert and advisor systems. Advanced symbolic programming methodology. [3-0-0]",
"prer": "CPSC 322.",
"preq": "CPSC 322"
},
{
"code": "CPSC 424",
"name": "Geometric Modelling",
"cred": "3",
"desc": "Digital representation of curves and surfaces, including splines, subdivision surfaces and meshes. Principles, algorithms and mathematical foundations for geometry representation in computer graphics, computer vision, fabrication, CAD/CAM, and medical imaging. Algorithms for acquisition, creation, representation, and processing of 3D shapes. [3-0-1]",
"prer": "CPSC 320 and one of MATH 152, MATH 221, MATH 223 and one of MATH 200, MATH 217, MATH 226, MATH 253.",
"preq": "CPSC 320 and (MATH 152 or MATH 221 or MATH 223) and (MATH 200 or MATH 217 or MATH 226 or MATH 253)"
},
{
"code": "CPSC 425",
"name": "Computer Vision",
"cred": "3",
"desc": "Introduction to the processing and interpretation of images. Image sensing, sampling, and filtering. Algorithms for colour analysis, texture description, stereo imaging, motion interpretation, 3D shape recovery, and recognition. [3-0-0]",
"prer": "All of CPSC 221, MATH 200, MATH 221.",
"preq": "CPSC 221 and MATH 200 and MATH 221"
},
{
"code": "CPSC 426",
"name": "Computer Animation",
"cred": "3",
"desc": "Motion in computer graphics for characters and their environments. Keyframing, inverse kinematics, particle systems, rigid body dynamics, contact and collision, controller-based active motion, motion capture. [3-0-0]",
"prer": "CPSC 314.",
"preq": "CPSC 314"
},
{
"code": "CPSC 427",
"name": "Video Game Programming",
"cred": "3",
"desc": "Video game programming techniques and technologies, including rendering, animation, interaction, game AI, real-time software development for games; start-to-finish simple video-game design and implementation. [3-0-1]",
"prer": "CPSC 221 and one of MATH 200, MATH 217, MATH 226, MATH 253 and one of MATH 152, MATH 221, MATH 223.",
"preq": "CPSC 221 and (MATH 200 or MATH 217 or MATH 226 or MATH 253) and (MATH 152 or MATH 221 or MATH 223)"
},
{
"code": "CPSC 430",
"name": "Computers and Society",
"cred": "3",
"desc": "Impact of computer technology on society; historical perspectives; social and economic consequences of large-scale information processing systems and automatic control; legal and ethical problems in computer applications. Computers and the individual: machine versus human capabilities, fact and fancy; problematic interface between man and machine. [3-0-0]",
"prer": "3 credits of Computer Science and at least third-year standing.",
"preq": "3 credits of Computer Science and at least third-year standing"
},
{
"code": "CPSC 436",
"name": "Topics in Computer Science",
"cred": "1, 2, 3, 4, 5",
"desc": "Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department. ",
"prer": "Third-year standing in a Computer Science or Computer Engineering specialization, and permission of the department.",
"preq": "(Third-year standing in a Computer Science or Computer Engineering specialization) and permission of the department"
},
{
"code": "CPSC 444",
"name": "Advanced Methods for Human Computer Interaction",
"cred": "3",
"desc": "Design and evaluation methodologies and theories; formal models of the user including visual, motor, and information processing; advanced evaluation methods including laboratory experiments and field studies; HCI research frontiers. [2-2-2]",
"prer": "All of CPSC 310, CPSC 344 and one of STAT 200, STAT 241.",
"preq": "(CPSC 310 and CPSC 344) and (STAT 200 or STAT 241)"
},
{
"code": "CPSC 445",
"name": "Algorithms in Bioinformatics",
"cred": "3",
"desc": "Sequence alignment, phylogenetic tree reconstruction, prediction of RNA and protein structure, gene finding and sequence annotation, gene expression, and biomolecular computing. [3-0-0]",
"prer": "CPSC 320 and six credits of BIOL beyond BIOL 111.",
"preq": "CPSC 320 and six credits of BIOL beyond BIOL 111"
},
{
"code": "CPSC 448",
"name": "Directed Studies in Computer Science",
"cred": "3, 6",
"desc": "Open ordinarily to students in Computer Science with at least a 72% average and the permission of the head of the department or designate. The course may consist of supervised reading, participation in a seminar, and one or more programming projects. "
},
{
"code": "CPSC 449",
"name": "Honours Thesis",
"cred": "6",
"desc": "Under supervision of a faculty member, students investigate a research topic and prepare a thesis. ",
"prer": "CPSC 349.",
"preq": "CPSC 349"
},
{
"code": "CPSC 490",
"name": "Student Directed Seminars",
"cred": "3",
"desc": "Self-directed, collaborative studies, in a group-learning environment, initiated and coordinated by senior undergraduate students with the supervision of a faculty advisor. Course structure, enrolment and delivery methods will comply with the \"Handbook for Student Directed Seminars\". [3-0-0]"
},
{
"code": "CPSC 491",
"name": "Interactive Digital Media Practicum",
"cred": "6",
"desc": "Design and implementation of interactive digital media systems using modern processes and tools. Projects provided by external clients or vetted entrepreneurial pitches are developed by interdisciplinary teams composed of one CPSC 491 student and multiple Master of Digital Media students. ",
"prer": "All of CPSC 221, CPSC 310, CPSC 344 and Third-year standing.",
"preq": "(CPSC 221 and CPSC 310 and CPSC 344) and Third-year standing"
},
{
"code": "CPSC 499",
"name": "Co-operative Work Placement V",
"cred": "3",
"desc": "Approved and supervised technical work experience in the computing industry for a minimum of 3.5 months. Normally taken during the summer following the fourth year. Technical report required. Restricted to students admitted to the Co-operative Education Program in Computer Science. "
}
]