Upgrading Courses

The following courses are offered through the Academic and Career Preparation (ACP) department. For information, please call 250-740-6425.

COST 020 Computer Studies - Fundamental

Introduction to computers, designed primarily for students with little or no computer experience. Emphasizes keyboarding and word processing.

Prerequisite: ENGL 016 or permission of instructor.

COST 030 Computer Studies - Intermediate Level

This is an introductory course designed to give students basic computer skills that they can use in both the college and work environment.

Prerequisite: ENGL 020 or equivalent assessment.

COST 047 Computer Studies 11 - Advanced

An exploration of computers and applications, designed for students with basic computer skills. Topics may include introduction to computer hardware, Windows, word processing, the internet, spreadsheet and database applications, and electronic mail.

Prerequisite: ENGL 037 or permission of instructor.

COST 067 Computer Studies 12-Provincial

Practical study of computer applications and skills, and how to apply them to effectively solve problems in academic, work and personal lives. Instruction modules include a minimum of two of the following topics: information technology, publishing/presentation, advanced spreadsheets, database management, networking, programming, graphics, online technologies, web publishing.

Prerequisite: Min. "C+" in COST 047 or permission of instructor.

University/Career/Technology Courses

The following courses are offered through the Faculty of Science and Technology.

CSCI 112  (3)  Applications Programming

An introduction to the use and customization of application packages. Includes macro programming as well as visual programming. (3:0:2)

Prerequisite: None.

CSCI 115  (3)  Web Page Techniques

An introduction to the World Wide Web and Web page construction for students not majoring in Computing Science. The course will focus on client-side techniques: Hypertext Markup Language (HTML, XHTML), and an introduction to JavaScript. Computing Science students may take this course for credit towards their major in Computing Science. (2:0:2)

Prerequisite: One of Principles of Mathematics 11, Foundations of Mathematics 11, or equivalent.

CSCI 160  (4)  Computing Science I

A first year course in computer science. Topics include structured programming, top-down program design, procedures, recursion, and an introduction to dynamic data structures. (4:0:1)

Prerequisite: Principles of Mathematics 12 or Foundations of Mathematics 12.

CSCI 161  (4)  Computing Science II

A continuation of CSCI 160. Topics include dynamic data structures (linked lists and trees), abstract data types (stacks, queues, lists) and an introduction to numerical methods. (4:0:1)

Prerequisite: Min. "C-" in CSCI 160.

CSCI 162  (4)  Topics in Computing Science

An introduction to applied and theoretical concepts in computer science. Topics include fourth generation languages, computer organization, system software, software engineering principles, and theory of computation. (3:0:1)

Prerequisite: Min. "C-" in CSCI 160.

CSCI 173  (3)  Introduction to Computer Animation

Intended for both CS and non-CS students, this course will cover modeling and animation basics such as timelines, storyboarding, materials, lighting, texturing, and rendering. Students will then cover more advanced topics in character and scene development and animation. (3:0:2)

Prerequisite: None.

CSCI 251  (3)  Systems and Networks

An introduction to operating systems and computer networks. Topics include network architectures, communications protocols, client / server architecture and file systems. The lab component includes hardware and software installations, upgrades and backups. (3:0:2)

Prerequisite: CSCI 161 and CSCI 162.

CSCI 260  (3)  Data Structures

An examination of various methods of representing and manipulating data, including internal representation of data, stacks, queues, linked lists, trees and graphs. Analysis of algorithms will also be discussed extensively. (4:0:1)

Prerequisite: MATH 123 and CSCI 161.

CSCI 261  (3)  Computer Architecture & Assembly Language

An introduction to computer organization, and machine and assembly languages. Topics include data representation, the instruction set and addressing modes of a chosen processor, procedures and parameter passing, and the use of operating system services. (3:0:1)

Prerequisite: CSCI 161 can be taken as a co-requisite.

CSCI 265  (3)  Software Engineering

An exploration of the methods and tools for developing high quality software. The course includes topics in program design, program style, algorithm selection, interface design, debugging and testing, system utilities, version control, regular expressions and an introduction to scripting languages. (4:0:1)

