Chronological List of All Papers

These papers range across several different areas. To see them classified, visit the listing by topic.

Forge: A Tool and Language for Teaching Formal Methods
Tim Nelson, Ben Greenman, Siddhartha Prasad, Tristan Dyer, Ethan Bove, Qianfan Chen, Charles Cutting, Thomas Del Vecchio, Sidney Levine, Julianne Rudner, Ben Ryjikov, Alexander Varga, Andrew Wagner, Luke West, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications
Observations on the Design of Program Planning Notations for Students
Elijah Rivera, Shriram Krishnamurthi, Kathi Fisler
ACM Technical Symposium on Computer Science Education
Privacy-Respecting Type Error Telemetry at Scale
Ben Greenman, Alan Jeffrey, Mitesh Shah, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
Conceptual Mutation Testing for Student Programming Misconceptions
Siddhartha Prasad, Ben Greenman, Tim Nelson, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
A Core Calculus for Documents: Or, Lambda: The Ultimate Document
Will Crichton, Shriram Krishnamurthi
ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Profiling Programming Language Learning
Will Crichton, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications
Identifying and Correcting Programming Language Behavior Misconceptions
Kuang-Chen Lu, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications

Generating Programs Trivially: Student Use of Large Language Models
Siddhartha Prasad, Ben Greenman, Tim Nelson, Shriram Krishnamurthi
ACM Conference on Global Computing Education
Little Tricky Logic: Misconceptions in the Understanding of LTL
Ben Greenman, Sam Saarinen, Tim Nelson, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
Gradual Soundness: Lessons from Static Python
Kuang-Chen Lu, Ben Greenman, Carl Meyer, Dino Viehand, Aniket Panse, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
A Grounded Conceptual Model for Ownership Types in Rust
Will Crichton, Gavin Gray, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications
What Happens When Students Switch (Functional) Languages (Experience Report)
Kuang-Chen Lu, Shriram Krishnamurthi, Kathi Fisler, Ethel Tshukudu
ACM SIGPLAN International Conference on Functional Programming

Integrated Data Science for Secondary Schools: Design and Assessment of a Curriculum
Emmanuel Schanzer, Nancy Pfenning, Flannery Denny, Sam Dooman, Joe Gibbs Politz, Benjamin S. Lerner, Kathi Fisler, Shriram Krishnamurthi
ACM Technical Symposium on Computer Science Education
Problematic and Persistent Post-Secondary Program Performance Preconceptions
Shriram Krishnamurthi, Anika Bahl, Benjamin H. Lee, Steven A. Sloman
Koli Calling International Conference on Computing Education Research
Making Hay from Wheats: A Classsourcing Method to Identify Misconceptions
Siddhartha Prasad, Ben Greenman, Tim Nelson, John Wrenn, Shriram Krishnamurthi
Koli Calling International Conference on Computing Education Research
Towards a Notional Machine for Runtime Stacks and Scope: When Stacks Don’t Stack Up
John Clements, Shriram Krishnamurthi
SIGCSE International Computing Education Research Conference
Plan Composition Using Higher-Order Functions
Elijah Rivera, Shriram Krishnamurthi, Robert Goldstone
SIGCSE International Computing Education Research Conference
Types for Tables: A Language Design Benchmark
Kuang-Chen Lu, Ben Greenman, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
Automated, Targeted Testing of Property-Based Testing Predicates
Tim Nelson, Elijah Rivera, Sam Soucie, Thomas Del Vecchio, Jack Wrenn, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
Applying Cognitive Principles to Model-Finding Output: The Positive Value of Negative Information
Tristan Dyer, Tim Nelson, Kathi Fisler, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications
Structural versus Pipeline Composition of Higher-Order Functions (Experience Report)
Elijah Rivera, Shriram Krishnamurthi
ACM SIGPLAN International Conference on Functional Programming

