Download presentation
Presentation is loading. Please wait.
Published byIsabel Day Modified over 9 years ago
1
EDMEDIA, June 24, 20041 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
2
EDMEDIA, June 24, 20042 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
EDMEDIA, June 24, 20043 Contents of the Talk Introduction to Algorithm Visualization Description of Algorithm Explanation Example: Selection Sort Conclusions Future Work
4
EDMEDIA, June 24, 20044 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
EDMEDIA, June 24, 20045 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
6
EDMEDIA, June 24, 20046 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
EDMEDIA, June 24, 20047 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
EDMEDIA, June 24, 20048 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
EDMEDIA, June 24, 20049 Example: Selection Sort Abstraction tree selection smallestswap
10
EDMEDIA, June 24, 200410 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
11
EDMEDIA, June 24, 200411 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.
12
EDMEDIA, June 24, 200412 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))); }
13
EDMEDIA, June 24, 200413 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
EDMEDIA, June 24, 200414 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
EDMEDIA, June 24, 200415 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; }
16
EDMEDIA, June 24, 200416 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?
17
EDMEDIA, June 24, 200417 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
EDMEDIA, June 24, 200418 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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.