|
Nov 22, 2024
|
|
|
|
CS 2852 - Data Structures3 lecture hours 2 lab hours 4 credits Course Description This course covers the organization of data and the algorithms that act upon them. The topics of arrays, linked lists, stacks, queues, trees, sets, and hash tables are introduced. Fundamentals of algorithm performance are also introduced, with an emphasis placed on time complexity analysis. Laboratory activities include implementation of data structures as well as the application of data structures from standard libraries. (prereq: CS 1021 ) Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- Understand and apply complex data structures and algorithms
- Use appropriate algorithms (and associated data structures) to solve problems
- Have a thorough understanding of commonly used library data structures
- Analyze the time complexity of algorithms
- Understand the use of recursion in problem solving
- Use data structures in software design and implementation
- Apply standard library data structures in software design
- Select appropriate data structures for a given application
Prerequisites by Topic
- Java GUI
- Event-driven programming
- Exception handling
- File I/O
- ArrayList
- Interfaces/abstract classes
Course Topics
- Introduction
- Java collections framework
- Array based lists
- Iterators
- Deep vs Shallow Copies
- Linked lists
- Asymptotic algorithm analysis
- Stacks and queues
- Recursion
- Generics
- Trees
- Binary search trees
- Insertion sort
- TreeMap and TreeSet
- Hash tables
- HashMap and HashSet
- Review
Laboratory Topics
- Benchmarking
- Algorithm analysis
- ArrayList/linked lists
- Recursive algorithms
- Stack/queue
- Tree
- Hash table
Coordinator Dr. Christopher Taylor
Add to Portfolio (opens a new window)
|
|