CSCI 161: Computer Science II, Spring 2026
Course Outline (section F26N01)
csci.viu.ca/~wesselsd/courses/csci161/outline.html

CSCI 161 (4) Computer Science II
A continuation of CSCI 159. Topics include an introduction to objects, classes, object-oriented programming techniques (encapsulation, inheritance, and polymorphism), dynamic data structures (dynamic arrays, linked lists and trees), and abstract data types (stacks, queues, and dictionaries). (3:0:2)
Prerequisite: Min "C-" in CSCI 159.

Course Overview
A first course in Computer Science. This course is intended to provide a student with an introduction to the fundamental concepts and practices of programming, problem solving skills, and software development, using C++ as our programming language. Topics include structured programming, top-down program design, procedures, and an introduction to complex data structures.

Contact Information
Lecturer: Dave Wessels,
  - email: David.Wessels@viu.ca

Office hours (in room 222, building 315):
  - Wed 1-2:30pm
  - Fri 11:30-1
If you need to see me outside office hours, please see me before or after class or send me an email to arrange an alternate time.

Timetable
Lectures (building 210 room 275):
  - Mon/Wed 11:30-1

Lab (building 315 room 102):
  - Fri 9:30-11:30

Course Resources
Course website: the course website is csci.viu.ca/~wesselsd/courses/csci161/
Resources available on the site include this course outline, lab specifications, notes and examples on programming in C++ in a linux environment, links to other resources on programming in C++, and a course announcements page.

VIULearn: VIULearn will primarily be used for course announcements.

Department servers: students will be provided with accounts on the departmental linux servers and access to the departmental git servers. These sets of servers and accounts will be used for most of the lab and project work this semester, (details and instruction will be provided in the course lab or lecture sessions).

Textbook: there is no required text, but reference will sometimes be made to various online works, either through the course web page (linked at the top of this page) or on the course VIULearn page.

Assessment
Lab exercises/assignments: 30%
Midterm: 20% (in lecture, Monday March 2)
Final exam: 50% (time/location TBA, scheduled as part of the VIU final exam system)
Note that to use CSCI 161 as a pre-requisite for CSCI 260/265 a minimum C is required.

Detailed topics list

The planned course topics and approximate order are listed below, though some revisions to content and order may be required as the semester progresses.

  1. Course introduction and overview
  2. Tools, techniques, and processes
  3. 160 review/recap
  4. C++ features that will be new to some
  5. Data structures and algorithms
  6. Object oriented programming
  7. Abstract data type examples
  8. Additional C/C++ features

Learning Outcomes

On successful completion of the course, the student should be able to:

Labs
You must be enrolled in and attend your weekly lab session, during which you will work on applying the concepts discussed in lectures. Each lab session will involve working toward the completion of one of the lab exercises. Details on lab requirements, submission processes, and late penalties will be discussed in the labs and outlined on the course website.

Computer Accounts
To work on your labs, you will be given accounts on the computer science linux servers. There will be a computer science user id and password associated with your account, this is in addition to your VIU account.

Lab and Computer Usage Rules:
See https://scitech.viu.ca/computer-science/computing-resources - Lab and Computer Usage Rules

Code and documentation quality
A significant practical component of this course is learning to adhere to good principles and practices in the development of software and its accompanying documentation. As such, students will be expected to strictly adhere to code and documentation standards that will be provided for each lab exercise. Work that fails to follow the designated standards may not be accepted for grading, and/or may be significantly penalized.

Appeals of Grades:
Any exercise or examination grade may be appealed. However, the appeal must be made to the instructor, in writing and attached to the work in question, and within 7 days of the grade being made available to the class. The instructor reserves the right to re-grade the entire piece of work submitted on appeal, not necessarily just the component that the student believes is in error.

Grade Conversion:
The following scale will be used but the instructor reserves the right to lower the numerical score required for a particular letter grade if that seems appropriate, but the same conversion will be applied to all persons in the class. Under no circumstances will the numerical score required for a particular letter grade be raised.
90-100 85-<90 80-<85 76-<80 72-<76 68-<72 64-<68 60-<64 55-<60 50-<55 <50
A+ A A- B+ B B- C+ C C- D F

Resources
A wide range of other supporting resources are provided by the institution, including:

Accessibility
Vancouver Island University recognizes its legal duty to provide educational opportunities that enable students with a documented disability to access courses, programs, facilities, and services.

The Policy and Procedural Guidelines apply to all students who have identified themselves to the institution as having a documented disability who are inquiring about, applying to, or registered in credit or non-credit courses in both on and off-campus programs.

Academic Integrity
Integrity in academic work is a central element of learning and is the basis of intellectual pursuits in any academic community. It is also your responsibility to abide by the Student Conduct Code and Student Academic Code of Conduct

Links to University Policies, Standards, and Guidelines
Below are links to many of the official VIU policies, procedures, and guidelines.