This course has two main objectives: to make students proficient in the use of common data structures and to introduce students to functional programming. This is a programming intensive course.
Data Structures are at the heart of all efficient software. While transparent to the user, the choice of data structure plays a crucial role in the adoption of software. In addition, the study and design of data structures pose an interesting intellectual challenge.
Specifically, this course aims to:
- impart proficiency in basic data structures and related operations
- introduce higher level data structures
- develop critical judgment regarding the choice of data structures for a given situation
- develop skills to implement basic data structures using any high-level language
Course Learning Outcome:
On successful completion of this course, a student will:
- perform basic operations on elementary data structures: list, tree, stack, queue.
- perform basic operations on higher level data structures: trees, and graph
- choose an efficient data structure for a given problem
- reason about the trade-off between data structure efficiency and programmer effort
- implement the above data structures and supporting operations in any high-level language
- implement a moderately complex project in any high-level language