- Understanding Abstract Data Types: motivations and basic concepts.
- Understanding of the behavior of basic data structures (lists, stacks, queues, trees (binary trees and tree traversals, height-balanced trees), graphs, hash tables).
- Ability to analyze a problem and determine the appropriate data structure for the problem.
- Understand the importance of data modeling and data structures in advanced programming.
- Understand and analyze elementary algorithms: sorting, searching and hashing.
- Ability to analyze the impact of data structures technique on the performance of algorithms (time and space complexity)/programs.
- Deep understanding of recursion and its applications.
- Data structure implementation issues. Understanding of dynamic versus array implementations of data structures, factors involved in deciding on an implementation technique.
- Practice in writing modular programs using the data structures that have been studied.
- Understanding the mechanics of code design, organization, and the development environment.
- Understanding data structure implementation in C++ using header files and implementation files.
Lecture/Lab Hours: 3 hours lecture, 0 hours lab
Offered: Very frequently (typically every semester).