Academic Calendar Winter/Summer 2016

Computing Science

Note: Transferability information is available online by viewing the B.C. Transfer Guide at bctransferguide.ca
Note: Additional computing courses are listed in the CIS section.


English Language Requirements

Students registering in post-secondary level courses (numbered 100 to 499) will be required to meet the English language entrance proficiency requirements. Students in ESL or the University Foundations programs can register in those courses identified in the University Foundations program with lower levels of language proficiency.

COMP 061

1.5 credits

Introduction to Computers

Prerequisite(s): UUP department permission

This course is a basic introduction to computer concepts, keyboarding, word processing, email, and Internet use for those people who have little or no experience. It is designed for students in Upgrading and University Preparation, but others may be admitted with permission of the UUP department.

COMP 062

1.5 credits

Introduction to Computers: Navigating the Digital World

Prerequisite(s): COMP 061 or equivalent

This course introduces students to current computer technology and online resources. Students will learn the basics of file management; techniques and terminology of digital photography; online communications (e.g., social networking, messaging, Facebook, Skype); Internet services (e.g., banking, auctions, ticket purchasing, and trip planning); and computer security.

COMP 071

1.5 credits

Introduction to Computers (Part II)

Prerequisite(s): COMP 061 or UUP department permission

This course is an intermediate computer course that combines some computer theory background, Windows environment, introduction to spreadsheets, electronic communication, and intermediate topics in word processing. COMP 071 is designed for students in Upgrading and University Preparation, preferably those who have taken COMP 061, but others may be admitted with permission of the UUP department. Note: Beginner students are advised to take COMP 061 before taking COMP 071.

COMP 081

3 credits

Introduction to Computers (Part III)

Prerequisite(s): COMP 071 or UUP Departmental Permission

COMP 081 is an introductory computer course that combines a broad background of computer theory with an introduction to the Windows operating system, MS Word, MS Excel, PowerPoint, and optionally MS Access and Website Design.

COMP 091

3 credits

Computer Applications

Prerequisite(s): COMP 071 or instructor's permission

This course teaches intermediate and/or advanced computer skills in the areas of publishing, spreadsheets, presentation software, databases, graphics, web searches, and online technologies. Students will use computer skills to develop problem solving/critical thinking skills as they apply their knowledge to real-life situations. Towards this end, project work will be emphasized.

COMP 120

3 credits

Computing for the Sciences

Prerequisite(s): One of the following: Principles of Mathematics 12 with a C+ or better, Foundations of Mathematics 12 with a C or better, Pre-calculus 12 with a C or better, MATH 096 with a C or better, MATH 110 with a C or better; or (MATH 094 and MATH 095 with a C or better in both).

An introduction to computing and programming, with applications in the sciences. Imperative programming, computational thinking, advanced spreadsheets, introductory databases, and publication-quality typesetting tools.
Note: Competency in computer skills is required. See CIS Required Skills section on the CIS department website for details.

COMP 125

3 credits

Principles of Computing

Prerequisite(s): One of the following: C or better in one of Pre-calculus 11, Foundations of Mathematics 11, Principles of Mathematics 11, or MATH 085; or one of Principles of Mathematics 12, Foundations of Mathematics 12, Pre-calculus 12, or MATH 094.Competent in computer skills - see ‘CIS Required Skills’ section on the CIS department website for details.

This course provides students with a broad understanding of the fundamental concepts of computing, logic, and data processing, in order to prepare them for further studies within the computing field. Concepts include introductory hardware and software architecture, models of computation, representation of data, machine arithmetic, assembler programming, command line interfaces, and an introduction to some of the logical and mathematical ideas used in computing.

COMP 150

4 credits

Introduction to Programming

Prerequisite(s): One of the following: C or better in one of Pre-calculus 11, Foundations of Mathematics 11, Principles of Mathematics 11, or MATH 085; or one of Principles of Mathematics 12, Foundations of Mathematics 12, Pre-calculus 12, or MATH 094. Competent in computer skills - see ‘CIS Required Skills’ section on the CIS department website for details.

An introduction to computer programming using a modern programming language. Students will cover fundamental concepts such as variables, data types, control structures, collections, recursion and objects. Emphasis will be placed on clarity, style and design throughout.
Note: COMP 152 cannot be taken for further credit

COMP 152

4 credits

Introduction to Structured Programming

Prerequisite(s): C+ or better in one of the following: Principles of Mathematics 12, Pre-calculus 12, or MATH 095. Competent in computer skills - see ‘CIS Required Skills’ section on the CIS department website for details.

