• It’s been a great week at SPLASH A human view of • One of the things I’ve enjoyed most is learning about the many valuable, programming languages diverse perspectives on PL research. Andrew J. Ko, Ph.D. • These perspectives are actually what I want to talk about today. • In particular, I want to talk about how our perspectives on PL shape the PL research we do, and in specifically the research we don’ do. • I’d like to start on a somber note.

Seymour Papert 1928-2016 • died three months ago.

• Did many incredible things for computing Computers as thinking tools • (Read)

Constructionism

Neural networks

One Laptop Per Child • He also impacted generations of impactful researchers, including Terry Winograd Alan Kay (Google, d.school) • Alan Kay of Smalltalk and the Dynabook (OOP, GUIs, Smalltalk) • Terry Winograd who helped spawn Google • Mitch Resnick who helped create Scratch, used by millions to learn to code Mitch Resnick (Lego Mindstorms, Scratch) • We have to step back and ask: where did all of this incredible impact come from?, • Papert wrote about this in the early nineties in his discussion of epistemological pluralism with Sherry Turkle. • His claim was as follows.

• The formal, mathematical view of computing is powerful and necessary The formal, mathematical“ • But it’s not sufficient view of computing is powerful, but insufficient ▶

• (Read) “ …equal access to even • If we want to involve the world in computing, we have to accept the the most basic elements of computation requires multiple ways of knowing and thinking about computing an epistemological pluralism, accepting the validity of multiple ways of knowing and thinking.

Turkle, S., & Papert, S. (1990). Epistemological pluralism: Styles and voices within the computer culture. Signs, 16(1), 128-157. • In this talk, I want to talk about these other ways What are these other views? ? ? • Most of us in this room take a formal view of computing ? ? ? • Papert took a learning view of computing Computing Computing is a • Wha are all of these other ways? is math thinking tool ? ? ? ? ? ?

• I’m not going to take on all of computing in this talk Today’s talk ? ? • Instead, I’m going to take the slightly smaller topic of PL ? ? ? • I want to support the following claims PL is math PL is a thinking tool • (Read claims) • To discover these conceptions of PL, I’m going to do what Papert would do ? ? ? ? ? ?

• I’m not going to take on all of computing in this talk ? ? ? Today’s? talk ? ? • Instead, I’m going to take the slightly smaller topic of PL • I want to support the following claims There are multiple ways to view • (Read claims) programming languages (PL) • To discover these conceptions of PL, I’m going to do what Papert would do These views have a vast potential for discovery • (Should be at 5 minutes) ? ? ? Approach? ? ? Mine my experiences for different views of PL Explore these views as research agendas

• To begin, I want to talk about the first program I ever encountered. Middle school 1992 • I was 12 years old • At the time, I was a typical adolescent: no status, no identity, no control • My only passion was video games, because they gave me purpose • I encountered my first program in a pre-algebra class

• Our teacher had required TI-82 graphing calculators My TI-82 • He showed very little about how to program it other than giving us some trigonometric functions to copy into the program editor • I had a classmate with an older brother who knew all about how to TI Tetris program the thing • He showed us a version of Tetris that rendered on the graph • Tetris was one of my favorite games • I cut out the card to mail order a link cable so I could transfer the program to my device • A month later, I got the cable and the program, and it was a beautiful, functional replica of the Game Boy version that I adored • But, IT WAS UNBEARABLY SLOW

• Disappointed that I couldn't play the game in class, I realized that it was a TI-BASIC program like the ones my teacher had shown us. I pressed edit, and was faced with tens of thousands of lines of conditionals, gotos, variables, all written in TI BASIC. • Here was my first computer program, written in a , but rather than viewing it as gibberish, in this context, it was something very different: it was a form of power that, if I acquired, would allow me to bring my favorite game to school in disguise.

• I got the instruction manual, read it back to back, and learned the The manual language, so I could understand how it expressed the rules of the a game • A month later, I had removed the rules that slowly rendered on the plot and instead rendered vertically on the text console, which was much faster. • I had a playable version of Tetris that I immediately shared with everyone in my class, bringing me fame, respect, and glory (at least in math class) • (And a scolding from the teacher, who suddenly had to outlaw graphing calculators from our class). • TI BASIC was a way for me to exert control over the game, to tell it to behave differently. • Also a way to exert control over the classroom, shifting my peers' attention to a game instead of algebra. PL as power • Throughout middle school, I saw PL as a form of power over my class, my peers, my teachers, and my experiences at school.

