Docsity.com: Interactive Java Tutorials for Computer Science, Slides of Data Structures and Algorithms

Docsity.com offers interactive java tutorials focused on 'stumbling block' topics, providing multiple presentation styles, allowing pre/post-test data recording, and cross-platform deployment. Each tutorial is a standalone java app, with a flexible underlying framework. Topics include binary representation, computer organization, and algorithm visualization.

Typology: Slides

2011/2012

Uploaded on 07/30/2012

dhanvantari
dhanvantari 🇮🇳

2

(2)

45 documents

1 / 31

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
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
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f

Partial preview of the text

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