|
Dec 21, 2024
|
|
|
|
CS 2550 - Concepts of Data Structures and Algorithms2 lecture hours 2 lab hours 3 credits Course Description This course covers the organization of data and the algorithms that act upon them. The fundamentals of how to store, retrieve, and process data efficiently is covered. Emphasis is placed on fundamental data structures and algorithms for search, sorting, and dynamic programming. The topics of stacks, queues, trees, sets, and hash maps are introduced. Fundamentals of algorithm performance are introduced with an emphasis placed on computational time and space complexity analysis. Laboratory activities include the application of data structures and algorithms from standard libraries using scripting and high-level, object-oriented languages. (prereq: BE 2200 or equivalent) Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- Select appropriate abstract data type (ADT), data structure, and algorithm for an application
- Use variations of standard data structures and algorithms and understand how changes affect correctness and time complexity
- Introduction into algorithm design
- Quickly determine how efficient an algorithm or data structure will be
Prerequisites by Topic
- Event-driven programming in a high-level language
- Exception handling
- File I/O
- Arrays
- Interfaces/abstract classes
Course Topics
- Introduction to data structures and algorithms
- The role of algorithms in the problem-solving process
- Divide and conquer problem-solving strategies
- Abstract data types (ADT) including interfaces and inheritance
- Java collections framework and Array based lists
- Computational time complexity
- Computational space complexity
- Introduction to sorting algorithms, insertion sort, bubble sort
- Quick sort
- Queues
- Stacks
- Linked lists
- Hash tables
- Recursion
- Trees, tree traversal, tree implementation strategies
- Breadth-first search (BSF)
- Introduction to graphs
- Graph algorithms and implementation strategies
- Strategies for choosing and implementing the right data structure, algorithm
- Comparison and analysis of existing resources
Laboratory Topics
- Problem solving with algorithms
- Java Collections for reading, sorting, and displaying data
- Algorithmic analysis and benchmarking - mystery sort
- Design and analysis of ADTs, data structures, and algorithms for sorting applications
- Linked lists, stacks, queues, and hash tables comparison and analysis
- Tree traversal and search application
- Graph-based representation and search of biological data
Coordinator Dr. Christopher Taylor
Add to Portfolio (opens a new window)
|
|