Trust, but Verify: Two-Phase Typing for Dynamic Languages. - Panagiotis Vekris; Benjamin Cosman; Ranjit Jhala (ECOOP, 2015)

Refinement types for TypeScript. - Panagiotis Vekris; Benjamin Cosman; Ranjit Jhala (PLDI, 2016)

Local refinement typing. - Benjamin Cosman; Ranjit Jhala (Proc. ACM Program. Lang., 2017)

InFix: Automatically Repairing Novice Program Inputs. - Madeline Endres; Georgios Sakkas; Benjamin Cosman; Ranjit Jhala; Westley Weimer (ASE, 2019)

Type error feedback via analytic program repair. - Georgios Sakkas; Madeline Endres; Benjamin Cosman; Westley Weimer; Ranjit Jhala (PLDI, 2020)

PABLO: Helping Novices Debug Python Code Through Data-Driven Fault Localization. - Benjamin Cosman; Madeline Endres; Georgios Sakkas; Leon Medvinsky; Yao-Yuan Yang; Ranjit Jhala; Kamalika Chaudhuri; Westley Weimer (SIGCSE, 2020)

PABLO and PYRITE: Helping Novices Debug Python Code Through Data-Driven Fault Localization and Repair. - Benjamin Cosman (2021)

Efficiency of Learning from Proof Blocks Versus Writing Proofs. - Seth Poulsen; Yael Gertner; Benjamin Cosman; Matthew West 001; Geoffrey L. Herman (SIGCSE (1), 2023)

Disentangling the Learning Gains from Reading a Book Chapter and Completing Proof Blocks Problems. - Seth Poulsen; Yael Gertner; Hongxuan Chen; Benjamin Cosman; Matthew West 001; Geoffrey L. Herman (SIGCSE (1), 2024)

Measuring the Impact of Distractors on Student Learning Gains while Using Proof Blocks. - Seth Poulsen; Hongxuan Chen; Yael Gertner; Benjamin Cosman; Matthew West 001; Geoffrey L. Herman (SIGCSE (1), 2025)