Bachelor of Computer Science (Honours)

Select start date and campus

Close

Applying as a Canadian applicant

Domestic students should apply online or by phone at 1-888-892-2228.

Applying as an International applicant

International students should apply online.
Close

Campus tours

Campus tours are one of the best ways to experience Conestoga. During this time, we are offering online guided tours to show you all Conestoga has to offer.

Book your tour

Virtual tours

If you can't make an on-campus tour or attend one of our events, the virtual tour is a great way to visit us.

View our Virtual tour

Courses - January 2025

Level 1

Course details

Conestoga 101
CON0101

Description: This self-directed course focuses on introducing new students to the supports, services, and opportunities available at Conestoga College. By the end of this course, students will understand the academic expectations of the Conestoga learning environment, as well as the supports available to ensure their academic success. Students will also be able to identify on-campus services that support their health and wellness, and explore ways to get actively involved in the Conestoga community through co-curricular learning opportunities.
  • Hours: 1
  • Credits: 0
  • Pre-Requisites:
  • CoRequisites:

Software Engineering Fundamentals
CSCN71000

Description: Students will be introduced to common software design and documentation standards, including requirements gathering and specifications, design/testing documentation and specifications, implementation, and testing of software to meet those specifications. A focus of this course is the construction of defect-free software artifacts that meet customer needs as described in the software system’s specifications.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Computer Systems Architecture Fundamentals
CSCN71010

Description: Students will be introduced to computer hardware and systems architecture, with emphasis on how software interacts with systems hardware. Knowledge of underlying computer hardware architectures is critical to the development of software that meets performance requirements, which is an important aspect of software quality. This knowledge is also necessary to support the evaluation of software toolkits, programming languages, and algorithmic techniques, and to facilitate efficient problem determination and troubleshooting of software artifacts. Topics will include machine / assembly language, input and output from a computer system, and obstacles to performance constraints such as CPU clock speeds, caches, memory, input/output devices, and related topics.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Project I: Software Implementation and Unit Testing
CSCN71020

Description: Delivery of high quality software requires developers to deploy appropriate testing strategies. Through project-based learning, students will gain software testing experience through the creation of unit tests for sample software which will lead to the development of an expansive test project. During the semester, these concepts will support learning outcomes in other courses in the program, while also developing communications skills by creating and presenting reports on test projects. During the final project phase, students will add new functional program code to the provided system, while developing a comprehensive test suite.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Scientific and Technical Communications
ENGL71200

Description: Documents that are written for scientific or technical purposes are written in a very precise and specific way that does not permit variations in interpretation. This course will prepare students to communicate scientific and technical information concisely and accurately using appropriate formats and graphic support. Students will study technical communication theory/ practice and apply the knowledge to creating, critiquing, and presenting technical documents. An oral presentation will emphasize the clear and concise communication of technical details and the use of appropriate visual support for technical information.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Linear Algebra and Discrete Mathematics
MATH71010

Description: In this course, students will acquire critical thinking and abstraction skills to build mathematical models of abstract concepts in order to solve real-world problems. Students will also improve their understanding of recursion through the analysis of sequences and recurrence relations. Topics in this course include: methods of solving a set of linear equations; matrix algebra and matrix determinants; linear transformations; sequences, series and their applications; spatial vectors; numerical integration and its applications; eigenvalues and eigenvectors; set theory; combinatorics; and logic
  • Hours: 56
  • Credits: 4
  • Pre-Requisites:
  • CoRequisites:

Programming Principles
PROG71990

Description:

This course introduces software design and implementation using programming languages that provide minimal abstraction from the CPU's Instruction Set Architecture (ISA). These lower-level programming languages offer a unique combination of performance and flexibility while demanding a disciplined level of design and implementation. Topics in this course include algorithm design, modular code design, programming style, functions, arrays, pointers, strings, data structures, and file I/O. Proper design is emphasized to produce reliable, robust and maintainable software.

  • Hours: 56
  • Credits: 4
  • Pre-Requisites:
  • CoRequisites:

Level 2

Course details

Project II: Team Based Software Development
CSCN71030

