The 2016 ACM SIGPLAN Programming Languages Mentoring Workshop at the Conference on Programming Language and Implementation (PLMW@PLDI 2016) will be held immediately before PLDI 2016. The goal of PLMW is to introduce undergraduates, masters students, and early PhD students with a particular emphasis on women and under-represented minorities to research in the field of programming language design and implementation.

The program will include presentations on research, professional skills, networking and a practicum, a career paths panel, and a panel on “What I wish I knew when I started grad school” from researchers and recent PhD researchers in programming languages with a range of jobs, skills, and experiences. A summary of the program is below,

The application for scholarship is now closed. However, you are still welcome to attend PLMW@PLDI by registering for it as a PLDI workshop. Please go to the PLDI Venue webpage for information on then venue and hotel.

This program is funded by SIGPLAN, NSF, Pure Storage, an Anonymous Donor and Google. We thank them for their support!

Tue 14 Jun

08:30 - 10:00: PLMW@PLDI 2016 - Welcome and Keynote at Grand Ballroom Santa Ynez
PLMW-PLDI-2016146588580000008:30 - 08:45
Day opening
PLMW-PLDI-2016146588670000008:45 - 09:15
Media Attached
PLMW-PLDI-2016146588850000009:15 - 10:00
Media Attached
12:45 - 13:30: PLMW@PLDI 2016 - Mentoring at Grand Ballroom Santa Ynez
PLMW-PLDI-2016146590110000012:45 - 13:30
Social Event
13:30 - 15:00: PLMW@PLDI 2016 - Professional Development at Grand Ballroom Santa Ynez
PLMW-PLDI-2016146590380000013:30 - 13:45
Media Attached
PLMW-PLDI-2016146590470000013:45 - 14:00
Media Attached
PLMW-PLDI-2016146590560000014:00 - 14:15
Media Attached
PLMW-PLDI-2016146590650000014:15 - 15:00
Media Attached
15:30 - 17:00: PLMW@PLDI 2016 - Technical Talks at Grand Ballroom Santa Ynez
PLMW-PLDI-2016146591100000015:30 - 15:55
Media Attached
PLMW-PLDI-2016146591250000015:55 - 16:20
Media Attached
PLMW-PLDI-2016146591400000016:20 - 16:45
Media Attached

Attending and Scholarship

The application for scholarship is now closed. However, you are still welcome to attend PLMW@PLDI by registering for it as a PLDI workshop. Please go to the PLDI Venue webpage for information on then venue and hotel.

This program is funded by SIGPLAN, NSF, Pure Storage, an Anonymous Donor and Google. We thank them for their support!

Scholarship applications closed on April 10, 2016. These funds are for qualified students to attend PLMW@PLDI . These scholarships should cover reasonable expenses (airfare, hotel, and registration fees) for attendance at the workshop and PLDI. The application is available at the submission website. Contact the Web Chair for any concern or questions about submitting applications.

Keynote: Love, Marriage, and Happiness
Matthias Felleisen
PLT @ Northeastern University.

Abstract: When you are falling in love, everything feels different. You can’t wait to see her (him) again. Actually you want to be with her (him) all the time. You are plain happy.

When you get married, you are in love. But life has a habit of getting in the way. Where are we going to live? Who will do the dishes? How about the laundry? Who will take off time for the plumber? Now throw in kids. Are you pushing the kids too much? Is she (he) too “American” with them? Crises happen. But, you’re still in love. You remember the real her (him), your first kiss, your first candle light dinner, your first trip away in your little beat-up car. And that is, what holds a marriage together.

Wanting to go into research in programming languages must feel like falling in love. Working on your PhD is going to be much more like being in love. So, as you are about to embark on your PhD studies (or wondering whether you should), I suggest you keep this analogy in mind. To explain why, my keynote will illustrate the analogy with one research theme—adding types to dynamic languages—that I have pursued for 30 years.

Bio: Matthias Felleisen is the Chief Philosopher and Shepherd (CPS) of PLT, the research group behind Racket. As such he is responsible for thinking deep thoughts about the language, pronouncing his insights in obscure emails, and herding cats while increasing their numbers.

After spending 10 years on mathematical models of programming and languages, Felleisen set out in 1994 to convince middle schools, high schools, and colleges to ditch dysfunctional programming and introduce functional programming instead—after all it is a natural complement and an extension of basic school algebra. Racket, the * Student Languages, DrRacket, “How to Design Programs”, Typed Racket, Bootstrap,and many more pieces of practical software are side-effects of this long-term outreach project.

