Learning objectives
The course starts from the basics of the well-know Software Crisis phenomenon. It then passes through the study of classic development techniques. It eventually ends to provide the basic of architectural aspects of modern software systems.
The course is structured into frontal lessons and a set of exercizes in Java.
Taking Dublin Indicators into account:
Knowledge and understanding
The course introduces the first concepts related to software engineering. Particular emphasis is given to the understanding of the classical techniques. The reference texts are in Italian, but standard English terminology is commonly used during the lessons as goodwill to the consultation of international scientific literature.
Applying knowledge and understanding
The knowledge presented is always applied to the solution of specific problems. The exercises that accompany the course are focused on solving exercises and problems, particularly in the development of Java-based software systems. Often, the solution methods are presented in the form of an algorithm, developing in the students the ability to structure procedures that are useful in many parts of computer science, and not only in the study of software engineering.
Making judgments
The exercises, which are proposed in relation to the theoretical part presented in classes, can be solved individually or in groups. The comparison with classmates, work at home or in classroom, favors the development of specific skills in students to enable the explanation of arguments to fellows and teachers. Often, exercises can be solved in different ways and the listening to the solutions proposed by others allows students to develop the ability to identify common structures, beyond the apparent superficial differences.
Communication skills
The numerous discussions on the different methods to solve problems allow students to improve communication skills. Specific communication of software engineering concepts is also usually used during classes and exercises.
Learning skills
The study of the origins of technological solutions and their introduction motivated by qualitative and quantitative considerations contributes to the students’ ability to learn in a deep way and not just superficial and repetitive. The knowledge acquired is never rigid and definitive, but it is adaptable to any evolution and change of perspective and context.