CS 2852 - Data Structures

3 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: SE1021 )
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
  • Exams
  • 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
  • Algorthim Analysis
  • ArrayList/Linked lists
  • Recursive algorithms
  • Stack/Queue
  • Tree
  • Hash table

Coordinator
Christopher Taylor


Print-Friendly Page (opens a new window)