TRU Science

Bachelor of Computing Science (BCS)

Take part in an information session about Bachelor of Computing Science » Learn More


The Bachelor of Computing Science degree consists of two years of concentrated computing studies preceded by two years of general study. It is designed for those wishing to enter a in Computing Science, or for those wishing to pursue graduate studies. The program will mainly concentrate on small to medium business environments.

The degree will:

  • Enable students in academic streams to obtain a computing science degree.
  • Allow students with a 2 or 3 year Computing Science Diploma to continue their education and obtain a Degree in Computing Science.
  • Permit students in the B.Sc. and B.A. degrees more course options, including obtaining a Minor in Computing Science.
  • Allow past students the ability to upgrade skills to maintain or enhance employability.
  • Allow employees required to upgrade their skills, but not necessarily interested in completing the degree, to take needed courses.

Questions? Contact the program coordinator at cschair@tru.ca.

Program structure and requirements

Years 1 and 2
COMP 1130
Computer Programming 1 (3,1,1)

COMP 1130 Computer Programming 1 (3,1,1)

Credits: 3 credits
Delivery: Campus

Students are introduced to the use of structured problem solving methods, algorithms, structured programming, and object-oriented programming concepts. Students use a high level programming language to learn how to design, develop, and document well-structured programs using software engineering principles. Students learn the workings of a computer as part of programming. This course is for students who plan to take further courses in Computing Science or to learn basic programming concepts. Notes: 1. Students with previous programming experience (if-else, loops, arrays) in a language other than Java, should take COMP 1230 or COMP 2120 2. Students may not receive credit for more than one of COMP 1130, COMP 1131 and COMP 1520
For more information, search for this course here.

COMP 1230
Computer Programming 2 (3,1,0)

COMP 1230 Computer Programming 2 (3,1,0)

Credits: 3 credits
Delivery: Campus

This course is a continuation of COMP 1130 and provides a foundation for further studies in computing science. The objectives are to introduce object oriented programming and continue to develop a disciplined approach to the design, coding and testing of programs. In a laboratory setting, through critical thinking and investigation, students will iteratively design and build a variety of applications to reinforce learning and develop real world competency in Computer. This course is for students who plan to take further courses in Computing Science or to learn basic Object Oriented programming concepts.
Prerequisite: C or better in COMP 1130 or 1131
Note: Students may not receive credit for more than one of COMP 1230 and 2120.
For more information, search for this course here.

MATH 1700
Discrete Mathematics 1 (3,1.5,0)

MATH 1700 Discrete Mathematics 1 (3,1.5,0)

Credits: 3 credits
Delivery: Campus

This course is an introduction to the foundation of modern mathematics including basic set theory; solution to recurrence relations; logic and quantifiers; properties of integers; mathematical induction; introduction to graphs and trees; Boolean algebra and finite state machines. Students will apply the critical thinking skills developed in Mathematics to derive meaning from complex problems. Prerequisites: Pre-calculus 12 with a minimum C+ or Foundations of Math 12 with a minimum C+ or MATH 0600 with a minimum grade of B or MATH 0610 with a minimum grade of C- or MATH 0630 with a minimum grade of C- or MATH 0633 with a minimum grade of C- or MATH 0650 with a minimum grade of C-
Note: Students can get credit for only one of the following MATH 1220, COMP 1390, MATH 1390, MATH 1700 or MATH 1701.
For more information, search for this course here.

MATH 1650
Mathematics for Computing Science (3,1.5,0)

MATH 1650 Mathematics for Computing Science (3,1.5,0)

Credits: 3 credits
Delivery: Campus

This course surveys several mathematical concepts used in Computing Science. Topics include logic; circuits; number systems; vector and matrix algebra; systems of linear equations; linear transformations; counting; discrete and continuous probabilities; statistics and random variables; decision analysis and asymptotic notation. Prerequisites: Pre-calculus 12 with a minimum C+ or Foundations of Math 12 with a minimum C+ or MATH 0600 with a minimum grade of B or MATH 0610 with a minimum grade of C- or MATH 0630 with a minimum grade of C- or MATH 0633 with a minimum grade of C- or MATH 0650 with a minimum grade of C- or MATH 1000 with a minimum grade of C- or MATH 1001 with a minimum grade of C-
Note: Students can get credit for only one of the following COMP 1380, MATH 1380, MATH 1650 or MATH 1651.
For more information, search for this course here.

