EDMEDIA, June 24, A New Approach to Learning Algorithms Tomasz Müldner*, Elhadi Shakshuki and Joe Merrill Jodrey School of Computer Science, Acadia University, Wolfville, NS, Canada * presenting
EDMEDIA, June 24, 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.
EDMEDIA, June 24, Contents of the Talk Introduction to Algorithm Visualization Description of Algorithm Explanation Example: Selection Sort Conclusions Future Work
EDMEDIA, June 24, 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
EDMEDIA, June 24, 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 learner’s conceptions of these entities and events the domain consisting of the algorithm entities and temporal events
EDMEDIA, June 24, 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.
EDMEDIA, June 24, 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.
EDMEDIA, June 24, 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.
EDMEDIA, June 24, Example: Selection Sort Abstraction tree selection smallestswap
EDMEDIA, June 24, Top Level of Abstraction ADT consists of sequences of elements of type T, denoted by Seq, 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
EDMEDIA, June 24, 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(seq t, Comparator comp), which finds the smallest element in t (using comp ); swap(T el1, T el2), which swaps el1 and el2.
EDMEDIA, June 24, Top Level Code: Text void selection(Seq t, Comparator comp) { for(prefix(t) = NULL; prefix(t) != t; inc(prefix(t))) swap( smallest(suffix(t), comp), first(suffix(t))); }
EDMEDIA, June 24, 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
EDMEDIA, June 24, 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.
EDMEDIA, June 24, Low Level Code: Text T smallest(Seq t, Comparator comp) { small = current = first(t); while((current=next(current,t))!=NULL) if(comp(small, current) < 0) small = current; return small; }
EDMEDIA, June 24, 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. What’s the last step of the algorithm?
EDMEDIA, June 24, 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
EDMEDIA, June 24, 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.