I am Professor 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.

I am 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 Directors Tim Richards and Ben Marlin, and Associate Dean Jack Wileden.

- (whenever I get back to the office)
- 210 Computer Science Building, Box 34610
- 140 Governors Drive, Amherst MA 01003-4610
- 413-545-4329 (office, not being used Fall 2020)
- 413-545-1249 (fax)
- barring at cics dot umass dot edu
- Office hours for Spring 2021: Tue 11-1, Fri 1-2, in my Zoom private meeting room -- if you're not in one of my courses, email me to get the number.

- 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 am not teaching) or who have taken it in the past. We will read
and discuss
*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 Summer 2020 an e-book version of Chapters 1-4, 5, 9, 14, and 15 constitutes the text for 250, with the following known corrections that will be made for a new edition of those chapters, to be used in Fall 2020. The entire book is planned for release for Fall 2021. The CMPSCI 240 portions were used several times, most recently by Prof. McGregor in Fall 2011.

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 on the board of) Valley Light Opera and am looking forward
to the delayed production of *The Pirates of Penzance* in
November
2021.
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, and in the summer of 2017 I
played Polonius in both *Hamlet* and
Tom Stoppard's *Rosencrantz and Guildenstern are Dead*.
Our productions are at the 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 Blue Mass Group.

Some sites I read far too regularly:

- Blue Mass Group, a partisan Democratic political blog focusing on Massachusetts, and
- The
*Boston Globe*, which we hope may be with us for a good long time, - Geoffrey Chaucer Hath a Blog (which has new posts every few months, though Chaucer appears to be spending more time on his Twitter feed),
- Brad DeLong's Grasping Reality,
- 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,
- Fafblog! the whole worlds only source for Fafblog, inspired analysis and commentary from Fafnir, Giblets, and the Medium Lobster, apparently inactive since November 2011,
- 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,
- Political Animal, a weblog
on the home page of
the excellent
*Washington Monthly*magazine, now written by Nancy LeTourneau.

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 1 February 2021