COMP 2130
Introduction to Computer Systems (3,1,0)

COMP 2130 Introduction to Computer Systems (3,1,0)

Credits: 3 credits
Delivery: Campus

Students learn the basic concepts of computer systems. Students are introduced to the concepts of computer architecture, the 'C' and assembly programming languages as well as the use of Linux operating system. Students learn about memory organization, data representation, and addressing. Students are introduced to the concepts of machine language, memory, caches, virtual memory, linkage and assembler construction as well as exceptions and processes.
Prerequisite: C or better in COMP 1230 or COMP 1231 or COMP 2120
For more information, search for this course here.

COMP 2230
Data Structure, Algorithm Analysis, and Program Design (3,1,0)

COMP 2230 Data Structure, Algorithm Analysis, and Program Design (3,1,0)

Credits: 3 credits
Delivery: Campus

Students are introduced to the basic methods of representing data in Computing Science. Students review, implement and analyze several fundamental data structures including lists, stacks, queues, and graphs. Students learn the implementation of algorithms using these data structures and the efficiency and cost tradeoffs of each of them.
Prerequisite: C or better in COMP 1390 or MATH 1700 or MATH 1701, and COMP 1230 or COMP 1231 or COMP 1240 or COMP 2120
Note: Students can receive credit for either COMP 2230 or COMP 2231
For more information, search for this course here.

COMP 2160
Mobile Application Development 1 (3,1,0)(L)

COMP 2160 Mobile Application Development 1 (3,1,0)(L)

Credits: 3 credits
Delivery: Campus

Students will learn how to develop applications for mobile devices, including smartphones and tablets. Course topics include current mobile platforms, mobile application development environments, mobile device input methods, as well as developing applications for the Android platform. In a laboratory setting students will iteratively design and build a variety of Apps to reinforce learning and develop real world competency in Mobile Application development. Through critical thinking and investigation, students will design and create Apps that solve real world problems.
Prerequisite: C or better in COMP 1230 or COMP 1231
For more information, search for this course here.

COMP 2680
Web Site Design and Development (3,1,0)

COMP 2680 Web Site Design and Development (3,1,0)

Credits: 3 credits
Delivery: Campus

This course introduces students to an overview of website development. The course focuses on client-side components comprising of Hyper Text Markup Language (HTML), Cascading Style Sheets (CSS), Multimedia, JavaScript programming, Document Object Model (DOM) for dynamic web applications. Significant time is devoted to iterative development in a lab setting using mentor-ship to provide feedback to the students allowing them to reflect on the software written.
Prerequisite: C or better in COMP 1130 or COMP 1131
Note: Students cannot get credit for more than one of COMP 2680, COMP 2681
For more information, search for this course here.

COMP 2210
Programming Methods (3,1,0)

COMP 2210 Programming Methods (3,1,0)

Credits: 3 credits
Delivery: Campus

Students are introduced to the programming environments of visual and scripting language along with tools and techniques of software development process. Students learn a combination of visual programing using C# and scripting language using Python in this course. Students learn the techniques of event driven visual application development, database and web connectivity, scripts, functions, strings, tuples and text file handling.
Prerequisite: C or better in COMP 1230 or COMP 1231
For more information, search for this course here.

COMP 2920
Software Architecture and Design (3,1,0)

COMP 2920 Software Architecture and Design (3,1,0)

Credits: 3 credits
Delivery: Campus

Students learn how to establish, define and manage the requirements for a software system. Students gain knowledge of fundamental concepts and methods of software design. Students learn how to use design notations of unified modeling language to develop design of a software product. Students are introduced to the design guidelines, quality, and evaluation criteria of software architecture. Students study how to design, generate, and modify software patterns and their use in software development.
Prerequisite: COMP 1230 or COMP 1231 (minimum grade of C) Exclusion Requisite : Students can get credit for either COMP 2920 or COMP 2921
For more information, search for this course here.

ENGL 1100
Introduction to University Writing (3,0,0)

ENGL 1100 Introduction to University Writing (3,0,0)

Credits: 3 credits
Delivery: Campus

