70 likes | 174 Views
E Pluribus Unum for end-user programming. Christopher Scaffidi EUSES 2010. Uniting people, uniting code. Previous successes in supporting EUP code reuse and, to a lesser extent, EUP collaboration: AgentSheets CoScripter Forms/3 Matlab Scratch Topes Yahoo pipes
E N D
E Pluribus Unumfor end-user programming Christopher Scaffidi EUSES 2010
Uniting people, uniting code • Previous successes in supporting EUP code reuse and, to a lesser extent, EUP collaboration: • AgentSheets • CoScripter • Forms/3 • Matlab • Scratch • Topes • Yahoo pipes (and probably others that I’m forgetting… no offense intended!)
Several projects underway • High-level question: How to capture and use what programmers learn in order to help other programmers? • Different variants & specializations of this question in different contexts: • Web macros • Spreadsheets • Animations • Java code • Scientific code • Topes • GreaseMonkey scripts Spreadsheets Animations Java code Scientific code
Instructional repositories • Problem: We can’t teach every little programming technique in the classroom. • Idea #1: Automatically generate intelligent tutors (intelligent interactive instructional media) from open-source Java code. • Idea #2: Help programmers (particularly scientists) to share, find and adapt domain-specific Java code. • Some issues (suggestions appreciated): • How to validate effectiveness besides field study? • How to incentivize scientists to share their code (in a useful form)?
Raising adoption of EUP tools in classrooms • Problem: Many teachers are too intimidated by EUP tools to integrate them into the classroom. Excel is a good example. • Idea: Create an Excel “classroom deployment package” based on minimalist learning theory. • Stripped down Excel (all features turned on/off incrementally) • Repository of manuals (written by other teachers) showing how to use Excel for realistic classroom tasks (generalizing Maggie’s work) • Organized by topical domain, grade level, geography, … • Essentially integrating gardening with minimalist learning theory • An issue (suggestions appreciated): • What underlying foundational knowledge would you find interesting as a product of this research?
Understanding and debuggingcode during whitebox reuse • Problem: Users make many mistakes when trying to adapt existing code. Animation code is a good example. • Approach: Integrate a Whyline into Scratch programming tool • So that users can more easily understand what code causes outputs • So that users can debug faults that they observe or create • Some issues (suggestions appreciated): • How can we leverage the “reuse-ness” of this situation? • E.g., if users U1 and U2 both reuse an animation A, can we capture what U1 learns about A from Whyline, then use that knowledge to help U2?
Thank You… • For your questions, thoughts, and constructive feedback… • How to validate new collaborative environments w/o field studies? • How to incentivize participation in such an evaluation (or in real life)? • How can we capture and leverage user experiences and learning? • What new foundational knowledge would you find interesting?