Cameron Moy

dblp:271/0905 · DBLP profile ↗
← Back
12ranked-venue papers
8as first author
12since 2021 · last 2026
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 7 first-author · 8 since 2021Human-computer interaction and ubiquitous computing · 4 · 1 first-author · 4 since 2021
YearPublicationVenuePosition
2026 Patchworking Networks of Support: On the Digital Successes and Challenges of Women- and Minority-Owned Restaurant Businesses
abstract
The restaurant industry has become increasingly reliant on digital technologies for business operations, digital marketing, and promotion, especially amid and after the Covid-19 pandemic. This paper presents the findings of a two-year study exploring how women- and minority-owned restaurants in Chicago and Detroit encountered and overcame digital challenges in their day-to-day operations, across a range of levels of digital skills and literacy. Drawing from semi-structured and impromptu interviews with restaurant owners (n= 47) and participant observation, we apply HCI literature on infrastructuring and patchworking to highlight how restaurateurs’ experiences often run counter to the assumptions of a "typical" user. Indeed, they often must build and leverage their—offline and online—networks of support to overcome failing infrastructures, both within the restaurant industry and on digital platforms. Concurrently, we emphasize the importance of community building and social infrastructuring to overcome these challenges while also building up alternative networks of resources for their communities, especially considering identity-related inequalities and amid a global moment of crisis.
Matt Bui, Cameron Moy, Hibby Thach, Julie Hui
CHI2
2026 Mixing visual and textual code
Leif Andersen, Michael Ballantyne, Cameron Moy, Matthias Felleisen, Stephen Chang 0001
J. Funct. Program.3
2025 The Unintended Costs of Platform Interventions: Black-Owned Restaurants and Yelp Reputation
abstract
Peer Reviewed
Cameron Moy, Matt Bui
CHI1
2025 Contract Systems Need Domain-Specific Notations (Pearl/Brave New Idea)
Cameron Moy, Ryan Jung, Matthias Felleisen
ECOOP1
2025 Teaching Software Specification (Experience Report)
abstract
A course on software specification deserves a prominent place in the undergraduate curriculum. This report describes our experience teaching a first-year course that places software specification front and center. In support of the course, we created a pedagogic programming language with a focus on contracts and propertybased testing. Assignments draw on real-world programs, from a variety of domains, that are intended to show how formal specification can increase confidence in the correctness of code. Interviews with students suggest that this approach successfully conveys how formal specification is relevant to software construction.
Cameron Moy, Daniel Patterson 0001
Proc. ACM Program. Lang.1
2025 Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming
abstract
Exact probabilistic inference is a requirement for many applications of probabilistic programming languages (PPLs) such as in high-consequence settings or verification. However, designing and implementing a PPL with scalable high-performance exact inference is difficult: exact inference engines, much like SAT solvers, are intricate low-level programs that are hard to implement. Due to this implementation challenge, PPLs that support scalable exact inference are restrictive and lack many features of general-purpose languages. This paper presents Roulette, the first discrete probabilistic programming language that combines high-performance exact inference with general-purpose language features. Roulette supports a significant subset of Racket, including data structures, first-class functions, surely-terminating recursion, mutable state, modules, and macros, along with probabilistic features such as finitely supported discrete random variables, conditioning, and top-level inference. The key insight is that there is a close connection between exact probabilistic inference and the symbolic evaluation strategy of Rosette. Building on this connection, Roulette generalizes and extends the Rosette solver-aided programming system to reason about probabilistic rather than symbolic quantities. We prove Roulette sound by generalizing a proof of correctness for Rosette to handle probabilities, and demonstrate its scalability and expressivity on a number of examples.
Cameron Moy, Jack Czenszak, John M. Li, Brianna Marshall, Steven Holtzen
Proc. ACM Program. Lang.1
2024 Knuth-Morris-Pratt illustrated
abstract
Abstract The Knuth–Morris–Pratt (KMP) algorithm for string search is notoriously difficult to understand. Lost in a sea of index arithmetic, most explanations of KMP obscure its essence. This paper constructs KMP incrementally, using pictures to illustrate each step. The end result is easier to comprehend. Additionally, the derivation uses only elementary functional programming techniques.
Cameron Moy
J. Funct. Program.1
2024 Effectful Software Contracts
abstract
Software contracts empower programmers to describe functional properties of components. When it comes to constraining effects, though, the literature offers only one-off solutions for various effects. It lacks a universal principle. This paper presents the design of an effectful contract system in the context of effect handlers. A key metatheorem shows that contracts cannot unduly interfere with a program’s execution. An implementation of this design, along with an evaluation of its generality, demonstrates that the theory can guide practice.
Cameron Moy, Christos Dimoulas, Matthias Felleisen
Proc. ACM Program. Lang.1
2023 Participatory Noticing through Photovoice: Engaging Arts- and Community-Based Approaches in Design Research
abstract
Noticing differently commits to stepping out of familiar reference frameworks while attending to oft-neglected actors, relations, and ways of knowing for design. Photovoice is an arts- and community-based participatory approach allowing individuals to communicate their lives and stories about pressing community concerns through photography. This paper bridges photovoice and the commitment to noticing in HCI and design through a photovoice project with Detroit residents on safety and surveillance. The photovoice process—alongside the production, reflection, and dissemination of photographs—makes residents’ everyday situations legible and sensible, allowing both community members and researchers to orient to and engage with multiple viewpoints, sensibilities, and temporal trajectories. This process confronts the invisibility of both the sociotechnical infrastructures (in our case, surveillance infrastructures) and minoritized communities’ relational ontologies. By advocating participatory noticing in design research, we show the opportunities for adopting arts- and community-based participatory approaches in decentering dominant ways of knowing and seeing, while at the same time fostering community capacity and relations for future potentialities.
Alex Jiahong Lu, Shruti Sannon, Cameron Moy, Savana Brewer, Jaye Green, Kisha N. Jackson, Daivon Reeder, Camaria Wafer, Mark S. Ackerman, Tawanna Dillahunt
Conference on Designing Interactive Systems3
2023 Shifting from Surveillance-as-Safety to Safety-through-Noticing: A Photovoice Study with Eastside Detroit Residents
abstract
Safety has been used to justify the expansion of today’s large-scale surveillance infrastructures in American cities. Our work offers empirical and theoretical groundings on why and how the safety-surveillance conflation that reproduces harm toward communities of color must be denaturalized. In a photovoice study conducted in collaboration with a Detroit community organization and a university team, we invited 11 Black mid-aged and senior Detroiters to use photography to capture their lived experiences of navigating personal and community safety. Their photographic narratives unveil acts of “everyday noticing” in negotiating and maintaining their intricate and interdependent relations with human, non-human animals, plants, spaces, and material things, through which a multiplicity of meaning and senses of safety are produced and achieved. Everyday noticing, as simultaneously a survival skill and a more-than-human care act, is situated in residents’ lived materialities, while also serving as a site for critiquing the reductive and exclusionary vision embedded in large-scale surveillance infrastructures. By proposing an epistemological shift from surveillance-as-safety to safety-through-noticing, we invite future HCI work to attend to the fluid and relational forms of safety that emerge from local entanglement and sensibilities.
Alex Jiahong Lu, Shruti Sannon, Cameron Moy, Savana Brewer, Jaye Green, Kisha N. Jackson, Daivon Reeder, Camaria Wafer, Mark S. Ackerman, Tawanna Dillahunt
CHI3
2023 Trace contracts
abstract
Abstract Behavioral software contracts allow programmers to strengthen the obligations and promises that they express with conventional types. They lack expressive power, though, when it comes to invariants that hold across several function calls. Trace contracts narrow this expressiveness gap. A trace contract is a predicate over the sequence of values that flow through function calls and returns. This paper presents a principled design, an implementation, and an evaluation of trace contracts.
Cameron Moy, Matthias Felleisen
J. Funct. Program.1
2021 Corpse reviver: sound and efficient gradual typing via contract verification
abstract
Gradually typed programming languages permit the incremental addition of static types to untyped programs. To remain sound, languages insert run-time checks at the boundaries between typed and untyped code. Unfortunately, performance studies have shown that the overhead of these checks can be disastrously high, calling into question the viability of sound gradual typing. In this paper, we show that by building on existing work on soft contract verification, we can reduce or eliminate this overhead. Our key insight is that while untyped code cannot be trusted by a gradual type system, there is no need to consider only the worst case when optimizing a gradually typed program. Instead, we statically analyze the untyped portions of a gradually typed program to prove that almost all of the dynamic checks implied by gradual type boundaries cannot fail, and can be eliminated at compile time. Our analysis is modular, and can be applied to any portion of a program. We evaluate this approach on a dozen existing gradually typed programs previously shown to have prohibitive performance overhead—with a median overhead of 2.5× and up to 80.6× in the worst case—and eliminate all overhead in most cases, suffering only 1.5× overhead in the worst case.
Cameron Moy, Phuc C. Nguyen, Sam Tobin-Hochstadt, David Van Horn
Proc. ACM Program. Lang.1