Prerequisite: CSCI 161.

CSCI 307  (1)  Preparation for Co-operative Education Employment

Preparation for first co-operative education experience through practical training in areas such as resume writing and interview skills. (0:1:0)

Prerequisite: Min. "B" grade point average in all required first year CSCI and MATH courses.

CSCI 308  (9)  Co-operative Work Placement I

Individual students are carefully matched to employers who supervise them and evaluate their performance during paid work experience. University personnel conduct monitoring. Students will write a work placement report. (0:0:0)

Prerequisite: Min. "B" grade point average and CSCI 370.

CSCI 309  (9)  Co-operative Work Placement II

The second work placement, as described for CSCI 308. (0:0:0)

Prerequisite: Min. grade point average "B" and CSCI 308.

CSCI 310  (3)  Intro to Graphical User Interfaces

An introduction to design and implementation of graphical user interfaces. Topics include design issues and goals, human factors, GUI evaluation, visual languages, and other existing tools. (3:0:1)

Prerequisite: CSCI 161 and CSCI 162.

CSCI 311  (3)  Web Programming

Exploration of languages, tools and techniques to write software for use within the World Wide Web (WWW). The course includes the WWW client/server model and related protocols, web server properties, web markup languages, client/server scripting tools, and server side programming. (3:0:2)

Prerequisite: CSCI 265 and CSCI 310.

CSCI 320  (3)  Foundations of Computer Science

A survey of formal models and results that form the theoretical foundation of computer science. Typical topics include finite automata, Turing machines, simple undecidable problems, context-free languages, grammars and elementary computational complexity. (3:1:0)

Prerequisite: CSCI 260 and MATH 123.

CSCI 322  (3)  Logic and Programming

Practical applications of logic in computer science. Topics include propositional expressions and circuits, reading and writing first order logic, predicate logic as a relational query language, knowledge representation, PROLOG and other related topics. (0:3:0)

Prerequisite: CSCI 161 and either MATH 123 or PHIL 251.

CSCI 330  (3)  Programming Languages

The fundamental concepts of imperative and applicative programming languages. Topics include the description of data types, variable assignment and sharing, sequencing, iteration and recursion, parameter passing mechanisms, and type checking. (3:0:1)

Prerequisite: CSCI 162, CSCI 260, CSCI 261 and CSCI 265.

CSCI 331  (3)  Object-Oriented Programming

Topics include aspects of object-oriented analysis, design and development; definition and comparison of object-oriented metrics; verification methods for OO-software; maintenance and reuse issues. (3:0:1)

Prerequisite: CSCI 260 and CSCI 265.

CSCI 355  (3)  Digital Logic and Computer Organization

The fundamentals of logic design, computer organization, and the structure of major hardware components of computers. Topics include the application of Boolean algebra to switching circuits; the use of MSI, LSI and field programmable devices in digital design; combinatorial and sequential circuits, flip flops, counters, memory organization, CAD tools. (3:0:2)

Prerequisite: CSCI 162, CSCI 261, and MATH 123.

CSCI 360  (3)  Intro to Operating Systems

An introduction to the major concepts of operating systems and study of the interrelationships between the operating system and the architecture of computer systems. Topics include operating system structures, concurrent programming techniques, cpu scheduling, deadlocks, memory management, file systems and protection. (3:0:1)

Prerequisite: CSCI 260, CSCI 261, and CSCI 265.

CSCI 370  (3)  Database Systems

An introduction to the use and operating principles of database management systems. Topics include data entities and relationships, data modelling using Entity-Relationship Diagrams, hierarchical, network and relational models of databases, query language, physical representation of data in secondary storage, relational algebra and calculus as applied to the design of databases, security and integrity in the context of concurrent use, and basic ethical issues associated with database design and use. (3:0:1)

Prerequisite: CSCI 260 and CSCI 265.

CSCI 375  (3)  Intro to Systems Analysis

The methods and methodologies used in analyzing and designing various types of systems. Topics include project definition, CASE tools, data gathering, structured analysis and design, human-machine interface, database design, system controls, hardware selection and system testing, implementation and operation. Students are assigned to a project team involved in a system study as part of the course. (3:0:1)

