This textbook offers an introduction to topics in algorithms and programming with python. It is originally intended for mathematical students not sufficiently aware about these computer science fields seeking a deeper understanding. It addresses fundamental questions on how to analyze the performance of an algorithm and equips readers with the skills to implement them using python.The textbook is organized in two parts. Part I introduces Python Programming offering a solid foundation to python essentials. Topics covered include first steps in python programming, programs, functions and recursion, data structures. Part II shifts focus to Algorithms and covers topics such as algorithm performance, recursion, the sorting problem, trees as data structures, etc.This book has its origins from several different courses given in the context of thematic schools to diverse audiences in different countries over the years. These countries include Cambodia, Kenya, and Madagascar.