CPL-301: Algorithms & Data Structures

Master algorithms and data structures in this advanced programming course. Learn recursion, sorting, searching, hashing, trees, and graphs while analyzing efficiency with Big O notation.

Course Description

CPL-301: Algorithms & Data Structures introduces students to the foundational concepts that drive computer science and software engineering. Using Introduction to Algorithms and Data Structures by Cengage, learners will study how algorithms are designed, evaluated, and optimized, while gaining hands-on experience with the data structures that power modern computing.

The course begins with recursion, problem decomposition, and efficiency analysis before moving into classic searching and sorting methods. Students will implement and compare data structures such as arrays, linked lists, stacks, queues, hash tables, trees, and graphs, evaluating their performance using Big O notation. Advanced algorithmic strategies—including greedy algorithms, dynamic programming, and shortest-path solutions—are also explored.

Through practical coding projects and analytical exercises, learners will develop problem-solving skills that prepare them for advanced coursework in computer science, artificial intelligence, and software engineering. By the end of the course, students will be able to design efficient solutions to complex computational problems while building a strong foundation in algorithmic thinking.

Textbook: Introduction to Algorithms and Data Structures by Cengage | 1st Edition | Copyright 2024

Course Objectives

Apply recursion and backtracking to solve computational problems.

Differentiate between data structures and evaluate their appropriate use cases.

Analyze algorithms in terms of time and space complexity using Big O notation.

Implement and compare sorting and searching algorithms for efficiency.

Design and manipulate linear and non-linear data structures, including linked lists, stacks, queues, trees, and graphs.

Apply advanced algorithms such as greedy methods, dynamic programming, and shortest-path solutions.

Starting is Easy

Want to learn more about earning your accredited high school diploma? Just enter your name and email below, and we’ll send you a series of helpful emails to guide you through the process.

Course Contents

Recursion – Direct, Indirect, Tower of Hanoi, Backtracking

Introduction to Data Structures – ADTs, Linear vs. Non-Linear, Operations

Designing Efficient Algorithms – Big O, Time & Space Complexity, Heuristics

Sorting Algorithms – Bubble, Selection, Insertion, Quicksort, Merge Sort

Search Algorithms – Sequential, Binary, Recursive Binary Search

Linked Lists, Stacks, and Queues – Operations and Implementations

Hash Tables – Hash Functions, Collisions, Efficiency

Trees – Traversal, Binary Search Trees, AVL Trees, Heaps, Tries

Graphs – DFS, BFS, Directed/Undirected, Weighted Graphs

Advanced Algorithms – Greedy, Dynamic Programming, Dijkstra, KMP, Spanning Trees, Image Algorithms

Single Course or Program Option

This course may be purchased individually or as part of the certificate programs listed below.

Software Development

Recommended Prerequisites

Accreditation You Can Trust

Washington Technical Institute is fully accredited by the Middle States Association Commissions on Elementary and Secondary Schools (MSA-CESS)—a regional accrediting agency recognized for setting high standards in education. This accreditation affirms that our programs, operations, and outcomes meet rigorous academic and institutional benchmarks. MSA-CESS accreditation is a mark of quality that ensures our students receive an education that is both credible and respected. It also means WTI is committed to continuous improvement, student success, and accountability at every level.