On this page:
Jay Mc  Carthy
1 About Me
2 Research Interests
3 Publications
4 Students
4.1 Current
4.2 Past
5 Teaching
5.1 Archived Courses from Vassar
5.2 Archived Courses from BYU
6 Service
7 Projects
7.1 Current
7.2 Past
8 Personal
9 Links
10 Contact
11 PGP Public Key

Jay McCarthy

1 About Me

I am an associate professor at the University of Massachusetts at Lowell in the Computer Science Department. Previously, I have been at Brigham Young University and Vassar College.

I am a member of the PLT research group. I work on the Racket programming language.

I completed a Ph.D. at Brown University in the Computer Science Department. I worked with Shriram Krishnamurthi. I was an NSF Graduate Research Fellow.

I graduated from the University of Massachusetts at Lowell where I studied Computer Science, Mathematics, and Economics.

My work has been supported by the National Science Foundation’s Software and Hardware Foundations (CISE/CCF) program, Secure and Trustworthy Cyberspace (SaTC) program, Computing Education for the 21st Century (CISE/CNS) program.

2 Research Interests

I am interested in applying programming languages research techniques to cryptographic protocols and the Web, as well as other areas of security and systems. I am also very interested in theorem provers and program verification.

3 Publications

  1. Jay McCarthy. “Bithoven: Gödel Encoding of Chamber Music and Functional 8-Bit Audio Synthesis". FARM 2016. (PDF) (Code)

  2. Jay McCarthy, Burke Fetscher, Max New and Robert Bruce Findler. “A Coq Library For Internal Verification of Running-Times". FLOPS 2016. (PDF) (Code)

  3. Helen H. Hu, Cecily Heiner, and Jay McCarthy. “Deploying Exploring Computer Science Statewide". SIGCSE 2016. (PDF)

  4. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Jay McCarthy, and Sam Tobin-Hochstadt.. “The Racket Manifesto". SNAPL 2015. (PDF)

  5. Neil Toronto, Jay McCarthy, and David Van Horn. “Running Probabilistic Programs Backwards". ESOP 2015. (PDF)

  6. Neil Toronto and Jay McCarthy. “Practically Accurate Floating-Point Math". Computing in Science and Engineering, July 2014. (Publisher) (PDF)

  7. Yu Huang, Eric Mercer, and Jay McCarthy. “Proving MCAPI Executions are Correct using SMT". ASE 2013. (PDF)

  8. Gregory H. Cooper, Arjun Guha, Shriram Krishnamurthi, Jay McCarthy, and Robert Bruce Findler. “Teaching Garbage Collection without Learning Compilers or Interpreters". SIGCSE 2013. (PDF)

  9. Neil Toronto and Jay McCarthy. “Computing in Cantor’s Paradise with LambdaZFC". FLOPS 2012. (PDF) (Code) (Slides)

  10. Everett Morse, Nick Vrvilo, Eric Mercer, and Jay McCarthy. “Modeling Asynchronous Message Passing for C Programs". VMCAI 2012. (PDF) (Code)

  11. Casey Klein, John Clements, Christos Dimoulas, Carl Eastlund, Matthias Felleisen, Matthew Flatt, Jay McCarthy, Jon Rafkind, Sam Tobin-Hochstadt, Robert Bruce Findler. “Run Your Research: On the Effectiveness of Lightweight Mechanization". Symposium on Principles of Programming Languages, 2012. (PDF) (Code)

  12. Casey Klein, Jay McCarthy, Steven Jaconette and Robert Bruce Findler. “A Semantics for Context-Sensitive Reduction Semantics". Asian Symposium on Programming Languages and Systems, 2011. (PDF) (Code)

  13. Tim Disney, Cormac Flanagan, and Jay McCarthy. “Temporal Higher-Order Contracts". International Conference on Functional Programming, 2011. (PDF) (Code) (Slides)

  14. Neil Toronto and Jay McCarthy. “From Bayesian Notation to Pure Racket via Discrete Measure-Theoretic Probability in LambdaZFC". Symposium on Implementation and Application of Functional Languages, 2011. (PDF) (Slides)

  15. Jay McCarthy. “The Two-State Solution: Native and Serializable Continuations Accord". International Conference on Object Oriented Programming, Systems, Languages and Applications, 2010. (PDF) (Code)

  16. Jay McCarthy and Shriram Krishnamurthi. “Trusted Multiplexing of Cryptographic Protocols". International Workshop on Formal Aspects in Security and Trust, 2009. (PDF) (Code)

  17. Jay McCarthy. “Automatically RESTful Web Applications Or, Marking Modular Serializable Continuations". International Conference on Functional Programming, 2009. (PDF) (Code)

  18. Jay McCarthy. “Static Analyses of Cryptographic Protocols". PhD Dissertation, Brown University, 2009. (PDF) (Code)

  19. Jay McCarthy and Shriram Krishnamurthi. “Cryptographic Protocol Explication and End-Point Projection". European Symposium on Research in Computer Security, 2008. (PDF) (Code)

  20. Jay McCarthy and Shriram Krishnamurthi. “Minimal Backups of Cryptographic Protocol Runs". Formal Methods in Security Engineering, 2008. (PDF) (Code)

  21. Jay McCarthy, Joshua Guttman, John Ramsdell, and Shriram Krishnamurthi. “Compiling Cryptographic Protocols for Deployment on the Web". International World Wide Web Conference, 2007. (PDF) (Code)

  22. Shriram Krishnamurthi, Peter Walton Hopkins, Jay McCarthy, Paul T. Graunke, Greg Pettyjohn, and Matthias Felleisen. “Implementation and Use of the PLT Scheme Web Server". Higher-Order and Symbolic Computation, 2007. (PDF) (Code)

  23. Jay McCarthy and Shriram Krishnamurthi. “Interaction-Safe State for the Web". In Scheme and Functional Programming, September 2006. (PDF) (Code)

