I am Professor of Computer Science at the University of Massachusetts at 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 Director of Instructional Programs for 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.

Since the beginning of Fall 2011 I have been first Associate Chair for Academic Programs in the School of Computer Science (formerly the Computer Science Department). 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, Undergraduate Program Director Rod Grupen, Chief Undergraduate Advisor Tim Richards, 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
- Office hours for Fall 2015: Tue 11-12, Wed 2:30-3:30, Thu 2-3

- CMPSCI 250, Fall 2015 -- the undergraduate core course in discrete mathematics (logic, number theory, induction, trees, searching, finite-state machines) (Course also uses Moodle.)
- CMPSCI 190DM, Fall 2015 -- a course in discrete mathematics intended for students in the proposed informatics program.
- CMPSCI 250, Spring 2015 -- the most recent prior offering of this core undergraduate course in discrete mathematics.
- CMPSCI 501, Spring 2015 -- a course in the theory of computation, intended for advanced undergraduates, M.S. students in computer science, and non-CMPSCI graduate students.
- 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 McGraw-Hill. (This information was last **updated** in
December 2008.)

The latest complete (fourth) draft of a ten-chapter version of the book was used as the text for CMPSCI 250 in Spring 2006. I am now preparing a fifth draft of a new fifteen-chapter version. The CMPSCI 250 portions of the text were used in Fall 2007, Fall 2010, Spring 2011, Spring 2012, Fall 2013, and Spring 2014. The CMPSCI 240 portions have been used several times, most recently by Prof. McGregor in Fall 2011.

Here is a list of restaurants in Amherst and vicinity (updated July 2006). For a more comprehensive and more up-to-date publicly-edited list that originally derived from this one, see the UMass Wiki.

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 recently served on the Board of Trustees. Here is a page of links to material on all those services. My last summer service was called In the Autumn of Our Life on 26 July 2015. The one before that was called "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 Valley Light Opera and
was in the chorus of its last major production, *Yeomen of the Guard*
in November 2014. This fall I will play the part of Archie Beaton in VLO's
first foray into mid-20th century Broadway, *Brigadoon*.
I also sang in
the chorus of
*H.M.S. Pinafore* (2003 and 2013),
*Ruddigore* (2004), *The Mikado*
(2007), *Princess Ida* (2008), *The Pirates of Penzance* (2009),
*Iolanthe* (2010), *The Sorcerer* (2011), and
*Patience* (2012).
In November 2005 I sang Pritschisch in VLO's production of
Lehar's *The Merry Widow* and in November 2006 I sang Annibale in *The
Gondoliers*. 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 and December 2013 I sang one of the Jurymen in
VLO's
*Trial By Jury*.

I'm also a member of (and currently president of) the
Hampshire Shakespeare Company, and I played the Host of the Garter in
*The Merry Wives of Windsor*
this summer at the Renaissance Center just north of the UMass campus.
This is a new venue for the company, beginning with the summer of 2011
-- earlier we
were at the Hartsbrook School in Hadley.
In the summer of 2009 I
played Westmoreland and Glendower in *Henry IV: Part I*. For the latter
part I learned 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*, and in 2014 I played Cicero and Cinna the Poet in
*Julius Caesar*.

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 and Blue Hampshire.

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 Ed Kilgore.

Coming soon (?) -- a list of books I often recommend to people.

There are more things that ought to be on this site but who am I trying to kid...

Last modified 6 September 2015