Advanced concepts of data, storage, organization and retrieval. Topics include multiple-linked lists, balanced trees, graphs, abstract data types, classes and methods, object-oriented programming, searching and sorting. Prerequisite: CISS 245 or CISS 243.
Prerequisite(s) / Corequisite(s):
CISS 245 or CISS 243.
Course Rotation for Day Program:
Offered Fall and Spring.
Most current editions of the following:
Data Structures with C++ Using STL
By Ford, W. & Topp, W. (Prentice Hall) Recommended
C++ Data Structures
By Dale, N. (Jones and Bartlett) Recommended
Course Learning Outcomes
Analyze time and space complexities of basic algorithms.
Demonstrate an understanding of and implement basic sorting algorithms (including selection sort, quicksort, mergesort, heapsort, and counting sort).
Demonstrate an understanding of and implement linked lists, stacks, and queues.
Demonstrate an understanding of and implement trees and tree algorithms.
Demonstrate an understanding of and implement binary trees and algorithms.
Demonstrate an understanding of and implement heaps and priority queues.
Major Topics/Skills to be Covered:
Use various STL classes.
Implement doubly linked list class.
Implement circular linked list class.
Implement queue class.
Implement tree class including binary trees, B-tree, AVL trees.
Implement graph algorithms.
Implement divide-and-conquer technique.
Implement backtracking techniques.
Implement dynamic programming techniques.
Compare and contrast the time and space complexity of data structure and algorithms.
Recommended maximum class size for this course: 20
NOTE: The intention of this master course syllabus is to provide an outline of the contents of this course, as specified by
the faculty of Columbia College, regardless of who teaches the course, when it is taught, or where it is taught. Faculty members teaching this
course for Columbia College are expected to facilitate learning pursuant to the course learning outcomes and cover the subjects listed in the Major Topics/Skills to be Covered section.
However, instructors are also encouraged to cover additional topics of interest so long as those topics are relevant to the course's
subject. The master syllabus is, therefore, prescriptive in nature but also allows for a diversity of individual approaches to course material.