22:21 lessons from walking
fly fishing in the catskills - and writing for kids!
you can learn the most from kids - they haven't internalized the rules yet!
trying counts - throw things at the wall and see what sticks.
teaching is fun - really fun! - and a good way to shoot ideas out and get real answers.
22:25 icfp keynote: emma glassman
program synthesis for teaching large scale courses!
10 usability characteristics: look into them for designing a user interface!
system explores space: identify how many of our programs have been satisfied!
interpretable program synthesis: demonstrate tree of programs explored so far, determine what programs that the system has explored!
program synthesis: not currently designed for end users! nadia polikarpova; who is tech firstt vs design first? hci stigma: heavily design first rather than tech! it's bestgt to focus on the technology, but just as vital to develop technologies that people actually use. PL - what is mathematically possible? How many endpoints can we reach with the math we have? HCI: What are people struggling with? How do we start making it better?
giving users feedback during synthesis! we don't really need to observe synthesis as programmers: if we throw it to the users and ask the users the question, we can use interactions with them to augment the work and improve both the student's learning and the quality of the synthesis! user studies, also, are incredibly important for learning, promotion, and progress.
hci problem: hour long user study doesn't end up studying how ergonomic the tool is to learn - rather, what's tested is whether the tool can be learned by the user in an hour, when tool learnability shouldn't be compressed to that small of a time scale! there's no way to avoid testing the 'learnability' of the system, but you want to demonstrate long-term usefulness!
tests are good for students but not enough - a human teacher has to provide underlying insight to students to help them to continue learning.
Exploring Exploratory Programming