Introduction to the fundamental principles of data structures, including their use, specification, and implementation, as well as fundamental principles of algorithms related to data structures. Data structures covered include lists, trees, graphs, and hash tables. Algorithm techniques include searching, sorting, dynamic memory allocation, recursion, and multithreading. C++ is taught. Credits: 4.

Prerequisite: ELE 271

Learning Outcomes

By the end of this course, students will be able to:

  • Define and describe the fundamental data structures, including lists, trees, graphs, and hash tables.
  • Comprehend the principles and techniques of searching, sorting, dynamic memory allocation, recursion, and multithreading algorithms.
  • Implement and utilize appropriate data structures and algorithms to solve computational problems.
  • Apply suitable algorithm techniques, such as searching, sorting, and recursion, to manipulate and process data effectively.
  • Analyze the time and space complexity of different data structures and algorithms.
  • Evaluate the trade-offs and design choices in selecting appropriate data structures and algorithms for a given problem.

Textbook

Goodrich, M. T., Tamassia, R., & Mount, D. M. (2011). Data structures and algorithms in C++. John Wiley & Sons.

Syllabus

Spring 2025

Offered

Spring Semester