This course is an introduction to structured computer programming. Students will study algorithms and top-down design, and will implement algorithms in a procedural programming language. Lab exercises and programming assignments will emphasize scientific and numerical applications.
Note: COMP 150 cannot be taken for further credit.

COMP 155

4 credits

Object-oriented Programming

Prerequisite(s): COMP 150 or COMP 152 with a grade of C+ or better.

This course continues the systematic study of programming started in COMP 150 focusing on object-oriented programming and design. The prevailing theme of COMP155 will be to move to large and complex collaborations of objects while adding a number of important skills.

COMP 230

3 credits

Databases and Database Management Systems

Prerequisite(s): COMP 155 or (admission to the Data Analysis Post-degree certificate program and one of the following: STAT 106 [formerly MATH 106] or MATH 270/STAT 270).

This course covers the theoretical foundations that are necessary to design and implement a database, and to use database management systems effectively. The database approach is introduced and major models are reviewed. Relational models are considered in more detail. Data modeling techniques are used as a tool for design. Students will study data manipulation languages such as relational algebra and SQL. Normalization and practical design considerations are covered.

Note: Students with credit for CIS 230 cannot take this course for further credit.

COMP 251

4 credits

Data Structures and Algorithms

Prerequisite(s): COMP 155 and MATH 125 (COMP 138 may be substituted for MATH 125 if credit was received before January 2009)

This course is an introduction to the abstract data structures used in the solution of common computing problems. Students will apply concepts such as stacks, queues, trees, and graphs to problems using a modern object-oriented programming language. The course will also include a discussion and assignments on the correctness and efficiency of algorithms.

COMP 256

3 credits

Introduction to Machine Architecture

Prerequisite(s): CIS 190, COMP 125, and one of COMP 150 or COMP 152

This course introduces students to microcomputer architecture. Students study the fundamental digital circuits in typical microcomputer hardware, and assembly language programming as a tool for understanding the computer architecture and for controlling computer hardware devices.

COMP 331

3 credits

Data Quality

Prerequisite(s): CIS 230 and one of the following: STAT 104 (formerly MATH 104) with a B+, STAT 106 (formerly MATH 106) with a B, MATH 270/STAT 270, or STAT 271. Note: As of September 2016, prerequisites will change to the following: CIS 230 and one of the following: STAT 106 (formerly MATH 106) with a B, MATH 270/STAT 270, or STAT 271.

Data quality issues pertaining to data acquisition, storage, integrity, and use. Identifying and analyzing data quality problems, and assessing strategies and tools to correct them. Also covers privacy and security, and data quality needs of data warehousing and mining applications.

Note: This course is offered as COMP 331 and STAT 331 (formerly MATH 331). Students may take only one of these for credit.

COMP 340

3 credits

Operating Systems

Prerequisite(s): COMP 251. Acceptance to CIS degree program. (Students accepted to a CIS or Computing Science minor may register with permission of the department.)

Students will examine computer operating system architecture. Students will gain understanding of the general features that operating systems share and others that distinguish various systems. Students are also expected to do some system programming on multi-user operating systems such as UNIX or LINUX.

COMP 350

3 credits

User Interface Design and Programming

Prerequisite(s): COMP 251. Acceptance to CIS degree program. (Students accepted to a CIS or Computing Science minor may register with permission of the department)

This course introduces the topic of human-computer interaction by teaching students how to design and program enjoyable, user-centered graphical interfaces. The design principles are based on user behavior and human factors such as perception, memory, and attention. Students will learn to implement graphical user interfaces in a variety of programming environments and operating systems.

COMP 351

3 credits

Advanced Website Programming

Prerequisite(s): COMP 251. Acceptance to CIS degree program. (Students accepted to a CIS or
Computing Science minor may register with permission of the department.)

This course covers current technologies for client and server side programming of dynamic web sites, web enabled applications, and web services. The course will examine Internet protocols, security issues, and database connectivity for the technologies. The course will also introduce common design architectures used for the technologies.

COMP 359

3 credits

Design and Analysis of Algorithms

Prerequisite(s): COMP 251 and (MATH 125 or MATH 225) and (STAT 106 [formerly MATH 106] or MATH 270/STAT 270).

Advanced study of the analysis and design of algorithms and data structures in order to solve common computer science problems.

COMP 360

3 credits

Computer Graphics