Description: Rarely will software be developed by an individual. In industry, software is designed, implemented and tested in team environments. By simulating real-world practices, this course will leverage awareness of group dynamics to engage students in team-based testing exercises, extending testing strategies from previous course work. Through a project-based approach, students will collaboratively develop, employ and report on the effectiveness of software testing strategies. Software projects developed and tested in this course reinforce the learnings from previous and concurrent courses in the program. Communications skills will be enhanced by reporting on benchmark outcomes to team leaders and management.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Object Oriented Programming
PROG71020

Description: Students acquire the knowledge of building high quality, robust, well designed software applications using object oriented design principles through an industry-standard programming language. Students apply modern, iterative development techniques to build progressively complex, interactive applications using modern software development environments and frameworks.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites: PROG71985 OR PROG71990
  • CoRequisites:

User Experience Design
PROG71030

Description: Usability is an important characteristic of software quality. This course provides the student with the design theory involved in creating effective, high-quality user experiences that meet user requirements, taking into account human psychology, human behaviour, and the particular needs of users with accessibility goals. Within this context, students will examine the best methods for human / machine interaction that fulfill user requirements as part of a complete end-to-end user experience. Techniques for design, implementation, and evaluation will be covered. Emphasis will be placed on design of quality user experiences (UX) and accessibility.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Operating Systems and Security Fundamentals
PROG71040

Description: This course provides an in-depth study of the organization of operating systems. Topics covered include operating system services, process scheduling, process synchronization, multi-process computation, deadlock avoidance, and file system organization and integrity. In addition, the course will focus on specific operating system capabilities such as secure, high reliability support features for application-level software.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Data Structures and Algorithms
PROG72370

Description:

This course emphasizes problem-solving and software design that use efficient and effective data organization. Essential advanced data structures are discussed, analyzed, and implemented. Algorithms for sorting, searching, and other data transformations are studied and implemented. Efficiencies and costs of algorithms are evaluated. Students will learn how selecting different algorithms affects the performance of software systems.

  • Hours: 56
  • Credits: 4
  • Pre-Requisites: PROG71985 OR PROG71990
  • CoRequisites:

Group Dynamics
SOC71500

Description: This course will focus on comprehensive theoretical understanding of group process, personal skill development and application through intensive team work. These skills are of critical importance in both professional and social settings. Through guided exploration and application of theoretical paradigms and practical strategies, students will achieve the necessary skills to succeed in and lead effective teams. The course consists in an intensive experiential approach – learning by doing – enabling participants to become effective, practiced team members with experience applying skills necessary for leadership, analysis and evaluation, problem solving, and conflict management. Individual and team activities enhance participants’ skills to work with a variety of personalities in diverse situations, and to effectively assume various professional roles within a team.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Level 3

Course details

Co-op and Career Preparation
CEPR71050

Description: This series of modules prepares degree level students for job searching for their co-op work terms with the guidance of a Co-op Advisor. Students will examine the co-operative education policies and procedures and will learn the expectations, rules, and regulations that apply in the workplace concerning social, organizational, ethical, and safety issues while deepening their awareness of self-reflective practices. Students will critically reflect on their skills, attitudes, and expectations and evaluate available opportunities in the workplace. Successful completion of these modules is a requirement for co-op eligibility.
  • Hours: 14
  • Credits: 1
  • Pre-Requisites:
  • CoRequisites:

Introduction to Database Systems
CSCN72000

Description: Today, database systems are ubiquitous in the computing landscape; from enterprise servers to smartphones, persistent storage of application data typically involves a relational database. This course will introduce students to the fundamentals of relational database management systems. Students will apply mathematical foundations, abstraction, critical thinking and design skills in the modelling of data requirements with the goal of achieving specific database system implementations and query processing techniques. Students will acquire a solid foundation in the use of the SQL data sublanguage, a common means of accessing data in a relational database. In addition, students will explore topics including flat file and in-memory database systems, and NoSQL solutions.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Software Quality I: Testing Tools and Methodologies
CSCN72010

Description: Quality cannot be added to a software project after the software is built; rather, quality must be built into the product at every phase of development. This course provides an introduction to software quality with an emphasis on testing tools and methodologies so students can better assess software development practices and tools with respect to their impact on software quality. Students will utilize their critical thinking skills to understand risk, risk assessment and measures of software complexity. Students will be exposed to issues surrounding the management of risk and how risk can be communicated to management. Topics in the course include introductions to unit, integration, system, acceptance, regression, functional, and performance testing, defect reporting and causal analysis, and software quality metrics.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Computer Networks
CSCN72020