For his entire career, Felleisen has aimed to intertwine his research and his teaching. With his PhD advisor, Dan Friedman, he co-authored four “Little” books, one of which has been in print for 40 years (30 jointly). With his PhD students, he co-created “How to Design Programs”, a text on the principles of program design that has been in use since 1995. With eight freshmen and a colleague, he wrote about the Realm of Racket, a light-hearted and illustrated introduction to plain Racket programming.

One final side-effect of Felleisen’s research and teaching is his career. He spent three and half years on his PhD at Indiana, four years on tenure at Rice, another year to become a full professor. He is now Trustee Professor of Computer Science at Northeastern. ACM and its SIGs have honored Felleisen’s work with some awards.

Mentoring Talk: Research is a Social Process
Kathryn S McKinley
Microsoft Research.

Abstract: Since humans are involved, research is a social process. As a researcher you are part of a community of scientists who learn from each other — problems, ideas, methods, writing, reading, evaluating, publishing, and funding science. To participate in your research community, you need to form relationships with senior leaders, your peers, and junior researchers. Consequently, networking is a critical social skill for research. It is not using people, nor a substitute for high quality research. This talk discusses the dynamics of social relationships in science with tips on: (i) how even the shyest researcher can meet people at your home institution and professional meetings; (ii) how to sustain your relationships, and (iii) how to make them rewarding and fun. The session will include a practicum.

Bio: Kathryn S. McKinley is a Principal Researcher at Microsoft and previously held an Endowed Professorship in the Department of Computer Science at The University of Texas at Austin. Her research interests span programming languages, compilers, runtime systems, architecture, performance, and energy with a recent focus on programming models for estimates. She and her collaborators have produced several widely used tools: the DaCapo Java Benchmarks (30,000+ downloads), the TRIPS Compiler, Hoard memory manager, MMTk memory management toolkit, and the Immix garbage collector. She is honored to have graduated 22 PhD students and to be among the IEEE and ACM Fellows.

Talk: Fighting Software Inefficiency Through Automated Bug Detection
Shan Lu
University of Chicago.

Abstract: Developers frequently use inefficient code sequences that could be fixed by simple patches. These inefficient code sequences can cause significant performance degradation and resource waste, referred to as performance bugs. Meager increases in single threaded performance in the multi-core era and increasing emphasis on energy efficiency call for more effort in tackling performance bugs. This talk will present an overview of our group’s work in understanding, detecting, and fixing performance bugs. I will explain how we refine our bug-detector designs through a series of projects, and eventually detect and fix hundreds of performance bugs in the latest versions of widely used open-source applications.

Bio: Shan Lu is an Associate Professor in Computer Science at the University of Chicago. She received her Ph.D. at University of Illinois in 2008. Her current research focuses on software reliability and efficiency. Shan has won Alfred P. Sloan Research Fellow in 2014, Distinguished Alumni Educator Award (CS @ University of Illinois) in 2013, and NSF Career Award in 2010. Her co-authored papers won two ACM-SIGSOFT Distinguished Paper Awards at ICSE 2015 and FSE 2014, one Best Paper Award at USENIX FAST 2013, an ACM-SIGPLAN Research Highlight Award in 2011, and an IEEE Micro Top Picks in 2006.

Talk: The Truth, the Whole Truth, and Nothing but the Truth: A Pragmatic Guide to Assessing Empirical Evaluations
Steve Blackburn
Australian National University.

Abstract: An unsound claim can misdirect a field, encouraging the pursuit of unworthy ideas and the abandonment of promising ideas. An inadequate description of a claim can make it difficult to reason about the claim, for example to determine whether the claim is sound. Many practitioners will acknowledge the threat of unsound claims or inadequate descriptions of claims to their field. We believe that this situation is exacerbated and even encouraged by the lack of a systematic approach to exploring, exposing, and addressing the source of unsound claims and poor exposition. In this talk I will discus some of the challenges and pitfalls of empirical evaluation and describe a new framework designed to help individuals conduct better science and encourage a cultural shift in our research community to identify and promulgate sound claims.

Bio: Steve Blackburn is a professor at the Australian National University. His research interests include programming language implementation, architecture, and performance analysis. Steve has a particular interest in the research problems relating to high performance managed runtimes. He co-leads the Mu micro virtual machine project and has had a long involvement in the development of shared research infrastructure including the DaCapo benchmark suite and Jikes RVM.

