Data Structures and Algorithms

Curriculum Guideline

Effective Date:
Course
Discontinued
No
Course Code
CMPT 2300
Descriptive
Data Structures and Algorithms
Department
Computing Science
Faculty
Science & Technology
Credits
3.00
Start Date
End Term
202120
PLAR
No
Semester Length
15
Max Class Size
35
Contact Hours
Lecture and Laboratory: 4 hours / week
Method(s) Of Instruction
Lecture
Lab
Learning Activities

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

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

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

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%

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

Prerequisites

CMPT 1110 or CSIS 1275 with a minimum grade of C

Corequisites

MATH 1130 (must be taken prior to or concurrently with CMPT 2300).

Equivalencies
Which Prerequisite

None