The imperative programming paradigm is widely used both in the industry and in high-performance academic software. Popular representatives of this approach are C/C++, Java, Fortran, Basic, Python, etc. In this course we choose Python (a modern and friendly language) to learn the main concepts of this programming paradigm. We will have lectures, lab sessions and, of course, homework. During the first weeks you will acquire basic programming skills and during the final week you should develop a small project of your own. The evaluation will consist of the homework and a final project.