The course aims to present the fundamental aspects (both technological and methodological) of software engineering, emphasizing the Agile methodologies. It also aims to provide tools and methodologies for the design of software systems based on object oriented programming paradigm.