Bev Facey Community High

CSE 3110: Iterative Algorithm 1

Students learn a number of standard iterative data processing algorithms useful for working with data structures such as arrays. These include an iterative version of the binary search, the three basic sorts—exchange (bubble), insertion and selection, and a simple merge. In the process, they learn when and where to apply these algorithms.

Theory

  1. analyze and represent the nature, structure and utility of common iterative algorithms
    1. compare and contrast search, sort and merge algorithms
    2. explain the way in which search, sort and merge algorithms manipulate data
    3. describe the data structures required by search, sort and merge algorithms
    4. describe how search, sort and merge algorithms are implemented in a programming environment
    5. describe and represent iterative search algorithms including:
      1. linear search
      2. binary search
      3. compare and contrast how linear and binary searches manipulate data
      4. compare and contrast the data structures required and the computational efficiencies of linear and binary searches
    6. describe and represent basic iterative sort algorithms including:
      1. exchange sort; e.g., bubble sort, cocktail sort, gnome sort, comb sort
      2. selection sort; e.g., selection sort, strand sort
      3. insertion sort; e.g., insertion sort, library sort
      4. comparing and contrasting how different classes of sorts manipulate data
      5. comparing and contrasting the data structures required and the computational efficiencies of different classes of sorts
    7. describe and represent simple iterative merge algorithms

Coding

  1. create and/or modify algorithms that use searches, sorts and merges to solve problems
    1. demonstrate the use of appropriate general design techniques for the programming environment being considered for implementation
    2. analyze and decompose the problem into appropriate subsections using the decomposition techniques appropriate for the chosen design approach
    3. evaluate subsections and identify any that may require some type of search, sort and/or merge algorithm, based on the nature of the data to be processed and the type of processing operations
    4. identify which algorithms are appropriate or required to search, sort and/or merge data
    5. sequence the various subsections appropriately
    6. test and modify the developing algorithm with appropriate data using a “fail-on-paper” process
  2. create and/or modify programs that use searches, sorts and merges to solve problems
    1. convert algorithms calling for standard iterative structures into programs that reflect the algorithm’s design
    2. use original (user-created) or pre-existing search, sort and/or merge algorithms appropriate to the data being manipulated
    3. utilize the appropriate operators, methods, functions or procedures required to carry out the standard algorithms
    4. use internal and external documentation
  3. compare program operation and outcomes with the intent of the algorithm and modify, as required
    1. use appropriate error-trapping mechanisms built into the programming environment, as well as programmer-directed error-trapping techniques, to eliminate logic errors and debug the program
    2. compare the congruency between the outcomes of the debugged program and the original intent of the algorithm and modify both, as required