CS 240 - Data Structures and Algorithms, Spring 2024
The focus of this course is on solving computational problems that involve collections of data. We will study a core set of data abstractions, data structures, and algorithms that provide a foundation for writing efficient programs.
At the conclusion of this course students will be able to:
- Describe, explain, and use abstract data types including stacks, queues, lists, sets, maps and graphs.
- Implement data types using both contiguous and linked representations.
- Implement a variety of algorithms for searching and sorting, including linear and binary search, insertion/selection/merge/quick sort, binary search trees, and heaps
- Read and write recursive algorithms. Understand when recursion is, and is not, appropriate.
- Characterize the performance of recursive algorithms.
- Analyze the time and space efficiency of data structures and algorithms and apply this analysis to select the best tools for solving particular problems.
This is a programming intensive course and will involve developing and analyzing algorithms in the Java programming language. \