Data Structures and Algorithms

Science & Technology
Computing Science
Course Code
CMPT 2300
Semester Length
Max Class Size
Method Of Instruction
Typically Offered
To be determined


Course Description
This course introduces students to data structures and algorithms, including their design, analysis and implementation. Topics include: object-oriented design and object-oriented programming with a study of inheritance, encapsulation and polymorphism, techniques for searching and sorting, time and space efficiency of algorithms, and practical data structures, including arrays, lists, stacks, queues, trees, heaps, sets, hash tables and graphs. Programs are written in C++.
Course Content

- Object-oriented design principles (polymorphism, encapsulation, and inheritance)
- Arrays and dynamic memory management
- Lists, stacks, and queues
- Recursion
- Sort algorithms
- Search algorithms
- Algorithm efficiency
- Data structures such as hash tables, trees, graphs and sets

Methods Of Instruction

Lectures, labs, and self-directed learning (programming assignments)

Means of Assessment

Evaluation will be carried out in accordance with Douglas College policies. The instructor will present a written course outline with specific evaluation criteria at the beginning of semester. Evaluation will be based on the following:

Labs                       10% - 25%

Assignments           10% - 20%

Quizzes                   0% - 10%

Midterm exam         20% - 35%

Final examination    25% - 40%

Class participation    0%  -  5%

Learning Outcomes

Upon completion of this course, students will be able to:

- Identify fundamental data structures and algorithms
- Implement dynamic memory management in C++
- Apply object-oriented design principles with focus on data abstraction and information hiding
- Design and develop object-oriented software
- Implement basic data structures in C++
- Analyze the complexity of algorithms
- Choose appropriate data structures and algorithms for specified applications
- Convert recursive solutions to iterative solutions, and vice versa
- Demonstrate skills in tracing and designing recursive algorithms
- Select appropriate abstract data types for a small but realistic problem
- Write programs using linked lists
- Implement different types of sorting algorithms
- Write programs for different types of searching algorithms
- Write programs using array-based lists and linked lists
- Develop programs using data structures such as stacks, queues, hash tables, heaps, trees, and graphs

Textbook Materials

Consult the Douglas College Bookstore for the latest required textbooks and materials.

Sample text may include:

Data Abstraction & Problem Solving with C++: Walls and Mirrors (7th Edition), Frank M. Carrano and Timothy Henry, Pearson, 2017, ISBN: 978-0134463971


Course Guidelines

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.

Course Transfers

Institution Transfer Details Effective Dates
College of the Rockies (COTR) COTR COMP 2XX (3) 2018/01/01 to -
Kwantlen Polytechnic University (KPU) KPU CPSC 1204 (3) 2018/01/01 to -
North Island College (NIC) NIC CPS 101 (3) 2018/01/01 to -
Okanagan College (OC) OC COSC 222 (3) 2018/01/01 to -
Simon Fraser University (SFU) SFU CMPT 225 (3) 2018/01/01 to -
University Canada West (UCW) UCW CPSC 2XX (3) 2018/01/01 to -
University of British Columbia - Okanagan (UBCO) UBCO COSC 121 (3) 2018/01/01 to -
University of British Columbia - Vancouver (UBCV) UBCV CPSC 2nd (3) 2018/01/01 to -
University of Northern BC (UNBC) UNBC CPSC 2XX (3) 2018/01/01 to -
University of the Fraser Valley (UFV) UFV COMP 251 (4) 2018/01/01 to -
University of Victoria (UVIC) UVIC CSC 115 (1.5) 2018/01/01 to -
Vancouver Island University (VIU) VIU CSCI 161 (4) 2018/01/01 to -

Course Offerings

Summer 2021

There aren't any scheduled upcoming offerings for this course.