Yet another Way to Explain Algorithms - PowerPoint PPT Presentation

About This Presentation
Title:

Yet another Way to Explain Algorithms

Description:

The user has to map the problem domain to the graphical domain and ... the visualization system presented in this work is implemented using Macromedia Flash MX ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 20
Provided by: tomaszm
Category:

less

Transcript and Presenter's Notes

Title: Yet another Way to Explain Algorithms


1
Yet another Way to Explain Algorithms
  • Tomasz Müldner, Elhadi Shakshuki and Joe Merrill
  • Jodrey School of Computer Science, Acadia
    University, Wolfville, NS, Canada
  • presenting

2
Standard approach
  • The user has to map the problem domain to the
    graphical domain and then looking at the
    animation they have to retrieve essential
    properties of the algorithm.

3
Contents of the Talk
  • Introduction to Algorithm Visualization
  • Description of Algorithm Explanation
  • Example Selection Sort (Proceedings
    Insertion Sort)
  • Conclusions
  • Future Work

4
Standard Algorithm Visualization
  1. take the description of the algorithm (usually
    the code in a programming language, e.g. C)
  2. graphically represent data in the code using
    bars, points, etc.
  3. use animation to represent the flow of control
  4. show the animated algorithm
  5. hope that the learner will now understand the
    algorithm

5
Algorithm Explanation (AE)
  • To make algorithm explanation possible, the
    learner has to build a mapping
  • AE uses a variety of tools to help the students
    to learn algorithms, including textual and visual
    representation

learners conceptions of these entities and events
the domain consisting of the algorithm entities
and temporal events
?
6
Goals of AE
  • Understanding of both, what the algorithm is
    doing and how it works.
  • Ability to justify the algorithm correctness (why
    the algorithm works).
  • Ability to program the algorithm in any
    programming language.
  • Understanding the time complexity of the
    algorithm.

7
Requirements of AE
  • the algorithm is presented at several levels of
    abstraction
  • each level of abstraction is represented by the
    text and optionally by visualization
  • active learning is supported
  • the design helps to understand time complexity
  • presentations are designed by experts.

8
AE Explanations
  • An explanation of a single algorithm consists of
    the following four parts
  • Hierarchical Abstract Algorithm Model
  • Example of an abstract implementation of the
    Abstract Algorithm Model
  • Tools to help predicting the algorithm
    complexity.
  • Questions for students, including do it
    yourself mode for each level of abstraction.

9
Example Selection Sort
  • Abstraction tree

10
Top Level of Abstraction
  • ADT consists of sequences of elements of type T,
    denoted by SeqltTgt, with a linear order.
  • There is a function (or a type)
  • int comparator(const T x, const T y)
  • which returns -1 if x is less than y, 0 if they
    are equal and 1 otherwise

11
Operations from top-level ADT
  • prefix(t), possibly empty (NULL), which can be
    incremented by one element
  • inc(prefix(t)), which increments a prefix by one
    element
  • suffix(t), where a prefix followed by the suffix
    is equal to the entire sequence t
  • first(suffix), which returns the first element of
    the suffix
  • T smallest(seqltTgt t, Comparator comp), which
    finds the smallest element in t (using comp)
  • swap(T el1, T el2), which swaps el1 and el2.

12
Top Level Code Text
void selection(SeqltTgt t, Comparator comp)
for(prefix(t) NULL prefix(t) ! t
inc(prefix(t))) swap( smallest(suffix(t),
comp), first(suffix(t)))
13
Visualization shows Invariants
INVARIANT 1 All elements in the prefix are
smaller (according to the comp relation) than
all elements in the suffix. In the visualization,
the prefix box is smaller than the suffix
box INVARIANT 2 The prefix is sorted. In the
visualization, elements in the prefix are growing
14
ADT Low Level
  • The ADT consists of data described before, and
    the following operations
  • first(t), which returns the first element of the
    sequence t
  • next(current, t), which returns the element of
    the sequence t, following current, or NULL if
    there is no such element.

15
Low Level Code Text
T smallest(SeqltTgt t, Comparator comp) small
current first(t) while((currentnext(curre
nt,t))!NULL) if(comp(small, current) lt 0)
small current return small
16
Post Test
  • What is the number of comparisons and swaps
    performed when selection sort is executed for a
    sorted sequence and a sequence sorted in reverse.
  • What is the time complexity of the function
    isSorted(t), which checks if t is a sorted
    sequence?
  • Hand-execute the algorithm for a sample set of
    input data of size 4.
  • Hand-execute the next step of the algorithm for
    the current state.
  • Whats the last step of the algorithm?

17
Conclusions
  • A new approach for learning algorithms
  • an algorithm is explained at various levels of
    abstraction
  • each level is designed to present a single
    operation used in the algorithm
  • all operations are shown in a textual and visual
    form
  • the visualization system presented in this work
    is implemented using Macromedia Flash MX

18
Future Work
  • Generic visualizations for various classes of
    algorithms such as iterative and recursive
  • A complete system with a student model to provide
    an intelligent and adaptive learning system.

19
Correction
Write a Comment
User Comments (0)
About PowerShow.com