The course will introduce basic and fundamental programming constructs and techniques through using the Python programming language in order to generate algorithmic solutions to problems. Upon completion of the course, students will learn an introduction to algorithms, solving problems by flowcharts and pseudo codes, data types, arithmetic & logic operators, control statements (if, if/else, switch-case) and use them as inner statements, loop statements (while, do/while, for),  functions,  standard functions of programming language, random number generation and their area of use, user-defined functions, global and local variables, recursion. In the laboratory hours, students are writing full programs or modifying existing programs for other solutions.