Prerequisite: CSCI 162 and CSCI 265.

CSCI 400  (3)  Computers and Society

An introduction to the social, philosophical and ethical issues of technology with an emphasis on computing technology. Topics covered include privacy, social control, information, the changing nature of work and appropriate technology. (3:1:0)

Prerequisite: Min. 3 credits of Computing Science.

CSCI 405  (3)  Computer Graphics

The fundamental algorithms and data structures used in generative computer graphics. Topics include structure of interactive graphics programs, raster algorithms, colour, two dimensional and three dimensional geometric transformations, animation, parallel and perspective projection, hidden line and hidden surface algorithms, cubic curves and surfaces, and shading models. Students use high resolution raster display workstations and other graphical devices. (3:0:1)

Prerequisite: CSCI 260, CSCI 360, MATH 241, and 3 additional credits of 300-level Computing Science courses.

CSCI 408  (9)  Co-operative Work Placement III

The third work placement, as described for CSCI 308. (0:0:0)

Prerequisite: Min. "B" grade point average and CSCI 309.

CSCI 409  (9)  Co-operative Work Placement IV

The fourth work placement, as described for CSCI 308. (0:0:0 —35)

Prerequisite: Min. "B" grade point average and CSCI 408.

CSCI 454  (3)  Fault Tolerant Computing

An introduction to selected issues in fault tolerant computing. Topics include definitions of reliability, availability, safety, maintainability, testability and dependability; system protection through both hardware and information redundancy; quantitative methods for the evaluation of reliability; the design and test of integrated circuits; software fault tolerance and software testing. Includes case studies of practical fault tolerant systems. (0:3:0)

Prerequisite: CSCI 355 and CSCI 360.

CSCI 460  (3)  Networks and Communications

An introduction to computer networks and communications. Topics include local and wide area networks, network architectures, security, communications protocols, routing, and an introduction to distributed computing. (3:0:1)

Prerequisite: CSCI 355 and CSCI 360.

CSCI 485  (3)  Topics in Systems

Topics depend primarily on the interests of the instructor. Entry is restricted to third and fourth year students who meet the prerequisite specified for the topic to be offered. May be taken more than once in different topics with permission of department Chair. (3:0:1)

Prerequisite: Dependent on topic, with permission of Chair.

CSCI 485B  (3)  Topics in Systems: Multi-Server Online Systems

Offered as CSCI 485A, 485B, 485C, 485D. Topics depend primarily on the interests of the instructor. Entry is restricted to third and fourth year students who meet the prerequisite specified for the topic to be offered. May be taken more than once in different topics with permission of department Chair. (3:0:0)

Prerequisite: Dependent on topic, with permission of Chair.

CSCI 485C  (3)  Topics in Systems: Advanced Algorithms

Offered as CSCI 485A, 485B, 485C, 485D. Topics depend primarily on the interests of the instructor. Entry is restricted to third and fourth year students who meet the prerequisite specified for the topic to be offered. May be taken more than once in different topics with permission of department Chair. (3:0:0)

Prerequisite: Dependent on topic, with permission of Chair.

CSCI 485F  (3)  Topics in Systems: Array Programming

Topics depend primarily on the interests of the instructor. Entry is restricted to third and fourth year students who meet the prerequisite specified for the topic to be offered. May be taken more than once in different topics with permission of department Chair. (3:0:1)

Prerequisite: Dependent on topic, with permission of Chair.

CSCI 491  (6)  Senior Research Project

An opportunity for student experience in research and development under the supervision of a faculty member in Computing Science. Project duration is two academic terms during which time a student must develop an approved project proposal, carry out the required research and development, prepare a written report detailing results, and satisfy any additional requirements as specified in the approved project proposal. (0:0:6 for 30 weeks)

Prerequisite: Min. 12 upper-level Computing Science credits.

Need more information?

Request Information

Want to talk to someone about specific questions?

Contact a Representative

Ready to join us at VIU?

Apply Online