Evolving a K-12 Curriculum for Integrating Computer Science into Mathematics
Kathi Fisler, Emmanuel Schanzer, Steve Weimar, Annie Fetter, K. Ann Renninger, Shriram Krishnamurthi, Joe Gibbs Politz, Benjamin Lerner, Jennifer Poole, Christine Koerner
ACM Technical Symposium on Computer Science Education
Vision: Computing and Authentication Practices in Global Oil and Gas Fields
Mary Rose Martinez, Shriram Krishnamurthi
European Symposium on Usable Security
Prototyping Formal Methods Tools: A Protocol Analysis Case Study
Abigail Siegel, Mia Santomauro, Tristan Dyer, Tim Nelson, Shriram Krishnamurthi
FestSchrift for Joshua Guttman
Reading Between the Lines: Student Help-Seeking for (Un)Specified Behaviors
John Wrenn, Shriram Krishnamurthi
Koli Calling International Conference on Computing Education Research
Short Paper.
Developing Behavioral Concepts of Higher-Order Functions
Shriram Krishnamurthi, Kathi Fisler
SIGCSE International Computing Education Research Conference
Early Post-Secondary Student Performance of Adversarial Thinking
Nick Young, Shriram Krishnamurthi
SIGCSE International Computing Education Research Conference
Using Relational Problems to Teach Property-Based Testing
John Wrenn, Tim Nelson, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
Combining Interactive and Whole-Program Editing with REPARTEE
Luna Phipps-Costin, Michael MacLeod, Alex Vo, Tiffany Nguyen, Joe Gibbs Politz, Shriram Krishnamurthi, Benjamin S. Lerner
Workshop on Evaluation and Usability of Programming Languages and Tools

Solver-Aided Multi-Party Configuration
Kevin Dackow, Andrew Wagner, Tim Nelson, Shriram Krishnamurthi, Theophilus Benson
ACM SIGCOMM Workshop on Hot Topics in Networks
Data-Centricity: A Challenge and Opportunity for Computing Education
Shriram Krishnamurthi, Kathi Fisler
Communications of the ACM
Viewpoint.
Adapting Student IDEs for Blind Programmers
Emmanuel Schanzer, Sina Bahram, Shriram Krishnamurthi
Koli Calling International Conference on Computing Education Research
Short Paper.
Will Students Write Tests Early Without Coercion?
John Wrenn, Shriram Krishnamurthi
Koli Calling International Conference on Computing Education Research
Short Paper.
Using Design Alternatives to Learn About Data Organizations
Xingjian Gu, Max A. Heller, Stella Li, Yanyan Ren, Kathi Fisler, Shriram Krishnamurthi
SIGCSE International Computing Education Research Conference

Data Science as a Route to AI for Middle- and High-School Students
Shriram Krishnamurthi, Emmanuel Schanzer, Joe Gibbs Politz, Benjamin S. Lerner, Kathi Fisler, Sam Dooman
AAAI 2019 Fall Symposium: Teaching AI in K-12
Harnessing the Wisdom of the Classes: Classsourcing and Machine Learning for Assessment Instrument Generation
Sam Saarinen, Shriram Krishnamurthi, Kathi Fisler, Preston Tunnell Wilson
ACM Technical Symposium on Computer Science Education
Accessible AST-Based Programming for Visually-Impaired Programmers
Emmanuel Schanzer, Sina Bahram, Shriram Krishnamurthi
ACM Technical Symposium on Computer Science Education
What Does It Mean for a Curriculum to Succeed?
Emmanuel Schanzer, Shriram Krishnamurthi, Kathi Fisler
Communications of the ACM
The Human in Formal Methods
Shriram Krishnamurthi, Tim Nelson
International Symposium on Formal Methods
Invited Talk.
What Help Do Students Seek in TA Office Hours?
Yanyan Ren, Shriram Krishnamurthi, Kathi Fisler
SIGCSE International Computing Education Research Conference
Executable Examples for Programming Problem Comprehension
John Wrenn, Shriram Krishnamurthi
SIGCSE International Computing Education Research Conference
From Macros to DSLs: The Evolution of Racket
Ryan Culpepper, Matthias Felleisen, Matthew Flatt, Shriram Krishnamurthi
Summit on Advances in Programming Languages
The Next 700 Semantics: A Research Challenge
Shriram Krishnamurthi, Benjamin S. Lerner, Liam Elberty
Summit on Advances in Programming Languages
Event Loops as First-Class Values: A Case Study in Pedagogic Language Design
Joe Gibbs Politz, Benjamin S. Lerner, Sorawee Porncharoenwase, Shriram Krishnamurthi
The Art, Science, and Engineering of Programming
Programming Paradigms and Beyond
Shriram Krishnamurthi, Kathi Fisler
The Cambridge Handbook of Computing Education Research
Synthesizing Mutable Configurations: Setting up Systems for Success
Tim Nelson, Natasha Danas, Theophilos Giannakopoulos, Shriram Krishnamurthi
Workshop on Software Engineering for Infrastructure and Configuration Code

