Discrete mathematics and programming courses are all-pervasive in computer science, mathematics, and engineering curricula. This book is intended for undergraduate/postgraduate students in computer science, mathematics and engineering. No specific computer science and mathematics background is assumed. The student with high school level mathematics, can use this book for self-study and reference. A glance at the table of contents will reveal that the book treats fundamentals of discrete mathematics, computer science and programming languages. A number of examples have been given to enhance the understanding of concepts. The programming languages used are Pascal and C. In the chapters on combinatorics, graph theory, algorithms and data structures, examples are given and then the relevant concept/ algorithm is abstracted from the examples. The aim of the book is to bring together the fundamentals of discrete mathematics, algorithms and programming for the student community.