Shriram Krishnamurthi

According to our database1, Shriram Krishnamurthi authored at least 169 papers between 1996 and 2021.

Collaborative distances:

Timeline

Legend:

Book 
In proceedings 
Article 
PhD thesis 
Other 

Links

Online presence:

On csauthors.net:

Bibliography

2021
Using Relational Problems to Teach Property-Based Testing.
Art Sci. Eng. Program., 2021

2020
Data Science as a Route to AI for Middle- and High-School Students.
CoRR, 2020

Data-centricity: a challenge and opportunity for computing education.
Commun. ACM, 2020

Will Students Write Tests Early Without Coercion?✱.
Proceedings of the Koli Calling '20: 20th Koli Calling International Conference on Computing Education Research, 2020

Adapting Student IDEs for Blind Programmers.
Proceedings of the Koli Calling '20: 20th Koli Calling International Conference on Computing Education Research, 2020

Using Design Alternatives to Learn About Data Organizations.
Proceedings of the ICER 2020: International Computing Education Research Conference, 2020

Solver-Aided Multi-Party Configuration.
Proceedings of the HotNets '20: The 19th ACM Workshop on Hot Topics in Networks, 2020

2019
Event Loops as First-Class Values: A Case Study in Pedagogic Language Design.
Art Sci. Eng. Program., 2019

Notional Machines and Programming Language Semantics in Education (Dagstuhl Seminar 19281).
Dagstuhl Reports, 2019

What does it mean for a computing curriculum to succeed?
Commun. ACM, 2019

The Next 700 Semantics: A Research Challenge.
Proceedings of the 3rd Summit on Advances in Programming Languages, 2019

From Macros to DSLs: The Evolution of Racket.
Proceedings of the 3rd Summit on Advances in Programming Languages, 2019

Accessible AST-Based Programming for Visually-Impaired Programmers.
Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 2019

Harnessing the Wisdom of the Classes: Classsourcing and Machine Learning for Assessment Instrument Generation.
Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 2019

Synthesizing Mutable Configurations: Setting up Systems for Success.
Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering Workshops, 2019

Executable Examples for Programming Problem Comprehension.
Proceedings of the 2019 ACM Conference on International Computing Education Research, 2019

What Help Do Students Seek in TA Office Hours?
Proceedings of the 2019 ACM Conference on International Computing Education Research, 2019

The Human in Formal Methods.
Proceedings of the Formal Methods - The Next 30 Years - Third World Congress, 2019

2018
A programmable programming language.
Commun. ACM, 2018

Evaluating the Tracing of Recursion in the Substitution Notional Machine.
Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018

Creativity, Customization, and Ownership: Game Design in Bootstrap: Algebra.
Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018

Assessing Bootstrap: Algebra Students on Scaffolded and Unscaffolded Word Problems.
Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018

From Spreadsheets to Programs: Data Science and CS1 in Pyret (Abstract Only).
Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018

Inferring type rules for syntactic sugar.
Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2018

Putting in all the stops: execution control for JavaScript.
Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2018

Who Tests the Testers?
Proceedings of the 2018 ACM Conference on International Computing Education Research, 2018

CompoSAT: Specification-Guided Coverage for Model Finding.
Proceedings of the Formal Methods - 22nd International Symposium, 2018

The behavior of gradual types: a user study.
Proceedings of the 14th ACM SIGPLAN International Symposium on Dynamic Languages, 2018

2017
Inferring scope through syntactic sugar.
Proc. ACM Program. Lang., 2017

Teaching Programming Languages by Experimental and Adversarial Thinking.
Proceedings of the 2nd Summit on Advances in Programming Languages, 2017

The power of "why" and "why not": enriching scenario exploration with provenance.
Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, 2017

Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates.
Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, 2017

User Studies of Principled Model Finder Output.
Proceedings of the Software Engineering and Formal Methods - 15th International Conference, 2017

