This book is intended for first-year students in the Mathematics and Computer Science Bachelor's program, as well as anyone seeking a solid foundation in algorithms and data structures. The algorithms presented in this book are translated into the C programming language.Offering a progressive learning approach, this book draws extensively from our experience teaching Algorithms and Data Structures over several years. At the end of each chapter, there is a set of solved exercises. After reading and understanding the material, students are encouraged to attempt solving the exercises on their own before checking the solutions. Students need to remember that the same problem can be solved using different algorithms.Practical work, in this book, is an integral part of programming education, providing students with the hands-on experience and skills needed to succeed in the field. It bridges the gap between theory and application, preparing students for the dynamic and evolving world of software development.The author of this book would greatly appreciate any feedback or suggestions.