4 Students

4.1 Current

4.2 Past

5 Teaching

I am teaching Organization of Programming Languages (91.301) in Fall 2016.

I taught Foundations of Computer Science (91.304) in Spring 2016 (feedback), Summer 2016 (feedback), and am teaching it in Fall 2016.

I taught Computer Architecture (91.305) in Fall 2015 (feedback).

I taught Operating Systems (91.308) in Spring 2016 (feedback).

I taught Analysis of Algorithms (91.404) in Summer 2016 (feedback).

Other feedback is available at RateMyProfessors.com.

5.1 Archived Courses from Vassar

I taught Computer Science III (CS203) in Fall 2014 (feedback) and Spring 2015 (feedback).

I taught Analysis of Algorithms (CS241) in Fall 2014 (feedback).

I taught Modeling, Simulation and Analysis (CS250) in Spring 2015 (feedback).

5.2 Archived Courses from BYU

I taught Introduction to Computer Programming (CS142) in Spring 2011 (feedback) and Fall 2011 (feedback).

I taught Algorithm Design and Analysis (CS312) in Fall 2009 (feedback).

I taught Concepts of Programming Language (CS330) in Fall 2008 (feedback), Fall 2009 (feedback), Fall 2010 (feedback), Fall 2011 (feedback), Fall 2012 (feedback), and Fall 2013 (feedback).

I taught Advanced Programming Language Theory (CS430) in Winter 2013 (feedback) (as CS 401R).

I taught Advanced Topics in Programming Languages (CS630) in Winter 2009 (feedback) (as CS 601R), Winter 2010 (feedback) (as CS 601R), Winter 2011 (feedback), Winter 2012 (feedback), and Spring 2013 (feedback).

Other feedback is available at RateMyProfessors.com.

6 Service

Program Committees:

Steering Committees:
  • Trends in Functional Programming (2012–)

External Review Committees:
  • POPL 2015

  • OOPSLA 2011

  • Utah CSTA, Treasurer (2011–2014)

  • Utah NCWIT Aspirations Award committee (2012, 2013)

7 Projects

7.1 Current

I am responsible for many aspects of the Racket programming language. I really like DrDr and the package system.

In particular, I am responsible for continued development of the Racket Web Server. It is available with the standard Racket distribution. If you’d like to learn how to use it refer to the tutorial or application reference manual.

I have a Github account with lots of code on it; in particular, most of my packages live there. I write about lots of this code on my blog.

7.2 Past

I worked on The Whole-Protocol Programming Language, a global language for designing protocols in the strand space model.

I worked on The Cryptographic Protocol Programming Language, a role-based language for designing protocols in the strand space model.

I used to maintain the Continue Conference Manager, a web application for paper submissions, reviews, and PC meetings. It has been superseded by Continue 2.0, which is written in Flapjax.

I wrote the first version of Resume, the Continue of faculty application applications. It has also been rewritten in Flapjax.

8 Personal

I am married to Elizabeth Day McCarthy.

Libby and Jay in Cambridge, MA

We are both members of The Church of Jesus Christ of Latter-day Saints.

Libby and Jay at Salt Lake City Temple

Libby and Jay near Salt Lake City Temple reflecting pool

We have three kids.

Family picture Summer 2013

9 Links

I direct Mormon history tours for the Mormon Heritage Associaton.

I used to attend the Intercontinental Foreign Language Program at Harvard Square.

10 Contact

My email address is my first name and last name separated by a dot at gmail.com or my first name at racket-lang.org, but I only check my email once a day, so be mindful of that.

I have a phone in my office (978) 934-3629, but I don’t like using it, so get my cell number. If you need quick turn-around in a communique, I try to be on Google Chat a lot.

My office is Olsen 221, but if you are mailing me something send it to:

Jay A. McCarthy

University of Massachusetts Lowell

Department of Computer Science

One University Avenue

Lowell, MA 01854

11 PGP Public Key


Version: GnuPG v1.4.11 (GNU/Linux)