Oct 09, 2026  
BC3 Academic Catalog: 2026-2027 
    
BC3 Academic Catalog: 2026-2027

COMP 233 - Data Structures and Algorithms

3 Credits: (3 lecture)

Course Description
This third-level programming course covers the analysis of data structures (arrays, linked lists, stacks, queues, hash tables, trees, and graphs) and their algorithms. The analysis of the time and space requirements will provide a rational basis for the selection of the appropriate data structures and algorithms for programming applications.  

Note Mac and Chromebook computers ARE NOT recommended for this course due to software required in the course. A computer with a current WINDOWS operating system is highly recommended for off-campus work. Fall semester only.

Prerequisite COMP 238 and MATH 100 or permission of the instructor.


Text
Liang, Y. D. (2024). Introduction to Java programming and data structures (13th ed.). New York City, NY: Pearson. 

Objectives
The student will be able to: 

A. Explain the use of big O, little o, omega and theta notation to describe the amount of work done by an algorithm. 

B. Analyze an algorithm and determine its time and space complexity. 

C. Describe the advantages and disadvantages of different algorithmic strategies. 

D. Select appropriate searching or sorting algorithms. 

E. Implement stacks and queue using both arrays and linked lists. 

F. Compare various collision-resolution strategies for hash table design. 

G. Implement a balanced search tree. 

H. Solve problems using fundamental graph algorithms including depth-first and breadth-first search. 

Content
A. Asymptotic analysis of upper and average complexity bounds 

B. Big O, little o, omega, & theta notation 

C. Algorithmic strategies (brute force, greedy, divide-and-conquer, etc.) 

D. Analysis of searching and sorting algorithms 

E. Stacks, queues and linked lists 

F. Hash tables including hashing functions and collision-resolution strategies 

G. Trees including balanced search trees 

H. Graphs and graph algorithms 

Student Evaluation
Objectives A, B, C, D, and F will be measured/assessed by tests and or quizzes. 

Objectives D, E, G, and H will be measured/assessed by programming assignments.