Science Menu
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
COMP 1130 Computer Programming 1 (3,1,1) COMP 1130 Computer Programming 1 (3,1,1)Credits: 3 credits 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 |
COMP 1230 Computer Programming 2 (3,1,0) COMP 1230 Computer Programming 2 (3,1,0)Credits: 3 credits 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.
|
MATH 1700 Discrete Mathematics 1 (3,1.5,0) MATH 1700 Discrete Mathematics 1 (3,1.5,0)Credits: 3 credits 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 (min grade C+) or Foundations of Math 12 (min grade C+) or MATH 0600 (min grade B) or MATH 0610 (min grade C-) or MATH 0630 (min grade C-) or MATH 0633 (min grade C-) or MATH 0650 (min grade C-)
|
MATH 1650 Mathematics for Computing Science (3,1.5,0) MATH 1650 Mathematics for Computing Science (3,1.5,0)Credits: 3 credits 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-
|
COMP 2130 Introduction to Computer Systems (3,1,0) COMP 2130 Introduction to Computer Systems (3,1,0)Credits: 3 credits 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.
|
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 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.
|
COMP 2160 Mobile Application Development 1 (3,1,0)(L) COMP 2160 Mobile Application Development 1 (3,1,0)(L)Credits: 3 credits 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. |
COMP 2680 Web Site Design and Development (3,1,0) COMP 2680 Web Site Design and Development (3,1,0)Credits: 3 credits 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.
|
COMP 2210 Programming Methods (3,1,0) COMP 2210 Programming Methods (3,1,0)Credits: 3 credits 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.
|
COMP 2920 Software Architecture and Design (3,1,0) COMP 2920 Software Architecture and Design (3,1,0)Credits: 3 credits 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.
|
ENGL 1100 Introduction to University Writing (3,0,0) ENGL 1100 Introduction to University Writing (3,0,0)Credits: 3 credits 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.
|
CMNS 1290 Introduction to Professional Writing (3,0,0) CMNS 1290 Introduction to Professional Writing (3,0,0)Credits: 3 credits 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.
|
Non-Science Elective |
Non-Computing Elective |
Non-Computing Elective |
Non-Computing Elective |
General Elective Open |
General Elective Open |
General Elective Open |
General Elective Open |
COMP 3260 Computer Network Security (3,1,0) COMP 3260 Computer Network Security (3,1,0)Credits: 3 credits 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.
|
COMP 3270 Computer Networks (3,1,0) COMP 3270 Computer Networks (3,1,0)Credits: 3 credits 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.
|
COMP 3410 Operating Systems (3,1,0) COMP 3410 Operating Systems (3,1,0)Credits: 3 credits 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.
|
COMP 3450 Human-Computer Interaction Design (3,1,0) COMP 3450 Human-Computer Interaction Design (3,1,0)Credits: 3 credits 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.
|
COMP 3540 Advanced Web Design and Programming (3,1,0) COMP 3540 Advanced Web Design and Programming (3,1,0)Credits: 3 credits 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.
|
COMP 3610 Database Systems (3,1,0) COMP 3610 Database Systems (3,1,0)Credits: 3 credits 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/ |
COMP 3710 Applied Artificial Intelligence (3,1,0) COMP 3710 Applied Artificial Intelligence (3,1,0)Credits: 3 credits 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.
|
COMP 3520 Software Engineering (3,1,0) COMP 3520 Software Engineering (3,1,0)Credits: 3 credits 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.
|
COMP 4910 Computing Science Project (0,1,0) COMP 4910 Computing Science Project (0,1,0)Credits: 3 credits 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.
|
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 |