The Introduction to Programming course teaches the fundamental concepts and skills necessary to perform programming at a professional level. Students will learn how to master the fundamental control structures, data structures, reasoning patterns and programming language mechanisms characterizing modern programming, as well as the fundamental rules of producing high-quality software. They will acquire the necessary programming background for later courses introducing programming skills in specialized application areas. The course focuses on Object Oriented paradigm.