David A. Mix Barrington
I am Professor at the
Manning College of Information
and Computer Sciences at
the
University of
Massachusetts Amherst.
My primary research area is computational complexity, particularly boolean
circuits, automata, and logic. Here is a list of my major publications -- a few have PDF versions and I plan to make more available
as I get around to it.
Until the summer of 2022, I was Associate Chair of the Faculty for Academics in the
new College of Information
and Computing Sciences, having held a similar position in the Computer Science
Department and the School of Computer Science since the fall of 2011.
For several years before that I was Chief Undergraduate
Advisor, and I am still a good
source for academic advice in the department,
along with individual faculty advisors, the
CICS advising staff,
Undergraduate Program Director Marius Minea,
and Associate Dean
Jack Wileden.
Contact Info:
- 210 Computer Science Building, Box 34610
- 140 Governors Drive, Amherst MA 01003-4610
- 413-545-4329 (office)
- 413-545-1249 (fax)
- barring at cics dot umass dot edu
- Private zoom 459 532 6175
- Office hours for Fall 2024: Mon 2:30-3:30 (in person), Tue 10-11
a.m. (on Zoom), Thu 2:30-3:30 (in person)
Course Web Sites:
- COMPSCI 250, Fall 2024 -- a core
undergraduate course in logic, number theory, induction proofs,
search algorithms, regular expressions, finite-state machines,
and computability, co-taught with Mordecai
Golin.
- INFO 150, Fall 2024 -- a course in the
mathematical foundations of computing, intended for majors in the
Informatics program.
- COMPSCI 250, Spring 2024 -- the latest
previous
version of the course on the mathematical foundations for computer
science, also co-taught with Prof. Mordecai Golin.
- COMPSCI 501, Spring 2024 -- a course
in formal languages, computability, and complexity, for upper-level
undeergraduates and master's students.
- COMPSCI H250, Spring 2024 -- site
under construction, currently this points to the Spring 2023 site
- COMPSCI 250, Fall 2023 -- a prior course
in the mathematical
foundations for computer science,
co-taught with
Prof.
Ghazaleh Parvini. (Course uses Moodle.)
- CICS 110, Fall 2023 -- the
introductory Python programming course for those interested
in continuing in computer science or informatics. I was one
of seven instructors, and Prof. Cole Reilly was the course chair.
- COMPSCI 891M, Fall 2023 -- the
college's Theory Seminar, also a one-credit graduate course,
for which I am the faculty coordinator this term.
- COMPSCI 240, Summer 2023 -- the
core undergraduate course in aspects of discrete
mathematics that involve probability, taught online.
- COMPSCI 501, Spring 2023 -- yet
another offering of this grad/undergrad course on formal
languages, computability, and complexity.
- COMPSCI 250, Spring 2023 -- a prior
offering of this undergraduate core course in discrete mathematics,
also co-taught with Prof. Parvini.
- COMPSCI H250, Spring 2023 -- An honors seminar
for students taking or who have taken COMPSCI 250, reading
Hofstadter's Gödel, Escher, Bach.
- COMPSCI 501, Spring 2022 --
the same course (modulo COVID-related format changes)
as I taught in Spring 2021, more info to come.
- COMPSCI 250, Spring 2022 --
a previous offering of this core undergraduate course,
co-taught with Kyle Doney.
(Course uses Moodle.)
- COMPSCI 250, Fall 2021 --
the course above, which I co-taught with
Prof. Ghazaleh
Parvini (course uses Moodle).
-
COMPSCI 311, Fall 2021 -- an undergraduate course in
the theory of algorithms, which I am co-teaching with
Prof. Dan
Sheldon
(course uses Moodle, course web site still under construction).
- COMPSCI 741, Fall 2021 -- a graduate course
in advanced complexity theory.
- COMPSCI 501, Spring 2021 --
a course in formal languages, computability, and complexity
intended for advanced undergraduates and master's students
in computer science and related areas. Asynchronous lectures,
synchronous (but remote) discussions and non-lectures.
(Course uses Moodle.)
- COMPSCI 121-05, Spring 2021 --
an in-person section of the introductory Java programming
course for computer science majors and others interested in
the same level of rigor. This
course is under the overall direction of Professors
Jaime Davila and
Joe
Chiu. Recorded lectures, two in-person non-lectures and one
lab meeting per week. (Course uses Moodle.)
- COMPSCI H250, Spring 2021 --
an honors colloquium open to those in COMPSCI 250 this term (which
I was not teaching) or who have taken it in the past. We read
and discussed Godel, Escher, Bach: An Eternal Golden Braid by
Douglas Hofstadter. One synchronous remote meeting per week.
(Course uses Moodle.)
- COMPSCI 575/MATH 513, Fall 2020 -- a
course in combinatorics in grad theory intended for advanced
undergraduates or masters' students in either computer science
or mathematics. (Course uses Moodle.)
- COMPSCI 121-03, Fall 2020 -- a section of
the introductory course in Java programming for computer science
majors and others interested in the same level of rigor. This
course was also under the overall direction of Professors
Jaime Davila and
Joe
Chiu.
(Course used Moodle, no public web site for the section)
- COMPSCI 250, Spring 2020 -- the undergraduate
core course in discrete mathematics (logic, number theory, induction,
trees, searching, finite-state machines) which I co-taught with
Hia Ghosh. (Course also uses Moodle.)
- COMPSCI 311, Spring 2020 -- the undergraduate core
course in the theory of algorithms, which I co-taught
with Marius Minea
(Course also uses Moodle.)
- COMPSCI H250, Spring 2020 -- the honors section
for COMPSCI 250, in which we read Hofstadter's Godel, Escher, Bach:
An Eternal Golden Braid.
- COMPSCI 311, Fall 2019 -- the undergraduate core
course in the theory of algorithms, which I also co-taught
with Marius Minea
(Course also used Moodle.)
- COMPSCI 741, Fall 2019 -- an advanced graduate
course in complexity theory
- COMPSCI 891M,
Fall 2019 -- the college's theory seminar, which I led
with considerable help from Rik Sengupta.
- COMPSCI 250, Fall 2018 -- a prior offering
of the undergraduate
core course in discrete mathematics. I co-taught
250 this semester with Prof. Marius Minea.
(Course also used Moodle.)
- COMPSCI 575/MATH 513, Fall 2018 -- a course
in combinatorics and graph theory intended for advanced undergraduates and
masters' students in either computer science or mathematics, cross-listed in
both areas. (Course also uses Moodle.)
- COMPSCI 250, Spring 2018 -- a
prior offering of this undergraduate course.
- COMPSCI 696A, Spring 2018 -- a group
independent
study reading Algebraic Graph Theory by Godsil and Royle (no
site, I'm afraid)
- COMPSCI 250, Fall 2017 -- another
previous offering of this undergraduate course
- INFO 150, Fall 2017 -- a course in discrete
mathematics intended for students in the proposed informatics program,
formerly known as CMPSCI 190DM.
- COMPSCI 250, Spring 2017 -- a
previous offering of this discrete mathematics course.
- COMPSCI 501, Spring 2017 -- a
course
in the theory of computation, intended for advanced undergraduates,
M.S. students in computer science, and non-CMPSCI graduate students.
(Course also uses Moodle.)
- COMPSCI 891M, Spring 2017 -- the college's
theory seminar, which I coordinated that term.
- COMPSCI 575/MATH 513, Fall 2016 -- a prior
offering of this cross-listed course
- INFO 150, Fall 2016 -- a prior offering of
this discrete mathematics course for students in the proposed informatics
program.
- CMPSCI 250, Spring 2016 -- a prior
prior offering of the core undergradruate course in discrete mathematics.
- CMPSCI 501, Spring 2016 -- a prior
offering of this undergrad/grad course in the theory of computation
- CMPSCI 250, Fall 2015 -- a
prior offering of this core undergraduate course in discrete mathematics.
- CMPSCI 190DM, Fall 2015 -- a course in
discrete mathematics intended for students in the proposed informatics
program.
- CMPSCI 250, Spring 2015 -- a prior offering of
this undergraduate core course in discrete mathematics
- CMPSCI 501, Spring 2015 -- a prior offering of
this advanced grad/undergrad course in the theory of computation
- CMPSCI 187, Fall 2014 -- the second
programming course for majors, dealing with data structures in Java,
which I co-taught
with Prof. Mark Corner.
- CMPSCI 190DM, Fall 2014 -- a course in
discrete mathematics intended for students in the proposed informatics
program.
- CMPSCI 891M, Fall 2014 -- the department's
theory seminar, which I coordinated this term.
- CMPSCI 501, Spring 2014 -- a prior offering
of this upper-level course in the theory of computation, which was formerly
called CMPSCI 401.
- CMPSCI 250, Spring 2014 -- a prior offering of
this core undergraduate course in
discrete mathematics.
- CMPSCI 250, Fall 2013 -- another
prior offering of this undergraduate core course in discrete mathematics
- CMPSCI 190DM, Fall 2013 -- an experimental
offering of a new undergraduate course in discrete mathematics and
mathematical
thinking, intended for students with only high-school mathematics
background and being developed for the possible informatics major.
- CMPSCI 391A, Fall 2013 -- a one-credit
honors
seminar on Conway's game theory.
- CMPSCI 250, Spring 2013 -- a
prior offering
of this undergraduate core course,
which I took
over from Prof. Immerman in mid-semester.
- CMPSCI 401, Spring 2013 -- the final
offering of the undergraduates-only version of this course in the theory of computation, using Sipser's
book.
Included an optional one-credit honors section, called CMPSCI H401.
- CMPSCI 187, Fall 2012 -- the second undergraduate
programming course for majors, dealing with data structures in Java.
- CMPSCI 191A, Fall 2012 -- the one-credit seminar for the Computer Science Residential Academic Program (RAP), which I co-taught
with Professor Robbie Moll.
- CMPSCI 250, Spring 2012 -- another
previous offering of the undergraduate core course
in discrete mathematics (logic, number theory, induction, trees, searching,
finite-state machines), using part of the fifth draft of my textbook.
- CMPSCI 401, Spring 2012 -- another recent
prior
offering of this upper-level undergraduate course in the theory of computation.
- CMPSCI 891M, Spring 2012 -- the department's
weekly theory seminar, also a one-credit graduate course.
- CMPSCI 187, Fall 2011 -- a prior offering of
the second undergraduate
programming course for majors -- the Fall 2012 version was be similar but
used a different textbook.
- CMPSCI 191A, Fall 2011 -- the one-credit seminar for
the first-year residential program in computer science, which I co-taught
with Prof. David Smith.
- CMPSCI 250, Spring 2011 -- a prior
offering of this undergraduate core course.
- CMPSCI 401, Spring 2011 -- a prior
offering of this upper-level undergraduate course.
- CMPSCI 250, Fall 2010 -- a prior
offering of this undergraduate core course.
- CMPSCI 741, Fall 2010 -- an advanced graduate course in
complexity theory, emphasizing circuits and their connections to logic and
automata.
-
CMPSCI 191A, Fall 2010 -- the one-credit seminar for
the first-year students in the Computer Science Residential Academic Program,
which I co-taught with Prof.
Wendy Lehnert.
- CMPSCI 401, Spring 2010 -- a
prior offering of the upper-level
undergraduate course in the theory of computation.
- CMPSCI 601, Spring 2010 -- the core graduate course in computability
and complexity, somewhat revised from previous offerings and
using Arora and Barak Computational Complexity: A Modern Approach.
- CMPSCI 240, Fall 2009
The new core undergraduate course in mathematical and computational
methods for dealing with uncertainty.
- CMPSCI 891M, Fall 2009
The department's theory seminar, which I coordinated that term.
- CMPSCI 191A, Fall 2009
A prior offering of the one-credit seminar for the freshman residential program in computer science.
- CMPSCI 401, Spring 2009
A prior offering of this advanced undergraduate course in the theory of computation.
- CMPSCI 240, Spring 2009
A prior offering of this core course.
- CMPSCI 401, Spring 2008
A prior offering of this advanced undergraduate course in the theory of computation.
- CMPSCI 291b, Spring 2008
An experimental course in mathematical and computational methods for dealing
with uncertainty, a precursor of the eventual CMPSCI 240.
- CMPSCI 250, Fall 2007 The undergraduate core course in
discrete mathematics, using portions of the fourth draft of my textbook.
Portions of this course were new, reflecting plans for the new department
curriculum.
- CMPSCI 251 (officially CMPSCI 291A), Spring 2007 An
experimental version of a new second course in the mathematics of computation
for computer science majors. (This course was eventually replaced by the new
CMPSCI 240 in the department's plans.)
- CMPSCI 791JJ, Spring 2007 A one-credit graduate
seminar on Conway's combinatorial game theory, reading his book On Numbers
and Games.
- CMPSCI 311, Fall 2006 The undergraduate core course in
the theory of algorithms.
- CMPSCI 741, Fall 2006 An advanced graduate course in
circuit complexity theory.
- CMPSCI 250, Spring 2006 The undergraduate core
course in discrete mathematics, which used the fourth draft of my textbook.
- CMPSCI 611x, Spring 2006 A video-only version of
CMPSCI 611, using lectures from Fall 2005 and offered through the
now-defunct PEEAS (Professional
Education for Engineering and Applied Science) program. Page under
construction, info on Fall course here.)
- CMPSCI 611, Fall 2005. The core graduate course
in the analysis of algorithms
- CMPSCI 250, Spring 2005. The undergraduate core course
in discrete mathematics, which used the third draft of my textbook.
- CMPSCI 250, Fall 2004. The previous version of the
core course in discrete mathematics, which used the second draft
of my textbook.
- CMPSCI 601, Fall 2004 A video-only version of
the graduate core course in the theory of computation, using lectures
from Spring 2004.
- CMPSCI 601, Spring 2004. A live offering of the
graduate core course in the theory of computation.
- CMPSCI 741, Spring 2004 An advanced graduate course
in computational complexity.
- CMPSCI 311, Fall 2003. An undergraduate majors
course in the theory of algorithms.
- CMPSCI H04, Fall 2003. The one-credit honors
section for CMPSCI 311.
- CMPSCI 601, Fall 2003. A video-only version
of the graduate core course in the theory of computation, using lectures
from Spring 2003.
- CMPSCI 601, Summer 2003. A video-only version
of the graduate core course in the theory of computation, using lectures
from Spring 2003.
- CMPSCI 601, Spring 2003. My prior offering of
the graduate core course
in the theory of computation, with the notes for the lectures also
used in summer and fall 2003.
- CMPSCI 741, Spring
2003. An advanced graduate course in descriptive complexity and
circuit complexity, co-taught with Neil Immerman.
Here is some information on an undergraduate textbook
I am writing, called Discrete Mathematics: A Foundation for Computer Science,
under contract to Kendall Hunt.
Portions of this text have been used in COMPSCI 250 since Spring 2006.
For Fall an e-book version of
constitutes the text for 250, where Chapters 1-4, 5, 9, 14, and 15 are
used. The entire book is planned for release for Fall 2024.
The CMPSCI 240 portions were used several times many years ago,
most recently by Prof. McGregor in Fall 2011, and a mostly-complete
version was used for a
summer 2023 offering of COMPSCI 240 by me.
Here are some lists of undirected graphs with
various numbers of vertices.
I'm a member of the Unitarian
Society of Northampton and Florence, where I have led and co-led
several worship services and served a term on the Board of Trustees.
Here is a page of
links to material on all those services. My most recent summer service
was called Keeping Score on 4 August 2019.
My other most recent services have been
Who Knows Where the Time Goes? on 9
July 2017, In the Autumn of Our Life on 26 July
2015, and
"I Love You All, Everything" on 23
June 2013.
On 11 December 2011 I led my first "regular-season" service, co-created
with Mike Nagy, entitled "What is UU Music?".
My wife Jessica Mix Barrington has posted some fine pictures from her
2005 trip to Italy
here.
I was part of a group that created the
North Amherst Community
Farm, and thus preserved farming on most of a 38-acre tract near
my house.
I am a co-author of a collaborative alternate history,
For All Nails, extending
For Want of a Nail by Robert Sobel. More information, most of it
writen by my For All Nails
collaborator Johnny Pez,
is available at the Sobel Wiki, with an
encyclopedic depiction of the alternate world of Sobel's book, and
a now-complete archive of For All Nails material.
I'm a member of (and was on the board for 2020-23) Valley Light Opera, and performed in the
choruses
of Die Fledermaus in November 2022 and Iolanthe in
November 2023. This November I will be in The McAdo, a
Scottish-dress version of The Mikado.
I sang in all sixteen fall productions from 2003 through
2018, usually in the chorus, including
H.M.S. Pinafore (2003 and 2013),
Ruddigore (2004),
Lehar's The Merry Widow (2005, Pritschisch),
The Gondoliers (2006, Annibale)
The Mikado (2007), Princess Ida (2008), The Pirates of Penzance (2009),
Iolanthe (2010), The Sorcerer (2011),
Patience (2012), and The Yeomen of the Guard (2014),
Brigadoon (2015, Archie Beaton),
Ruddigore (2016),
My Fair Lady (2017),
and The Gondoliers (2018).
In March 2012 I participated in the chorus of VLO's
concert staging of the rarely-performed opera
Haddon Hall by Sydney Grundy and Sir Arthur Sullivan.
Finally, in April 2013, December 2013, and December 2017
I sang one of the Jurymen in
VLO's
Trial By Jury.
I'm also a member of (and formerly on the board of) the
Hampshire Shakespeare Company, which has resumed post-COVID with
one production of Macbeth in July 2023.
In the summer of 2017 I
played Polonius in both Hamlet and
Tom Stoppard's Rosencrantz and Guildenstern are Dead.
The productions are at the Arthur Kinney Renaissance Center just north of the UMass campus.
In 2016 I played Seyton (who was also the
Porter) in
Macbeth.
In the summer of 2009 I
played Westmoreland and Glendower in Henry IV: Part I. For the latter
part I learned both how to pronounce some Welsh and
how to call spirits from the vasty deep. In the summer of 2010
I played Gonzalo in The Tempest, in the summer of 2011 I
played Autolicus (and Archidamus)
in The Winter's Tale, in the summer of 2012 I was in the
ensemble performing As You Like It, in 2013 I played Antonio in
Much
Ado About Nothing, in 2014 I played Cicero and Cinna the Poet in
Julius Caesar, and in 2015 I played the Host of the Garter in
The Merry Wives of Windsor.
My earlier HSC roles were in As You Like It (2008, Adam),
King Lear (2007, Burgundy, Ensemble),
A Comedy
of Errors (2007, Egeon), Macbeth (2006, the Doctor),
Julius Caesar (2005, Cobbler, Metellus Cimber, Ensemble),
A Midsummer Night's Dream (2005, Egeus, Philostrate),
Love's Labors Lost (2003, Nathaniel), and The Winter's Tale
(2002, Shepherd).
I was co-chair (with Prof.
Neil Immerman) of local arrangements for the Nineteenth Annual
IEEE Conference on Computational Complexity, held in Amherst 21-24
June 2004. Here is the local arrangements page with
information
about the conference,
a detailed
program, and a page of photos
of scenic Amherst and vicinity.
My occasional political blogging can be found at the now-defunct
Blue
Mass Group.
Some sites I read far too regularly:
- The Boston Globe,
which we hope may be with us for a good long time,
- Eschaton, a highly partisan
Democratic political site run by the pseudonymous Atrios
- The Power and the Money, a
blog from economic historian Noel Maurer, erstwhile ringleader of the
For All Nails project,
- The
Computational Complexity Web Log, run by Bill Gasarch and
Lance Fortnow,
- The Daily Kos, another partisan
Democratic campaign website,
- Joshua Michael Marshall's
Talking Points Memo,
- Teresa (and Patrick)
Nielsen Hayden's
Making Light,
- The New Republic,
- Salon magazine,
- Slate magazine,
Coming soon (?) -- a list of books I often recommend to people. It
will
start with the novel A Suitable Boy by Vikram Seth.
There are more things that ought to be on this site but who am
I trying to kid...
Last modified 3 September 2024