Assessing Bootstrap:Algebra Students on Scaffolded and Unscaffolded Word Problems
Emmanuel Schanzer, Kathi Fisler, Shriram Krishnamurthi
ACM Technical Symposium on Computer Science Education
Creativity, Customization, and Ownership: Game Design in Bootstrap:Algebra
Emmanuel Schanzer, Shriram Krishnamurthi, Kathi Fisler
ACM Technical Symposium on Computer Science Education
Evaluating the Tracing of Recursion in the Substitution Notional Machine
Preston Tunnell Wilson, Kathi Fisler, Shriram Krishnamurthi
ACM Technical Symposium on Computer Science Education
Building an Accessible Block Environment: Multi-Language, Fully-Accessible AST-based Editing in the Browser
Emmanuel Schanzer, Sina Bahram, Shriram Krishnamurthi
BLOCKS+ Workshop
A Programmable Programming Language
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, Sam Tobin-Hochstadt
Communications of the ACM
The Behavior of Gradual Types: A User Study
Preston Tunnell Wilson, Ben Greenman, Justin Pombrio, Shriram Krishnamurthi
Dynamic Languages Symposium
CompoSAT: Specification-Guided Coverage for Model Finding
Sorawee Porncharoenwase, Tim Nelson, Shriram Krishnamurthi
International Symposium on Formal Methods
Who Tests the Testers?: Avoiding the Perils of Automated Testing
John Wrenn, Shriram Krishnamurthi, Kathi Fisler
SIGCSE International Computing Education Research Conference
Putting in All the Stops: Execution Control for JavaScript
Samuel Baxter, Rachit Nigam, Joe Gibbs Politz, Shriram Krishnamurthi, Arjun Guha
ACM SIGPLAN Conference on Programming Language Design and Implementation
Inferring Type Rules for Syntactic Sugar
Justin Pombrio, Shriram Krishnamurthi
ACM SIGPLAN Conference on Programming Language Design and Implementation

Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates
Kathi Fisler, Shriram Krishnamurthi, Preston Tunnell Wilson
ACM Technical Symposium on Computer Science Education
The Power of ‘‘Why’’ and ‘‘Why Not’’: Enriching Scenario Exploration with Provenance
Timothy Nelson, Natasha Danas, Daniel J. Dougherty, Shriram Krishnamurthi
Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering
Best Paper.
The Impact of a Single Lecture on Program Plans in First-Year CS
Francisco Enrique Vicente Castro, Shriram Krishnamurthi, Kathi Fisler
Koli Calling International Conference on Computing Education Research
Short Paper.
Can We Crowdsource Language Design?
Preston Tunnell Wilson, Justin Pombrio, Shriram Krishnamurthi
SPLASH Onward!
Error Messages Are Classifiers: A Process to Design and Evaluate Error Messages
John Wrenn, Shriram Krishnamurthi
SPLASH Onward!
User Studies of Principled Model Finder Output
Natasha Danas, Tim Nelson, Lane Harrison, Shriram Krishnamurthi, Daniel J. Dougherty
Software Engineering and Formal Methods
Teaching Programming Languages by Experimental and Adversarial Thinking
Justin Pombrio, Shriram Krishnamurthi, Kathi Fisler
Summit on Advances in Programming Languages
Inferring Scope through Syntactic Sugar
Justin Pombrio, Shriram Krishnamurthi, Mitchell Wand
ACM SIGPLAN International Conference on Functional Programming
Student Understanding of Aliasing and Procedure Calls
Preston Tunnell Wilson, Kathi Fisler, Shriram Krishnamurthi
SPLASH Education Symposium

On a (Per)Mission: Building Privacy Into the App Marketplace
Hannah Quay-de la Vallee, Paige Selby, Shriram Krishnamurthi
ACM CCS Workshop on Security and Privacy in Smartphones and Mobile Devices
Switches are Monitors Too!: Stateful Property Monitoring as a Switch Design Criterion
Tim Nelson, Nicholas DeMarinis, Timothy Adam Hoff, Rodrigo Fonseca, Shriram Krishnamurthi
ACM SIGCOMM Workshop on Hot Topics in Networks
Modernizing Plan-Composition Studies
Kathi Fisler, Shriram Krishnamurthi, Janet Siegmund
ACM Technical Symposium on Computer Science Education
The Sweep: Essential Examples for In-Flow Peer Review
Joe Gibbs Politz, Joseph M. Collard, Arjun Guha, Kathi Fisler, Shriram Krishnamurthi
ACM Technical Symposium on Computer Science Education