Talk: Approximate Computing: it’s better than good, it’s good enough!
Michael Carbin

Abstract: Many modern applications implement large-scale computations (e.g., big data analytics) in which there is a natural trade-off between the quality of the results that the computation produces and the performance and cost of executing the computation.

Exploiting this fact, researchers have recently developed a variety of new techniques that either 1) enable an application to execute through existing hardware and software errors or 2) augment the hardware/software platform to substitute or skip portions of the application’s computation. In this talk, I will present how these techniques can improve program resilience, performance, and energy-consumption while still preserving critical application-level correctness properties.

Bio: I am an assistant professor at MIT. My research interests include the design of programming systems that deliver improved performance and resilience by incorporating approximate computing and self-healing.

Talk: What’s Next for Program Synthesis
Armando Solar-Lezama

Abstract: Over the last ten years, program synthesis technology has moved from the fringes of AI to the forefront of programming systems research. Today, there are synthesis sessions in all the major PL and software engineering conferences, and our budding community can now point to a number of success stories where synthesis technology has helped solve important problems. So are we done? The short answer is no. In this talk, I will talk about the state of the field today and what I see as important open problems.

Bio: Armando Solar-Lezama is an associate professor at the Massachusetts Institute of Technology (MIT), where he leads the Computer Aided Programming group. He received my Ph.D. from the University of California at Berkeley in 2008 and B.S. degrees in Computer Science and Math from Texas A&M University in 2003. His main research area is program synthesis with applications ranging from new programming models to automated tutoring.

Talk: Programming-language Runtime Systems in Datacenters
Lingjia Tang
University of Michigan.

Abstract: Modern datacenters that host large-scale Internet services are extremely expensive to construct and operate. Improving software performance and server utilization is key to improving the efficiency and reducing the enormous cost in datacenters. In this talk, I present novel compilation techniques and runtime systems to significantly improve performance, quality of service (QoS) and machine utilization in datacenters by effectively mitigating memory resource contention on modern multicore servers.

Bio: Lingjia Tang is an assistant professor of EECS at the University of Michigan. Prior to joining the University of Michigan, she was a research faculty member at UCSD CSE Department 2012-2013. Her research focuses on computer architecture and software systems, especially such systems for large-scale datacenters. Her publication at ASPLOS ’15 and Micro’11 are selected as IEEE Micro Top Picks. She received a best paper award at IEEE/ACM International Conference of Code Generation and Optimization (CGO) 2012. Her publication at International Symposium of Computer Architecture is selected as one of the excellence papers 2011 by Google Research. More information can be found at: and

Talk: Programming with Estimates
James Bornholt
University of Washington.

Abstract: Programming languages are abstractions that democratize access to complex ideas. Programmers wrestling with uncertain data—from sensors, machine learning, and more—would benefit from language support for probabilistic reasoning, but using such a language currently requires statistics expertise. We have developed Uncertain<T>, a programming abstraction for probabilistic reasoning embedded in existing languages. Uncertain<T> uses hypothesis tests to make statistical decisions automatically. This automation, possible because of a careful language design that avoids problematic patterns, allows programmers to reason about probabilities at a comfortable level. In this talk I’ll describe Uncertain<T>’s design features and show its effectiveness in case studies. Finally, I’ll share some recent work to reiterate the importance of programming languages as tools for democratizing ideas.

Bio: I’m a PhD student in the PLSE group at the University of Washington, advised by Emina Torlak, Dan Grossman, and Luis Ceze. I develop new formal methods and programming languages techniques, from program synthesis frameworks to consistency models, to solve systems problems. My research has been recognized by SIGPLAN Research Highlights and IEEE Micro Top Picks. I have a masters from UW and a bachelors from the Australian National University. Why is a PhD student speaking at the mentoring workshop? We’ll find out together!

Mentoring Talk: Professional Communication
Matt Might
University of Utah.

Abstract: As working scientists, how we communicate an idea matters just as much what we’re communicating. Moreover, modern scientists need to master multiple communication modalities, including manuscripts, presentations, posters, email, blogging, chats and twitter. This talk will introduce and demonstrate the central principles common to successful, high-impact scientific communication, regardless of medium. Special attention will be given to communicating research findings and to having productive communications with attention-constrained members of your research team.

