Essential discrete mathematics for computer science Essential discrete mathematics for computer science