environment
play

Environment Technical and Social Environment Design toward Convivial - PowerPoint PPT Presentation

Rethinking Programming Environment Technical and Social Environment Design toward Convivial Computing Convivial Computing Salon, May 5, 4-5pm London (Zoom) Jun Kato *1 , Keisuke Shimakage *2 *1 National Institute of Advanced Industrial


  1. Rethinking Programming “Environment” Technical and Social Environment Design toward Convivial Computing Convivial Computing Salon, May 5, 4-5pm London (Zoom) Jun Kato *1 , Keisuke Shimakage *2 *1 National Institute of Advanced Industrial Science and Technology (AIST) *2 OTON GLASS, Inc. 5/5/2020 Rethinking Programming "Environments" 1

  2. Rethinking programming “environment” BACKGROUND Programming environment design for development of programs that run in the real world TOWARD CONVIVIAL COMPUTING • Technical environment design for collaborations • Social environment design for more inclusion CONCLUSION 5/5/2020 Rethinking Programming "Environments" 2

  3. A bit of self introduction... Phybots DejaVu Songle Sync A toolkit (API and runtime debugger) IDE extensions for developing APIs for controlling various devices for making “robotic things” Interactive camera-based programs in synchronization with music ACM DIS 2012 ACM UIST 2012 ACM Multimedia 2018 5/5/2020 Rethinking Programming "Environments" 3

  4. Phybots (ACM DIS 2012) Jun Kato , Daisuke Sakamoto, Takeo Igarashi 5/5/2020 Rethinking Programming "Environments" 4

  5. DejaVu (ACM UIST 2012) Jun Kato , Sean McDirmid, Xiang Cao Canvas Timeline 5/5/2020 Rethinking Programming "Environments" 5

  6. Songle Sync (ACM Multimedia 2018) Jun Kato , Masa Ogata, Takahiro Inoue, Masataka Goto https://api.songle.jp 6

  7. Integrated Development Environment (IDE) Toolkit (API) Tutorial Domain-specific language Visual programming Programming language Code editor IDE extensions Debugger 5/5/2020 Rethinking Programming "Environments" 7

  8. A bit of self introduction... Phybots DejaVu Songle Sync A toolkit (API and runtime debugger) IDE extensions for developing APIs for controlling various devices for making “robotic things” interactive camera-based programs in synchronization with music ACM DIS 2012 ACM UIST 2012 ACM Multimedia 2018 PX for programs running in the real-world

  9. ACM DIS 2017 f3.js : A Parametric Design Tool for Physical Computing Devices for Both Interaction Designers and End-users https://f3js.org Jun Kato , Masataka Goto

  10. Personal fabrication made easy 3D printers Laser cutters Sensor and actuator modules Photo taken by Atsushi Tadokoro (CC BY 2.0) https://www.flickr.com/photos/tadokoro/5138646645 How about programming and device assembling?

  11. Different tools and expertise needed for software and hardware design Software Hardware • Programmers need to imagine hardware while writing code • “ new Button() ” does not infer any hardware layout 5/5/2020 Rethinking Programming "Environments" 11

  12. f3.js Module repository for APIs for enclosure layout Live programming editor hardware metrics for microcontroller firmware and enclosure layout IDE for creating laser-cut interfaces and microcontroller programs from single code base

  13. f3.js project page for programmers

  14. Integrated Development Environment (IDE) Toolkit (API) Tutorial Domain-specific language Programing environments Visual programming are designed for programmers Programming language Code editor IDE extensions Debugger 5/5/2020 Rethinking Programming "Environments" 14

  15. Rethinking programming “environment” BACKGROUND Programming experience design for development of programs that run in the real world TOWARD CONVIVIAL COMPUTING • Technical environment design for collaborations • Social environment design for more inclusion CONCLUSION 5/5/2020 Rethinking Programming "Environments" 15

  16. Programming environments are (usually) different from runtime environments • Programmers develop programs and publish them • Users install “apps” and use them • Once published, the programs cannot be edited 5/5/2020 Rethinking Programming "Environments" 16

  17. Some environments allow “remix” Scratch – Imagine, Program, Share. https://scratch.mit.edu/ “See inside” to read and edit source code “Remixes” to play with edited programs 5/5/2020 Rethinking Programming "Environments" 17

  18. Some environments allow “remix” Still, programing environments “See inside” are designed for programmers to read and edit source code “Remixes” to play with edited programs 5/5/2020 Rethinking Programming "Environments" 18

  19. What if we design it for “both” • Instead of compiled programs, source code is shared • Furthermore, users benefit from a respective UI design • Users can safely edit the programs without breaking them 5/5/2020 Rethinking Programming "Environments" 19

  20. f3.js project page for end-users [LIVE 2016] Jun Kato , Masataka Goto Live Tuning: Users can get a customized variation of the device

  21. f3.js variable declaration dialog for end-users [PX 2017] Jun Kato , Masataka Goto User-Generated Variables: Users can propose parameters for the device spec

  22. Summary of our technical environment design A multi-layered UI design approach • Base layer for programmers • Another layer for users Shneiderman. Promoting universal usability with multi-layer interface design. 2002. Meta-design framework • Programmers as meta-designers • Users as designers • Programming environments become socio-technical systems Fischer et al. Revisiting and broadening the meta-design framework for end-user development. 2017. 5/5/2020 Rethinking Programming "Environments" 22

  23. Rethinking programming “environment” BACKGROUND Programming experience design for development of programs that run in the real world TOWARD CONVIVIAL COMPUTING • Technical environment design for collaborations • Social environment design for more inclusion CONCLUSION 5/5/2020 Rethinking Programming "Environments" 23

  24. f3.js Module repository for APIs for enclosure layout Multi-layered user interfaces hardware metrics for programmers and users A programming environment is usually designed to consist of (merely) computational artifact

  25. A merely technical approach is “scalable” but sometimes in short of “social inclusion” • Computational support X is available for many people but for some people with characteristics Y • For instance, f3.js can be used by a variety of people but is not designed for people with visual impairment 5/5/2020 Rethinking Programming "Environments" 25

  26. Do-It-Yourself Empowerment as Experienced by Novice Makers with Disabilities Meissner et al., ACM DIS 2017 5/5/2020 Rethinking Programming "Environments" 26

  27. A smart glasses built with a 3D printer and Raspberry Pi to help the father of one of the authors (Keisuke) who acquired dyslexia 5/5/2020 Rethinking Programming "Environments" 27

  28. as a toolkit 5/5/2020 Rethinking Programming "Environments" 28

  29. People with visual impairments teamed up with evangelists to develop smart glasses 5/5/2020 Rethinking Programming "Environments" 29

  30. OTON GLASS case studies 5/5/2020 Rethinking Programming "Environments" 30

  31. An evangelist as part of a programming environment • Social inclusion is a hybrid of technical and social implementations • Programming environment design can be community design • Programming as communication between diverse kinds of people 5/5/2020 Rethinking Programming "Environments" 31

  32. Summary of our social environment design Programming by a community of people • A programing environment consists of not only computational artifacts but also a community of people to collaborate • “People are message - passing objects” [Salon 2020 Day 1] Programming as communication • Unlike tailor- made model, “the programmer” with visual impairment produces ideas and decides what to build • The programming activity inherently involves communication and enables empowerment 5/5/2020 Rethinking Programming "Environments" 32

  33. Rethinking programming “environment” BACKGROUND Programming experience design for development of programs that run in the real world TOWARD CONVIVIAL COMPUTING • Technical environment design for collaborations • Social environment design for more inclusion CONCLUSION 5/5/2020 Rethinking Programming "Environments" 33

  34. Programming Experience (PX) research for convivial computing Programming environments are usually designed exclusively for programmers but should be more inclusive! They can be shared among programmers and users They can be hybrid of people and computational artifacts 5/5/2020 Rethinking Programming "Environments" 34

Recommend


More recommend