• If great power comes great responsibility, what responsibility does If PL is power… knowing a PL bring? and with great power, comes great responsibility… • For example

What responsibilities does knowing PL entail? • Why aren't developers in the U.S. responsible for the failures they cause?

• If power corrupts, how does PL corrupt? If PL is power… • For example, Mark Zuckerburg amassed great power at Facebook by and power corrupts… harnessing the power of programming languages to prototype social

How does PL corrupt? experiences. • He used this to try to reform Newark, New Jersey public schools • Widely considered to have failed miserably, wasting $100 millions by ignoring experts • Perhaps PL provides so much power it blinds people • (Read) If PL is power… • This is President Obama doing an hour of code in D.C. and democracy distributes power… • He announced the CS For All initiative this year, which is attempting to Should democracies distribute PL? bring computing education to every public school in the U.S. • Should we be doing this? If so, how?

Rest of middle school was playing with code (Unflattering photo warning)

• Wow, look at that horrible posture! My playground 1993 • As I finished middle school, I learned, I primarily used my coding skills to create. • And this was my playground.

• I created animations My creations • I created interactive stories • I created games with my friends • I created games for myself • I wrote on my calculator QBasic • Also Quick Basic on my PC • But the language was not the subject of interest

• PL was a way for me to express myself, my ideas, and share them with my friends. • It was a medium.

PL as media

• McLuhan taught us that “the medium is the message” If PL is media… • If this is true, PL shape, bias, and even warp the kinds of programs we and the medium is the message… create

What messages does PL enable? • How can we reason about the these biases on expression? • Do these biases go beyond how programs are written to influence what programs do in society?

Marshall McLuhan • If media determines what can be expressed, how does PL design affect If PL is media… expression? and media facilitates expression • This is Resnick, who created Scratch

How does PL facilitate expression? • Alan Kay, who talked about computing as “Personal Dynamic Media” back in 1976

Mitch Resnick • He’s spent the past decades trying to understand how PL fosters creativity, but also limits it.

• PL was power in middle school High school 1995 • Then is was an expressive medium. • In high school, in transformed again.

• This was my computer lab at West Linn High School. My computer lab • I signed up for a zero period class that started at 7 am. • (Yes, that’s how passionate I was). • There were 8 of us in there, 7 who just came early to play MUDs • The class was taught by a student from the local community college. • He brought his homework in, challenged us to solve it, and then he would submit it in his class. • We were using Pascal, because that's what the 386 PC's had installed • This was my passion: the “Computer Art Club”. My hobby • These were my friends, artists, musicians, and other weirdos who liked to do strange things with computers. • At the time, I was obsessed with 3D rendering and all of the geometry it entails • I had read about a game that was trying to render scenes with ellipses instead of polygons and I was curious if I could do the same.

• My teacher asked what I was up to and I explained that the ellipses were Profiling rendering too slowly to do anything interactive • He suggested I profile it and we found out it my rendering algorithm was spending 95% of its time on square roots • He suggested that I talk to my math teacher to find out if she knew of any ways of computing square roots faster, that maybe I could use instead of the built in Pascal library

• Now, my teacher, Mrs. Hudson, was no regular teacher Mrs. Hudson • She had a Ph.D. in Math from Texas • She didn’t know any algorithms, but she did dig up a fascinating book on the history of Greek methods for computation from 1920's • Through interlibrary loan, the little book showed up, she gave it to me bursting with excitement, and I dashed home to read it. EXTRACTION OF THE SQUARE ROOT 61 62 GREEK NUMERICAL NOTATION 62 GREEK NUMERICAL NOTATION