Prerequisite(s): COMP 251; acceptance to the CIS degree program. (Students accepted to a CIS or
Computing Science minor may register with permission of the department.)

This course focuses on the development of Computer Graphics technology. Topics include graphics hardware, lighting models, texture models and the geometric representation of shapes and surfaces.

Note: Students cannot obtain credit for both CIS 496 and COMP 360.

COMP 361

3 credits

Introduction to Robotics

Prerequisite(s): COMP 251.

This course introduces the principles, design, and implementation of autonomous robotic systems. Students will learn how to program intelligent robots for applications involving sensing, navigation, planning, and uncertainty, in real and simulated environments.

COMP 370

3 credits

Software Engineering

Prerequisite(s): Admission to the Bachelor of Computer Information Systems degree and CIS 270. Note: As of September 2016, prerequisites will change to the following: Admission to the Bachelor of Computer Information Systems degree, CIS 270, and COMP 251.
Note: Students accepted to a Computing Science minor may register with permission of the department.

A detailed consideration of how systems are engineered using both classical and object-oriented techniques. It is a continuation of the analysis and design work started in CIS 270. Topics cover all aspects of the software life-cycle. Emphasis is placed on object-oriented techniques and the Unified Modeling Language (UML).

Note: Students with credit for CIS 370 cannot take this course for further credit.

COMP 371

3 credits

Object Oriented Modeling and Design

Prerequisite(s): Admission to the Bachelor of Computer Information Systems degree, CIS 230, CIS 270, and COMP 251. Note: Students accepted to a CIS or Computing Science minor may register with permission of the department.

Students will learn how to design and implement high quality computer systems. Emphasis is placed on creating a requirements model and using design principles to create a working system. The unified modeling language (UML) is used extensively throughout this course.

Note: Students with credit for CIS 371 cannot take this course for further credit.

COMP 380

3 credits

Introduction to Artificial Intelligence

Prerequisite(s): Admission to the Bachelor of Computer Information Systems degree, COMP 251, and one of the following: (STAT 104 [formerly MATH 104] with a grade of B+ or better, STAT 106 [formerly MATH 106], MATH 270/STAT 270, PSYC 110 with a grade of B+ or better, or CYC 425).

Note: As of September 2016, prerequisites will change to the following: Admission to the Bachelor of Computer Information Systems degree, COMP 251, and one of the following: (STAT 106 [formerly MATH 106] or MATH 270/STAT 270).

Note: Students accepted to a CIS or Computing Science minor may register with permission of the department.

A basic introduction to Artificial Intelligence. Topics include common AI techniques, including knowledge representation and reasoning, logical inference, and machine learning. Emphasis is placed on practical use of rule-based systems and the fundamentals necessary for the development of Expert Systems.

Note: Students with credit for CIS 380 cannot take this course for further credit.

COMP 381

3 credits

Introduction to Machine Learning

Prerequisite(s): (COMP 251 and one of the following: [STAT 106 or STAT 270]) or admission to the Data Analysis Post-degree certificate. Note: Students who do not have the required courses but have been admitted to the Data Analysis Post-degree certificate will need to contact the department assistant for permission to register.

Programming computers to learn from experience and from data, resulting in flexible, customized software. Applications range from simple spam detection to complex speech recognition. Emphasis on programming techniques for implementing machine learning algorithms.

COMP 382

3 credits

Language, Computation and Machines

Prerequisite(s): COMP 251 and MATH 225.

This is a theoretical computer science course, covering types of formal languages and their hierarchical relationships, and the different abstract machines that recognize each type. The course has important practical implications for all programming languages and computer applications.

COMP 390

3 credits

Data Communications

Prerequisite(s): Admission to the Bachelor of Computer Information Systems, MATH 125, (one of the following: CIS 291, CIS 292, or COMP 251), and (one of the following: STAT 104 [formerly MATH 104] with a B+ or better, STAT 106 [formerly MATH 106], MATH 270/STAT 270, CYC 425, or PSYC 110 with a B+ or better).
Note: As of September 2016, prerequisites will change to the following: Admission to the Bachelor of Computer Information Systems, MATH 125, (one of the following: CIS 291, CIS 292, or COMP 251), and (one of the following: STAT 106 [formerly MATH 106] or MATH 270/STAT 270).
Note: Students accepted to a CIS or Computing Science minor may register with permission of the department.

Students will explore the ideas, methods, and standards for the exchange of information, and the layers, interfaces, protocols, and services on the OSI reference model and TCP/IP protocol suite. Network algorithms, design and tradeoffs, and performance analysis are emphasized.

