# Discrete Structures for Computer Science

## Overview

Underlying mathematical rules that govern algorithm design and data structures. Leans in on more of a mathematics course than a CS one. The course covers [`set theory`](https://brilliant.org/wiki/set-theory/), [`combinatorics`](https://brilliant.org/wiki/combinatorics/), [`recurrence relations`](https://brilliant.org/wiki/recurrence-relations/), [`graph theory`](https://brilliant.org/wiki/graph-theory/) and [`group theory`](https://brilliant.org/wiki/group-theory-introduction/)

[Judith Gerstring's book](https://drive.google.com/open?id=14pZnQh0iN7ATQqFdpkTNBd-etwoNzdOY) is a perfect introduction to the course for beginners. It is recommended to use [Kenneth Rosen's book](https://drive.google.com/open?id=14Hfrd7Ogz7UjI_xFS1ENdMaJQH7STmLb) which provides examples and problems whose solutions can be found [here](https://drive.google.com/open?id=1Y9bDZVoljQCjPt_egUKnqtHi-2mtTY5x)

## Navigation

* [Prerequisites](#prerequisites)
* [Textbooks](#textbooks)
* [Videos](#videos)
* [Apps](#apps)

## Prerequisites

This course has no prerequisites.

This course is a prerequisite for:

* [Theory of Computation](https://bpdc-acm.gitbook.io/openlib-cs/courses/csf351)
* [Data Structures & Algorithms](https://bpdc-acm.gitbook.io/openlib-cs/courses/csf211)

## Textbooks

| Title                                                                                                                                                       | Author(s)                        |     Edition    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | :------------: |
| [Discrete Mathematics for Computer Scientists & Mathematicians](https://drive.google.com/open?id=1wxJ2zh-3XQ2bqFL_cZcA_Cnxt39ulyNM)                         | Mott, Kandel & Baker             |   2nd (2008)   |
| [Discrete Mathematics and its Applications](https://drive.google.com/open?id=14Hfrd7Ogz7UjI_xFS1ENdMaJQH7STmLb)                                             | Kenneth Rosen                    |   7th (2012)   |
| [Student's Solution Guide to Accompany Discrete Mathematics and its Applications](https://drive.google.com/open?id=1Y9bDZVoljQCjPt_egUKnqtHi-2mtTY5x)       | Jerrold Grossman & Kenneth Rosen |   7th (2012)   |
| [Mathematical Structures for Computer Science: Discrete Mathematics & its Applications](https://drive.google.com/open?id=14pZnQh0iN7ATQqFdpkTNBd-etwoNzdOY) | Judith Gersting                  |   7th (2014)   |
| [Lehman & Leighton Notes](https://drive.google.com/open?id=1r2ajkPY1x6EWp_k38yxH_8MPGvQOUocO)                                                               | Lehman & Leighton                | Revised (2004) |
| [Discrete Mathematics with Applications](https://drive.google.com/open?id=1r2ajkPY1x6EWp_k38yxH_8MPGvQOUocO)                                                | Susanna S. Epp                   |   4th (2011)   |

## Videos

* [Set Theory, *Knowledge Gate*](https://www.youtube.com/playlist?list=PLmXKhU9FNesTSqP8hWDncxpCj8a4uzmu7)
* [Relations, Posets, etc., *Knowledge Gate*](https://www.youtube.com/playlist?list=PLmXKhU9FNesTpQNP_OpXN7WaPwGx7NWsq)
* [Relations Intro., *Knowledge Gate* ](https://www.youtube.com/playlist?list=PLmXKhU9FNesQSH0J7qjWJ1TFS49o-EVFC)
* [Graph Theory *Knowledge Gate*](https://www.youtube.com/playlist?list=PLmXKhU9FNesS7GpOddHDX3ZCl86_cwcIn)
* [Group Theory, *Knowledge Gate*](https://www.youtube.com/watch?v=7ifHq5J58cE\&list=PLmXKhU9FNesQrSgLxm6zx3XxH_M_8n3LA)
* [Group Theory & Abstract Algebra, *Socratica*](https://www.youtube.com/watch?v=IP7nW_hKB7I\&list=PLi01XoE8jYoi3SgnnGorR_XOW3IcK-TP6)
* [Discrete Math Full Course: Sets, Logic, Proofs, Probability, Graph Theory, etc, *Trefor Bazett*](https://www.youtube.com/playlist?list=PLHXZ9OQGMqxersk8fUxiUMSIx0DBqsKZS) *(Full Course)*
* [Discrete Math 1, *TrevTutor*](https://www.youtube.com/watch?v=tyDKR4FG3Yw\&list=PLDDGPdw7e6Ag1EIznZ-m-qXu4XX3A0cIz)
* [Discrete Math 2, *TrevTutor*](https://www.youtube.com/watch?v=DBugSTeX1zw\&list=PLDDGPdw7e6Aj0amDsYInT_8p6xTSTGEi2)
* [Introduction to Mathematical Thinking, *Stanford University*](https://www.coursera.org/learn/mathematical-thinking)
* [Discrete Mathematics Specialisation, *UC San Diego*](https://www.coursera.org/specializations/discrete-mathematics)

## Apps

* [Wolfram Alpha](https://www.wolframalpha.com/)
* [Algorithms: Explained and Animated](http://algorithm.wiki/en/app/)
