Phil Chodrow seated, looking directly ahead, wearing a grey shirt and jeans.
Office
75 Shannon 218
Email
pchodrow@middlebury.edu
Office Hours
Mondays, 4pm-5pm, Thursdays 2pm-3pm, by scheduling link, and by appointment.

I am a data scientist and applied mathematician interested in computational tools for understanding our social world. I am especially interested in network science, the study of interconnected systems in society and nature. Much of my work involves the development and analysis of algorithms for learning from network data. In pursuing this work, I draw freely on methods from applied mathematics, machine learning, statistics, and physics. I also work on developing, simulating, and analyzing models of behavior in human and animal societies. Several of my data science projects support sustainability, equity, and social justice. 

I am a passionate educator. I believe deeply in the role of inclusive, evidence-based pedagogy, and in the central place of ethics in STEM education. 

I received a BA in mathematics and philosophy from Swarthmore College. I did my PhD in operations research at MIT, and spent two years as visiting faculty in mathematics at UCLA before coming to Middlebury. 

Courses Taught

Course Description

Introduction to Computing
In this course we will provide a broad introductory overview of the discipline of computer science, with no prerequisites or assumed prior knowledge of computers or programming. A significant component of the course is an introduction to algorithmic concepts and to programming using Python; programming assignments will explore algorithmic strategies such as selection, iteration, divide-and-conquer, and recursion, as well as introducing the Python programming language. Additional topics will include: the structure and organization of computers, the Internet and World Wide Web, abstraction as a means of managing complexity, social and ethical computing issues, and the question "What is computation?" (Juniors and Seniors by waiver) (formerly CSCI 0101) 3 hr. lect./1 hr. lab

Terms Taught

Fall 2022

Requirements

DED

View in Course Catalog

Course Description

Mathematical Foundations of Computing
In this course we will provide an introduction to the mathematical foundations of computer science, with an emphasis on formal reasoning. Topics will include propositional and predicate logic, sets, functions, and relations; basic number theory; mathematical induction and other proof methods; combinatorics, probability, and recurrence relations; graph theory; and models of computation. (CSCI 0145 or CSCI 0150) (Juniors and Seniors by waiver) 3 hrs. lect./lab

Terms Taught

Fall 2023

Requirements

DED

View in Course Catalog

Course Description

Machine Learning
Machine learning algorithms detect patterns in data and use these patterns to make decisions. This course introduces the theory and practice of machine learning. Tasks considered may include classification, regression, clustering, dimensionality reduction, text embedding, and reinforcement learning. Applications may include predictive analytics, data visualization, pattern recognition, and strategic game-playing. We will also discuss the social implications of automated decision systems. This course fulfills the Responsible Computing requirement for the Computer Science major. (Not open to students who have already taken CSCI 1051.) (CSCI 0200 and CSCI 0201 and MATH 0200) 3 hrs. lect./lab

Terms Taught

Spring 2023, Spring 2024

Requirements

DED

View in Course Catalog

Course Description

Advanced Study
Individual study for qualified students in more advanced topics in computer science theory, systems, or application areas. Particularly suited for students who enter with advanced standing. (Approval required) 3 hrs. lect.

Terms Taught

Spring 2023, Fall 2023, Winter 2024, Spring 2024, Fall 2024, Winter 2025, Spring 2025

View in Course Catalog

Course Description

Senior Thesis
The senior thesis is required for all CSCI majors who wish to be considered for high and highest departmental honors, and is recommended for students interested in pursuing graduate study in computer science. Students will spend the semester researching and writing, and developing and experimenting as appropriate for their topic. All students will be expected to report on their work in the form of a written thesis, a poster, and an oral presentation at the end of the semester. In addition, throughout the semester, students will meet as a group to discuss research and writing, and will be expected to attend talks in the Computer Science lecture series. Before approval to join the class is granted, students are expected to have chosen a thesis adviser from the CSCI faculty, and determined a thesis topic with the guidance and approval of that adviser. (CSCI 0701 and approval required) 3 hrs. lect./disc.

Terms Taught

Winter 2024, Spring 2024, Winter 2025, Spring 2025

View in Course Catalog

Areas of Interest

  • Network science
  • Computation on graphs
  • Models of human and animal behavior
  • Applied machine learning
  • Data science and social justice
  • Social responsibility in computing
  • CS pedagogy

Publications

Please refer to my Google Scholar page for a complete record of publications, or to my research page for more information on my current work.