Search
Thunder Bay • Orillia

Computer Science (COMP) Courses Listing

Computer Science 0411 Elementary Computing View Details
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.
Credit Weight: 0.5
Prerequisite(s): Grade 12 Mathematics
Offering: 3-1; or 3-1
Notes: Students may not take both Computer Science 0411 and 1411 for credit.
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 0412 Elementary Computing for Foresters View Details
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.
Credit Weight: 0.5
Offering: 2-3; or 2-3
Notes: Restricted to Forestry students only.
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 1411 Computer Programming I View Details
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.
Credit Weight: 0.5
Prerequisite(s): One credit in Grade 12 U Mathematics recommended
Offering: 3-1; or 3-1
Notes: Students may not take both Computer Science 0411 and 1411 for credit.
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 1431 Computer Programming II View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 1411
Offering: 0-0; 3-1
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 1990 Co-op Work Term I View Details
Credit Weight: 0.5
Prerequisite(s): Permission of the Chair of the Department
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 2412 Data Structures View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 1431
Offering: 3-1; 0-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 2430 Mobile Computing Technology View Details
Mobile programming components such as UI programming, data management, localization, and programming sensors such as the accelerometer and compass; mobile OS services, and mobile phone games from a systems and implementation perspective and its SDK.
Credit Weight: 0.5
Prerequisite(s): Computer Science 1431
Offering: 0-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 2453 Introduction to Computer Architecture View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 1431
Offering: 3-0; 0-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 2476 Introduction to Assembly Language and Operating Systems View Details
Assembly-level machine organization. Memory system organization and architecture. Writing simple I/O routines and interrupt handlers. Introduction to initialization and process management in a Unix or Unix-like operating system.
Credit Weight: 0.5
Prerequisite(s): Computer Science 1431
Offering: 0-0; 2-2
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 2477 Object Oriented Programming View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412
Offering: 0-0; 3-1
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 2990 Co-op Work Term II View Details
Credit Weight: 0.5
Prerequisite(s): Permission of the Chair of the Department
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 3213 Special Topics View Details
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.
Credit Weight: 0.5
Prerequisite(s): Permission of the Department
Special Topic: Yes
Offering: 3-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 3413 Database Management Systems View Details
The database concept, the relational model, normalization and logical database design. SQL, triggers, transactions. Experience with multi-level database environment. Data warehousing concepts including datamarts, ETL, star Schemas and fact tables. Limitations of the Relational model on Big or Unstructured Data and how they are addressed in Not Only SQL (NoSQL) and Hadoop. Database administration, authorization, backup and recovery features.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412 and 2477
Offering: 3-1; 0-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 3415 Software Engineering View Details
An introduction to a spectrum of software engineering concepts: software requirement and specification, project planning and design, software development and testing, software process management, and software maintenance. Several of these topics of software design and testing will be explored in detail. Object-oriented methodology and UML will be used. A team project and class discussion will be an integral part of the course.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412 and 2477
Offering: 3-1; 0-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 3473 Operating Systems View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412, 2453 and 2476, or permission of the Department
Offering: 3-0; 0-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 3990 Co-op Work Term III View Details
Credit Weight: 0.5
Prerequisite(s): Permission of the Chair of the Department
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 3992 Co-op Work Term IV View Details
Credit Weight: 0.5
Prerequisite(s): Permission of the Chair of the Department
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4111 Clinical Decision Support View Details
An overview of computer-based Clinical Decision Support (CDS) and CDS Systems (CDSS). Topics include: the design principles behind clinical decision support systems, CDSS usability, implementation science, mathematical foundations of the knowledge-based systems and pattern recognition systems, clinical vocabularies, legal and ethical issues, patient centered systems, and applications of clinical decision support systems.
Credit Weight: 0.5
Prerequisite(s):

Computer Science 2412

Offering: 3-0; or 3-0
Notes: Students who have previous credit in Computer Science 4210 with topic title "Clinical Decision Support" may not take Computer Science 4111 for credit.
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4112 Introduction to Data Science View Details
An introduction to the main tools and ideas in the data scientist's toolbox. An overview of the data, questions, and tools that data analysts and data scientists work with. There are two components to this course. The first is a conceptual introduction to the ideas behind turning unstructured data into actionable knowledge. The second is a practical introduction to the tools that are commonly used in Data Science such as R and Python.
Credit Weight: 0.5
Prerequisite(s):

Computer Sceince 2477, Mathematics 2310

Offering: 3-0; or 3-0
Notes: Students who have previous credit in Computer Science 4210 with topic title "Introduction to Data Science" may not take Computer Science 4112 for credit.
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4210 Special Topics View Details
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.
Credit Weight: 0.5
Prerequisite(s):

Permission of the Chair of the Department