Description: This course will provide students with the knowledge to design, implement and troubleshoot modern computer networks based on TCP/IP. The student will be introduced to broad networking concepts including protocols, topologies, transmission media and security, using hands-on examples of networking issues.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Project III: Software Development Life Cycle
CSCN72030

Description: All software development and test practitioners in industry must have strong awareness of the software development life cycle (SDLC) and its impact in software project management. This course will examine the SDLC and project management through the development of a major term project. This project requires students to work in teams on an end-to-end solution requiring design, coding, testing and validation. Communications, data management and critical thinking skills are further emphasized through each team’s project management objectives.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Systems Analysis and Design
SENG71000

Description: This course provides an overview of the Systems Development Life Cycle (SDLC) and introduces students to several alternative methodologies of software development encountered in industry. Students will be exposed to the complete workflow surrounding several SDLC methodologies. Students will exercise their critical thinking skills as they undertake the analysis and design phases of different methodologies in relevant case studies using the Unified Modeling Language (UML) as a documentation standard. In addition, students will compare and assess the different SDLC approaches and how these differing approaches impact risk, project management, and software quality.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Level 4

Course details

Project IV: Mobile and Networked Environments
COMP72070

Description: Developing software solutions for today’s connected and mobile world requires specific considerations that target data processing in mobile and networked environments. Cross platform and security issues across distributed and mobile applications is emphasized. This project requires students to work in teams on an end-to-end solution requiring design, coding, testing and validation. Communications, data management and critical thinking skills are further emphasized through each team’s project reporting objectives.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Software Design Techniques
CSCN72040

Description: Characteristics of high-quality software designs include performance, reliability, extensibility, robustness, and maintainability. In this course, students will exercise their critical thinking skills to develop, refine, and test software designs, and analyze the inherent trade-offs (e.g. performance and extensibility) that exist with specific design patterns. In addition, students will be introduced to the development of system documentation using the Unified Modelling Language (UML) for the purpose of communicating their design decisions to clients and other software developers. Students will extend their understanding of data and algorithm design through the formal introduction of software design patterns, and techniques that enhance the quality and portability of software over multiple platforms.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Mobile and Networked Systems
CSCN72050

Description: Mobile applications are much more complex than more traditional deployment models – such applications are inherently distributed, with greater degrees of complexity, significantly greater performance challenges, and considerably higher risk for both outright data loss and security failures. Students will expand their understanding of computer systems architecture through the examination of networked computing solutions, such as distributed and cloud-based platforms, and service-oriented architectures. Students will also be introduced to mobile application development within these networked computing solutions. Students will be introduced to the trade-offs between native and browser-based mobile applications and the implications of design choices with respect to quality characteristics.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites: CSCN72020
  • CoRequisites:

Software Quality II: User Experience Evaluation
CSCN72060

Description: This course builds on the knowledge of software quality fundamentals that students acquired in previous semesters, and expands on that knowledge through practice of test and behavior-driven design techniques and usability testing. Within the course, students will combine their understanding of software testing fundamentals with their background in the study of human behaviour to assess the quality of software designs from the user experience (UX) perspective.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Advanced Technical Communication
ENGL73170

Description: Building on skills taught in ENGL71200, this course emphasizes collaborative, problem-solving, and entrepreneurial skills required for advanced scientific and technical communication. Students will work in writing teams, adapt technical content for different platforms, and learn to manage and report on ongoing technical communication tasks. They will identify technical research and documentation needs related to their field of study in order to produce a major course project.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites: ENGL71200
  • CoRequisites:

Probability and Statistics
STAT72000

Description: Risk analysis that supports the eventual release of high quality software solution to a customer requires further depth in the mathematics of probability and statistics. Students will be exposed to how the study of the mathematics of probability and statistics can support informed decision making during the design, implementation, testing and release of software. Examples are formulated from various disciplines, including engineering, scientific and others.
  • Hours: 56
  • Credits: 4
  • Pre-Requisites:
  • CoRequisites:

Level 5

Course details

Co-op Work Term I (Bach Computer Science)
COOP72050