Error messages are classifiers: a process to design and evaluate error messages.
Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, 2017

Can we crowdsource language design?
Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, 2017

The impact of a single lecture on program plans in first-year CS.
Proceedings of the 17th Koli Calling Conference on Computing Education Research, 2017

2016
Programming Language Techniques for Incremental and Reactive Computing (Dagstuhl Seminar 16402).
Dagstuhl Reports, 2016

Compiling Stateful Network Properties for Runtime Verification.
CoRR, 2016

The Sweep: Essential Examples for In-Flow Peer Review.
Proceedings of the 47th ACM Technical Symposium on Computing Science Education, Memphis, TN, USA, March 02, 2016

Modernizing Plan-Composition Studies.
Proceedings of the 47th ACM Technical Symposium on Computing Science Education, Memphis, TN, USA, March 02, 2016

Switches are Monitors Too!: Stateful Property Monitoring as a Switch Design Criterion.
Proceedings of the 15th ACM Workshop on Hot Topics in Networks, 2016

On a (Per)Mission: Building Privacy Into the App Marketplace.
Proceedings of the 6th Workshop on Security and Privacy in Smartphones and Mobile Devices, 2016

2015
Human-Centric Development of Software Tools (Dagstuhl Seminar 15222).
Dagstuhl Reports, 2015

Artifact Evaluation for Publications (Dagstuhl Perspectives Workshop 15452).
Dagstuhl Reports, 2015

The real software crisis: repeatability as a core value.
Commun. ACM, 2015

Simon: scriptable interactive monitoring for SDNs.
Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research, 2015

Exodus: toward automatic migration of enterprise network configurations to SDNs.
Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research, 2015

The Racket Manifesto.
Proceedings of the 1st Summit on Advances in Programming Languages, 2015

Transferring Skills at Solving Word Problems from Computing to Algebra Through Bootstrap.
Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 2015

The story of Arjun Guha, or: the arc of a research project.
Proceedings of the Programming Languages Mentoring Workshop, 2015

Desugaring in Practice: Opportunities and Challenges.
Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation, 2015

Slimming languages by reducing sugar: a case for semantics-altering transformations.
Proceedings of the 2015 ACM International Symposium on New Ideas, 2015

Detecting latent cross-platform API violations.
Proceedings of the 26th IEEE International Symposium on Software Reliability Engineering, 2015

Hygienic resugaring of compositional desugaring.
Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, 2015

Static Differential Program Analysis for Software-Defined Networks.
Proceedings of the FM 2015: Formal Methods, 2015

Tierless Programming and Reasoning for Networks.
Proceedings of the 10th ACM Workshop on Programming Languages and Analysis for Security, 2015

2014
Typed-based verification of Web sandboxes.
J. Comput. Secur., 2014

Scripting Languages and Frameworks: Analysis and Verification (Dagstuhl Seminar 14271).
Dagstuhl Reports, 2014

Resugaring: lifting evaluation sequences through syntactic sugar.
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2014

Tierless Programming and Reasoning for Software-Defined Networks.
Proceedings of the 11th USENIX Symposium on Networked Systems Design and Implementation, 2014

CaptainTeach: multi-stage, in-flow peer review for programming assignments.
Proceedings of the Innovation and Technology in Computer Science Education Conference 2014, 2014

CaptainTeach: a platform for in-flow peer review of programming assignments.
Proceedings of the Innovation and Technology in Computer Science Education Conference 2014, 2014

In-Flow Peer Review.
Proceedings of the Working Group Reports of the 2014 on Innovation & Technology in Computer Science Education Conference, 2014

In-flow peer-review of tests in test-first programming.
Proceedings of the International Computing Education Research Conference, 2014

2013
Artifact evaluation for software conferences.
ACM SIGPLAN Notices, 2013

Teaching garbage collection without implementing compiler or interpreters.
Proceedings of the 44th ACM Technical Symposium on Computer Science Education, 2013