Students explore the practices of reading and writing in scholarly contexts by investigating a chosen topic or issue. Students read, critically analyze, and synthesize information and ideas found in appropriate secondary sources and coming from a variety of disciplinary backgrounds. They also develop their abilities to communicate knowledge by composing in the genres and sub-genres of scholarly writing, including the incorporation of research and documentation while using a clear, persuasive, grammatically-correct style.
Prerequisite: English Studies 12 /English First Peoples 12 with a minimum 73% or equivalent
Note: students cannot receive credit for both ENGL 1100 and ENGL 1101
For more information, search for this course here.

CMNS 1290
Introduction to Professional Writing (3,0,0)

CMNS 1290 Introduction to Professional Writing (3,0,0)

Credits: 3 credits
Delivery: Campus

Students study the theories and practice of professional organizational communication, learning the importance of effective communication to meeting goals, developing and maintaining relationships and the overall facilitation of work. Students develop skills in evaluating communication scenarios, designing communication strategies that meet goals and audience need, including requests, information sharing and persuasion. In addition, students learn to employ writing techniques and editorial skills relevant to professional communication contexts.
Note: Students cannot receive credit for more than one of CMNS 1290, CMNS 1291, CMNS 1810, CMNS 1811
For more information, search for this course here.

Non-Science Elective
Non-Computing Elective
Non-Computing Elective
Non-Computing Elective
General Elective Open
General Elective Open
General Elective Open
General Elective Open
Years 3 and 4
COMP 3260
Computer Network Security (3,1,0)

COMP 3260 Computer Network Security (3,1,0)

Credits: 3 credits
Delivery: Campus

Students explore how information is exchanged on the Internet and the security issues that arise due to information exchange between different technologies. Students learn concepts of authentication, authorization, access control in computer networks. Students gain knowledge about Use of cryptography for data and network security. Students are introduced to the topics such as firewalls, public key infrastructure, security standards and protocols, virtual private networks, and wireless network security. Students also explore privacy, legal issues and ethics in context of network security.
Prerequisite: C or better in COMP 3270 or COMP 3271
Exclusion: COMP 3261
For more information, search for this course here.

COMP 3270
Computer Networks (3,1,0)

COMP 3270 Computer Networks (3,1,0)

Credits: 3 credits
Delivery: Campus

Students learn about computer network design principles and concepts, network architecture, Open Systems Interconnection (OSI) model, error detection and recovery, local area networks, bridges, routers and gateways, network naming and addressing, routing protocols, inter-networking, wireless networks, and Internet Protocol v6 network addressing. Students first gain knowledge about basic local area networks, and then learn about the wireless Local Area Networks, techniques to extend Local Area Networks, inter-networking and emerging network technologies.
Prerequisite: C or better in COMP 2230 or COMP 2231
For more information, search for this course here.

COMP 3410
Operating Systems (3,1,0)

COMP 3410 Operating Systems (3,1,0)

Credits: 3 credits
Delivery: Campus

The purpose of this course is to provide students basic knowledge of operating systems, difference between the kernel and user modes, concepts of application program interfaces, methods and implementations of interrupts. Students are introduced to the schedulers, policies, processes, threads, memory management, virtual memory, protection, access control, and authentication. Students learn system calls in different popular operating systems used in the industry.
Prerequisite: C or better in COMP 2130 or COMP 2131 and COMP 2230 or COMP 2231
Note: Students cannot get credit for more than one of COMP 3410, COMP 3411
For more information, search for this course here.

COMP 3450
Human-Computer Interaction Design (3,1,0)

COMP 3450 Human-Computer Interaction Design (3,1,0)

Credits: 3 credits
Delivery: Campus

Comp 3450 is the introductory course to interaction design from a human-computer interaction (HCI) perspective. Students will learn both theoretical and practical concepts of human-computer interaction that will help them produce user interfaces developed using a user-centered approach. Students will explore how cultural biases impact how we design computer programs, interfaces and AI programs. In addition, students will debate and discuss increasing concerns regarding the lack of cultural diversity in Machine Learning algorithms, which disadvantages non-privileged groups in society. As such, students will apply intercultural understanding to HCI to build inclusive systems. Further, students will test, reflect and revise their assumptions throughout the course to continually improve previous assignments, as the process of user interface design involves constant revision of existing systems.
Prerequisite: C or better in COMP 2680 or COMP 2681 and MATH 1650 or MATH 1651 or MATH 1240 or MATH 1241
Note: Students cannot receive credit for both COMP 3450 and COMP 3451
For more information, search for this course here.

