SPLASH Keynote.Key

Total Page:16

File Type:pdf, Size:1020Kb

SPLASH Keynote.Key • 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’t do. • I’d like to start on a somber note. Seymour Papert 1928-2016 • Seymour Papert 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 programming language, 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 software 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 computer science 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.
Recommended publications
  • Compiler Error Messages Considered Unhelpful: the Landscape of Text-Based Programming Error Message Research
    Working Group Report ITiCSE-WGR ’19, July 15–17, 2019, Aberdeen, Scotland Uk Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research Brett A. Becker∗ Paul Denny∗ Raymond Pettit∗ University College Dublin University of Auckland University of Virginia Dublin, Ireland Auckland, New Zealand Charlottesville, Virginia, USA [email protected] [email protected] [email protected] Durell Bouchard Dennis J. Bouvier Brian Harrington Roanoke College Southern Illinois University Edwardsville University of Toronto Scarborough Roanoke, Virgina, USA Edwardsville, Illinois, USA Scarborough, Ontario, Canada [email protected] [email protected] [email protected] Amir Kamil Amey Karkare Chris McDonald University of Michigan Indian Institute of Technology Kanpur University of Western Australia Ann Arbor, Michigan, USA Kanpur, India Perth, Australia [email protected] [email protected] [email protected] Peter-Michael Osera Janice L. Pearce James Prather Grinnell College Berea College Abilene Christian University Grinnell, Iowa, USA Berea, Kentucky, USA Abilene, Texas, USA [email protected] [email protected] [email protected] ABSTRACT of evidence supporting each one (historical, anecdotal, and empiri- Diagnostic messages generated by compilers and interpreters such cal). This work can serve as a starting point for those who wish to as syntax error messages have been researched for over half of a conduct research on compiler error messages, runtime errors, and century. Unfortunately, these messages which include error, warn- warnings. We also make the bibtex file of our 300+ reference corpus ing, and run-time messages, present substantial difficulty and could publicly available.
    [Show full text]
  • Panel: NSF-Sponsored Innovative Approaches to Undergraduate Computer Science
    Panel: NSF-Sponsored Innovative Approaches to Undergraduate Computer Science Stephen Bloch (Adelphi University) Amruth Kumar (Ramapo College) Stanislav Kurkovsky (Central CT State University) Clif Kussmaul (Muhlenberg College) Matt Dickerson (Middlebury College), moderator Project Web site(s) Intervention Delivery Supervision Program http://programbydesign.org curriculum with supporting in class; software normally active, but can be by Design http://picturingprograms.org IDE, libraries, & texts and textbook are done other ways Stephen Bloch http://www.ccs.neu.edu/home/ free downloads matthias/HtDP2e/ or web-based NSF awards 0010064 http://racket-lang.org & 0618543 http://wescheme.org Problets http://www.problets.org in- or after-class problem- applet in none - teacher not needed, Amruth Kumar solving exercises on a browser although some adopters use programming concepts it in active mode too NSF award 0817187 Mobile Game http://www.mgdcs.com/ in-class or take-home PC passive - teacher as Development programming projects facilitator to answer Qs Stan Kurkovsky NSF award DUE-0941348 POGIL http://pogil.org in-class activity paper or web passive - teacher as Clif Kussmaul http://cspogil.org facilitator to answer Qs NSF award TUES 1044679 Project Course(s) Language(s) Focus Program Middle school, Usually Scheme-like teaching problem-solving process, by pre-AP CS in HS, languages leading into Java; particularly test-driven DesignStephen CS0, CS1, CS2 has also been done in Python, development and use of data Bloch in college ML, Java, Scala, ... types to guide coding & testing Problets AP-CS, CS I, CS 2. C, C++, Java, C# code tracing, debugging, Amruth Kumar also as refresher or expression evaluation, to switch languages predicting program state in other courses Mobile Game AP-CS, CS1, CS2 Java core OO programming; DevelopmentSt intro to advanced subjects an Kurkovsky such as AI, networks, security POGILClif CS1, CS2, SE, etc.
    [Show full text]
  • Sparking Economic Growth Report Published by the Science Coalition
    A selection of American innovation success stories made possible by federally funded research VOLUME 3 • APRIL 2017 sciencecoalition.org COVER PHOTOS CLOCKWISE FROM TOP: Epicrop Technologies co-founder Sally Mackenzie (photo courtesy of University of Nebraska; Tableau Software (photo courtesy of Stanford University); M3 Biotechnology co-founder Joe Harding and CEO Leen Kawas (photo courtesy of Washington State University); technology in development for NASA’s Green Propellant Infusion Mission (photo courtesy of Ball Aerospace) About this Report This is the third Sparking Economic Growth report published by The Science Coalition. Each volume of the report has highlighted a different set of companies created from federally funded university research, totaling 302 companies to date. The reports are intended to showcase one of the ways that federal investment in basic scientific research helps stimulate the economy. All three reports and a database of companies are available at www.sciencecoalition.org/successstories. All Sparking Economic Growth companies were self-selected by the member universities of The Science Coalition and are illustrative of the many companies that result from federally funded university research. Additionally, the funding amounts cited in this report and accompanying database were provided by the university affiliated with the particular company and should be considered estimates. The information about these companies was collected throughout 2016. The Science Coalition is a non-profit, nonpartisan organization of leading public and private U.S. research universities. Its mission is to sustain strong federal funding of basic scientific research as a means to stimulate the economy, spur innovation and drive America’s global competitiveness. Learn more about The Science Coalition at www.sciencecoalition.org.
    [Show full text]
  • The Next 700 Semantics: a Research Challenge Shriram Krishnamurthi Brown University [email protected] Benjamin S
    The Next 700 Semantics: A Research Challenge Shriram Krishnamurthi Brown University [email protected] Benjamin S. Lerner Northeastern University [email protected] Liam Elberty Unaffiliated Abstract Modern systems consist of large numbers of languages, frameworks, libraries, APIs, and more. Each has characteristic behavior and data. Capturing these in semantics is valuable not only for understanding them but also essential for formal treatment (such as proofs). Unfortunately, most of these systems are defined primarily through implementations, which means the semantics needs to be learned. We describe the problem of learning a semantics, provide a structuring process that is of potential value, and also outline our failed attempts at achieving this so far. 2012 ACM Subject Classification Software and its engineering → General programming languages; Software and its engineering → Language features; Software and its engineering → Semantics; Software and its engineering → Formal language definitions Keywords and phrases Programming languages, desugaring, semantics, testing Digital Object Identifier 10.4230/LIPIcs.SNAPL.2019.9 Funding This work was partially supported by the US National Science Foundation and Brown University while all authors were at Brown University. Acknowledgements The authors thank Eugene Charniak and Kevin Knight for useful conversations. The reviewers provided useful feedback that improved the presentation. © Shriram Krishnamurthi and Benjamin S. Lerner and Liam Elberty; licensed under Creative Commons License CC-BY 3rd Summit on Advances in Programming Languages (SNAPL 2019). Editors: Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi; Article No. 9; pp. 9:1–9:14 Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany 9:2 The Next 700 Semantics: A Research Challenge 1 Motivation Semantics is central to the trade of programming language researchers and practitioners.
    [Show full text]
  • Proceedings of the 8Th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (Ed.) Sponsors
    Proceedings of the 8th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (ed.) Sponsors We gratefully acknowledge the support given to the 8th European Lisp Symposium by the following sponsors: WWWLISPWORKSCOM i Organization Programme Committee Julian Padget – University of Bath, UK (chair) Giuseppe Attardi — University of Pisa, Italy Sacha Chua — Toronto, Canada Stephen Eglen — University of Cambridge, UK Marc Feeley — University of Montreal, Canada Matthew Flatt — University of Utah, USA Rainer Joswig — Hamburg, Germany Nick Levine — RavenPack, Spain Henry Lieberman — MIT, USA Christian Queinnec — University Pierre et Marie Curie, Paris 6, France Robert Strandh — University of Bordeaux, France Edmund Weitz — University of Applied Sciences, Hamburg, Germany Local Organization Christophe Rhodes – Goldsmiths, University of London, UK (chair) Richard Lewis – Goldsmiths, University of London, UK Shivi Hotwani – Goldsmiths, University of London, UK Didier Verna – EPITA Research and Development Laboratory, France ii Contents Acknowledgments i Messages from the chairs v Invited contributions Quicklisp: On Beyond Beta 2 Zach Beane µKanren: Running the Little Things Backwards 3 Bodil Stokke Escaping the Heap 4 Ahmon Dancy Unwanted Memory Retention 5 Martin Cracauer Peer-reviewed papers Efficient Applicative Programming Environments for Computer Vision Applications 7 Benjamin Seppke and Leonie Dreschler-Fischer Keyboard? How quaint. Visual Dataflow Implemented in Lisp 15 Donald Fisk P2R: Implementation of
    [Show full text]
  • Application and Interpretation
    Programming Languages: Application and Interpretation Shriram Krishnamurthi Brown University Copyright c 2003, Shriram Krishnamurthi This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License. If you create a derivative work, please include the version information below in your attribution. This book is available free-of-cost from the author’s Web site. This version was generated on 2007-04-26. ii Preface The book is the textbook for the programming languages course at Brown University, which is taken pri- marily by third and fourth year undergraduates and beginning graduate (both MS and PhD) students. It seems very accessible to smart second year students too, and indeed those are some of my most successful students. The book has been used at over a dozen other universities as a primary or secondary text. The book’s material is worth one undergraduate course worth of credit. This book is the fruit of a vision for teaching programming languages by integrating the “two cultures” that have evolved in its pedagogy. One culture is based on interpreters, while the other emphasizes a survey of languages. Each approach has significant advantages but also huge drawbacks. The interpreter method writes programs to learn concepts, and has its heart the fundamental belief that by teaching the computer to execute a concept we more thoroughly learn it ourselves. While this reasoning is internally consistent, it fails to recognize that understanding definitions does not imply we understand consequences of those definitions. For instance, the difference between strict and lazy evaluation, or between static and dynamic scope, is only a few lines of interpreter code, but the consequences of these choices is enormous.
    [Show full text]
  • Programming Languages As Operating Systems (Or Revenge of the Son of the Lisp Machine)
    Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine) Matthew Flatt Robert Bruce Findler Shriram Krishnamurthi Matthias Felleisen Department of Computer Science∗ Rice University Houston, Texas 77005-1892 Abstract reclaim the program’s resources—even though the program and DrScheme share a single virtual machine. The MrEd virtual machine serves both as the implementa- To address this problem, MrEd provides a small set of tion platform for the DrScheme programming environment, new language constructs. These constructs allow a program- and as the underlying Scheme engine for executing expres- running program, such as DrScheme, to run nested programs sions and programs entered into DrScheme’s read-eval-print directly on the MrEd virtual machine without sacrificing loop. We describe the key elements of the MrEd virtual control over the nested programs. As a result, DrScheme machine for building a programming environment, and we can execute a copy of DrScheme that is executing its own step through the implementation of a miniature version of copy of DrScheme (see Figure 1). The inner and middle DrScheme in MrEd. More generally, we show how MrEd de- DrSchemes cannot interfere with the operation of the outer fines a high-level operating system for graphical programs. DrScheme, and the middle DrScheme cannot interfere with the outer DrScheme’s control over the inner DrScheme. 1 MrEd: A Scheme Machine In this paper, we describe the key elements of the MrEd virtual machine, and we step through the implementation The DrScheme programming environment [10] provides stu- of a miniature version of DrScheme in MrEd.
    [Show full text]
  • 35 Years of Supporting Innovation 2015/2016 REPORT CEO’S Message
    35 Years of Supporting Innovation 2015/2016 REPORT CEO’s Message Table of Contents Marking Washington Research Foundation’s 35th anniversary is a good opportunity to reflect on the depth of talent in our state and the importance of the work that we support. Grant Programs 1 We’ve had the privilege of working with Dr. Benjamin Hall [profile on page 2], whose yeast technology has improved Dr. Benjamin D. Hall Profile 2 the health of more than a billion people worldwide. We’ve supported some of the most exceptional young minds in the country through our partnership with the ARCS Foundation [see page 1]. We’ve given grants and made venture Grant Profiles 4 investments in some of the most innovative projects and startup companies to come out of our local, world-class research WRF Capital 8 institutions. Our focus on research in Washington means that we focus on some of the best researchers in the world. Tom Cable, Bill Gates Sr. and Hunter Simpson recognized this when they founded WRF in 1981. It was clear to Portfolio Company Profiles 9 them that the University of Washington and other local institutions were creating valuable intellectual property with the WRF Venture Center and potential to benefit the public and provide much-needed revenue for additional research. At the time, UW had neither WRF Research Services 12 the resources nor expertise to successfully license its inventions. WRF was created to fill that gap. Our activities have since expanded, and despite a lack of precedence to predict success, coupled with some lean early years, we Staff 13 have now earned more than $436 million in licensing revenue for the University of Washington and disbursed over Board of Directors 14 $66 million in grants to research institutions throughout the state.
    [Show full text]
  • A Python Implementation for Racket
    PyonR: A Python Implementation for Racket Pedro Alexandre Henriques Palma Ramos Thesis to obtain the Master of Science Degree in Information Systems and Computer Engineering Supervisor: António Paulo Teles de Menezes Correia Leitão Examination Committee Chairperson: Prof. Dr. José Manuel da Costa Alves Marques Supervisor: Prof. Dr. António Paulo Teles de Menezes Correia Leitão Member of the Committee: Prof. Dr. João Coelho Garcia October 2014 ii Agradecimentos Agradec¸o... Em primeiro lugar ao Prof. Antonio´ Leitao,˜ por me ter dado a oportunidade de participar no projecto Rosetta com esta tese de mestrado, por todos os sabios´ conselhos e pelos momentos de discussao˜ e elucidac¸ao˜ que se proporcionaram ao longo deste trabalho. Aos meus pais excepcionais e a` minha mana preferida, por me terem aturado e suportado ao longo destes quase 23 anos e sobretudo pelo incondicional apoio durante estes 5 anos de formac¸ao˜ superior. Ao pessoal do Grupo de Arquitectura e Computac¸ao˜ (Hugo Correia, Sara Proenc¸a, Francisco Freire, Pedro Alfaiate, Bruno Ferreira, Guilherme Ferreira, Inesˆ Caetano e Carmo Cardoso), por todas as sug- estoes˜ e pelo inestimavel´ feedback em artigos e apresentac¸oes.˜ Aos amigos em Tomar (Rodrigo Carrao,˜ Hugo Matos, Andre´ Marques e Rui Santos) e em Lisboa (Diogo da Silva, Nuno Silva, Pedro Engana, Kaguedes, Clara Paiva e Odemira), por terem estado pre- sentes, duma forma ou doutra, nos essenciais momentos de lazer. A` Fundac¸ao˜ para a Cienciaˆ e Tecnologia (FCT) e ao INESC-ID pelo financiamento e acolhimento atraves´ da atribuic¸ao˜ de uma bolsa de investigac¸ao˜ no ambitoˆ dos contratos Pest-OE/EEI/LA0021/2013 e PTDC/ATP-AQI/5224/2012.
    [Show full text]
  • Extensible Type-Directed Editing
    Extensible Type-Directed Editing Joomy Korkut David Thrane Christiansen Wesleyan University Galois, Inc. Middletown, Connecticut, USA Portland, Oregon, USA [email protected] [email protected] Abstract their respective compilers, and skill in dependently typed Dependently typed programming languages, such as Idris programming does not imply the ability to extend the im- and Agda, feature rich interactive environments that use plementation of dependently typed languages and maintain informative types to assist users with the construction of those extensions so that they continue to work as compilers programs. However, these environments have been provided are improved. by the authors of the language, and users have not had an The Idris elaborator [7] translates programs written in easy way to extend and customize them. We address this Idris into a smaller core type theory, called TT. The elab- problem by extending Idris’s metaprogramming facilities orator is written in Haskell, making use of an elaboration with primitives for describing new type-directed editing fea- monad to track the complicated state that is involved. The tures, making Idris’s editors as extensible as its elaborator. high-level Idris language is extensible using elaborator reflec- tion [8, 10], which directly exposes the elaboration monad CCS Concepts • Software and its engineering → Func- to Idris programs so that Idris can be extended in itself. Con- tional languages; Language features; cretely, elaborator reflection extends Idris with a primitive Keywords Metaprogramming, dependent types, editors monad Elab. Just as IO values describe effectful programs to be executed by the run-time system, Elab values describe ACM Reference Format: effectful programs to be run during elaboration.
    [Show full text]
  • Jacob O. Wobbrock, Ph.D. Curriculum Vitae Professor, the Information School [email protected] by Courtesy, Paul G
    20-Sept-2021 1 of 29 Jacob O. Wobbrock, Ph.D. Curriculum Vitae Professor, The Information School [email protected] By Courtesy, Paul G. Allen School of Computer Science & Engineering Homepage Director, ACE Lab Google Scholar Founding Co-Director, CREATE Center University of Washington Box 352840 Seattle, WA, USA 98195-2840 BIOGRAPHY______________________________________________________________________________________________ Jacob O. Wobbrock is a Professor of human-computer interaction (HCI) in The Information School, and, by courtesy, in the Paul G. Allen School of Computer Science & Engineering at the University of Washington, which U.S. News ranked the 8th best global university for 2021. Prof. Wobbrock’s work seeks to scientifically understand people’s experiences of computers and information, and to improve those experiences by inventing new interactive technologies, especially for people with disabilities. His specific research topics include input & interaction techniques, human performance measurement & modeling, HCI research & design methods, mobile computing, and accessible computing. Prof. Wobbrock has co-authored ~200 publications and 19 patents, receiving 25 paper awards, including 7 best papers and 8 honorable mentions from ACM CHI, the flagship conference in HCI. For his work in accessible computing, he received the 2017 SIGCHI Social Impact Award and the 2019 SIGACCESS ASSETS Paper Impact Award. He was named the #1 Most Influential Scholar in HCI by the citation-ranking system AMiner in 2018 and 2021, and was runner-up in 2020. He was also inducted into the prestigious CHI Academy in 2019. His work has been covered in The New York Times, The Washington Post, The Huffington Post, USA Today, and other outlets. He is the recipient of an NSF CAREER award and 7 other National Science Foundation grants.
    [Show full text]
  • The Racket Manifesto∗
    The Racket Manifesto∗ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi Eli Barzilay, Jay McCarthy, Sam Tobin-Hochstadt Abstract The creation of a programming language calls for guiding principles that point the developers to goals. This article spells out the three basic principles behind the 20-year development of Racket. First, programming is about stating and solving problems, and this activity normally takes place in a context with its own language of discourse; good programmers ought to for- mulate this language as a programming language. Hence, Racket is a programming language for creating new programming languages. Second, by following this language-oriented approach to programming, systems become multi-lingual collections of interconnected components. Each language and component must be able to protect its specific invariants. In support, Racket offers protection mechanisms to implement a full language spectrum, from C-level bit manipulation to soundly typed extensions. Third, because Racket considers programming as problem solving in the correct language, Racket also turns extra-linguistic mechanisms into linguistic constructs, especially mechanisms for managing resources and projects. The paper explains these principles and how Racket lives up to them, presents the evaluation framework behind the design process, and concludes with a sketch of Racket’s imperfections and opportunities for future improvements. 1998 ACM Subject Classification D.3.3 Language Constructs and Features Keywords and phrases design
    [Show full text]