Exodus: Toward Automatic Migration of Enterprise Network Configurations to SDNs
Tim Nelson, Andrew D. Ferguson, Da Yu, Rodrigo Fonseca, Shriram Krishnamurthi
ACM SIGCOMM Symposium on SDN Research
Simon: Scriptable Interactive Monitoring for SDNs
Tim Nelson, Da Yu, Yiming Li, Rodrigo Fonseca, Shriram Krishnamurthi
ACM SIGCOMM Symposium on SDN Research
Transferring Skills at Solving Word Problems from Computing to Algebra Through Bootstrap
Emmanuel Schanzer, Kathi Fisler, Shriram Krishnamurthi, Matthias Felleisen
ACM Technical Symposium on Computer Science Education
Blocks Versus Text: Ongoing Lessons from Bootstrap
Emmanuel Schanzer, Shriram Krishnamurthi, Kathi Fisler
Blocks and Beyond Workshop
The Real Software Crisis: Repeatability as a Core Value
Shriram Krishnamurthi, Jan Vitek
Communications of the ACM
Viewpoint.
Detecting Latent Cross-Platform API Violations
Jeff Rasley, Eleni Gessiou, Tony Ohmann, Yuriy Brun, Shriram Krishnamurthi, Justin Cappos
IEEE International Symposium on Software Reliability Engineering
Static Differential Program Analysis for Software-Defined Networks
Tim Nelson, Andrew D. Ferguson, Shriram Krishnamurthi
International Symposium on Formal Methods
Slimming Languages by Reducing Sugar: A Case for Semantics-Altering Transformations
Junsong Li, Justin Pombrio, Joe Gibbs Politz, Shriram Krishnamurthi
SPLASH Onward!
The Racket Manifesto
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, Sam Tobin-Hochstadt
Summit on Advances in Programming Languages
Hygienic Resugaring of Compositional Desugaring
Justin Pombrio, Shriram Krishnamurthi
ACM SIGPLAN International Conference on Functional Programming
Desugaring in Practice: Opportunities and Challenges
Shriram Krishnamurthi
ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation
Invited Talk.

In-Flow Peer Review
Dave Clarke, Tony Clear, Kathi Fisler, Matthias Hauswirth, Shriram Krishnamurthi, Joe Gibbs Politz, Ville Tirronen, Tobias Wrigstad
Conference on Innovation and Technology in Computer Science Education
CaptainTeach: Multi-Stage, In-Flow Peer Review for Programming Assignments
Joe Gibbs Politz, Daniel Patterson, Shriram Krishnamurthi, Kathi Fisler
Conference on Innovation and Technology in Computer Science Education
Type-Based Verification of Web Sandboxes
Joe Gibbs Politz, Arjun Guha, Shriram Krishnamurthi
Journal of Computer Security
In-Flow Peer-Review of Tests in Test-First Programming
Joe Gibbs Politz, Shriram Krishnamurthi, Kathi Fisler
SIGCSE International Computing Education Research Conference
Tierless Programming and Reasoning for Software-Defined Networks
Tim Nelson, Andrew D. Ferguson, Michael J. G. Scheer, Shriram Krishnamurthi
USENIX Symposium on Networked Systems Design and Implementation
Resugaring: Lifting Evaluation Sequences through Syntactic Sugar
Justin Pombrio, Shriram Krishnamurthi
ACM SIGPLAN Conference on Programming Language Design and Implementation

Participatory Networking: An API for Application Control of SDNs
Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, Shriram Krishnamurthi
ACM SIGCOMM Conference
Teaching Garbage Collection without Implementing Compilers or Interpreters
Gregory H. Cooper, Arjun Guha, Shriram Krishnamurthi, Jay McCarthy, Robert Bruce Findler
ACM Technical Symposium on Computer Science Education
TeJaS: Retrofitting Type Systems for JavaScript
Benjamin S. Lerner, Joe Gibbs Politz, Arjun Guha, Shriram Krishnamurthi
Dynamic Languages Symposium
Whalesong: Running Racket in the Browser
Danny Yoo, Shriram Krishnamurthi
Dynamic Languages Symposium
Combining Form and Function: Static Types for jQuery Programs
Benjamin S. Lerner, Liam Elberty, Jincheng Li, Shriram Krishnamurthi
European Conference on Object-Oriented Programming
Verifying Web Browser Extensions’ Compliance with Private-Browsing Mode
Benjamin S. Lerner, Liam Elberty, Neal Poole, Shriram Krishnamurthi
European Symposium on Research in Computer Security
Aluminum: Principled Scenario Exploration through Minimality
Tim Nelson, Salman Saghafi, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
International Conference on Software Engineering
Usable Security as a Static-Analysis Problem: Modeling and Reasoning About User Permissions in Social-Sharing Systems
Hannah Quay-de la Vallee, James M. Walsh, William Zimrin, Kathi Fisler, Shriram Krishnamurthi
SPLASH Onward!
A Balance of Power: Expressive, Analyzable Controller Programming
Tim Nelson, Arjun Guha, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
Workshop on Hot Topics in Software Defined Networks
From Principles to Programming Languages (and Back)
Shriram Krishnamurthi
ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Invited Talk.
Python: The Full Monty: A Tested Semantics for the Python Programming Language
Joe Gibbs Politz, Alejandro Martinez, Mae Milano, Sumner Warren, Daniel Patterson, Junsong Li, Anand Chitipothu, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications
Bootstrap: Going Beyond Programming in After-School Computer Science
Emmanuel Schanzer, Kathi Fisler, Shriram Krishnamurthi
SPLASH Education Symposium

