JSAV Roadmap
This is the official (as much as anything is official) roadmap for JSAV. It shows both the release history and our upcoming plans. The content for each planned release is driven by a particular AV or activity that should be supported upon completion of that version (and which would not have been possible earlier or is at least facilitated by the features in the proposed version).
Version 0.1:
Driving activity: Shellsort slideshow and Shellsort performance activity
(Version 0.1.0 was posted to SourceForge on June 28, 2011)
(Version 0.1.1 was posted to SourceForge on July 27, 2011)
(Version 0.1.2 was posted to SourceForge on August 9, 2011)
- Basic organization and infrastructure, basic DOM support and proof-of-concept
- Support for messages API
- Support for array layout API
- Support for "slideshows" API: store a series of states that can be played through, with ability to back up; "VCR" style controls; a slide counter element
- Versioning infrastructure, web-accessible library, SourceForge-based releases
- Initial library documentation
- Some support for "labels" associated with a data structure
- Modularity support
Version 0.2: Driving activity: Shellsort AV and refactoring of Version 0.1 examples
(Version 0.2.0 was posted to SourceForge on August 19, 2011)
- Support for bars and numbers as alternative look-and-feel for the array layout, (instead of boxes around array items)
- Optimizations/refactoring of the slideshow state mechanism
- CSS style reset for consistency across browsers
- Slideshow counter
- Ability to invoke a parameterized version of an AV
- OEmbed support (initial version)
- Options panel (for things like animation speed, bars vs. array layout) (initial version)
- Shellsort AV
- Ability to invoke another web page (e.g., "help" files)
- Title screen for a slideshow
- Release Bonus: Draft layout of Shellsort Proficiency Exercise
- Bug fix: disabling controls during animation
- Bug fix: No double-printing of first slide of slideshow
Version 0.3: [Support for proficiency exercises.] Driving activity: TRAKLA-style proficiency exercise for Shellsort
(Version 0.3 was posted to SourceForge on October 11, 2011)
(Version 0.3.1 was posted to SourceForge on January 3, 2012)
- Improved API support for adding AV developer's variables to the Options Panel
- Support for user specifying answers to TRAKLA-style exercise
- Support for specifying model answer, and comparing to user's answers
- Support for giving user feedback from model answer comparison
- Support for giving developers various standard options on how to handle feedback
- New example showing "unpacked" style of presentation in contrast to slideshows
- Tutorial on using the Exercise API
- Bug fixes and improved support for Internet Explore 9
Version 0.4: [Support for binary trees.] Driving activity: Binary Search Tree
(Version 0.4 was posted to SourceForge on February 7, 2012)
(Version 0.4.1 was posted to SourceForge on February 24, 2012)
- Support for tree and binary tree
- Support for vertical array layout
- Documentation for graphical primitives
- Styling improvements to array visualization
- General swap effect added; swap now shows an arrow for the swapped elements
- Support for grading of proficiency exercises that use trees
- Heap support as a JSAV "extra"
- Support for placing graphics primitives like lines, circles, rectangles
(Version 0.4.2 was posted to SourceForge on April 12, 2012)
- Fixed a bug in tree positioning
- Added function isAnimating() to check whether an animation is playing
- Restructured data structure implementations into modules
- Added easier way to attach event handlers to the data structures
- Fixed a bug in array and tree value handling
(Version 0.4.3 was posted to SourceForge on May 15, 2012)
- new features:
- absolute positioning of labels, variables and data structures is now possible
- labels can be attached to edges
- displayInit() for controlling initial screen in slideshows
- bug fixes:
- issue with changing array value in horizontal layout in Webkit based browsers fixed
- show/hide bug for data structures fixed
- new minor features:
- allow custom event binding for data structures
- allow data to be passed to event handlers for data structures
- added function JSAV.utils.rand.sample to get a random sample from an array
Version 0.5: [The linked list release] (ETA: June 2012)
Driving activity: Linked list display, Open Hashing, Radix Sort]
- Support for drawing arrows with attached labels
- Support for linked lists as an object with appropriate layout features
- See these examples: Figure 4.10 here; and JHAVEPOP
- Better support for controlling placement of data structures
Version 0.6: Driving activity: Pseudocode Support, Phase 1
- Pseudocode support for showing lines of code highlighted during progress of visualization
Version 0.7: Driving activity: Dijkstra's algorithm
- Graph layout support
Version 0.8: Driving activity: Pseudocode Support, Phase 2
- Pseudocode support with collapsing and slideshow driven by collapsing status (see AIA for examples)
Version 0.9: Driving activity: Splay tree Insert AV (with rotations)
- Necessary animation support
Version 0.10: Driving activity: Redo existing examples in multiple languages, depending on volunteer support
- Internationalization support
Wishlist, not currently scheduled:
- Key bindings for slideshow controls [But what do we do with multiple AVs on a page?]