Note: Students with credit for CIS 390 cannot take this course for further credit.

COMP 420

3 credits

Computers and Society

Prerequisite(s): 12 credits of 300-level or above in CIS or COMP.

An investigation of the basic cultural, social, legal, economic, and ethical issues inherent in the discipline of computing.

Note: Students with credit for CIS 485 cannot take this course for further credit.

COMP 430

3 credits

Advanced Database Topics

Prerequisite(s): (CIS 230 and COMP 251) or (60 university-level credits including CIS 230 and one of the following: [STAT 104 (formerly MATH 104) with a B+, STAT 106 (formerly MATH 106) with a B, MATH 270/STAT 270, or STAT 271(formerly MATH 271)] and one of the following: [COMP 150, COMP 152, or COMP 155]).

Note: As of September 2016, prerequisites will change to: (CIS 230 and COMP 251) or (60 university-level credits including CIS 230 and one of the following: [STAT 106 (formerly MATH 106) with a B, MATH 270/STAT 270, or STAT 271 (formerly MATH 271)] and one of the following: [COMP 150, COMP 152, or COMP 155]).
Note: COMP 251 and COMP 340 are recommended.

Students will study, discuss, and compare current processes and tools being used by organizations for their data-handling needs. Topics include indexing and hashing, performance issues, hands-on database administration, an introduction to data warehousing and data mining, and object-oriented database approaches.

Note: Students with credit for CIS 430 cannot take this course for further credit.

COMP 431

3 credits

Data Mining

Prerequisite(s): STAT 271, STAT 331/COMP 331, and CIS 230

Advances in data collection and computer storage technology have generated a very large volume of data sets in business, internet, medicine, and a variety of scientific fields. Traditional methods of statistical data analysis have been challenged. New methodologies and algorithms in Computer Science, Statistics, and Business Intelligence are then developed. Data mining provides the techniques of extracting useful information and hidden patterns from this massive amount of data. The main topics in this course are data exploration, classification, decision trees, Bayesian classifiers, frequent item sets, association rules, clustering, K-means, EM algorithm, and anomaly detection. Statistical software such as SAS will be used to implement the algorithms. Students are expected to complete a group project based on a large data set.

Note: This course is offered as STAT 431 (formerly MATH 431) and COMP 431. Students may take only one of these for credit.

COMP 445

3 credits

Web Server Installation and Maintenance

Prerequisite(s): CIS 341 or CIS 390. Acceptance to CIS degree program. (Students accepted to a CIS or Computing Science minor may register with permission of the department.)

Students will gain hands-on experience in installing and maintaining a web server. Both Internet and Intranet issues will be discussed. Maintenance issues such as system optimization and server activity monitoring will be discussed. In addition, server and client security will be discussed.

COMP 455

3 credits

Extreme Computing

Prerequisite(s): COMP 251.

We live in the age of “big data,” where companies need to gather and analyze truly massive amounts of information. Companies specializing in web search need to essentially archive and analyze the entire web. Social media sites need to store and work with millions of user profiles. Programmers need tools that will efficiently scale up to these kinds of tasks. This course introduces the theory and practice of distributed programming and cluster computing, where such problems are tackled by dividing the tasks into smaller parts and running them across many machines at once. In particular, we will cover the MapReduce algorithm and its popular open-source software implementations.

COMP 481

3 credits

Functional andLogic Programming

Prerequisite(s): COMP 251 with a C or better; MATH 225 recommended.

Most programming languages (e.g. Java, C, C++, Python) are imperative languages, meaning that programs are written as sequences of instructions that change program state. However, imperative programming is just one programming paradigm. This course introduces two other programming paradigms: functional and logic programming. Logic programming is based on first-order logic, while functional programming is based on the lambda calculus. Students will learn the basic theoretical foundations as well as how to program in two relevant languages. The course will also describe the importance of these languages to the field of AI.

COMP 490

3 credits

Network Security and Cryptography

Prerequisite(s): CIS 390 with a grade of C or better and one of the following: STAT 106 (formerly MATH 106) or MATH 270/STAT 270.

This course will cover important concepts in conventional encryption algorithms such as AES, public-key design and algorithms such as RSA and elliptic curve, digital signatures and authentication protocols such as Kerberos, and key managements such as PKI and X.509.

Last extracted: November 09, 2015 11:30:27 AM

Current Students

s