Toward a More Complete Alloy
Timothy Nelson, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
ABZ Conference
Web API Verification: Results and Challenges
Arjun Guha, Benjamin Lerner, Joe Gibbs Politz, Shriram Krishnamurthi
Analysis of Security APIs
A Tested Semantics for Getters, Setters, and Eval in JavaScript
Joe Gibbs Politz, Matt Carroll, Benjamin S. Lerner, Justin Pombrio, Shriram Krishnamurthi
Dynamic Languages Symposium
Semantics and Types for Objects with First-Class Member Names
Joe Gibbs Politz, Arjun Guha, Shriram Krishnamurthi
Foundations of Object-Oriented Languages
Features and Object Capabilities: Reconciling Two Visions of Modularity
Salman Saghafi, Kathi Fisler, Shriram Krishnamurthi
International Conference on Aspect-Oriented Software Development
Progressive Types
Joe Gibbs Politz, Hannah Quay-de la Vallee, Shriram Krishnamurthi
SPLASH Onward!
Participatory Networking
Andrew D. Ferguson, Arjun Guha, Jordan Place, Rodrigo Fonseca, Shriram Krishnamurthi
Workshop on Hot Topics in Management of Internet, Cloud, and Enterprise Networks and Services
Hierarchical Policies for Software Defined Networks
Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, Shriram Krishnamurthi
Workshop on Hot Topics in Software Defined Networks
Modeling and Reasoning about DOM Events
Benjamin S. Lerner, Matthew J. Carroll, Dan P. Kimmel, Hannah Quay-de la Vallee, Shriram Krishnamurthi
USENIX Conference on Web Application Development

Measuring the Effectiveness of Error Messages Designed for Novice Programmers
Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi
ACM Technical Symposium on Computer Science Education
Best Paper.
WeScheme: The Browser is Your Programming Environment
Danny Yoo, Emmanuel Schanzer, Shriram Krishnamurthi, Kathi Fisler
Conference on Innovation and Technology in Computer Science Education
Typing Local Control and State Using Flow Analysis
Arjun Guha, Claudiu Saftoiu, Shriram Krishnamurthi
European Symposium on Programming
Oops, I Did it Again: Mitigating Repeated Access Control Errors on Facebook
Serge Egelman, Andrew Oates, Shriram Krishnamurthi
SIGCHI Conference on Human Factors in Computing Systems
Do Values Grow on Trees?: Expression Integrity in Functional Programming
Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi
SIGCSE International Computing Education Research Workshop
Mind Your Language: On Novices’ Interactions with Error Messages
Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi
SPLASH Onward!
ADsafety: Type-Based Verification of JavaScript Sandboxing
Joe Gibbs Politz, Spiridon Aristides Eliopoulos, Arjun Guha, Shriram Krishnamurthi
USENIX Security Symposium

A Model of Triangulating Environments for Policy Authoring
Kathi Fisler, Shriram Krishnamurthi
ACM Symposium on Access Control Models and Technologies
Invited to Journal.
The Essence of JavaScript
Arjun Guha, Claudiu Saftoiu, Shriram Krishnamurthi
European Conference on Object-Oriented Programming
Measuring the Effectiveness of Error Messages Designed for Novice Programmers
Guillaume Marceau, Kathi Fisler, Shriram Krishnamurthi
Scheme and Functional Programming
On the Finite Model Property in Order-Sorted Logic
Timothy Nelson, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
Synthesis, Verification, and Analysis of Rich Models
The Margrave Tool for Firewall Analysis
Timothy Nelson, Christopher Barratt, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
USENIX Large Installation System Administration Conference
Please Continue to Hold: An Empirical Study of User Tolerance of Security Delays
Serge Egelman, David Molnar, Nicolas Christin, Alessandro Acquisti, Cormac Herley, Shriram Krishnamurthi
Workshop on the Economics of Information Security
Embracing Policy Engineering
Kathi Fisler, Shriram Krishnamurthi, Daniel J. Dougherty
Workshop on the Future of Software Engineering Research
Minding the (Semantic) Gap: Engineering Programming Language Theory
Arjun Guha, Shriram Krishnamurthi
Workshop on the Future of Software Engineering Research

