wescheme and the amazing technicolor structures part 2
play

WeScheme and the Amazing Technicolor Structures, Part 2 Danny Yoo - PowerPoint PPT Presentation

WeScheme and the Amazing Technicolor Structures, Part 2 Danny Yoo (dyoo@hashcollision.org) Sunday, October 28, 12 Colored errors in WeScheme Sunday, October 28, 12 Purpose statement Sunday, October 28, 12 Purpose statement Students


  1. WeScheme and the Amazing Technicolor Structures, Part 2 Danny Yoo (dyoo@hashcollision.org) Sunday, October 28, 12

  2. Colored errors in WeScheme Sunday, October 28, 12

  3. Purpose statement Sunday, October 28, 12

  4. Purpose statement • Students don’t understand error message vocabulary [Marceau et al, 2011] Sunday, October 28, 12

  5. Purpose statement • Students don’t understand error message vocabulary [Marceau et al, 2011] • We can teach vocabulary through pointing Sunday, October 28, 12

  6. Purpose statement • Students don’t understand error message vocabulary [Marceau et al, 2011] • We can teach vocabulary through pointing • Change error messages from flat strings to structures, to use colors for nouns with corresponding highlight on original source Sunday, October 28, 12

  7. Examples Sunday, October 28, 12

  8. Examples Sunday, October 28, 12

  9. Examples Sunday, October 28, 12

  10. Examples Use color to point between the error message text and the source Sunday, October 28, 12

  11. Data type definition An ErrorMessage is a list of: Sunday, October 28, 12

  12. Data type definition An ErrorMessage is a list of: ★ String Sunday, October 28, 12

  13. Data type definition An ErrorMessage is a list of: ★ String ★ ColoredPart(String text, List<Position> places) Sunday, October 28, 12

  14. Data type definition An ErrorMessage is a list of: ★ String ★ ColoredPart(String text, List<Position> places) ★ GradientPart(List<ColoredPart> parts) Sunday, October 28, 12

  15. Data type definition An ErrorMessage is a list of: ★ String ★ ColoredPart(String text, List<Position> places) ★ GradientPart(List<ColoredPart> parts) So all we need to do is change the WeScheme compiler and runtime accordingly Sunday, October 28, 12

  16. Coding Sunday, October 28, 12

  17. Coding Compile-time error messages: Sunday, October 28, 12

  18. Coding Compile-time error messages: (error ‘compiler “...”) Sunday, October 28, 12

  19. Coding Compile-time error messages: (error ‘compiler (list ... (make-ColoredPart ...))) Sunday, October 28, 12

  20. Coding Compile-time error messages: (error ‘compiler (list ... (make-ColoredPart ...))) Function Application: Sunday, October 28, 12

  21. Coding Compile-time error messages: (error ‘compiler (list ... (make-ColoredPart ...))) Function Application: (f x y z) Sunday, October 28, 12

  22. Coding Compile-time error messages: (error ‘compiler (list ... (make-ColoredPart ...))) Function Application: (with-continuation-marks ([app-locations ...]) (f x y z)) Sunday, October 28, 12

  23. Demo Sunday, October 28, 12

  24. TODO/FIXME • Iterate the design • Handle higher-order functions • Most importantly: measure the effect of these interfaces on real people! Sunday, October 28, 12

  25. Code • http://github.com/dyoo/WeScheme • https://github.com/bootstrapworld/ wescheme-compiler2012 Sunday, October 28, 12

  26. Some lessons Sunday, October 28, 12

  27. Some lessons • Structures, structures, structures Sunday, October 28, 12

  28. Some lessons • Structures, structures, structures • Don’t ever underestimate undergrads trained in HTDP Sunday, October 28, 12

  29. Some lessons • Structures, structures, structures • Don’t ever underestimate undergrads trained in HTDP • ... but also respect the power of the Olympics to distract those undergrads Sunday, October 28, 12

  30. Thanks to • Daniel Kocoj • Miles Eldon • Katherine Ng • Michael Rowland • Special thanks to: • Jonah Stanley • Emmanuel Schanzer • Andrew Tian • Kathi Fisler • Winnie Wang • Shriram Krisnamurthi Sunday, October 28, 12

Recommend


More recommend