### ECE 264: Data Structures and Algorithms I

**Catalog Data:**

An introduction to fundamental data structures and algorithms, with an emphasis on practical implementation issues and good programming methodology. Topics include lists, stacks, queues, trees, hash tables and sorting algorithms. Also an introduction to analysis of algorithms with big-O notation. Assignments include programming projects and problem sets.

**Topics:**

- Introduction and course overview.
- Mathematical tools for the analysis of algorithms.
- Overview of C++ and object oriented programming concepts.
- Lists, stacks, and queues.
- Sorting: simple quadratic sorts (bubble sort, selection sort, and insertion sort); linearithmic searches (mergesort and quicksort); radix sort; indirect sort; selection algorithms.
- Trees: general trees and terminology; binary trees; binary search trees; balanced binary search trees.
- Hash tables.

**Course Outcomes:**

- In depth understanding of fundamental data structures and algorithms.
- Understanding of the analysis of the running times of algorithms.
- Ability to efficiently implement data structures and algorithms from scratch.
- Ability to apply data structures and algorithms to solve complex problems.

**Assessment Methods:**

Individual programming assignments to ensure that students can implement fundamental data structures and algorithms from scratch to solve complex problems; problem sets to test in depth knowledge involving subtleties of the covered topics.