Stephen Freund

A. Barton Hepburn Professor of Computer Science
Data Science Coordinate Program Co-chair

47 Lab Campus Drive
Williams College
Williamstown, MA 01267

Office: TPL 207
Email: sfreund@williams.edu

I am a professor of Computer Science at Williams College and also co-chair of the new Data Science Coordinate Program. 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.

Current and Upcoming Classes

CSCI 104: Data Science and Computing for All, Fall 2025

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 334: Principles of Programming Languages, Spring 2026

A programming language is a programmer’s principle interface with the computer. As such, the choice of an appropriate language can make a large difference in a programmer’s productivity. A major goal of this course is to present a comprehensive introduction to the principal features and overall design of both traditional and modern programming languages. You will examine language features both in isolation and in the context of more complete language descriptions.

Current Research

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.