Eucl. II. 4. The highest possible denomination (i.e. power

- - 2 less than - , which is at the same time greater than less than - , which is at the same time greater than —— or ' s —— or ' s of 10) in the square root is 10 ; 10 subtracted from 144 leaves • Inside was everything I wanted: square roots, cube roots, nth roots, a 2.67 67 2.67 67 of 44, and this must contain, not only twice the product 10 4. On trial it turns out that 4 will satisfy the conditions of 4. On trial it turns out that 4 will satisfy the conditions of 2 2 and the next term of the square root, but also the square of / 4 \ / 4 \ -- -- the problem, namely that ( 67 + ) must be less than 4500, the problem, namely that ( 67 + ) must be less than 4500, the next term itself. Now twice 1.10 itself produces 20, and A Historythe division of 44 by 20 suggestsof2 as Greekthe next term of the Mathematicsso that a remainder will be left by means of which y can be so that a remainder will be left by means of which y can be square root ; this turns out to be the exact figure required, since found. found. 2.20 + 2 2 = 44. 2 2 whole bunch of algorithms for optimizing root computation. 2.67.4 / 4 \ 2.67.4 / 4 \ 1 1 Now this remainder is 1 — ( ) j and this is Now this remainder is 1 — ( ) j and this is The same procedure is illustrated by Theon's explanation 60 ^60/— 60 ^60/— of Ptolemy's method of extracting square roots according to 2 2 equal to 11 . 60 -2 . 67 . 4 . 60-16 7424 equal to 11 . 60 -2 . 67 . 4 . 60-16 7424 01 01 the sexagesimal system of fractions. The problem is to find ~602~ * ~t¥" ~602~ * ~t¥" approximately the square root of 4500 fioipoa or degrees, and

