https://nuhakhaled.medium.com/the-ultimate-guide-to-mastering-discrete-mathematics-for-software-engineers-c35ab3a9edc9