CMSY 265 Data Structures and Algorithm Analysis

This course is a study of user-defined data structures and object-oriented design and algorithms related to sorting, graphs and trees, and combinatorics. Topics include: complexity analysis of elementary algorithms, data structures for multidimensional data such as K-D trees; heaps and priority queues, including binary heaps, binomial heaps, leftist heaps; B-trees for external storage; other commonly used data structures, such as hash tables and disjoint sets, sorting algorithms, basic graph algorithms  including graph traversal, topological sorting, shortest path, minimum spanning trees, and paradigms in the design of algorithms. Programming projects are included.

Credits

4

Prerequisite

MATH 220, and CMSY 167 or CMSY 171

Hours Weekly

4 hours 40 min

Course Objectives

  1. 1. Analyze common operations performed on a variety of data structures using asymptotic and amortized analysis as appropriate.
  2. 2. Perform common operations on a variety of data structures using the appropriate algorithms.
  3. 3. Prove theorems regarding the performance of common operations on a variety of data structures.
  4. 4. Use modern software development tools effectively.
  5. 5. Use and/or modify and/or implement data structures in a complex application including recursive solutions as appropriate.
  6. 6. Choose an appropriate implementation of a data structure based on business application requirements.

Course Objectives

  1. 1. Analyze common operations performed on a variety of data structures using asymptotic and amortized analysis as appropriate.

    This objective is a course Goal Only

    Learning Activity Artifact

    • Other (please fill out box below)
    • Programming projects

    Procedure for Assessing Student Learning

    • Scientific Reasoning Rubric
  2. 2. Perform common operations on a variety of data structures using the appropriate algorithms.

    This objective is a course Goal Only

    Learning Activity Artifact

    • Other (please fill out box below)
    • Programming projects

    Procedure for Assessing Student Learning

    • Technological Literacy Rubric
  3. 3. Prove theorems regarding the performance of common operations on a variety of data structures.

    This objective is a course Goal Only

    Learning Activity Artifact

    • Other (please fill out box below)
    • Programming projects

    Procedure for Assessing Student Learning

    • Scientific Reasoning Rubric
  4. 4. Use modern software development tools effectively.

    This objective is a course Goal Only

    Learning Activity Artifact

    • Other (please fill out box below)
    • Programming projects

    Procedure for Assessing Student Learning

    • Scientific Reasoning Rubric
  5. 5. Use and/or modify and/or implement data structures in a complex application including recursive solutions as appropriate.

    This objective is a course Goal Only

    Learning Activity Artifact

    • Other (please fill out box below)
    • Programming projects

    Procedure for Assessing Student Learning

    • Technological Literacy Rubric
  6. 6. Choose an appropriate implementation of a data structure based on business application requirements.

    This objective is a course Goal Only

    Learning Activity Artifact

    • Other (please fill out box below)
    • Programming projects

    Procedure for Assessing Student Learning

    • Scientific Reasoning Rubric