Download Docsity.com: Interactive Java Tutorials for Computer Science and more Slides Data Structures and Algorithms in PDF only on Docsity!
Goals
- Focus on "stumbling block" topics
- Provide highly interactive experiences
- Use multiple presentation styles
- Integrate recording of pre/post-test data
- Allow cross-platform deployment
- Construct a flexible underlying framework
Implementation
- Each tutorial is a stand-along Java app
- Framework classes for
- Navigation
- Help
- Preferences
- Animation support
- Voice-overs
- Administering pre/post-tests
MainFrame class provides navigation
History
- Original work funded by NSF
- Summer project, 2 faculty, 2 students
- Produced original framework, CS tutorials
- Second phase funded by University of Richmond
- Upgrades to framework, some CS tutorials
Topics
- Heap sort
- Quick sort
- Objects and references
- Linked lists
Use of Algorithm Animation
- Original tutorials make frequent use of algorithm animation/visualization - Machine language execution - Searching - Sorting
- Recent research has cast some doubt on the effectiveness of algorithm animation as a teaching tool
Recent work in algorithm
visualization
- Grissom, et. al. (2003)
- Confirmed that increasing levels of interaction corresponded with increasing levels of understanding
(Full reference: Algorithm Visualization in CS Education: Comparing Levels of Student Engagement, Scott Grissom, Myles F. McNally and Tom Naps, in ACM Symposium on Software Visualization , pp. 87-94, San Diego, California, June 11 – 13, 2003.)
Recent work in algorithm
visualization
- Saraiya, et. al. (2004)
- Single-stepping (not just control of "playback") is important
- Pseudocode tracing is not as important as previously thought
- Good data sets (rather than student constructed) are important
Design issues for data structures
tutorials
- Original animation tools were sprite-based
- Planned tutorials would have required too much image editing
- Original animation sequences had to be completely specified ahead of time - All actions specified in a configuration file
- Insufficient for envisioned linked-list and tree construction "workbench" tutorials
Enhancements
- Repackaging from monolithic application to individual tutorial applications
- Updated animation capabilities to support interactive animations
- New sprite class hierarchy to support types other than image-based animation components
- Web deployment
New sprites
- To build the tutorials on linked structures, we needed sprites that could respond to dynamic changes in animations
- Specifically
- sprites to represent nodes that could adjust to changes in their linkages
- sprites that represent connections between nodes
Sprite class hierarchy
AbstractSprite Sprite
DrawableSprite^ ImageSprite
NodeSprite ConnectionPoint
HeaderNodeSprite RefNodeSprite ListNodeSprite
RtAngleConnector
UTurnConnector
Interface Abstract Class Concrete Class
Implements Extends
BasicConnector