A balance of power: expressive, analyzable controller programming.
Proceedings of the Second ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking, 2013

Participatory networking: an API for application control of SDNs.
Proceedings of the ACM SIGCOMM 2013 Conference, 2013

From principles to programming languages (and back).
Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2013

Usable security as a static-analysis problem: modeling and reasoning about user permissions in social-sharing systems.
Proceedings of the ACM Symposium on New Ideas in Programming and Reflections on Software, 2013

Python: the full monty.
Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, 2013

Should software conferences respect software?
Proceedings of the Conference on Systems, 2013

Aluminum: principled scenario exploration through minimality.
Proceedings of the 35th International Conference on Software Engineering, 2013

Verifying Web Browser Extensions' Compliance with Private-Browsing Mode.
Proceedings of the Computer Security - ESORICS 2013, 2013

Combining Form and Function: Static Types for JQuery Programs.
Proceedings of the ECOOP 2013 - Object-Oriented Programming, 2013

Whalesong: running racket in the browser.
Proceedings of the DLS'13, 2013

TeJaS: retrofitting type systems for JavaScript.
Proceedings of the DLS'13, 2013

2012
Foundations for Scripting Languages (Dagstuhl Seminar 12011).
Dagstuhl Reports, 2012

Modeling and Reasoning about DOM Events.
Proceedings of the 3rd USENIX Conference on Web Application Development, 2012

Hierarchical policies for software defined networks.
Proceedings of the first workshop on Hot topics in software defined networks, 2012

Semantics and Analyses for JavaScript and the Web.
Proceedings of the Static Analysis - 19th International Symposium, 2012

Progressive types.
Proceedings of the ACM Symposium on New Ideas in Programming and Reflections on Software, 2012

Participatory Networking.
Proceedings of the 2nd USENIX Workshop on Hot Topics in Management of Internet, 2012

A tested semantics for getters, setters, and eval in JavaScript.
Proceedings of the 8th Symposium on Dynamic Languages, 2012

Toward a More Complete Alloy.
Proceedings of the Abstract State Machines, Alloy, B, VDM, and Z, 2012

Features and object capabilities: reconciling two visions of modularity.
Proceedings of the 11th International Conference on Aspect-oriented Software Development, 2012

2011
ADsafety: Type-Based Verification of JavaScript Sandboxing.
Proceedings of the 20th USENIX Security Symposium, 2011

Measuring the effectiveness of error messages designed for novice programmers.
Proceedings of the 42nd ACM technical symposium on Computer science education, 2011

Mind your language: on novices' interactions with error messages.
Proceedings of the ACM Symposium on New Ideas in Programming and Reflections on Software, 2011

WeScheme: the browser is your programming environment.
Proceedings of the 16th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, 2011

Do values grow on trees?: expression integrity in functional programming.
Proceedings of the Seventh International Workshop on Computing Education Research, 2011

Typing Local Control and State Using Flow Analysis.
Proceedings of the Programming Languages and Systems, 2011

Oops, I did it again: mitigating repeated access control errors on facebook.
Proceedings of the International Conference on Human Factors in Computing Systems, 2011

2010
Please Continue to Hold: An Empirical Study on User Tolerance of Security Delays.
Proceedings of the 9th Annual Workshop on the Economics of Information Security, 2010

Minding the (semantic) gap: engineering programming language theory.
Proceedings of the Workshop on Future of Software Engineering Research, 2010

Embracing policy engineering.
Proceedings of the Workshop on Future of Software Engineering Research, 2010

A model of triangulating environments for policy authoring.
Proceedings of the 15th ACM Symposium on Access Control Models and Technologies, 2010

The Margrave Tool for Firewall Analysis.
Proceedings of the Uncovering the Secrets of System Administration: Proceedings of the 24th Large Installation System Administration Conference, 2010

The Essence of JavaScript.
Proceedings of the ECOOP 2010, 2010

