|
Courses not offered this academic year (fall/winter terms) are indicated by the words "NOT OFFERED THIS YEAR" below the course description. Nevertheless, students should refer to the Timetable as a final check.
All course selections are subject to the consent of the department. Prerequisites may be waived if the department so decides.
The lecture and laboratory hours for each course, given beneath the course description for each of the two terms (for example 3-3; 3-0 would indicate 3 lecture hours in each term, 3 lab hours in the first term only), indicate the relative amount of work required. The actual duration of lectures and laboratories is at the discretion of the department.
Notes:
1. Students cannot obtain credit for two courses covering essentially the same material such as: Computer Science 0411, 0511, and 1411. 2. Courses marked with a * are diploma courses which are not acceptable for degree credit. 3. Courses marked with a ** are not acceptable for degree credit in any of the programs offered by the Department of Computer Science.
|
*Computer Science
0310
Introduction to Computers (Microcomputer)
|
|
Credit Weight:
0.5
|
|
|
Description:
A general introduction to computers, how they work and the role they now play in society, including the development of simple practical skills in interactive computing, e.g. text editing, use of files, applications packages and simple programs.
|
|
|
|
Offering:
1-2; or 1-2
|
|
back to top | |
|
*Computer Science
0312
Introduction to Computer Systems
|
|
Credit Weight:
0.5
|
|
|
Description:
Topics include an overview of computer systems, files, directories, operating system commands, communication and network utilities, system configurations, and a brief introduction to a high-level programming language.
|
|
|
|
Offering:
0-0; 2-2
|
|
back to top | |
|
*Computer Science
0314
Introduction to Microcomputers for Engineers
|
|
Credit Weight:
0.5
|
|
|
Description:
An introductory course in the use of microcomputers: emphasizing a Windows environment; technical word processing; spreadsheets; an introduction to MATLAB programming; integrating PC software.
|
|
|
|
Offering:
0-3; or 0-3
|
Notes:
Acceptable for credit in Engineering Technology programs only
|
back to top | |
|
Computer Science
0411
Elementary Computing
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Grade 12 Mathematics
|
|
Description:
The development of good programs, simple system functions and the fundamental grammar of FORTRAN. Students will develop and write their own programs and run them in a time-sharing environment.
|
|
|
|
Offering:
3-1; or 3-1
|
|
back to top | |
|
Computer Science
0412
Elementary Computing for Foresters
|
|
Credit Weight:
0.5
|
|
|
Description:
An introduction to UNIX and components of an office suite package such as MS-OFFICE PROFESSIONAL. Students will be exposed to word processing, data analysis using spreadsheets and data structures using data bases, use of presentation software and web page construction. Programming using macros with applications will be presented using Visual Basic.
|
|
|
|
Offering:
2-3; or 2-3
|
Notes:
Restricted to Forestry students only.
|
back to top | |
|
Computer Science
0431
Applied Program Design
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Mathematics 0411
|
|
Description:
The elements of programming design and style - characterization of a good program, top-down design, structured programming, modular design, debugging and testing. Each student will participate in the design and implementation of a significant programming project.
|
|
|
|
Offering:
0-0; 3-1
|
|
back to top | |
|
Computer Science
0433
Introduction to Internet Computing
|
|
Credit Weight:
0.5
|
|
|
Description:
An introduction to Internet and its architecture, fundamental methods for employment of communications on the Internet. The emphasis is on the development of practical skills in Internet Communication; e.g. learning HTML and designing Home pages.
|
|
|
|
Offering:
2-2; or 2-2
|
Notes:
Enrolment limit: 40 per lab
|
back to top | |
|
Computer Science
1411
Computer Programming I
|
|
Credit Weight:
0.5
|
Prerequisite(s):
One credit in Grade 12 U Mathematics recommended
|
|
Description:
A first course in programming given in C - mathematical problem solving, program development, C grammar and simple system functions. Students will develop and write their own programs and run them in a time?sharing environment.
|
|
|
|
Offering:
3-1; or 3-1
|
|
back to top | |
|
Computer Science
1431
Computer Programming II
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 1411
|
|
Description:
Substantially extends the programming skills development, with more complex programs, using advanced C and C++ features. Good programming style and documentation are stressed throughout. Advanced data types, program structures and other advanced topics in C and C++ languages are discussed.
|
|
|
|
Offering:
0-0; 3-1
|
|
back to top | |
|
Computer Science
1990
Co-op Work Term I
|
|
Credit Weight:
0.5
|
|
|
|
|
|
|
|
|
back to top | |
|
Computer Science
2412
Data Structures
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 1431
|
|
Description:
The design and analysis of data structures and algorithms including Stacks, Link Lists, Trees, Graphs, Searching, Sorting and their complexity analysis. The theory is reinforced by working examples, laboratories, projects, and the use of abstract data types from the C and C++ standard libraries.
|
|
|
|
Offering:
3-1; 0-0
|
|
back to top | |
|
Computer Science
2453
Introduction to Computer Architecture I
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 1431
|
|
Description:
Digital logic. Digital systems. Machine-level representation of data. Major component parts of a modern digital computer, namely, control unit, arithmetic and logic units, memory units and peripheral interfaces are studied.
|
|
|
|
Offering:
3-0; 0-0
|
|
back to top | |
|
Computer Science
2473
Introduction to Computer Architecture II
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2453
|
|
Description:
Assembly-level machine organization. Memory system organization and architecture. Interfacing and communication. Writing simple I/O routines and interrupt handlers. The organization of a modern digital computer at Instruction Set Processor level is studied.
|
|
|
|
Offering:
0-0; 3-1
|
|
back to top | |
|
Computer Science
2476
Introduction to Operating Systems
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 1431
|
|
Description:
A practical introduction to operating systems. Basic concepts are examined by using a model operating system. Install and configure the model operating system. Diagnose operating system faults.
|
|
|
|
Offering:
0-0; 2-2
|
|
back to top | |
|
Computer Science
2477
Object Oriented Programming
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412
|
|
Description:
Java for software practitioners experienced in procedural languages, such as C. Concepts of object-oriented programming are shown and practiced through examples, exercises and assignments. Encapsulation, behavior, responsibilities, inheritance, polymorphism, exception and event handling, JDBC, and Java servelets will be used to incrementally build significant object oriented programs. Visual tools for building GUI objects and integrating them into programs.
|
|
|
|
Offering:
0-0; 3-1
|
|
back to top | |
|
Computer Science
2990
Co-op Work Term II
|
|
Credit Weight:
0.5
|
|
|
|
|
|
|
|
|
back to top | |
|
Computer Science
3213
Special Topics II
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Permission of the Department
|
|
Description:
Directed studies and research under the guidance of a faculty member in an area of computer science. The student's transcript shall contain a title descriptive of the work accomplished under the course, if possible.
|
|
SpecialTopic:
Y
|
|
Offering:
0-0; 3-0
|
|
back to top | |
|
Computer Science
3413
Database Management Systems
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412 and 2477
|
|
Description:
The data base concept. The relational model. SQL and other database manipulation languages. Experience with a modern database environment. Normalization and logical database design. Database administration, physical database design.
|
|
|
|
Offering:
3-1; 0-0
|
|
back to top | |
|
Computer Science
3415
Software Engineering
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412 and 2477
|
|
Description:
An introduction to the concepts of software engineering: software life cycle, project planning, cost estimation, software specification, implementation, verification and validation techniques, and software maintenance. Written and oral presentations will be an integral part of the course.
|
|
|
|
Offering:
3-1; 0-0
|
|
back to top | |
|
Computer Science
3473
Operating Systems
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412, 2453 and 2473, or permission of the Department
|
|
Description:
Processes and device handlers and their implementation, communication and synchronization. Synchronization primitives. Process allocation. Memory management. The software required to support a virtual memory system. Resource allocation algorithms. File system implementation. Security and protection. System implementation strategies. The evolution of computer systems: batch processing, multiprogramming, multi-processing, real-time, time-sharing, distributive systems. Each student will design and implement a module for an operating system kernel.
|
|
|
|
Offering:
3-0; 0-0
|
|
back to top | |
|
Computer Science
3990
Co-op Work Term III
|
|
Credit Weight:
0.5
|
|
|
|
|
|
|
|
|
back to top | |
|
Computer Science
3992
Co-op Work Term IV
|
|
Credit Weight:
0.5
|
|
|
|
|
|
|
|
|
back to top | |
|
Computer Science
4411
Programming Languages
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412
|
|
Description:
The basic elements of programming languages and programming paradigms (such as imperative, logic, functional, object-oriented, scripting and web-services description) are explored. Representative languages are selected from Modula-3, Java 2, Prolog, Common Lisp, ML and Haskell. How programming languages are created and their relationship with the underlying hardware. Evaluating the merits of existing and emerging languages.
|
|
|
|
Offering:
3-0; 0-0
|
|
back to top | |
|
Computer Science
4413
Programming Language Processors
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 4411
|
|
Description:
Compiler organization, compiler-writing tools, finite automata and regular expressions, context-free grammars, scanning and parsing, semantic checking, run-time organization, implementation of a run-time model, storage allocation, code generation, and optimization. Students will be required to implement one or more parts of a compiler for a modern language.
|
|
|
|
Offering:
0-0; 3-0
|
|
back to top | |
|
Computer Science
4431
Advanced Project
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2477 and 3415
|
|
Description:
Students will be required to work in teams to design and implement a significant software system. Design decision making will include the application of basic sciences, mathematics, computer science, and business fundamentals. Written and oral presentations will be an integral part of the course. Modern programming and design methodology will be stressed throughout.
|
|
|
|
Offering:
0-0; 3-0
|
|
back to top | |
|
Computer Science
4433
Algorithm Design and Analysis
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412, Mathematics 1281
|
|
Description:
Design of algorithms and analysis of required time and space resources for execution. Lower bounds for resource requirements. Problems in arithmetic, order statistics, set manipulation, string matching, graph theory. Polynomial time, P, and non-deterministic polynomial time, NP, computable algorithms. NP complete problems.
|
|
|
|
Offering:
0-0; 3-0
|
|
back to top | |
|
Computer Science
4451
Theory of Computing
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 4433
|
|
Description:
Abstract computation devices, finite automata, pushdown, and linear-bounded automata. Turing Machines, or equivalent, as transducers and as acceptors. Connections with classes of languages and term-rewriting systems. Deterministic and non-deterministic computability. Introduction to logic programming via resolution-unification algorithms.
|
|
|
|
Offering:
0-0; 3-0
|
|
back to top | |
|
Computer Science
4453
Computer Networks and Distributed Systems
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 3473
|
|
Description:
An introduction to the concepts of Computer Networks: LAN, WAN, communication protocols, inter-process communication/synchronization. Concurrent programming and distributed systems. Real-time systems.
|
|
|
|
Offering:
3-0; or 3-0
|
|
back to top | |
|
Computer Science
4471
Computer Graphics
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412
|
|
Description:
Topics include raster graphics, graphics architectures, application programmer's interface, interactive graphics, two and three dimensional computer graphics primitives and attributes, transformations, viewing, animation, hidden surface removal, colour and shading, and curves and surfaces.
|
|
|
|
Offering:
3-0; or 3-0
|
|
back to top | |
|
Computer Science
4475
Topics in Artificial Intelligence
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2412
|
|
Description:
Introduction to artificial intelligence (AI) and its applications. Topics include one or more of the following: knowledge representation and discovery, rule-based inference and deduction, theorem proving, logic programming, reasoning and learning models, expert system, natural language understanding and intelligent user interfaces.
|
|
|
|
Offering:
3-0; or 3-0
|
|
back to top | |
|
Computer Science
4476
Cryptography and Network Security
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2477
|
|
Description:
Topics include conventional encryption, public-key cryptology, authentication and digital signatures, key distribution, IP security, web security, and network management security.
|
|
|
|
Offering:
3-0; or 3-0
|
|
back to top | |
|
Computer Science
4478
Object-Oriented Design and Methodology
|
|
Credit Weight:
0.5
|
Prerequisite(s):
Computer Science 2477
|
|
Description:
Tools used in the software industry to develop large, complex software systems using modern software engineering methods and models. Analysis of application scenarios and design of information systems using Unified Modeling Language. Best-practice formulas, such as the "Gang-of-Four" (GoF) patterns, several PLOP workshop patterns, and aspect-oriented programming. Case studies and exercises illustrate and apply the patterns.
|
|
|
|
Offering:
3-0; or 3-0
|
|
back to top | |
|
Computer Science
4479
Reading and Research in Computer Science
|
|
Credit Weight:
0.5
|
|
|
|
|
SpecialTopic:
Y
|
|
Offering:
3-0 or 3-0
|
|
back to top | |
|
Computer Science
4990
Co-op Work Term V
|
|
Credit Weight:
0.5
|
|
|
|
|
|
|
|
|
back to top | |
|
Computer Science
4992
Co-op Work Term VI
|
|
Credit Weight:
0.5
|
|
|
|
|
|
|
|
|
back to top | |
|