Many areas of computer science require the ability to work with the notions from the area of discrete mathematical structures. The goal of the course is to introduce such fundamental material for computer science. The students will obtain knowledge on discrete mathematical structures and techniques which are applied in computing practice. Three kinds of topics are covered, namely basic logic, naïve set theory and proof techniques. The course not only introduces theoretical concepts, but is also oriented to practical applications. For instance, the ability to create and understand a proof, either a formal one or a less formal but still rigorous argument, is important in almost every area of computer science.