1 Syllabus


1.1 General syllabus

Note: click on the following link, and actually read it; it’s part of the syllabus:
../../ClassGeneral/Syllabus.html

1.2 Course description

This course provides a rigorous treatment of topics from discrete mathematics,
which are essential to computer science.
Principal topics include:
formal logic (propositional & predicate), set theory, proof techniques,
mathematical induction, program correctness, combinatorics,
discrete probability, relations, functions, matrices, and graph theory.

1.2.1 Prerequisite

A grade of “C” or better in:
either Comp Sci 1500 or Comp Sci 1570, and
one of Math 1120, Math 1140, Math 1208, Math 1210, Math 1211, or Math 1214.

1.3 Textbooks and learning resources

There are numerous text references for this class.

If you can’t find a paywalled research paper or book:
https://en.wikipedia.org/wiki/Sci-Hub

This is a nice search engine to find non-open textbooks ;)
https://en.wikipedia.org/wiki/Library_Genesis

1.3.1 Discrete math using Haskell (non-open):

This first link is a great book.
It is considerate in the presented logic, elegant, takes small pedagocial steps,
and the use of language is masterfull:
https://www.dcs.gla.ac.uk/~jtod/discrete-mathematics/

The code examples for this book are good,
though the writing is too roundabout,
while still being correct.
https://staff.fnwi.uva.nl/d.j.n.vaneijck2/HR/

1.3.2 Discrete math itself (open / free):

https://runestone.academy/ns/books/published/dmoi-4/dmoi4.html
https://github.com/oscarlevin/discrete-book/

https://runestone.academy/ns/books/published/ads/adsindex.html
https://github.com/klevasseur/ads

https://runestone.academy/ns/books/published/DiscreteMathText/DiscreteMath.html
https://github.com/nordstromjf/DiscreteMathText

https://www.cs.carleton.edu/faculty/dln/book/

https://realnotcomplex.com/discrete-mathematics/discrete-mathematics

https://textbooks.aimath.org/textbooks/approved-textbooks/

1.3.3 Discrete math itself (non-open):

This is a mature, high-quality textbook, with nice examples and stories.
https://www.cengageasia.com/TitleDetails/isbn/9780357114087

1.3.4 Videos to binge on 2x speed:

https://www.youtube.com/playlist?list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz
https://www.youtube.com/playlist?list=PLDDGPdw7e6Aj0amDsYInT_8p6xTSTGEi2
https://www.youtube.com/playlist?list=PLZh9gzIvXQUtB1t57_Xyk3yp9MK2iIFXX

1.4 Which programming language for this class?

We’ll program and prove examples in a language that elegantly mirrors the math itself, Haskell!
Content/Haskell.html