Why Computer Science Doesn’t Matter
Matthias Felleisen, Shriram Krishnamurthi
Communications of the ACM
Viewpoint.
Using Static Analysis for Ajax Intrusion Detection
Arjun Guha, Shriram Krishnamurthi, Trevor Jim
International World Wide Web Conference
The Moby Scheme Compiler for Smartphones
Shriram Krishnamurthi
International Lisp Conference
Invited Paper.
Preference Aggregation in Group Recommender Systems for Committee Decision-Making
Jacob Baskin, Shriram Krishnamurthi
ACM Conference on Recommender Systems
Short Paper.
Trusted Multiplexing of Cryptographic Protocols
Jay McCarthy, Shriram Krishnamurthi
Formal Aspects of Security and Trust
Towards an Operational Semantics for Alloy
Theophilos Giannakopoulos, Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
International Symposium on Formal Methods
Escape From the Matrix: Lessons from a Case-Study in Access-Control Requirements
Kathi Fisler, Shriram Krishnamurthi
Symposium on Usable Privacy and Security
Poster Abstract.
Flapjax: A Programming Language for Ajax Applications
Leo A. Meyerovich, Arjun Guha, Jacob Baskin, Gregory H. Cooper, Michael Greenberg, Aleks Bromfield, Shriram Krishnamurthi
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications
Best Student Paper.
A Functional I/O System
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
ACM SIGPLAN International Conference on Functional Programming
Invited to Journal.

Cryptographic Protocol Explication and End-Point Projection
Jay McCarthy, Shriram Krishnamurthi
European Symposium on Research in Computer Security
Declaring Victory in a Declarative Datacenter: Verification and Transferring Confidence
Shriram Krishnamurthi
Workshop on the Rise and Rise of the Declarative Datacentre
Invited Paper.
Minimal Backups of Cryptographic Protocol Runs
Jay McCarthy, Shriram Krishnamurthi
Formal Methods in Security Engineering
Teaching Programming Languages in a Post-Linnaean Age
Shriram Krishnamurthi
SIGPLAN Workshop on Undergraduate Programming Language Curricula
Decomposing Verification Around End-User Features
Kathi Fisler, Shriram Krishnamurthi
Verified Software: Theories, Tools, Experiments
Alchemy: Transmuting Base Alloy Specifications into Implementations
Shriram Krishnamurthi, Daniel J. Dougherty, Kathi Fisler, Daniel Yoo
ACM SIGSOFT International Symposium on the Foundations of Software Engineering

Relationally-Parametric Polymorphic Contracts
Arjun Guha, Jacob Matthews, Robert Bruce Findler, Shriram Krishnamurthi
Dynamic Languages Symposium
Obligations and their Interaction with Programs
Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
European Symposium on Research in Computer Security
Compiling Cryptographic Protocols for Deployment on the Web
Jay McCarthy, Joshua Guttman, John Ramsdell, Shriram Krishnamurthi
International World Wide Web Conference
The Design and Implementation of a Dataflow Language for Scriptable Debugging
Guillaume Marceau, Gregory H. Cooper, Jonathan P. Spiro, Shriram Krishnamurthi, Steven P. Reiss
Automated Software Engineering Journal
Implementation and Use of the PLT Scheme Web Server
Shriram Krishnamurthi, Fiona Hopkins, Jay McCarthy, Paul T. Graunke, Greg Pettyjohn, Matthias Felleisen
Higher-Order and Symbolic Computation
Composition with Consistent Updates for Abstract State Machines
Colin Gordon, Leo Meyerovich, Joel Weinberger, Shriram Krishnamurthi
International ASM Workshop
Lowering: A Static Optimization Technique for Transparent Functional Reactivity
Kimberley Burchett, Gregory H. Cooper, Shriram Krishnamurthi
ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation
Foundations of Incremental Aspect Model-Checking
Shriram Krishnamurthi, Kathi Fisler
ACM Transactions on Software Engineering and Methodology