Description: The co-op work term will provide students with college-approved work experience within an information technology environment. Students will be provided an opportunity to: build skills (physical and procedural skills including accuracy, precision, and efficiency); assist in the acquisition of knowledge in and application of knowledge gained in the academic setting (concepts and terminology in a discipline or field of study); develop critical, creative, and dialogical thinking (improved thinking and reasoning processes); cultivate problem solving and decision-making abilities (mental strategies for finding solutions and making choices); explore attitudes, feelings, and perspectives (awareness of attitudes, biases, and other perspectives, ability to collaborate); practice professional judgment (sound judgment and appropriate professional action in complex, context dependent situations); and reflect on experience (self-discovery and personal growth from real-world experience).
  • Hours: 420
  • Credits: 14
  • Pre-Requisites:
  • CoRequisites:

Level 6

Course details

Parallel Computing Techniques
CSCN73000

Description: Modern computer systems often require the implementation of parallelizable algorithms to take best advantage of their underlying computer architectures. This course will introduce the concepts behind machine and network architectures that facilitate parallel computing, and the development and testing of parallel computing algorithms that exploit such architectures. Topics such as data and task parallelism, distributed file systems, synchronization primitives and other concurrency control mechanisms, scale-out multi-machine architectures, and multi-core CPU architectures will be explored. Students will reinforce and enhance testing methodologies through exploration of best practices in the testing of solutions that employ parallel algorithms. In addition, students will be introduced to existing tools that address these problems in specific software development environments.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Software Quality III: Build and Release
CSCN73010

Description: The software industry requires careful management of the build and deployment of large-scale software solutions. Scale creates additional stress in terms of the management of the quality of each new release to the customer. Students will improve their existing skills and awareness of tools and techniques through the study of topics including the selection and use of appropriate tools for large-scale projects, and the management of the build and release phases of a software project. Critical thinking skills are further enhanced through topics such as risk analysis to determine whether software is ready for release, risk management of outsourced software projects, the management of contractors, and strategies to estimate and manage software development costs within a project without sacrificing the quality of releases.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Project V: Advanced Software Development
CSCN73030

Description: In this course, students will research and examine what software development and release management teams in industry do in selecting custom software tools that support enterprise level solutions. Within a team-based project, students will exercise their research and critical thinking skills to identify opportunities for the adoption of tools to solve specific development, management or testing problems. Deliverables from the project include relevant design and product documentation, along with process documentation outlining the operation of the tools/toolchain to support the delivered software prototype published in a manner suitable for enterprise solution teams.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Understanding Research
RSCH73000

Description: This course will present an overview of social scientific methods. The course will address the major components of the research process, including development of theoretically informed hypotheses, implementation of theoretical concepts, development of data collection instruments, testing of hypotheses through data analysis, and the presentation of research results. The student will develop the skills necessary to read and critically analyze social science research and discuss the ethics of social research.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Introduction to Software Security
SECU73000

Description: Identify theft, electronic banking and credit card theft, password theft, and the leakage of private information are commonplace occurrences in the Internet age. In this course, students will study a range of security vulnerabilities and approaches to address or minimize them. This course will examine in detail algorithmic and data processing security, with a focus on enhancing software quality and reliability through the study of topics such as encryption techniques, stack, heap, and buffer overrun vulnerabilities, malware and malware detection, and emerging techniques. Practical exercises in penetration testing, will enhance understanding of how software security contributes to reliable, secure software systems.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Introduction to Big Data
PROG73010

Description: We now live in a world with immense amounts of complex data which is subject to rapid change. Analyzing these data sets can reveal trends, patterns, and relationships which can bring insight and present new opportunities to organizations. In this course, students will explore fundamental concepts around big data problems, applications, and challenges. Through hands-on exercises, labs and interactive lectures, students will solve big data problems using industry standard best practices, programming models/languages, tools and techniques. Students will also develop an understanding of big data strategies and their importance in the success of today’s organizations.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Network Security
SECU73010

Description: This course introduces students to the security requirements of modern computer networks. Students will focus on identifying attack vectors that exist in networks and how these attacks can be prevented or mitigated. Students will be taught to think and see a network like an attacker in order to develop solutions for securing the network. Students will work with popular security systems in order to develop the skills required to use these systems in an industrial setting. Students will also be taught to identify and develop a security solution that meets the security requirements of individual companies. This will require analyzing companies for their risk level, their ability to recover from attack, and the time and budget limitations of the company.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Level 7

Course details

Software Quality IV: Performance and Analysis
CSCN73040