-\ -~ -\ -~ Thus we must suppose that 2 (67 j approximates to Thus we must suppose that 2 (67 j•approximatesButto the notation in this 1920's book was far from Pascal, and far from even K -7424 -7424 67° 4' 55" ^z > or that 8048^/ is approximately equal to 7424.60. ^z > or that 8048^/ is approximately equal to 7424.60.

Therefore y is approximately equal to 55. Therefore y is approximately equal to 55. 2 2 / 4 \ 55 /55 \ / 4 \ 55 /55 \ We have then to subtract 2(67H ) „ + » or We have then to subtract 2(67H ) „ + » or 67 4489 —2 (^^)2 —2 (^^)2 268' b V 60/ 60 \60 / V 60/ 60 \60 / „ .. . . „ .. . . 442640 3025 , 7424 , 3 442640 3025 , 7424 , 3 H ' irom the - found. H ' irom the - found. —^i -zr^r4 remainder above —^i -zr^r4 remainder above math. It was its own notation for computation, a mixture of math, natural — 2 — 2 00 60" 60 60 60" 60 60 00 CD ,, ,. „ 442640, 7424 . 2800 46 40 ,, ,. „ 442640, 7424 . 2800 46 40 F CO ™ ™ The subtraction of from gives or + ; The subtraction of from gives or + ; -^- _ -^ — —3 -^- _ -^ — —3 4-' 268' 16 but Theon does not go further and subtract the remaining but Theon does not go further and subtract the remaining H "' L 55" 3688" 40 —-4- ; he merely remarks that the square of -— approximates —-4- ; he merely remarks that the square of -— approximates 2 2 language, and other invented symbols.

to —^ + —To. As a matter of fact, if we deduct the „. from to —^ + —To. As a matter of fact, if we deduct the „. from 60 2 60 3 60 4 60 2 60 3 60 4 a geometrical figure is used which proves beyond doubt the

essentially Euclidean basis of the whole method. The follow- — , so as to obtain the correct remainder, it is found — , so as to obtain the correct remainder, it is found 60*— ' 60*— ' ing arithmetical representation of the purport of the passage, , 164975 , 164975 when looked at in the light of the figure, will make the tobe "60\- tobe "60\- • Translating from the book's programming language to Pascal required me matter clear. Ptolemy has first found the integral part of s plan does not conveniently, so far as the s plan does not conveniently, so far as the 2 Theon' work Theon' work 7(4500) to be 67. Now 67 = 4489, so that the remainder is determination of the first fractional term (the first-sixtieths) determination of the first fractional term (the first-sixtieths) 1 1 . Suppose now that the rest of the square root is expressed is concerned, unless the integral term in the square root is is concerned, unless the integral term in the square root is by means of sexagesimal fractions, and that we may therefore 9 9 X / 0C \" X / 0C \" ( -*— ( -*— write large relatively to—- ; if this is not the case, the term j is large relatively to—- ; if this is not the case, the term j is

-^- 6 7 , comparatively negligible, and the tentative ascertainment comparatively negligible, and the tentative ascertainment 7(4500)=v ; + — + not not to learn a new language to a level of depth that I could understand its 60 60 2 of x is more difficult. Take the case of Vs, the value of which, of x is more difficult. Take the case of Vs, the value of which, where x, y are yet to be found. Thus x must be such that 43 55 23 43 55 23 in Ptolemy's Table of Chords, is equal to 1 -\ 1 n -\ »• in Ptolemy's Table of Chords, is equal to 1 -\ 1 n -\ »• J ' ^ 2 60-3 J ' ^ 2 60-3 2 . 67x/60 is somewhat less than 11, or x must be somewhat 60 60 60 semantics.60 • I eventually translated the algorithm and greatly accelerated my ellipse rendering.

• Notations for modeling abstract ideas, like the rules of Tetris, or the PL as notation concept of roots • This view of PL as notations for modeling has many implications

• What can’t our PL model? If PL is notation… • For example, how close can abstract logic get to representing the and notations model reality dynamics of trade?

What can’t PL model? • Do we need a different type of logic to model this? • Are there kinds of information that simply can’t reduced to 1’s and 0’s? If PL is notation… and notations help share information…

What info can’t PL share?

• There’s nothing about syntax and semantics that is “natural” • What about these language design choices affect how we learn these notations? If PL is notation… and notations must be learned…

What makes a PL learnable?

• After five years of obsession with code and art CS @ Oregon State University 1998 • I found myself in college as a CS major. • (I was also a Psychology major) • PL was power, it was was media, it was notation • I was eager to discover what else PL might be • My mentor Margaret Burnett was the one who taught me. Margaret Burnett • I met Margaret after seeing a flyer for an undergraduate RA position in the hallway • It paid (almost) as much as the other summer job, and made a good pitch for the life of a professor • I was sold. • Not only did she taught me how to do research about PL • But she also taught my PL course

* She framed it as a tour through a dozen languages PL parade * Dissecting the tradeoffs of all of the different design choices they make. * We wrote the same programs a dozen times over, understanding the design space * She helped me see that PLs come from people. They design them.

• And as designs, each design has • tradeoffs • flaws • principles PL as designs • values • priorities • A whole process and set of people behind these decisions. • How do we model this tradeoff space? If PL are designs… • Which qualities trade off with one another? and designs require tradeoffs… • What parts of the design space have we not explored?

What tradeoffs do PLs make?

• This is a picture of David Kelly teaching a class the d.school at Stanford If PL are designs… • He teaches a process and designs comes from process… • When we teach our graduate students to design programming languages,

What is “good” PL design process? what process do we teach them?

• Is it enough to jot down a sketch of a program in a syntax? If PL are designs… • Or do we need to be able to execute sketches? and design requires prototyping… • If it was trivial to prototype a PL, how would that transform our discoveries

How can we rapidly prototype PL? of new PL? • Why don’t we have a formal semantics of beauty, parsimony, brevity? If PL are designs… and design leverages aesthetics…

What are PL aesthetics?

• My time at Oregon State with Margaret introduced me to HCI, and the PL. The HCI Institute 2002 • But my passions in design and human behavior were equally strong. • The HCI Institute at Carnegie Mellon was a natural place to get my Ph.D. • I brought my curiosity about design, expression, notation, and power, and hoped to find yet more ways of seeing PL.

• And I did, thanks to several mentors. Building Virtual Words Brad Myers • I was advised by Brad Myers, who had been working on the foundations of user interface toolkits • And I also spent time with the late Randy Pausch, who had worked on Randy Pausch Alice and ran an incredibly fun interdisciplinary course, Building Virtual Worlds • Brad had encouraged me to study the programming happening in the course, to find interesting problems to solve • While I expected to see expression, most of what I saw was usability Debugging Alice breakdown after usability breakdown • Students expressed what they wanted, but never got it quite right, leading to hours and hours of unproductive tweaking and debugging • From my HCI-lens, the students' lack of understanding of the semantics of the language, and their inability to see those semantics execute, were fundamental user interface problems.

• This view was inevitable, and not only because I was an institute primarily PL as interface concerned with interface. • It was because computers, and programming languages in particular, were the first interface to computers. It’s how we operated them. • This view of PL as interface has many implications.

• Andy Stefik has recently been doing some fantastic work in this area If PL are interfaces… • For example, he’s found that and interfaces must be usable • Statically typed languages reduce debugging time

How do we make PL usable? • Transactional memory prevents synchronization bugs • Notations used greatly impact novice learning

Andy Stefik • Inheritance depth doesn’t impact maintenance effort • He’s embodied these and other discoveries into the design of Quorum, a language that aims to be the most accessible and usable language ever invented. • What makes a good error message? If PL are interfaces… • One of my Ph.D. students did a great study a few years ago that found that and interfaces must provide feedback just by using personal pronouns like “I” and “We” made novices read error

What feedback must PL provide? messages more closely.

• Is Stack Overflow really the best we can do? If PL are interfaces… • Are a bunch of examples really good enough? and interfaces convey what’s possible • Why can’t we provide much richer, more robust articulations of what’s How can PL convey what’s possible? possible with a programming language? • But also what’s not possible

• Now, you might be wondering: why haven’t I talked about the formal, ICSE 2006 logical view of PL that we all use in this room? • That’s because I didn’t encounter it until I started coming to conferences like SPLASH, ICSE, and FSE. • This is me at my first ICSE, four years in to my Ph.D., after several years of publishing exclusively at HCI conferences. • I must say, this was a shock. I’d spent my whole life thinking of PL as interface, as media, as designs, as notation, and as power. • And here was a community, our community here in fact, that viewed PL as math. • Now, I realize ICSE is not really the home of PL as math (that would be PL as math PLDI or POPL) • But back in 2006, a large proportion of the work was formal methods, with only a tiny fraction of empirical work. • In most of these papers, programs weren’t expression, they were propositions • This was the “computing culture” that Papert had talked above. • And what I learned was that PL as math had many implications that most people in the room already know.

• This is basically much of the history of PL and If PL is math… research. and math has correctness

What does PL correctness mean?

• This is expressed in research on proof assistants like Coq, which leverage If PL is math… the Curry-Howard correspondence and math can be proven correct

How do we prove programs correct? • This is the history of theory of computation, with its focus on complexity If PL is math… equivalence, problem equivalence and math concerns identity

What in PL is equivalent?

• My last stop was the Information School UW iSchool 2008–present • It is an exceptionally interdisciplinary place • Nothing more has stretched my epistemological stance, my understanding of knowledge, and my perspectives on PL. • Here are some of the many perspectives I’ve encountered.

• What if programming languages are like natural languages, which are PL as language about exchange?

Do PL have ambiguities? • This is, after all, why we use words such as “syntax”, “grammar”, and Do PL shape how we computationally think? “semantics” to specify their rules. • Do they follow the same evolutionary patterns as natural languages? • What kind of ambiguities do PL have? • Sapir-Whorf hypothesis: does PL determine how we computationally think? • We "tell" a computer what to do with PL PL as communication • So what if PL is communication?

Should PL model developer intent? • Communication, which is about understanding and common ground Should PL express intent to developers? • What should PL do to verify developer intent? • What should PL do to express it’s intent to developers?

• Four years ago I co-founded a startup called AnswerDash and spent 3 PL as glue years as its CTO and lead engineer.

What makes PL a good adhesive? • In my time as a developer, it was hard to think of PL as anything more than What materials do PL adhere to? glue between APIs, frameworks, libraries, and platforms. • Languages just weren’t that useful for routine web applications for which there was already so much built. We didn’t use much more than function calls and conditionals. • So perhaps PL is just glue, which is about connection. • What makes PL a good adhesive? • What materials do certain PLs adhere to better?

• In software engineering, programs are often agreements between parties PL as legalese about what an application must, should, and must not do. • If programs are contracts, than programming languages “legalese”, the Who should interpret code legally? Are programmers lawyers? formal and technical language of legal documents, which are essentially about promises. • If this is true • Who should legally interpret code? • Are programmers lawyers? • We can view programs as conduits for information, funneling, filtering, and PL as infrastructure distributing data that ultimately has meaning

How do PL decay? • If we build roads with concrete and nails How should we maintain PL? Is PL a public good? • We build information systems with programming languages • If programs do the transmission, than programming languages are information infrastructure, creating the shared systems that allow society to operate • How do PL decay? • How should we maintain PL? • Is PL a public good?

• Here’s my most recent perspective. UW Upward Bound 2016 • I taught a class of 11 south high school students this past summer while I was on sabbatical. • Few of them had ever encountered code, or had any interest in learning to code • But they were in my web design course nonetheless, because many of them would rather take that then ballroom dance in their summer college prep curriculum.

• I asked them, what is a programming language? “What’s a PL?” • One of them said, "A way out of poverty" • Now, that definition is clearly pretty far from the ones we've discussed so far, but let’s consider it. • In this way, programming languages are a path from poverty PL is a path out of poverty • This notion of PL was entirely reasonable • In her world, • Surrounded by Seattle software companies, • By wealthy Bay Area entrepreneurs in the news • By constant non-profit advocacy as learning to code • And as teens with parents who did not finish high school • In fact, this view may actually be the most dominant view of PL in the world today • And given this, there are many important implications:

• The world is beginning to answer these questions If PL is path… • Rise of MOOCs that only reach the privileged and governments create paths from poverty • Coding bootcamps that again only reach the privileged

Should our governments create these paths? • The White House’s CS for All • Britain’s CS For All for K-12 CS education

• Should it be the obligation of PL designers to make PL accessible? If PL is path… • If governments fund PL as infrastructure, should this funding be contingent and paths must be equitable on accessibility, as is law in government IT projects?

How do we make PL equitable? • In today’s world, we don’t really choose If PL is path… • We let our culture determine interest and paths can only fit so many people • We let our ideas exclude

Who should be led down it? • How do we choose? • Is their innate aptitude to code? • Can everyone learn? • By what principles to we selectively encourage, especially in the context of universal access to computing education. • Or, perhaps everyone can be on this path, because everyone will be doing some kind of programming.

Definition • Across the past 17 years of research, it is clear to me now that all of these PL is math PL is interface views of PL have value. PL is design PL is notation • They were productive in my life PL is media PL is power • They were productive in my research. PL is language PL is communication • But also that each view had values PL is glue PL is legalese PL is infrastructure PL is path

Definition → Value • Each of these fundamentally prioritizes different human values PL is math → certainty PL is interface → efficiency • (Read examples) PL is design → utility PL is notation → sharing • Inside each of these values, however, is also a research agenda. PL is media → expression PL is power → control • And each of these research agendas therefore expresses a different value PL is language → exchange PL is communication → understanding PL is glue → connection PL is legalese → promise PL is infrastructure → fellowship PL is path → equity Definition → Value # Discoveries (my impression) • This is my impression of the number of discoveries that explore these PL is math → certainty PL is interface → efficiency perspectives PL is design → utility PL is notation → sharing • Some of these agendas are already deeply explored PL is media → expression PL is power → control • Others, particular those that probe the human, social, societal, and ethical PL is language → exchange PL is communication → understanding dimensions of programming languages, are hardly explored at all. PL is glue → connection PL is legalese → promise • If we look at these as a space of values… PL is infrastructure → fellowship PL is path → equity

• We can see that some are about computing and some are about people Values • And we’ve spent most of our time understanding computing expression promise • How do we investigate all of these other values? utility understanding fellowship certainty sharing exchange equity efficiency connection control

• I’ll give three examples from my own work to illustrate Three examples

expression promise utility understanding fellowship certainty sharing exchange equity efficiency connection control • I’ll start with one of my earlier attempts from my dissertation work PL as communication understanding • I started with the idea that programming languages are ways that we tell computers what to do. • But after they do something, we also inquire why they did what they do

• Research question: how can we interrogate program behavior? PL as communication

How can we interrogate program behavior?

• This led to my early work on the Whyline for Alice, where novices could PL as communication ask “why” questions about program behavior • Dramatic acceleration of debugging times How can we interrogate program behavior?

Whyline for Alice 2004 (novices debug 8x faster) • And then Whyline for Java, which showed how the work could scale to PL as communication large Java programs and accelerate expert developers’ debugging

How can we interrogate program behavior?

Whyline for Java 2008 (experts debug 2x faster)

• This led to my Ph.D. student Brian Burg’s work on Timelapse and Scry PL as communication • Time-travel debugging and reverse engineering Timelapse + Scry 2015 (time-travel debugging + How can we interrogate program behavior? reverse engineering)

• He joined Apple and has begun upstreaming much of this to WebKit • Bringing this back to values • This means millions of developers will better understand how browsers are executing code.

understanding

• Another perspective, this time from the perspective of notation, which PL as notation exchange focuses on the value of exchange

• The question I investigated was ultimately about readability PL as notation

How we make programs readable? • One project about 10 years ago looked at how to render code to be more PL as notation readable

How we make programs readable?

Barista 2006 Code as rich text

• Another project at the same time with Michael Coblenz (who’s now a Jasper 2006 Views on concerns Ph.D. student at Carnegie Mellon) looked at how to make cross-cutting concerns readable How we make programs readable?

• Most recently, my students Greg Nelson and Benji Xie are looking at how PLTutor 2016 Learn to read a PL to teach people how to read programming language notations in 3-5 hours in hours • Idea is to rapidly teach the operational semantics of a PL, ensuring learners How we make programs readable? can reliably predict the behavior of each of it’s execution rules • In preliminary work, can teach a PL in 3-5 hours to a rank novice • Our work on programming language tutors is only just beginning. • Many of these ideas about reading code have made it into widely used programming and debugging tools • This transfer has led to each of these environments embracing a value of exchange exchange, ensuring that programming is framed not just as a writing task, but a reading task as well

• Another perspective, this time from the perspective of power PL as power control • This was led by my student Michael Lee

• Mike wondered: what effect does the power relationship have? PL as power • Most frame an authoritative relationship, telling the learner what they’ve done wrong What effect does the power relationship between a novice • Creates a dynamic of constant failure and a have on learning? • This led to a game called Gidget, which framed the compiler as a reliable Gidget 2012 but unintelligent collaborator, placing the learner in the role as creative problem solver. What effect does the power relationship between a novice and a compiler have on learning?

• This led to a series of studies that showed that very subtle design choices 2x faster learning about error messages, data representation, and assessment have very 2x more engagement powerful effects on learning and engagement.

• Mike deployed the game, reaching more than 10,000 learners 2x faster learning helpgidget.org 2015 10,000+ learners age 8-80 2x more engagement • Code.org incorporated these design principles helpgidget.org 10,000+ learners

10 million learners

• And, in turn, these 10 million learners have a deeper sense of control over their ability to shape computer behavior though code.

10 million learners control

Definition → Value # Discoveries • Work like this is changing the distribution of what we know PL is math → certainty PL is interface → efficiency • But it’s also changing the values that the work disseminates to the world PL is design → utility PL is notation → sharing • And this new values are engaging new people in computing, computer PL is media → expression PL is power → control science, and computer science research PL as language → exchange PL as communication → understanding • This, in turn, is changing the values of our research community PL as glue → connection PL as legalese → promise • These are good things, but it begs several important questions PL as infrastructure → fellowship PL as path → equity Definition → Value • What should the distribution be? PL is math → certainty Communication PL is interface → efficiency • Who should be doing this research? CS PL is design → utility Psychology PL is notation → sharing • Will this research happen if we don’t explicitly embrace it as a community? PL is media → expression Sociology PL is power → control • Here’s where we have these conversations PL as language → exchange Economics PL as communication → understanding ? PL as glue → connection Information Science PL as legalese → promise PL as infrastructure → fellowship Design PL as path → equity

• Here’s what I think • As a discipline, CS doesn’t have Communication • (Read) to explore all of these views. CS Psychology

• But CS should encourage the • How can we do this? exploration of these views, Sociology supporting and collaborating with other disciplines. Economics • And to equitably engage ? everyone, CS does have to Information Science embrace these views, showing that CS is more than logic. Design

• Are their views that draw upon expertise and skills that you have? When choosing a new question

Consider a new view of PL • What epistemology are you using? When writing a paper • Perhaps you’re using multiple distinct epistemologies?

Be explicit about your views of PL

• Recognize that each view demands different methods, different theories, When reviewing a paper and ultimately, different epistemologies

Evaluate it against the paper’s view of PL, not yours

• Be pluralistic in your claims about truth When teaching PL • Expose students to these views

Explain multiple views on PL • Be explicit about which views you subscribe to

Shriram Krishnamurthi • If we do these things, we'll not only approach the inclusive computing PL is math PL is interface culture that Papert dreamt of PL is design PL is notation • But we’ll also create a more inclusive world in general, in which everyone's PL is media PL is power perspectives, everyone’s values on computation is reflected in our work, PL as language PL as communication and in our society. PL as glue PL as legalese • Thank you. PL as infrastructure PL as path