This course focuses on dynamically allocated structures such as lists, hash tables, stacks, queues, trees, and graphs. The time and space complexity of algorithms is considered throughout. Programs are written in C++.
- Review classes, information hiding, composition, inheritance, polymorphism
- Analysis of algorithms (best case, worst case, average case)
- Search algorithms – hashing, sequential and binary search
- Sort algorithms – bubble, selection, linear insertion, binary insertion, mergesort, quicksort
- Dynamic data structures
- Linear structures – lists, stacks, queues
- Binary trees
- Recursive algorithms for tree traversals
- Iterative algorithms for searching a tree (depth-first using a stack, breadth-first using a queue, and heuristic using a priority queue)
- Binary search treesExpression trees
- Tree sort
Methods of Instruction
Lecture, seminar, laboratory assignments, reading, and research
Means of Assessment
|Attendance and Participation
|| 0% - 5%
|Assignments (Minimum: 4)
||40% - 50%
|Tests (Minimum: 1)
||15% - 50%
||25% - 40%
The student will be able to:
- explain the concepts of dynamic versus static data structures;
- explain the concepts of asymptotic behaviour of algorithms.
The student should be able to:
- analyze the time and space complexity of iterative and recursive algorithms;
- choose the most appropriate abstract data structure and be able to implement it efficiently.
CSIS2375 or CISY1275 or CMPT1110
Note: MATH1130 is recommended as a prerequisite or corequisite
Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester/year of the course, consider the previous version as the applicable version.
Below shows how this course and its credits transfer within the BC transfer system.
A course is considered university-transferable (UT) if it transfers to at least one of the five research universities in British Columbia: University of British Columbia; University of British Columbia-Okanagan; Simon Fraser University; University of Victoria; and the University of Northern British Columbia.
For more information on transfer visit the BC Transfer Guide and BCCAT websites.
If your course prerequisites indicate that you need an assessment, please see our Assessment page for more information.