Description: Students will continue to build their awareness of industry practice by examining how to undertake accurate performance testing and to assess how such testing can perturb the performance characteristics of the system under test. This course will include topics such as code and algorithm optimization, instrumentation and measurement techniques, performance measurement toolkits, experiment designs, and performance metrics, which students may apply in the tuning of software solutions or in risk analysis and decision making.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Project VI: Software Efficiency and Performance
CSCN73060

Description: The data processing requirements of modern software continues to expand exponentially, with the need for systems to be as efficient as possible. There is a growing need for high efficiency algorithms and architecture that maximize performance in parallel and non-parallel processing environments. Students will execute a project related to enhancing solution efficiency and performance. Critical thinking and communications skills are enhanced by evaluating and documenting system efficiency.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Enterprise Application Development
PROG73020

Description: Successful application design for large enterprise systems requires the understanding and capability to plan for, implement and test high levels of component integration, and performance analysis. Students will study different architecture frameworks for the development of large-scale, interdependent enterprise systems. Team-based activities allow students to develop skills and to test their deployments against enterprise requirements, and to work in cross-functional teams.
  • Hours: 56
  • Credits: 4
  • Pre-Requisites:
  • CoRequisites:

Analysis of Algorithms
PROG73030

Description: This course introduces students to the study of algorithm analysis, effective algorithm design techniques, and approaches to handling situations in which no feasible algorithms are known. In this course, students will utilize their critical thinking skills to test for efficient algorithms to solve variants of fundamental problems in Computer Science that manifest themselves in a variety of application domains. Students will also learn approximation techniques that permit the development of a feasible, though approximate, solution to these problems where an efficient, exact answer cannot be computed in a reasonable amount of time.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Electives: Interdisciplinary
Student must pass 1 Course(s), selected in the Student Portal from available course options
Interdisciplinary Elective Details

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Big Data Integration and Processing
PROG73040

Description: Emerging technologies such as mobile computing and IoT have drastically increased the generation of new data that requires efficient analysis techniques. In this course, students will explore different techniques of integrating big data as a building block for an efficient analytic system. Through demonstrations, labs and case studies, students will apply design techniques to create big data analytics pipelines and build integrated databases using industry standard tools and techniques.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Information Security Management
SECU73020

Description: Modern professional organizations require the synthesis of many levels of security measures, including physical and network security, the management of security practices, and adherence to local and international legislation. In this course, students will explore management techniques applied to corporate and organizational security. Students will study the elements, tools, and skills required for securing organizations including risk and asset management, threat modeling, the development of security policies and procedures, auditing, and employee training.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Level 8

Course details

Co-op Work Term II (Bach Computer Science)
COOP73050

Description: The co-op work term will provide students with college-approved work experience within an information technology environment. Students will be provided an opportunity to: build skills (physical and procedural skills including accuracy, precision, and efficiency); assist in the acquisition of knowledge in and application of knowledge gained in the academic setting (concepts and terminology in a discipline or field of study); develop critical, creative, and dialogical thinking (improved thinking and reasoning processes); cultivate problem solving and decision-making abilities (mental strategies for finding solutions and making choices); explore attitudes, feelings, and perspectives (awareness of attitudes, biases, and other perspectives, ability to collaborate); practice professional judgment (sound judgment and appropriate professional action in complex, context dependent situations); and reflect on experience (self-discovery and personal growth from real-world experience).
  • Hours: 420
  • Credits: 14
  • Pre-Requisites:
  • CoRequisites:

Level 9

Course details

Co-op Work Term III (Bach Computer Science)
COOP74090

Description: The co-op work term will provide students with college-approved work experience within an information technology environment. Students will be provided an opportunity to: build skills (physical and procedural skills including accuracy, precision, and efficiency); assist in the acquisition of knowledge in and application of knowledge gained in the academic setting (concepts and terminology in a discipline or field of study); develop critical, creative, and dialogical thinking (improved thinking and reasoning processes); cultivate problem solving and decision-making abilities (mental strategies for finding solutions and making choices); explore attitudes, feelings, and perspectives (awareness of attitudes, biases, and other perspectives, ability to collaborate); practice professional judgment (sound judgment and appropriate professional action in complex, context-dependent situations); and reflect on experience (self-discovery and personal growth from real-world experience).
  • Hours: 420
  • Credits: 14
  • Pre-Requisites:
  • CoRequisites:

Level 10

Course details

