CSC210 - Data Structures
4 Credit hours - 2 Lecture, 4 Lab
Prerequisite(s):: Grade of "C" or better in CIS150 or CIS170 or CSC140
Curriculum Changes Fall 2025
Prerequisite(s):: Grade of "C" or better in CIS150 or CIS170 or CSC160
Course Rationale:
The selection and usage of appropriate data structures is an important task for anyone working with software. Data must be organized in memory before it can be processed. The quality of the data management techniques employed can vary greatly.
Catalog Description:
This course will instruct students in the design and use of common data structures, lists, stacks, queues, trees, tables, hash tables, and graphs. Common data structure algorithms will be explored, including sorting, searching, and reorganizing data, with attention paid toward trade-offs between space and efficiency. Students will implement many of these data structures in an object oriented programming language and complete programming projects utilizing them.
Course Objectives
Upon successful completion of this course, the student should be able to:
Identify the following data structures: lists, stacks, queues, trees, tables, hash tables and graphs.
Demonstrate the usage of the following data structures:lists, stacks, queues, trees, tables, hash tables and graphs.
Implement programs using following data structures: including lists, stacks, queues, trees, tables.
Identify, demonstrate the usage and implement at least two Searching algorithms.
Identify, demonstrate the usage and implement at least two Sorting algorithms.
All course assignments and exams are closely aligned to, and assess the student's mastery of these core objectives.
Core Outcomes
By the end of this course, students should be able to:
1) Understand the ways their code impacts performance. They will be able to identify the differences between time complexity and memory management implications.
a. Explain the Big(O) notation to understand the optimal time complexities
b. Explain the tradeoffs a data structure implementation can have between time complexities and resource allocation
2) Identify and implement a linked list. They will create both a stack and a queue and explore the advantages of the usage compared to arrays. Resulting in creating real world scenarios implementing both strategies.
a. Create a search algorithm implementing a linked list
b. Create code that will insert and delete using linked list
3) Identify a tree data structure. Explore a binary search tree and a self balancing Red/Black tree. Using recursion, students will create insertion algorithms.
a. Create a search algorithm using the Red/Black tree
b. Insert data into the Red/Black tree ensuring sorting and a well balanced tree is being maintained
c. Explore heaps both min and max and write the code to sort data entered
4) Identify the use of tables using a hash code. Students will write code that inserts, sorts and deletes data using a hash table, utilizing a linked list when a collision occurs.
5) Explain the graph data structures, directed, undirected and weighted. Be able to provide real world examples of how each structure is used. Students will create an application utilizing either a directed or undirected graph data structure.
Test Out Requirements
Students who wish to demonstrate proficiency in this course will need to complete a Departmental proficiency exam. Departmental proficiency examinations are created by appropriate college faculty to allow students to demonstrate their mastery of course content in designated subjects. These examinations will be equivalent to the cumulative final assessment used in the course. Faculty will determine the minimum score required to earn credit by exam for these courses.
The college’s test out policy is outlined in policy 2.12 - Credit by Exam (Test Out)
Last updated