Bio: Matt Might is an Associate Professor in the School of Computing at the University of Utah, a Visiting Associate Professor at the Harvard Medical School and an Advisor in the Executive Office of the President at the White House. As a programming languages researcher, he works on static analysis, especially for security, and on domain-specific language design for high-performance computing. Matt is passionate about scientific communication, and he enjoys blogging from and tweeting from @mattmight.

Mentoring Talk: The Secrets
Jason Mars
University of Michigan.

Abstract: The Secrets is a tell-all expose of the key insights and ideas that has made Jason Mars successful as a researcher and intellectual. By intermingling the personal story of his journey through his development as a thinker and the key lessons he learned along the way, Jason Mars gives an uncanny and controversial look into the bright and dark sides of academia. In addition, the talk includes a survival guide for aspiring and young researchers of any level as they embark on the all-too chaotic publication process.

Bio: Jason Mars is an Assistant Professor at the University of Michigan and CEO/Co-founder of Clinc. Jason is recognized as a Leading expert in the design of cross-layer systems for emerging cloud computing applications, and in particular systems for artificial intelligence, computer vision, and natural language processing. Jason has published dozens top notch papers in these areas and received a number of awards and honors for excellence in his research work including a Google Faculty Research Award. Jason’s work has impacted both industry and academia and is routinely covered by press outlets such as Wired, Venturebeat, Business Insider, EETimes, among others. Most recently, Jason Mars, along with members of his Lab at UMich, has had significant impact on industry and academia with Sirius (Lucida), an open source intelligent personal assistant. This project has taken the community by storm, ascending to the top trending project on GitHub during the early weeks of it’s releases. You can find out more information about Jason Mars at and his company Clinc at

Mentoring Talk: Getting People to Listen
Mary Hall
University of Utah.

Abstract: Have you ever been in a meeting where there was a vigorous discussion and you found it difficult to contribute your ideas? Do you want to find out what the smart but quiet person in the room is thinking? Under what circumstances is written communication more effective and how should it be positioned? This talk points out that there are differences in communication styles that sometimes get in the way of collaboration, and gives suggestions for how individuals can find a way of expressing their ideas that works best for them and how leaders can reach out to everyone.

Bio: Mary Hall is a Professor in the School of Computing at University of Utah, where she has been since 2008. She received her PhD from Rice University. Previously, she was jointly a Research Professor and Project Leader at USC and USC/ISI, respectively, and held research positions at Caltech, Stanford and Rice University. She is ACM’s representative on the Computing Research Association Board of Directors. She has led numerous interdisciplinary and multi-institutional projects, where she has honed her skills in getting people to listen to her, and making sure that everyone’s voice is heard.

Panel: Career Paths

Mary Hall (Moderator)
University of Utah.

John Davis
Pure Storage Inc.

Bio: John D. Davis has a Ph.D. from Stanford focusing on computer architecture. His research interests include computer architecture, large-scale computing systems, embedded systems, non-volatile memory, application behavior and performance tuning, and hardware-software co-design and interaction. John spent several years at the Microsoft Research, Silicon Valley Lab. John then joined Pure Storage as part of the founding team for the FlashBlade product. Currently, John is part of the CTO’s office at Pure Storage.

Shan Shan Huang

Bio: Shan Shan leads a team of engineers at LogicBlox in pursuit of their shared mission: transforming software development from black art to an accessible form of expression for anyone capable of analytical thought. Shan Shan works with her colleagues in developing a unified programming environment that is at once a database and a language runtime, with a declarative programming model and spreadsheet-like programmability.

Shan Shan is published in areas spanning across programming languages, software engineering, and databases. She maintains her academic ties through research collaborations, services on conference program committees, and speakership at conferences.

Shan Shan received her Ph.D. from Georgia Tech and her B.S from MIT.

Milind Kulkarni
Purdue University.

Bio: Milind Kulkarni is an associate professor in the School of Electrical and Computer Engineering at Purdue University. His research focuses on developing languages, compilers and systems that can efficiently and effectively exploit locality and parallelism in complex applications on complex computation platforms. He received his Ph.D. in Computer Science from Cornell University in 2008. He received the NSF CAREER award in 2012, the Department of Energy Early Career Research Award in 2013, and the Presidential Early Career Award for Scientists and Engineers in 2016 for his work on optimizing irregular applications.

Panel: What I Wish I Knew When I Started Grad School

Ben Wiedermann (Moderator)
Harvey Mudd College.

