

Stephen Freund
A. Barton Hepburn Professor of Computer ScienceData Science Coordinate Program Co-chair
47 Lab Campus Drive
Williams College
Williamstown, MA 01267
Office: TPL 302
Email:
sfreund@williams.edu
I am a professor of Computer Science at Williams College and co-chair of the Data Science Coordinate Program.
I was also co-chair of the Ad Hoc Committee on AI and Academics in Spring 2026 — see our Exploring AI at Williams website!
My research interests span the design and implementation of programming languages, AI-assisted software tools, and dynamic and static program analysis for concurrency. I teach introductory computer science and data science courses as well as upper-level classes on programming languages, software design, and compilers.
26-27 Classes

CSCI 104: Data Science and Computing for All, Fall 2026 and Spring 2027
Many of the world’s greatest discoveries and most consequential decisions are enabled or informed by the analysis of data from a myriad of sources. Indeed, the ability to organize, visualize, and draw conclusions from data is now a critical tool in the sciences, business, medicine, politics, other academic disciplines, and society as a whole. This course lays the foundations for reasoning about data by exploring complementary computational, statistical, and visualization concepts.

CSCI 434T: Compiler Design, Fall 2026
This tutorial covers the principles and practices for the design and implementation of compilers and interpreters. Topics include all stages of the compilation and execution process: lexical analysis; parsing; symbol tables; type systems; scope; semantic analysis; intermediate representations; run-time environments and interpreters; code generation; program analysis and optimization; and garbage collection. The course covers both the theoretical and practical implications of these topics. As a project course, students will construct a full compiler for a simple object-oriented language.
Current Research

FlowBook
FlowBook is a JupyterLab extension that enforces rerun consistency: re-executing any cell from the current state would produce a result consistent with a top-to-bottom execution of the notebook, regardless of which cells have been run, modified, and rerun.


Flowco
Flowco is a system for authoring data analysis workflows with LLM assistance at every stage of the process. Flowco employs a dataflow programming model that serves as a foundation for reliable LLM-centric programming.

ChatDBG
ChatDBG is an AI-based debugging assistant for C/C++/Python/Rust code that integrates large language models into a standard debugger to help debug your code.

Pythoness
Pythoness automatically generates Python code from natural language descriptions and tests.

Keystone
The project’s addresses the fundamental challenge of concurrent software verifcation: specifying and reasoning about thread interference. The project leverages a new specifcation notation for thread interference and embeds those specifcations into a new program logic, called Mover Logic, and explores new accompanying verifcation techniques.