CS 3358 - Data Structures and Algorithms

Course Description:

This is a course covering classic data structures and the analysis of algorithms.


Prerequisites: CS 2308 and MATH 2358 both with grades of "C" or better.

Course Objectives:

  1. Understanding Abstract Data Types: motivations and basic concepts.

  2. Understanding of the behavior of basic data structures (lists, stacks, queues, trees (binary trees and tree traversals, height-balanced trees), graphs, hash tables).

  3. Ability to analyze a problem and determine the appropriate data structure for the problem.

  4. Understand the importance of data modeling and data structures in advanced programming.

  5. Understand and analyze elementary algorithms: sorting, searching and hashing.

  6. Ability to analyze the impact of data structures technique on the performance of algorithms (time and space complexity)/programs.

  7. Deep understanding of recursion and its applications.

  8. Data structure implementation issues. Understanding of dynamic versus array implementations of data structures, factors involved in deciding on an implementation technique.

  9. Practice in writing modular programs using the data structures that have been studied.

  10. Understanding the mechanics of code design, organization, and the development environment.

  11. Understanding data structure implementation in C++ using header files and implementation files.

Section Info:

Lecture/Lab Hours: 3 hours lecture, 0 hours lab
Offered: Very frequently (typically every semester).