Wiki

  • Syntax coloring of algorithms
  • Tutorial
  • Theme
  • No anonymous editing
  • Algorithms in a different namespace
  • Preview, includes up-to-date algorithm
  • Initial content for pages/algorithms
  • Talk page support
  • Fix editing controls overlapping wiki content
  • Better phone support
  • Name, url, etc.
  • Editing algorithms with better UI
  • More algorithms

Algorithm UI

  • Much simpler IDE – don’t use the inspector?
  • IDE bugs, like stopping and then playing again
  • Breakpoints
  • Speed slider goes faster
  • Sliders on Firefox
  • Merge IDE and animation code
  • Streamline and optimise inspector IDE / visualisation code.
  • Console, stack view, etc??
  • IDE handle step back into prev run and step forward into next
  • Remove use of requireJS

  • Use SVG for all button images

  • Better designed interface between interpreter and visualisation
  • Handle running scripts from visualisation better, multiple running, stopping etc.
  • Stepping over should still visualise code stepped over
  • Way for visualisation to control code running? – need to wait for visualisation sometimes
  • Better defined interface, don’t pass AST node and execution-context to visualisation

  • Use JSHint to validate all code
  • Run unit tests and check options syntax, before being able to save (or warn)
  • Validation code for algorithms - Unit tests

  • How to support multiple visualisations sharing code?

Interpreter

  • Run algorithms backwards
  • Run visualisation update at start and end
  • Run step-counter web worker in sync with user, remove ‘‘persistentGlobals’’

  • Fully conform to ES-262 test suite
  • Interpreter handling of getters and setters – stops pollution of values when viewed in console
  • Interpreter handling of conversion to numbers / values etc – enables breaking in getValue code
  • Custom non-JS language features, eg. multi-threaded execution for threading algorithms (relatively easy)

Code style questions

  • Recursive vs. iterative
  • Most efficient vs. simplest
  • Using JS style vs. simplest eg. inserting into an array using splice vs. iterating
  • What data structures to use for an algorithm