Monday, December 30, 2019

Sage Cell Server has migrated to Python 3

I recently discovered that many of the SageMath cells in the web version of Applied Discrete Structures (ADS) were no longer working as they had in the past. Then I found out why.  Apparently, 2020 is the Y2K of the Python Universe.  ... and I was oblivious to it!

The Python 2 language, i.e. Python 2.7.x, is officially being discontinued on January 1, 2020 (first planned for 2015) after which security patches and other improvements will not be released for it.[29][30] With Python 2's end-of-life, only Python 3.5.x[31] and later will be supported.
Due to differences in the two versions of Python, there are two main impacts on the code on the current web version of ADS.

  • "print expr" produces an error and needs to be replaced with "print(expr)"
  • map produces an iterator instead of a list.  This is fixed by wrapping  list( ) around the map expression if the original output is as desired.  More about iterators.
  • keys of a dictionary are are also an iterator and using list is the fix in this situation too.
Fortunately the PreTeXt project has my back and an automated system has been developed to identify all the problems.   I hope to have an updated web version ready for the spring semester.

Wednesday, September 11, 2019

Logic Design & Boolean Algebra

The original 1980's version of Applied Discrete Structures had a section on Logic Design, but when I reworked the book starting around 10 years ago, I didn't include that section.  The main reason was that I never could find a good application for drawing gate diagrams.  I still haven't found one that is exactly what I want, but Inkscape comes close. I was able to draw some basic diagrams. Although I'm still not perfectly satisfied with what I have, I think they are good for a draft.

So after a delay of several years, here is a draft version of Section 13.7 A Brief Introduction to Switching Theory and Logic Design.  I developed it as single-section PreTeXt book, so the numbering is 1.1.x instead of 13.7.x.   I intend to add this to the next version of Applied Discrete Structures, in spring 2020.

I'd be interested in whether many users would plan on covering this section in their courses.

Friday, August 30, 2019

Professor Al Doerr Memorial Scholarship Fund

One October 14, 2018, Prof. Al Doerr passed away. He was coauthor of Applied Discrete Structures He was on the faculty at UMass Lowell for 50 years. In his honor, the Mathematical Sciences Department has established an endowed scholarship fund in his name. If you or your students want to thank us for the book, you could donate even a few dollars to the Prof. Alan Doerr Scholarship Fund at All proceeds go to a scholarship endowment for our math majors.

Wednesday, January 2, 2019

Appendix on Determinants

Determinator Comic:
from Courtney Gibbon's
Brown Sharpie (CC: BY-NC-NA)
In our original 1980's text, we had an 11 page appendix on determinants.  That was probably overkill since our inclusion of matrix diagonalization isn't really mainstream discrete math, but back then the exact content of a discrete math course wasn't so well defined.   When I revived Applied Discrete Structures, I never got around to converting the determinant appendix.  We still have diagonalization in chapter 12 and for completeness I've put together a more compact appendix.  Right now, a draft is available as a pdf at  

I haven't decided whether to integrate it into the text or just leave it as a supplement. I'm concerned that the full print version is getting a bit unwieldy.  I'm hoping to find a way to automatically exclude it from the print version but include it in the web version, where length isn't an issue.