Kathi Fisler
Research Professor, Computer Science
Co-Director of the CS Undergraduate Program
Research Director, Bootstrap
(previously Professor, WPI Computer Science)
CIT 309 | 401-863-7607 | kfisler@cs.brown.edu
I'm interested in various facets of how people learn and use formal
systems. My current focus is computing education, where I'm looking
at models and representations for explaining program behavior
(notional machines) and how to leverage contrasts between concrete
examples to teach computing concepts. I've been developing a
course (and textbook) on teaching computing through a data-centric
lens (data science + data structures). I am also one of the faculty
leading the design and
assess of our department-wide effort on integrating socially-responsible
computing across all four years of our CS curriculum. Through this
project, I'm trying to understand how people learn to perceive and
reason about social systems.
I've also worked on
diagrammatic logics for hardware design (late 1990s), modular
verification of feature-oriented programs (early 2000s), and reasoning
about access-control and privacy policies (mid-late 2000s). Those
projects emphasized formal systems over human reasoning. My work in
computing education tilts the balance, but is part of the same broad
theme.
I have been heavily involved in outreach for K-12 computing
education since the late 1990s.
With both computing and data science becoming
essential across disciplines, it's time to rethink introductory
computer science education. We're developing data-centric
computing as a blend of computer science, data science, and data
engineering that provides skills to students across campus. We have an
op-ed
summarizing the goal, an introductory collegiate
course, and a textbook (released
August 2021). Our decisions are driven by our research in
computing education. Our Bootstrap:Data
Science curriculum provides a high-school pre-cursor for those
starting in K-12.
Program Design and Plan
Composition in Computing Education
Programming problems
typically contain multiple subtasks, solutions to which must be
integrated into a single program. This project explores how novice
programmers decompose problems and compose subtask immplementations.
Our work emphasizes both the impact of programming languages and
libraries on planning behavior, and pedagogies for teaching program
design, planning, and composition.
Cross-Discipline Transfer
of Knowledge in Computing Education
Bootstrap produces a family
of curricula that integrate computing education for middle- and
high-school students with other disciplines (such as algebra,
physics, and social sciences). The research components of this
project study the pedagogical techniques and curricular conditions
under which knowledge gained through computing transfers back to the
host discipline (and vice-versa for teachers)>
Notional Machines for
Computing Education
Notional machines are the abstract
machines that programmers are attempting to control when they write
programs. Different programming languages afford different notional
machines, which in turn allow different misconceptions about
language behavior. We are studying tradeoffs among notional machines
and pedagogies for avoiding misconceptions in various CS courses,
both intro- and upper-level.
Past Projects
Security Policy
Analysis
Analysis of Datalog-based policies, such as those used for
access-control and privacy. Our Margrave policy analyzer was
a SAT-based engine for verifying properties of policies, as well as
for verifying and exploring consequences of changes to policies. We
also worked on models of how policies interact with underlying
software systems.
Feature-Oriented Software
Verification
Features are cohesive, user-facing behaviors of
systems. Feature-oriented designs (like aspect-oriented design)
modularize code around features. Shriram Krishnamurthi and I developed
a theory of compositional verification of feature-based software
designs; our approach generated logical constraints as interfaces on
features used in open systems (in which not all features were known in
advance).
Formal Reasoning with
Timing Diagrams
Given a semantics, timing diagrams become a
formal representation of system behavior. This project explored
semantics and analysis techniques for such specifications. I proved
that timing diagram verification is decidable, even though timing
diagrams capture some non-context-free languages.
I mostly teach introductory-level courses and research seminars
on computing education. I have also taught programming languages, software security, computer-aided
verification, and various research seminars.
Courses at Brown
Spring 2024: CSCI0200:
Program Design with Data Structures and Algorithms (also Spring
2023, Spring 2022)
Fall 2022: CSCI0111: Computing
Foundations:Data (also Fall 2021, Fall 2020)
Summer 2020: CSCI0180: Computer Science, An Integrated
Introduction (also Spring 2020, Spring 2019, Spring 2018)
Summer 2019: CS0050: A
Data-Centric Introduction to Programming [2017
offering]
Courses at WPI
Links are to my last offering of each course, but I taught
several of these many times:
I began doing serious K-12 computer science outreach in 1997, when
I joined the Program by
Design team (then called TeachScheme!). I co-directed Program By
Design with Shriram Krishnamurthi, starting in 2000.
Bootstrap
I co-founded Bootstrap
with Emmanuel Schanzer and Shriram Krishnamurthi. Bootstrap
produces a series of CS curricular modules for middle- and
high-school, with an emphasis on modules that integrate into existing
subjects. We currently have modules that integrate into algebra,
physics (science modeling), and social science (data science). We
also have a computer science module that follows on the algebra module
for those looking for a complete introductory CS course.
Bootstrap is active on the national level. We train hundreds of
teachers in many states each year, reaching roughly 25,000 students
per year. We are actively engaged in both national
and state-level CSforAll projects, including CS4RI. Details are on the Bootstrap website.
Within Bootstrap, I take the lead on grant writing, research and
assessment, our partnership with the Oklahoma State Dept of
Education, our social studies/data science curriculum, and our
software infrastructure for producing curricular materials. We all
do a bit of everything though, so feel free to reach out if you have
a question about the project.
CS Standards Efforts
I have been involved in several efforts to develop educational
standards for K-12 CS:
I was a consultant on the K-12 CS standards
for New York.
In 2017-18, I was a lead author on the K-12 CS standards
for Rhode Island.
In 2014-15, I was on the authoring panel that developed the K-12
CS/Digital Literacy standards for Massachusetts.
I was also part of the group that developed the programming languages component of the ACM 2013 CS curriculum.
I was a theater junkie through
high school. As an undergraduate at Williams College, I rang
handbells, worked in the college archives, walked campus backwards
giving tours, danced folk and jitterbug, double majored in Chinese
and Computer Science, and sang in an acapella group for folks who
couldn't carry a tune. These days, I like to hike, sing, exercise,
and cook vegetarian food from around the world. Jigsaw puzzles
distract me for hours. I love puns and other forms of
word-play. As a native New Yorker, I'm a thin-crust pizza
snob. Four years living in Houston learned me in salsa. I'm yet to
live in a place that offers both great pizza and great salsa.