Welcome to CS 2851  
Data Structures
This course covers the organization of data and the algorithms that act upon them. The topics of stacks, queues, trees and sets are introduced. Fundamentals of algorithm performance are also introduced, with an emphasis placed on time complexity analysis. Applications to data structure searching and sorting, memory allocation and file management are included. Laboratory activities include the application of data structures from standard libraries.
Prerequisite: CS-1020
Course structure: 2-2-3 (class hours/week, laboratory hours/week, credits).
Required text: Data Structures and the Java Collections Framework, 2nd Ed. William Collins, McGraw-Hill, 2005
Upon successful completion of this course, the student will:
  • understand and apply complex data structures and algorithms.
  • use appropriate algorithms (and associated data structures) to solve complex problems.
  • have a thorough understanding of commonly used library data structures.
  • be able to analyze the time complexity of algorithms, both sequential and recursive.
  • understand the use of recursion in problem solving.
  • be able to use data structures in software design and implementation.
  • be able to apply standard library data structures in software design.