Semantics and Scoping of Aspects in Higher-Order Languages
Christopher Dutchyn, David B. Tucker, Shriram Krishnamurthi
Science of Computer Programming
Interaction-Safe State for the Web
Jay McCarthy, Shriram Krishnamurthi
Scheme and Functional Programming
Specifying and Reasoning about Dynamic Access-Control Policies
Daniel J. Dougherty, Kathi Fisler, Shriram Krishnamurthi
International Joint Conference on Automated Reasoning
Towards Reasonability Properties for Access-Control Policy Languages
Michael Carl Tschantz, Shriram Krishnamurthi
ACM Symposium on Access Control Models and Technologies
Automata via Macros
Shriram Krishnamurthi
Journal of Functional Programming
Embedding Dynamic Dataflow in a Call-by-Value Language
Gregory H. Cooper, Shriram Krishnamurthi
European Symposium on Programming
Abstract Shade Trees
Morgan McGuire, George Stathis, Hanspeter Pfister, Shriram Krishnamurthi
Symposium on Interactive 3D Graphics
Modeling Web Interactions and Errors
Shriram Krishnamurthi, Robert Bruce Findler, Paul Graunke, Matthias Felleisen
Interactive Computation: The New Paradigm
Crossing State Lines: Adapting Object-Oriented Frameworks to Functional Reactive Languages
Daniel Ignatoff, Gregory H. Cooper, Shriram Krishnamurthi
International Symposium on Functional and Logic Programming

Continuations from Generalized Stack Inspection
Greg Pettyjohn, John Clements, Joe Marshall, Shriram Krishnamurthi, Matthias Felleisen
ACM SIGPLAN International Conference on Functional Programming
Modular Verification of Open Features Through Three-Valued Model Checking
Harry C. Li, Shriram Krishnamurthi, Kathi Fisler
Automated Software Engineering Journal
Verification and Change-Impact Analysis of Access-Control Policies
Kathi Fisler, Shriram Krishnamurthi, Leo A. Meyerovich, Michael Carl Tschantz
International Conference on Software Engineering
Web Verification: Perspective and Challenges
Shriram Krishnamurthi
Workshop on Automated Specification and Verification of Web Sites
Invited Paper.

Verifying Aspect Advice Modularly
Shriram Krishnamurthi, Kathi Fisler, Michael Greenberg
ACM SIGSOFT International Symposium on the Foundations of Software Engineering
A Dataflow Language for Scriptable Debugging
Guillaume Marceau, Gregory H. Cooper, Shriram Krishnamurthi, Steven P. Reiss
IEEE International Symposium on Automated Software Engineering
Invited to Journal.
Verifying Interactive Web Programs
Daniel R. Licata, Shriram Krishnamurthi
IEEE International Symposium on Automated Software Engineering
Parameterized Interfaces for Open System Verification of Product Lines
Colin Blundell, Kathi Fisler, Shriram Krishnamurthi, Pascal Van Hentenryck
IEEE International Symposium on Automated Software Engineering
Invited to Journal.
Validating the Unit Correctness of Spreadsheet Programs
Tudor Antoniu, Paul A. Steckler, Shriram Krishnamurthi, Erich Neuwirth, Matthias Felleisen
International Conference on Software Engineering
Building Little Languages with Macros
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Dr. Dobb’s Journal
Fostering Little Languages
John Clements, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Dr. Dobb’s Journal
Automatically Restructuring Programs for the Web
Jacob Matthews, Robert Bruce Findler, Paul T. Graunke, Shriram Krishnamurthi, Matthias Felleisen
Automated Software Engineering Journal
The TeachScheme! Project: Computing and Programming for Every Student
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Computer Science Education
The Structure and Interpretation of the Computer Science Curriculum
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Journal of Functional Programming

The Feature Signatures of Evolving Programs
Daniel R. Licata, Christopher D. Harris, Shriram Krishnamurthi
IEEE International Symposium on Automated Software Engineering
Short Paper.
A Type System for Statically Detecting Spreadsheet Errors
Yanif Ahmad, Tudor Antoniu, Sharon Goldwater, Shriram Krishnamurthi
IEEE International Symposium on Automated Software Engineering
Automated Fault Localization Using Potential Invariants
Brock Pytlik, Manos Renieris, Shriram Krishnamurthi, Steven P. Reiss
International Workshop on Automated and Algorithmic Debugging
Short Paper.
Modeling Web Interactions
Paul T. Graunke, Robert Bruce Findler, Shriram Krishnamurthi, Matthias Felleisen
European Symposium on Programming
Pointcuts and Advice in Higher-Order Languages
David B. Tucker, Shriram Krishnamurthi
International Conference on Aspect-Oriented Software Development
The Semantics of Garbage Collection in OO Languages
Rob Hunter, Shriram Krishnamurthi
Foundations of Object-Oriented Languages
The CONTINUE Server
Shriram Krishnamurthi
Symposium on the Practical Aspects of Declarative Languages
Invited Paper.
SXSLT: Manipulation Language for XML
Oleg Kiselyov, Shriram Krishnamurthi
Symposium on the Practical Aspects of Declarative Languages
Traversing Recursive Object Structures: The Functional Visitor in Demeter
Pengcheng Wu, Shriram Krishnamurthi, Karl Lieberherr
Software-Engineering Properties of Languages for Aspect Technologies

