scalanimate an educational programming platform on top of
play

Scalanimate An educational programming platform on top of Scastie - PowerPoint PPT Presentation

Scalanimate An educational programming platform on top of Scastie Xavier Pantet Scalacenter EPFL January 22, 2018 1/19 Outline Motivation Introduction Already existing solutions Challenges API Implementation Limitations


  1. Scalanimate An educational programming platform on top of Scastie Xavier Pantet Scalacenter EPFL January 22, 2018 1/19

  2. Outline Motivation Introduction Already existing solutions Challenges API Implementation Limitations Implementation discussion Problems encountered Conclusion Future perspectives Final words 2/19

  3. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  4. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  5. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  6. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  7. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  8. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  9. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, dreamincode.net functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  10. Motivation Introduction How did you learn programming? 1. Install a bunch of tools you have no clue about 2. Write a “Hello World” program 3. Compile and run it ? 4. Realise it’s useless 5. Learn about variables, dreamincode.net functions, ... 6. Your programs are ugly and unusable 7. No UI and user controls! 3/19

  11. Motivation Introduction How can we do better? ◮ Not having to install anything ◮ Create visual programs ◮ Provide immediate and intuitive feedback to the user ◮ Provide useful functions to make possible writing cool and usable programs 4/19

  12. Motivation Introduction How can we do better? ◮ Not having to install anything ◮ Create visual programs ◮ Provide immediate and intuitive feedback to the user ◮ Provide useful functions to make possible writing cool and usable programs 4/19

  13. Motivation Introduction How can we do better? ◮ Not having to install anything ◮ Create visual programs ◮ Provide immediate and intuitive feedback to the user ◮ Provide useful functions to make possible writing cool and usable programs 4/19

  14. Motivation Introduction How can we do better? ◮ Not having to install anything ◮ Create visual programs ◮ Provide immediate and intuitive feedback to the user ◮ Provide useful functions to make possible writing cool and usable programs 4/19

  15. Motivation Introduction How can we do better? ◮ Not having to install anything ◮ Create visual programs ◮ Provide immediate and intuitive feedback to the user ◮ Provide useful functions to make possible writing cool and usable programs 4/19

  16. Motivation Already existing solutions Figure: Scratch ◮ “Block-assembling” ◮ Fairly simple and intuitive for beginners ◮ Slow ◮ Not a programming language 5/19

  17. Motivation Already existing solutions Figure: Scratch ◮ “Block-assembling” ◮ Fairly simple and intuitive for beginners ◮ Slow ◮ Not a programming language 5/19

  18. Motivation Already existing solutions Figure: Scratch ◮ “Block-assembling” ◮ Fairly simple and intuitive for beginners ◮ Slow ◮ Not a programming language 5/19

  19. Motivation Already existing solutions Figure: Scratch ◮ “Block-assembling” ◮ Fairly simple and intuitive for beginners ◮ Slow ◮ Not a programming language 5/19

  20. Motivation Already existing solutions Figure: Scratch ◮ “Block-assembling” ◮ Fairly simple and intuitive for beginners ◮ Slow ◮ Not a programming language 5/19

  21. Motivation Already existing solutions Figure: WoofJS ◮ Code-based version of Scratch in Javascript ◮ Simple API ◮ Javascript is known to be messy ◮ Main source of inspiration for Scalanimate 6/19

  22. Motivation Already existing solutions Figure: WoofJS ◮ Code-based version of Scratch in Javascript ◮ Simple API ◮ Javascript is known to be messy ◮ Main source of inspiration for Scalanimate 6/19

  23. Motivation Already existing solutions Figure: WoofJS ◮ Code-based version of Scratch in Javascript ◮ Simple API ◮ Javascript is known to be messy ◮ Main source of inspiration for Scalanimate 6/19

  24. Motivation Already existing solutions Figure: WoofJS ◮ Code-based version of Scratch in Javascript ◮ Simple API ◮ Javascript is known to be messy ◮ Main source of inspiration for Scalanimate 6/19

  25. Motivation Already existing solutions Figure: WoofJS ◮ Code-based version of Scratch in Javascript ◮ Simple API ◮ Javascript is known to be messy ◮ Main source of inspiration for Scalanimate 6/19

  26. Motivation Already existing solutions Figure: Doodle ◮ Compositional vector graphics in Scala + Scala.js ◮ Highlights functional programming ◮ Composition, composition and composition ◮ Rather difficult for beginners 7/19

  27. Motivation Already existing solutions Figure: Doodle ◮ Compositional vector graphics in Scala + Scala.js ◮ Highlights functional programming ◮ Composition, composition and composition ◮ Rather difficult for beginners 7/19

  28. Motivation Already existing solutions Figure: Doodle ◮ Compositional vector graphics in Scala + Scala.js ◮ Highlights functional programming ◮ Composition, composition and composition ◮ Rather difficult for beginners 7/19

  29. Motivation Already existing solutions Figure: Doodle ◮ Compositional vector graphics in Scala + Scala.js ◮ Highlights functional programming ◮ Composition, composition and composition ◮ Rather difficult for beginners 7/19

  30. Motivation Already existing solutions Figure: Doodle ◮ Compositional vector graphics in Scala + Scala.js ◮ Highlights functional programming ◮ Composition, composition and composition ◮ Rather difficult for beginners 7/19

  31. Challenges 7/19

  32. Challenges A game is elegant when a small number of basic actions allow the player to do a large number of strategic actions. Jesse Schell schellgames.com ◮ A simple API for drawings and animations... ◮ ... that offers many possibilities to the end user ◮ Designed for the web (integration into Scastie) 8/19

  33. Challenges A game is elegant when a small number of basic actions allow the player to do a large Jesse Schell number of strategic actions. schellgames.com What we want: ◮ A simple API for drawings and animations... ◮ ... that offers many possibilities to the end user ◮ Designed for the web (integration into Scastie) 8/19

  34. Challenges A game is elegant when a small number of basic actions allow the player to do a large Jesse Schell number of strategic actions. schellgames.com What we want: ◮ A simple API for drawings and animations... ◮ ... that offers many possibilities to the end user ◮ Designed for the web (integration into Scastie) 8/19

  35. Challenges A game is elegant when a small number of basic actions allow the player to do a large Jesse Schell number of strategic actions. schellgames.com What we want: ◮ A simple API for drawings and animations... ◮ ... that offers many possibilities to the end user ◮ Designed for the web (integration into Scastie) 8/19

  36. Challenges A game is elegant when a small number of basic actions allow the player to do a large Jesse Schell number of strategic actions. schellgames.com What we want: ◮ A simple API for drawings and animations... ◮ ... that offers many possibilities to the end user ◮ Designed for the web (integration into Scastie) 8/19

  37. User API 8/19

  38. API We want the user to be able to: ◮ Draw shapes (circles, rectangles, polygons, ...) ◮ Set fill and border colors ◮ Rotate the shapes ◮ Move them ◮ Show and hide them ◮ Display images ◮ React to basic user input (mouse clicks and key presses) ◮ Detect collisions between shapes and the edges of the drawing context 9/19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend