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.

- 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: TBA

- 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
chorus
of *Die Fledermaus* in November 2022. I was also in the cast for
the November 2023 production of *Iolanthe*.
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 4 July 2024