Bio: I have a Ph.D. in Computer Sciences from the University of Texas, Austin. I spent my undergrad years in Computer Science and Acting at Boston University, from which I obtained a BA in Computer Science.

Sam Blackshear

Bio: Sam works on static analysis and developer tools at Facebook. He earned a PhD in Computer Science from the University of Colorado at Boulder in 2015 and a BA in Computer Science and Philosophy from Williams College in 2010.

Alvin Cheung
University of Washington.

Bio: Alvin Cheung is an assistant professor at the University of Washington, affiliated with the programming languages and software engineering and database research groups. His research interests include program analysis, program synthesis, improving database application performance, and building big systems. His current projects include applying verified lifting to build compilers, optimizing scientific and data analytics applications, and building tools to help end-users write programs by analyzing large code repositories. Before getting to work with the great students at Washington (that’s why you should apply!), he was an irresponsible grad student at MIT, working with Armando Solar-Lezama and Sam Madden.

Ravi Chugh
University of Chicago.

Bio: Ravi Chugh is an Assistant Professor at the University of Chicago. Ravi’s research interests include developing and deploying programming language technology for applications in software engineering and human-computer interaction. Currently, his primary research obsession is to develop new kinds of user interfaces that allow people (programmers and non-programmers alike) to be more productive and creative. In 2015, Ravi received a Neubauer Faculty Fellowship for innovative and effective undergraduate teaching, and a College Research Fellows award to support undergraduate research. Before Chicago, Ravi earned his Ph.D. from UC San Diego and masters and bachelors degrees from the University of Pennsylvania.

Cindy Rubio-Gonzalez
University of California, Davis.

Bio: Cindy Rubio-González is an Assistant Professor of Computer Science at the University of California, Davis. Prior to that position, she was a Postdoctoral Researcher in the EECS Department at the University of California, Berkeley. She received her Ph.D. in Computer Science from the University of Wisconsin–Madison in 2012. Her work spans the areas of programming languages and software engineering, with a specific focus on program analysis. Her research aims to design and build tools to help developers write more reliable and efficient software. Cindy is a UC Davis CAMPOS Faculty Scholar, an AAUW International Doctoral Fellow, and a member of Latinas in Computing.

Jean Yang
Carnegie Mellon University.

Bio: Jean Yang is an Assistant Professor at Carnegie Mellon University with research interests in programming language design and formal methods applied to security, privacy, and biological modelling. She completed her undergraduate degree in Computer Science at Harvard in 2008, finished her PhD at MIT in 2015, and is spending the 2015-2016 academic year at Harvard Medical School. For her PhD thesis she created the Jeeves programming language for automatically enforcing security and privacy policies. Her work on Verve, an operating system verified automatically and end-to-end for type safety, won Best Paper Award at PLDI 2010.

Mary Hall - “You’ll be happiest and most successful in your work if you spend most of your time doing things that you enjoy. Don’t do something only because you think you’re supposed to do it, and don’t be afraid to spend time doing something you want to do.”

Steve Blackburn - “Character traits such as generosity, perseverance, and curiosity are essential to the development of an outstanding researcher; take time to cultivate them in yourself and others. As Plutarch said, the mind is not a vessel to be filled but a fire to be lit.”

Sam Blackshear - “Don’t confuse your peers’ or advisors’ goals with your own.”

James Bornholt - “Everyone has advice. Try to figure out why they’re saying what they are.”

Michael Carbin - “Connect with your peers and mentors. Graduate school isn’t a solo mission.”

Alvin Cheung - “You can graduate once you (think you) know more than your advisor.”

Ravi Chugh - “Read Matt Might’s blog.”

Shan Shan Huang - “Take yourself seriously.”

Milind Kulkarni - “Pursue the research that excites you, not just the research that you *think* will excite others.”

Shan Lu - “The ultimate goal of this profession (teacher) is to promote younger generations. - Mark Hill”

Jason Mars - “Your growth is the most important research problem that you must solve.”

Kathryn S McKinley - “If you can’t be nice to her because it is the right thing to do, do it because she could be your DARPA program manager one day.”

Matthew Might - “I have only made this letter longer because I have not had the time to make it shorter. - Blaise Pascal, 1657, The Provincial Letters"

Armando Solar-Lezama - “An experiment that doesn’t work is not a waste of time; an experiment where you already know the answer is.”

Lingjia Tang - “If you only do what you can do, you will never be more than you are now.”

Jean Yang - “Do work you would believe in even if nobody else believed in it.”