Teaching Methods

The goal of theory classes is to deliver theoretical concepts by the teacher, to present and discuss case-studies, to present the programming problems and to solve less complex problems, in a team. The aim of lab classes is to help students to solve the programming problems, to accompany the students in their project and to perform defenses.

Learning Outcomes

To strengthen the ability to solve programming problems by algorithmic paradigms in different problem domains. Starting from a verbal problem descrition, the student must be able, himself or within a group:• To understand the problem and relate it to other known problems;• To identify algorithmic paradigms that are suitable for the problem at hand;• To design particular algorithms for solving the problem at hand, based on the paradigms that are taught in class;• To implement algorithms in a modular way, using appropriate data structures;• To understand the complexity bounds of the algorithms;• To explain and justify the options that were taken during the problem solving process.Main skills to acquire are:1 )Analysis and synthesis, problem solving2) Critical reasoning 3) Autonomous learning, application of theory into practice.

Secondary skills are:1) Decision making 2) Teamwork3) Creativity and adaptability to new scenarios.