Last modified: 2021-05-21
This is a course page of
David Casperson
Associate Professor
Computer Science
University of Northern British Columbia

CPSC 281 — Data Structures I — Winter 2015

course outline (printable pdf version).

Important Information

Important information will be posted here from time to time.

Lab 4 posted.
Classes resume (presumably) .
Strike suspended by administration request to BC Labour Relation’s Board.
Midterm II cancelled.
UNBC Faculty Association on strike.
Please note that a printed version of Lab 3 is not required.
Added third lab assignment.
Added second lab assignment.
Added links related to generics; added first lab assignment.
Added Generics Cheat Sheet.
Began creation of this page.
Dr David Casperson (contact information, schedule).
Data Structures and Algorithms in Java by Michael T. Goodrich and Roberto Tamassia. 5th edition. Isbn: 978-0-470-38326-1.
Rooms and Hours
Lectures are in 5-157; there are no scheduled tutorials or labs (but you can use the machines in 8-456/7 when not in use for scheduled CPSC 101 labs). (David’s schedule).
Grading Scheme
Lab Assignments 20%
Midterm I 20%
Midterm II 20%
Final 40%
Lab AssignmentsFound here
First Class2015-01-05 Monday
Midterm I2015-02-02 Monday
Family Day 2015-02-09
Winter Break 2015-02-16–2015-02-27
Midterm II 2013-03-23 Monday
Easter Monday 2013-04-06
Course Evaluations 2013-04-13
Last Class 2013-04-15
2015-04-27 (Monday)
18:00–21:00 in 10-4072

Other dates can be found on the University web-site here.

Course policies can be found here.
2015-01-05 Printed Outline
2015-01-05 Asymptotics Cheat Sheet
2015-01-05 Generics Cheat Sheet
DList with iterators
from (not necessarily in the order listed)
Program performance, data representation, arrays and matrices, lists, stacks and queues, skip lists and hashing, binary trees, balanced and B-trees, AVL trees, splay trees, tree traversals using stacks, expression trees, prefix, infix, and postfix expressions and conversions, priority queues and heaps, search trees, Huffman codes, graphs, graph algorithms (weighted and unweighted shortest-path, Dijkstra's algorithm, critical paths), minimum-cost spanning trees (Prim's, Kruskal's, and Solin's algorithms). Implementation of various data structures using object-oriented programming language.
More generally, a student who successfully completes CPSC 281 will be able to select appropriate data structures from standard libraries and/or implement specific-purpose data structures as part of their general programming skills.
  • Assignments are late if they are not received at the beginning of the lecture at which they are due. See the late policy for further information.
  • There will be between 4 and 8 programming assignments, the assignments being given out approximately bi-weekly.
  • Discussion of assignment topic is encouraged but all assignments must be done independently. Copied assignments are considered as “Academic Dishonesty.” Responses to academic dishonesty include assigning a mark of -100% and written notification of the Dean. Again, see the policies link for more details and other policies.
Home page Semesters Site Map
go back Winter 2015 go forward
2022-12 other links

CPSC 281 [All years]
Blackboard Page
David’s Schedule

University Calendar