Software Safety and Reliability
CSCN74000

Description: No study of software testing, safety and reliability is complete without the examination of the impact of government and industry regulatory requirements for a software solution. Regulatory requirements impose significant restrictions on designers and developers and impact the design and testing of software under build and release. This course will examine issues in testing, safety and reliability through an examination of formal safety standards and compliance testing for regulated industry segments such as financial, automotive, aerospace, and health devices / solutions. Research into ever-evolving jurisdictional specific laws and standards for software accessibility and privacy will further build critical thinking skills and student awareness of how to validate software and make recommendations to address data integrity, security and usability.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Capstone Project I
CSCN74050

Description: This course is the first half of a two-semester pairing of project courses that incorporates the design, implementation, testing and release of a large scale software project that integrates the technical knowledge and skills learned in previous and the current semesters. Key elements such as critical thinking, research, problem solving, the use of appropriate tools, communications, and project management skills are emphasized as a capstone project is selected, researched, documented, designed and implemented across both capstone courses. Complete formal testing and release and deployment of the solution will take place in the subsequent course. Students will be encouraged to consider applied research applications, entrepreneurial project ideas, or alternatively, work with an industry partner on authentic industry-driven project.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Electives: Interdisciplinary
Student must pass 1 Course(s), selected in the Student Portal from available course options
Interdisciplinary Elective Details

Electives: Interdisciplinary
Student must pass 1 Course(s), selected in the Student Portal from available course options
Interdisciplinary Elective Details

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Applications of Artificial Intelligence and Machine Learning
PROG74000

Description:

This course explores Artificial Intelligence, Machine Learning, and Deep Learning, emphasizing practical applications across industries. Starting with foundational concepts, students critically analyze the machine-learning pipeline and delve into traditional machine-learning approaches and key algorithms. The course examines models suited for tabular data, neural networks, and advanced models, such as U-Nets and Convolutional Neural Networks (CNNs), focusing on computer vision and object detection. This course also covers Machine Learning Operations (MLOps), guiding students in model deployment using industry tools and adhering to industry standards.

  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Rootkits and Hacking
SECU74000

Description: There are many types of malicious code and exploits that are enabled by the wider use of the Internet, portable media, mobile devices and embedded systems. These exploits include Trojan horses, worms, viruses, botnets and spyware, as well as less technologically sophisticated types of exploits such as password cracking and the guessing of security questions. In this course, students are encouraged to explore the behaviour and motivation of hackers, to study known types of exploits, and to creatively design new kinds of attacks, all in order to develop the skills needed to secure organizations and software systems.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Data Visualization
PROG74010

Description: In this course, students will acquire the fundamental knowledge of data visualization and visualization design. Through hands-on exercises and interactive lectures, students will apply different techniques for preparing data for visualization/ analytical purposes. Students will also apply various visualization techniques to different types of data using industry standard tools and software.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Privacy in Computing
SECU74010

Description: The objective of this course is to introduce students to the need for privacy in computing and the difficulties in adequately providing privacy protection. Students will learn how societal views of privacy have changed over time, and how even today privacy is viewed in many different ways. This will include an examination of privacy legislation in Canada and around the world. A clear distinction will be made between the topics of privacy and security, with discussion of how these two fields interact. Widely accepted privacy principles that should be taken into account when designing privacy solutions will be discussed and debated. Students will study recently published papers and case studies in the field of privacy to discuss the variety of approaches and theories for protecting privacy.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Level 11

Course details

Capstone Project II
CSCN74060

Description: This course is the second half of a two semester pairing of project courses that will incorporate the design, implementation, testing and release of a large scale software project that integrates the technical knowledge and skills learned in previous and the current semesters. Student teams will continue the development and implementation of the projects started in the previous Capstone Project I course. The project deliverables will include team-based implementation, formal testing and release and deployment of the solution, project management, critical thinking, and research and communications.
  • Hours: 70
  • Credits: 5
  • Pre-Requisites:
  • CoRequisites:

Electives: Interdisciplinary
Student must pass 1 Course(s), selected in the Student Portal from available course options
Interdisciplinary Elective Details

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Applied Data Analytics
PROG74020

Description: In this course, students will explore various data analytics techniques. Through hands on exercises, interactive lectures, and case studies, students will analyze real world problems and apply the data analytics lifecycle in order to resolve big data problems using appropriate techniques and tools. Students will also learn different methods of retrieving and analyzing graph structured data.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Secure Enterprise Architecture
SECU74020