COMP 3540
Advanced Web Design and Programming (3,1,0)

COMP 3540 Advanced Web Design and Programming (3,1,0)

Credits: 3 credits
Delivery: Campus

Students review client-side web technologies used for static webpages and interactive web applications on clients. Students examine advanced topics in Hyper Text Markup Language, Cascade Style Sheet and JavaScript for interactive web applications that use rich user interfaces. Students then continue with server-side web technologies for dynamic web applications, such as server-side scripting programming, database access for three-tier data-driven applications, and asynchronous communication between client and server for fast partial update of client windows.
Prerequisite: C or better in COMP 2680 or COMP 2681 and COMP 2230 or COMP 2231
Note: Students cannot get credit for more than one of COMP 3540, COMP 3541
For more information, search for this course here.

COMP 3610
Database Systems (3,1,0)

COMP 3610 Database Systems (3,1,0)

Credits: 3 credits
Delivery: Campus

Students are introduced to the database concepts. Students review the underlying data structures that make up databases. Students learn database design techniques using both the Entity Relationship model as well as an object oriented approach to designing database systems. Students study the relational database model and data normalization as they design and implement a case study project. Students also learn data description language, data manipulation language (updates, queries, reports), and data integrity. Students complete a case study work using a relevant and current relational database management system, database management system, software product. Prerequisite/
Corequisite: C or better in COMP 2230 or COMP 2231
For more information, search for this course here.

COMP 3710
Applied Artificial Intelligence (3,1,0)

COMP 3710 Applied Artificial Intelligence (3,1,0)

Credits: 3 credits
Delivery: Campus

Students investigate non-deterministic computer algorithms that are used in wide application areas but cannot be written in pseudo programming languages. Non-deterministic algorithms have been known as topics of machine learning or artificial intelligence. Students are introduced to the use of classical artificial intelligence techniques and soft computing techniques. Classical artificial intelligence techniques include knowledge representation, heuristic algorithms, rule-based systems, and probabilistic reasoning. Soft computing techniques include fuzzy systems, neural networks, and genetic algorithms. Students will be able to connect and apply a depth and breadth of knowledge in Artificial Intelligence to a wide domain of complex problems beyond Computing Science.
Prerequisite: COMP 2230 or COMP 2231 and MATH 1650 or MATH 1651 or STAT 2000 and MATH 2120 or MATH 2121 with a score of C or better .
For more information, search for this course here.

COMP 3520
Software Engineering (3,1,0)

COMP 3520 Software Engineering (3,1,0)

Credits: 3 credits
Delivery: Campus

Students are introduced to the different software process models and management of modular inter-communication, software engineering tools, software testing and project management including resource estimation, team organization and review. Students learn software engineering techniques for dependable and secure systems, reliability engineering, software evolution, software maintenance, quality management, configuration management, reuse and ethical issues in software engineering. By the end of the course students will demonstrate the necessary skills of effective leadership and teamwork required in the Software Engineering discipline.
Prerequisite: C or better in COMP 2920 or COMP 2921
Note: Students cannot get credit for more than one of COMP 3520 or COMP 3521
For more information, search for this course here.

COMP 4910
Computing Science Project

COMP 4910 Computing Science Project

Credits: 3 credits
Delivery: Campus

This course is designed as a capstone project in the BCS and CS Major programs and includes the practical design and implementation of a supervised project in an area of specialization in Computing Science. The students will develop a `live' project in collaboration with an external client. The live project will require students to apply the knowledge learned throughout their degree program.
Prerequisite: C or better in COMP 3520 or COMP 3521, 4th year standing(final year of study) and Instructor permission.
For more information, search for this course here.

COMP XXXX 3000-4000 Level Computing Elective
COMP XXXX 3000-4000 Level Computing Elective
COMP XXXX 3000-4000 Level Computing Elective
COMP XXXX 3000-4000 Level Computing Elective
COMP XXXX 3000-4000 Level Computing Elective
General Elective Open Upper Level
General Elective Open
General Elective Open
General Elective Open
General Elective Open
General Elective Open