Verifying Cross-Cutting Features as Open Systems
Harry C. Li, Shriram Krishnamurthi, Kathi Fisler
ACM SIGSOFT International Symposium on the Foundations of Software Engineering
Invited to Journal.
The Structure and Interpretation of the Computer Science Curriculum
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Functional and Declarative Programming in Education
Interfaces for Modular Feature Verification
Harry C. Li, Shriram Krishnamurthi, Kathi Fisler
IEEE International Symposium on Automated Software Engineering
Invited to Journal.
Advanced Control Flows for Graphical User Interfaces
Paul T. Graunke, Shriram Krishnamurthi
International Conference on Software Engineering
Programming Languages for Compressing Graphics
Morgan McGuire, Shriram Krishnamurthi, John F. Hughes
European Symposium on Programming
The Influence of Software Module Systems on Modular Verification
Harry C. Li, Kathi Fisler, Shriram Krishnamurthi
SPIN Workshop on Software Model Checking
DrScheme: A Programming Environment for Scheme
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, Matthias Felleisen
Journal of Functional Programming

Scalable Composition, Evolution and Verification Through Feature-Oriented Programming
Shriram Krishnamurthi, Kathi Fisler, Don Batory
Workshop on New Visions for Software Design and Productivity: Research and Applications
Automatically Restructuring Programs for the Web
Paul T. Graunke, Robert Bruce Findler, Shriram Krishnamurthi, Matthias Felleisen
IEEE International Symposium on Automated Software Engineering
Invited to Journal.
Modular Verification of Collaboration-Based Software Designs
Kathi Fisler, Shriram Krishnamurthi
Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering
Invited to Journal.
A Model Checking Framework for Layered Command and Control Software
Kathi Fisler, Shriram Krishnamurthi, Don S. Batory, Jia Liu
Monterey Workshop on Engineering Automation for Software Intensive System Integration
Little Languages and their Programming Environments
John Clements, Paul T. Graunke, Shriram Krishnamurthi, Matthias Felleisen
Monterey Workshop on Engineering Automation for Software Intensive System Integration
Programming Languages for Software Configuration
David B. Tucker, Shriram Krishnamurthi
International Workshop on Software Configuration Management
Verifying Component-Based Collaboration Designs
Kathi Fisler, Shriram Krishnamurthi, Don S. Batory
ICSE Workshop on Component-Based Software Engineering
Programming the Web with High-Level Programming Languages
Paul T. Graunke, Shriram Krishnamurthi, Steve van der Hoeven, Matthias Felleisen
European Symposium on Programming

Transformation-by-Example for XML
Shriram Krishnamurthi, Kathryn E. Gray, Paul T. Graunke
Symposium on the Practical Aspects of Declarative Languages

Implementing Extensible Theorem Provers
Kathi Fisler, Shriram Krishnamurthi, Kathryn E. Gray
International Conference on Theorem Proving in Higher-Order Logics: Emerging Trends
From Macros to Reusable Generative Programming
Shriram Krishnamurthi, Matthias Felleisen, Bruce F. Duba
International Symposium on Generative and Component-Based Software Engineering
Programming Languages as Operating Systems (or, Revenge of the Son of the Lisp Machine)
Matthew Flatt, Robert Bruce Findler, Shriram Krishnamurthi, Matthias Felleisen
ACM SIGPLAN International Conference on Functional Programming
Expressing Structural Properties as Language Constructs
Shriram Krishnamurthi, Yan-David Erlich, Matthias Felleisen
European Symposium on Programming
A Programmer’s Reduction Semantics for Classes and Mixins
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
Formal Syntax and Semantics of Java

Toward a Formal Theory of Extensible Software
Shriram Krishnamurthi, Matthias Felleisen
ACM SIGSOFT International Symposium on the Foundations of Software Engineering
Synthesizing Object-Oriented and Functional Design to Promote Re-Use
Shriram Krishnamurthi, Matthias Felleisen, Daniel P. Friedman
European Conference on Object-Oriented Programming
The DrScheme Project: An Overview
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
ACM SIGPLAN Notices
Classes and Mixins
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages

DrScheme: A Pedagogic Programming Environment for Scheme
Robert Bruce Findler, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
International Symposium on Programming Languages: Implementations, Logics, and Programs

Catching Bugs in the Web of Program Invariants
Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Stephanie Weirich, Matthias Felleisen
ACM SIGPLAN Conference on Programming Language Design and Implementation

Avoiding Recomputation in Linkage Analysis
Alejandro Alberto Schäffer, Sandeep Kumar Gupta, K. Shriram, Robert W. Cottingham Jr
Human Heredity