<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<span style="font-size: 14.666666984558105px;" class="">This is an announcement of Brian Hempel's Dissertation Defense.</span><br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">===============================================</span><br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Candidate: Brian Hempel</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Date: Thursday, January 27, 2022</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Time:  1 pm CST</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Remote Location: </span><a href="https://uchicago.zoom.us/j/98038070543?pwd=S293RVpaeGJhOE5ObnJNNUVaeUhVQT09" style="font-size: 14.666666984558105px;" class="">https://uchicago.zoom.us/j/98038070543?pwd=S293RVpaeGJhOE5ObnJNNUVaeUhVQT09</a><span style="font-size: 14.666666984558105px;" class="">; 
 Meeting ID: 980 3807 0543  Passcode: 549284</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Location: JCL 298</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Title: Tangible Values With Text: Explorations of Bimodal Programming</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Abstract: Direct manipulation is everywhere. While the intuitive point-click-operate workflow of direct manipulation is the standard mode of interaction for most computer applications, for over half a
 century one important application has remained a text-based activity: programming. Can the intuitive workflow of direct manipulation be applied to programming—could programming become as simple as manipulating the program's output, showing the computer what
 you want it to do? Alas, 45 years of research on this "programming by demonstration" (PBD) vision has yielded only niche successes.</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">To confront this impasse, this dissertation reverses a key assumption of PBD systems. Traditional PBD systems eschew textual code, assuming that textual code is difficult for users. But, whatever its faults,
 textual code is a proven paradigm for understanding and editing programs. Therefore, this work instead embraces textual code: we start with text-based programming in a generic programming language and, rather than replace text, instead augment it with PBD-style
 direct manipulation on visualized program outputs. Output manipulations induce changes to the textual code. Such a system is bimodal: at any time, users may program via text edits on code or via mouse manipulations on outputs.</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">To explore the expressiveness of this bimodal approach, this work presents two programming systems. The first system, called Sketch-n-Sketch, mimics a traditional graphics editor, enabling users to use
 standard drawing interactions to create programs that output vector graphics. The second, called Maniposynth, brings output-based interaction closer to ordinary programming, offering a graphical interface for constructing OCaml programs that operate on functional
 data structures. Via examples, we show the expressive extent of direct manipulation in both systems. Overall, this work expands and illuminates the capabilities of bimodal programming.</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Advisors: Ravi Chugh</span><br style="font-size: 14.666666984558105px;" class="">
<br style="font-size: 14.666666984558105px;" class="">
<span style="font-size: 14.666666984558105px;" class="">Committee Members: Ravi Chugh, John Reppy, Shan Lu, and Blase Ur</span>
<div class=""><span style="font-size: 14.666666984558105px;" class=""><br class="">
</span></div>
<div class=""><a href="https://people.cs.uchicago.edu/~brianhempel/tangible_values_with_text_v0.99.pdf" class="">https://people.cs.uchicago.edu/~brianhempel/tangible_values_with_text_v0.99.pdf</a><span style="font-size: 14.666666984558105px;" class=""><br class="">
</span>
<div class=""><span style="font-size: 14.666666984558105px;" class=""><br class="">
</span></div>
<div class=""><span style="font-size: 14.666666984558105px;" class=""><br class="">
</span></div>
</div>
</body>
</html>