Discrete Mathematics and Theoretical Computer Science