Mar 28, 2024  
2018-2019 Undergraduate Academic Catalog 
    
2018-2019 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CS 2550 - Concepts of Data Structures and Algorithms

2 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 (1/2 class)
  • The role of algorithms in the problem-solving process (1/2 class)
  • Divide and conquer problem-solving strategies (1 class)
  • Abstract data types (ADT) including interfaces and inheritance (1 class)
  • Java collections framework and Array based lists (1 class)
  • Computational time complexity (1 class)
  • Computational space complexity (1 class)
  • Introduction to sorting algorithms, insertion sort, bubble sort (1 class)
  • Quick sort (1 class)
  • Queues (1 class)
  • Stacks (1 class)
  • Linked lists (1 class)
  • Hash tables (1 class)
  • Recursion (1 class)
  • Trees, tree traversal, tree implementation strategies (1 class)
  • Breadth-first search (BSF) (1 class)
  • Introduction to graphs (1 class)
  • Graph algorithms and implementation strategies (1 class)
  • Strategies for choosing and implementing the right data structure, algorithm (1 class)
  • Comparison and analysis of existing resources (1 class)

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
Jay Urbain



Add to Portfolio (opens a new window)