Learning objectives
The objective of the course is to present the main data structures and their related algorithms. Furthermore, the course intends to provide students with notions related to the study of the computational complexity of algorithms. Finally, the course also aims to provide students with the ability to apply problem analysis techniques to solve simple practical problems algorithmically.
With reference to the Dublin Descriptors:
Knowledge and Understanding
The course introduces the concepts related to data structures and the study of correct and efficient algorithms. Students acquire the ability to study the complexity of algorithms related to problems of various nature and the ability to use data structures that allow efficient information management.
Applying Knowledge and Understanding
The theoretical knowledge presented is always applied to the resolution of specific problems. During the course, exercises and problems of different nature will be addressed, with particular reference to the implementation of programs that use the different data structures studied and their related algorithms.
Making Judgements
The exercises proposed in relation to the theoretical part carried out in class can be tackled individually or in groups and, often, can be solved in different ways. The comparison with classmates and listening to the solutions proposed by others, during homework or in-class activities, favor the development of specific skills to clarify one's arguments and identify common structures between different approaches.
Communication Skills
Classroom discussions allow for the improvement of communication skills. These discussions concern the methods for solving the proposed problems, highlighting the advantages and disadvantages of the different approaches proposed. Students learn to work both independently and in groups.
Learning Skills
The study of basic algorithmic techniques and their application to problems of heterogeneous nature contribute to developing in students the ability to learn in an in-depth and not just superficial and repetitive way. The knowledge thus acquired is never rigid and mechanical, but perfectly adaptable to any evolution and change of perspective and context.