Special Topic: Yes
Offering: 3-0; or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4310 Web Health Informatics View Details
An introduction to the organization and operation of the health systems of Canada as well as to various associated concepts including a variety of Electronic Healthcare Record systems, healthcare data and knowledge sharing, evidence and proximity based medicine, interoperability between diverse and distributed systems, medical terminology standards and clinical web applications.
Credit Weight: 0.5
Prerequisite(s): Computer Science 3413
Offering: 3-1; or 3-1
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4311 Big Data View Details
Students will learn how to select data from big data repositories (like Canadian or US Open Data portals) and how to use proper data analytics techniques. Many data analytics techniques will be introduced such as linear and logistics regression models, decision trees, support vector machine (SVM), association rules and social graph mining. Students will also learn statistical techniques to evaluate the performance of the models. Assignments and projects relating to health care will be a part of the course.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2477
Offering: 3-1; or 3-1
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4312 Cloud Computing View Details
This course discusses the key cloud concepts of: (i) Infrastructure as a Service (IaaS), (ii) Platform as Service (PaaS), and (iii) Software Application as Service (SaaS), as well as new and contemporary trends in cloud computing. It also expose students to concepts and technologies related to cloud computing such as Virtualization, Cloud Computing Platforms, Public Cloud, Private Cloud, Hybrid Cloud and Community Cloud Deployment Models, Business Cost Metrics and Formulas for Comparing and Calculating Cloud and On-Premise Solution Costs and Service Level Agreements (SLAs) for Cloud-based IT Resources. Selecting a cloud environment and deploying/implementing cloud based applications will be among the student projects/assignments of this course.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2477
Offering: 3-1; or 3-1
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4411 Programming Languages View Details
The basic elements of programming languages and programming paradigms are explored. A kernel language approach based on Mozart OZ is used to teach programming that situtates most of the widely-known programming paradigms (including imperative, object-oriented, concurrent, logic, and functional) in a uniform setting that shows their deep relationships and how to use them together. The kernel approach is compared to the approaches used by variety of dedicated languages (e.g. SALSA, ProfessorJ, ML, CLOS, Prolog).
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412
Offering: 3-0; 0-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4413 Programming Language Processors View Details
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 a front-end compiler for a modern language.
Credit Weight: 0.5
Prerequisite(s): Computer Science 4411
Offering: 0-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4431 Advanced Project View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2477 and 3415
Offering: 0-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4432 Advanced Game Programming Project View Details
Students will be required to work in teams to design and implement a significant multiplayer game. 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 methodolgy will be stressed throughout.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2477 and 3415
Offering: 0-0; 3-0
Notes: Students may not take both Computer Science 4431 and 4432 for credit.
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4433 Algorithm Design and Analysis View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412 and Mathematics 1271
Offering: 0-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4434 Advanced Health Informatics Programming Project View Details
Students will be required to work in teams to design and implement a significant health informatics application. 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.
Credit Weight: 0.5
Prerequisite(s):

Computer Science 2477, Computer Science 3415

Cross-List(s): Computer Science 4431, Computer Science 4432
Offering: 0-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4451 Theory of Computing View Details
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.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412 and Mathematics 1271
Offering: 0-0; 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4453 Computer Networks and Distributed Systems View Details
An introduction to the concepts of Computer Networks: LAN, WAN, communication protocols, inter-process communication/synchronization. Concurrent programming and distributed systems. Real-time systems.
Credit Weight: 0.5
Prerequisite(s): Computer Science 3473
Offering: 3-0; or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4471 Computer Graphics View Details
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. Course topics will be related to game programming applications and assigned work will employ course material in the construction of two and three dimensional games.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412
Offering: 3-0; or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4475 Topics in Artificial Intelligence View Details
Introduction to artificial intelligence (AI) and its applications. Topics include several of the following: logic and reasoning, AI languages, state-space search, heuristics, constraints-satisfaction problem, game-problem solving, planning, machine learning, agent and multi-agents programming, neural networks, genetic algorithms and reasoning about uncertainty. Students will design and implement a medium scale project related to game programming as part of the course requirements.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2412
Offering: 3-0; or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4476 Cryptography and Network Security View Details
Topics include conventional encryption, public-key cryptology, authentication and digital signatures, key distribution, IP security, web security, and network management security.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2477
Offering: 3-0; or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4478 Game Programming View Details
A practical introduction to game programming and game design concepts, emphasizing the basic tools of game design. A well-rounded skill set is provided by addressing game design art, storytelling, animation, game play mechanics, game engines and various software production methodologies. Throughout the course, students learn to apply industry standard software tools and techniques for the game production processes. Special emphasis is given to object-oriented games and web games via JavaScript, Flash or other newer programming technologies. Students will develop several games through the course assignments and projects.
Credit Weight: 0.5
Prerequisite(s): Computer Science 2477
Offering: 3-0; or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4479 Directed Research in Computer Science View Details
A student will work on a well defined research project under the direction of a full-time faculty member in the Department of Computer Science. Students will write, and be graded on, a report on their work experience that details the nature of the research, the nature of their contribution, and how the research study has changed their world-view of Computer Science. Students may be required to present an oral summary to the Department. Students interested in this opportunity should contact potential supervisors.
Credit Weight: 0.5
Prerequisite(s):

Permission of the supervisor and the chair of Computer Science. Students must have an overall B average in previous Computer Science courses.

Special Topic: Yes
Offering: 3-0 or 3-0
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4990 Co-op Work Term V View Details
Credit Weight: 0.5
Prerequisite(s): Permission of the Chair of the Department
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top

Computer Science 4992 Co-op Work Term VI View Details
Credit Weight: 0.5
Prerequisite(s): Permission of the Chair of the Department
Course Classifications: Type C: Engineering, Mathematical and Natural Sciences

back to top