Ben Mariano

I am a Masters student at the University of Maryland studying programming languages. I am a member of the PLUM Lab, jointly run by my advisor Jeff Foster, Mike Hicks, and David Van Horn. My research interests include program synthesis and formal methods.

About Me

I am a second year Masters student studying computer
science and programming languages at the
University of Maryland. My research focuses
on extending program synthesis to general purpose,
object-oriented languages like Java. I work
jointly with my advisor
Jeff Foster (Tufts),
Armando Solar-Lezama (MIT),
Xiaoqang Qiu (Purdue),
and
ThanhVu Nguyen (UNL). In my free time, I like to cook,
hike, watch good movies, read good books, and travel.

Contact Details

Education

University of Maryland

University of Maryland

B.S. Degree in Computer Engineering •Fall 2013 - Spring 2017

Research

University of Maryland

Research Assistant under Jeff Foster•December 2016 - Present

We are developing JSketch, a sketch-based program synthesis
tool for Java. In particular, we are designing and testing
new models of the Java Standard Library for synthesis
optimization. One such method is a novel axiomatic
programming paradigm where library behaviour is specified
through equational rewriting rules.

Work

University of Maryland

Our class
used Haskell to teach undergrads standard
functional programming concepts like monoids, functors,
and monads. I helped design homeworks and lectures,
graded homeworks and tests, and conducted office hours
with students. I also taught a lecture on Haskell QuickCheck.

Prime Solutions

Software Engineering Intern •Summer 2016

Worked on a team of five interns to create the Advanced
Persistant Threat Simulator, a software for simulation
of malicious network protocols in C and Python.

Prime Solutions

Software Engineering Intern •Summer 2015

Worked on a team of four interns to create the Wi-Fi
Traffic Analyzer, a tool for automating analysis of
local Wi-Fi traffic to determine device-specific
information.

JSketch

JSketch extends Java with sketch-based program synthesis, which
allows programmers to leave unknowns in code that will be
automatically determined using JSketch's backend solver,
Armando Solar-Lezama's
Sketch
software.

CryptBNB

On large wireless networks, users unintentionally
reveal their location data. Anyone with
access to the network logs can track which access points
the user visits over time. With this
information, an attacker can learn sensitive information
about a user’s activities. We introduce a
protocol which allows users to opt out of sharing their
location information with the network.