2009
Viewpoint - Why computer science doesn't matter.
Commun. ACM, 2009

Using static analysis for Ajax intrusion detection.
Proceedings of the 18th International Conference on World Wide Web, 2009

Escape from the matrix: lessons from a case-study in access-control requirements.
Proceedings of the 5th Symposium on Usable Privacy and Security, 2009

Preference aggregation in group recommender systems for committee decision-making.
Proceedings of the 2009 ACM Conference on Recommender Systems, 2009

Flapjax: a programming language for Ajax applications.
Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, 2009

Trusted Multiplexing of Cryptographic Protocols.
Proceedings of the Formal Aspects in Security and Trust, 6th International Workshop, 2009

A functional I/O system or, fun for freshman kids.
Proceedings of the Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, 2009

Towards an Operational Semantics for Alloy.
Proceedings of the FM 2009: Formal Methods, 2009

2008
Teaching programming languages in a post-linnaean age.
ACM SIGPLAN Notices, 2008

SIGPLAN programming language curriculum workshop: Discussion Summaries and recommendations.
ACM SIGPLAN Notices, 2008

Alchemy: transmuting base alloy specifications into implementations.
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2008

Cryptographic Protocol Explication and End-Point Projection.
Proceedings of the Computer Security, 2008

Minimal backups of cryptographic protocol runs.
Proceedings of the 6th ACM Workshop on Formal Methods in Security Engineering, 2008

2007
Foundations of incremental aspect model-checking.
ACM Trans. Softw. Eng. Methodol., 2007

Implementation and use of the PLT scheme Web server.
High. Order Symb. Comput., 2007

The design and implementation of a dataflow language for scriptable debugging.
Autom. Softw. Eng., 2007

Compiling cryptographic protocols for deployment on the web.
Proceedings of the 16th International Conference on World Wide Web, 2007

Lowering: a static optimization technique for transparent functional reactivity.
Proceedings of the 2007 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2007

Obligations and Their Interaction with Programs.
Proceedings of the Computer Security, 2007

Relationally-parametric polymorphic contracts.
Proceedings of the 2007 Symposium on Dynamic Languages, 2007

2006
Semantics and scoping of aspects in higher-order languages.
Sci. Comput. Program., 2006

Educational Pearl: Automata via macros.
J. Funct. Program., 2006

Web Verification: Perspective and Challenges.
Electron. Notes Theor. Comput. Sci., 2006

Abstract shade trees.
Proceedings of the 2006 Symposium on Interactive 3D Graphics, 2006

Towards reasonability properties for access-control policy languages.
Proceedings of the 11th ACM Symposium on Access Control Models and Technologies, 2006

Crossing State Lines: Adapting Object-Oriented Frameworks to Functional Reactive Languages.
Proceedings of the Functional and Logic Programming, 8th International Symposium, 2006

Embedding Dynamic Dataflow in a Call-by-Value Language.
Proceedings of the Programming Languages and Systems, 2006

Specifying and Reasoning About Dynamic Access-Control Policies.
Proceedings of the Automated Reasoning, Third International Joint Conference, 2006

2005
Discussion summary: characteristics of web services and their impact on testing, analysis and verification.
ACM SIGSOFT Softw. Eng. Notes, 2005

Modular Verification of Open Features Using Three-Valued Model Checking.
Autom. Softw. Eng., 2005

Decomposing Verification Around End-User Features.
Proceedings of the Verified Software: Theories, 2005

Verification and change-impact analysis of access-control policies.
Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), 2005

Continuations from generalized stack inspection.
Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming, 2005

2004
The structure and interpretation of the computer science curriculum.
J. Funct. Program., 2004

The TeachScheme! Project: Computing and Programming for Every Student.
Comput. Sci. Educ., 2004

Automatically Restructuring Programs for the Web.
Autom. Softw. Eng., 2004

Verifying aspect advice modularly.
Proceedings of the 12th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2004, Newport Beach, CA, USA, October 31, 2004