Description: This course will follow the frameworks laid out in industry leading enterprise architecture standards so that student learn how to effectively map controls against governance best practice, security standards and laws. Once mapped, these controls can be implemented in accordance with standard patterns and then optimized within an organizational environment. Using a combination of lectures, workshops, and case studies, students will understand and appreciate the overarching concerns that factor into every organization's need to balance the riskiness of doing business and the desire to protect their assets to the fullest extent.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Data Mining
PROG74030

Description: Data mining is the process of extracting patterns from large data sets by connecting methods from statistics and artificial intelligence with database management. Data mining involves analysis of large masses of data into useful information. Students explore fundamental data mining concepts and techniques. Through case studies, labs and interactive lectures students will apply the key data mining methods of clustering, classification and pattern mining using industry standard tools.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Forensics and Cyber Incident Management
SECU74030

Description: Managing the response to a cyber-incident and rushing to return service to pre-incident levels while not altering or destroying forensic traces left by the attacker is of great importance to all Internet connected organizations. By understanding both the response process and the methods and tools used in these forensic investigations, students will have key insights into one of the most important aspects of Computer and Information security. Topics for this course will include procedures for managing ongoing incidents, techniques for locating and collecting digital evidence, and the required steps to ensure that similar attacks will fail in the future.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Electives: Program Option
Student must pass 1 Course(s), selected in the Student Portal from available course options

View Program Option Electives

Please note that all courses may not be offered in all semesters. Go to your student portal for full timetabling details under "My Courses".

Advanced Topics in Artificial Intelligence and Machine Learning
PROG74040

Description:

This advanced machine learning course covers various innovative topics, starting with a neural network recap and progressing to complex applications such as reinforcement learning, Generative Adversarial Networks (GANs), and autoencoders. Students explore transformers, applying them to tasks such as sentiment analysis, text generation and summarization. The course then focuses on generative Artificial Intelligence (AI) and large language models, examining how they are applied in chatbots and multimodal scenarios. Students in this course will also examine Responsible AI, emphasizing ethical considerations, guardrails, and legal implications.

  • Hours: 42
  • Credits: 3
  • Pre-Requisites: PROG74000
  • CoRequisites:

Applied Cryptography
SECU74040

Description: Instead of focusing on cryptanalysis and other code-creating or code-breaking skills, this course presents the student with the practical requirements of cryptography in modern environments. In this course, analysis of existing designs and implementations of industry-leading cryptographic algorithms will be studied. These algorithms will be studied against performance, security, the number and size of the trade-offs made, and usability criteria, with emphasis on how one would properly use these cryptographic algorithms to ensure the confidentiality and availability of valuable data.
  • Hours: 42
  • Credits: 3
  • Pre-Requisites:
  • CoRequisites:

Program outcomes

  1. Apply mathematical foundations, algorithmic principles, and computer science techniques to create, test and evaluate computing solutions.
  2. Apply knowledge of software / hardware to refine software designs and enhance software quality.
  3. Creatively design and develop robust software systems that meet the specified functional and non-functional design requirements in accordance with industry best practices and standards as well as economic, environmental, cultural and societal considerations.
  4. Apply research and critical thinking skills to evaluate current techniques, skills, tools, strategies, and methodologies used in the management, testing and design of computing systems to adapt and improve development outcomes.
  5. Evaluate risk using software quality management principles and project risk management practices to support decisions in computing systems development processes.
  6. Apply concepts of human relations and organizational behaviour when leading diverse teams in support of establishing and maintaining effective working relationships.
  7. Apply principles and practices of financial, entrepreneurial, risk and business management in the process of high quality computing systems development.
  8. Communicate complex concepts to technical and non-technical audiences using written, oral, and graphical methods producing effective reports, presentations, design documentation, and instructions.
  9. Interpret professional, ethical, and legal codes of practice required to be in compliance with legislation and professional standards, and to protect the public and public interest.
  10. Apply professional ethics, accountability and equity to demonstrate, value, and respect diversity across global and societal contexts.
  11. Address individual needs for continuing education and professional development to maintain technical and professional competence, and to contribute to the advancement of knowledge.
  12. Analyze and/or create high-quality complex computing solutions within leading-edge areas of specialization in computer science.