Dataflow Language for Scriptable Debugging.
Proceedings of the 19th IEEE International Conference on Automated Software Engineering (ASE 2004), 2004

Verifying Interactive Web Programs.
Proceedings of the 19th IEEE International Conference on Automated Software Engineering (ASE 2004), 2004

Parameterized Interfaces for Open System Verification of Product Lines.
Proceedings of the 19th IEEE International Conference on Automated Software Engineering (ASE 2004), 2004

Validating the Unit Correctness of Spreadsheet Programs.
Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), 2004

2003
Automated Fault Localization Using Potential Invariants
CoRR, 2003

The CONTINUE Server (or, How I Administered PADL 2002 and 2003).
Proceedings of the Practical Aspects of Declarative Languages, 5th International Symposium, 2003

SXSLT: Manipulation Language for XML.
Proceedings of the Practical Aspects of Declarative Languages, 5th International Symposium, 2003

The Feature Signatures of Evolving Programs.
Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003), 2003

A Type System for Statically Detecting Spreadsheet Errors.
Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003), 2003

CLIME: An Environment for Constrained Evolution Demonstration Description.
Proceedings of the 25th International Conference on Software Engineering, 2003

Modeling Web Interactions.
Proceedings of the Programming Languages and Systems, 2003

Pointcuts and advice in higher-order languages.
Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, 2003

Programming languages - application and interpretation.
e-book, 2003

2002
DrScheme: a programming environment for Scheme.
J. Funct. Program., 2002

The Influence of Software Module Systems on Modular Verification.
Proceedings of the Model Checking of Software, 2002

Verifying cross-cutting features as open systems.
Proceedings of the Tenth ACM SIGSOFT Symposium on Foundations of Software Engineering 2002, 2002

Interfaces for Modular Feature Verification.
Proceedings of the 17th IEEE International Conference on Automated Software Engineering (ASE 2002), 2002

Advanced control flows for flexible graphical user interfaces: or, growing GUIs on trees or, bookmarking GUIs.
Proceedings of the 24th International Conference on Software Engineering, 2002

Programming Languages for Compressing Graphics.
Proceedings of the Programming Languages and Systems, 2002

2001
Modular verification of collaboration-based software designs.
Proceedings of the 8th European Software Engineering Conference held jointly with 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering 2001, 2001

Automatically Restructuring Programs for the We.
Proceedings of the 16th IEEE International Conference on Automated Software Engineering (ASE 2001), 2001

Programming the Web with High-Level Programming Languages.
Proceedings of the Programming Languages and Systems, 2001

2000
Transformation-by-Example for XML.
Proceedings of the Practical Aspects of Declarative Languages, 2000

1999
A Programmer's Reduction Semantics for Classes and Mixins.
Proceedings of the Formal Syntax and Semantics of Java, 1999

Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine).
Proceedings of the fourth ACM SIGPLAN International Conference on Functional Programming (ICFP '99), 1999

From Macros to Reusable Generative Programming.
Proceedings of the Generative and Component-Based Software Engineering, 1999

Expressing Structural Properties as Language Constructs.
Proceedings of the Programming Languages and Systems, 1999

1998
The DrScheme Project: An Overview.
ACM SIGPLAN Notices, 1998

Toward a Formal Theory of Extensible Software.
Proceedings of the SIGSOFT '98, 1998

Classes and Mixins.
Proceedings of the POPL '98, 1998

Synthesizing Object-Oriented and Functional Design to Promote Re-Use.
Proceedings of the ECOOP'98, 1998

1997
DrScheme: A Pedagogic Programming Environment for Scheme.
Proceedings of the Programming Languages: Implementations, 1997

1996
Static Debugging: Browsing the Web of Program Invariants.
Proceedings of the ACM SIGPLAN'96 Conference on Programming Language Design and Implementation (PLDI), 1996


  Loading...