Advanced Programming Techniques
A.Y. 2024/2025
Learning objectives
The course aims to expose the student to techniques and technologies to increase reusability, maintenance and testing of software concerns. In particular, the teaching will focus on definining the concept of software concerns, including crosscutting concerns, and on their extrusion into independent computational units, simpler and easily composable. In this regard, the most recent and innovative software development techniques will be presented, such as, but not limited to, aspect-oriented programming, computational reflection, context-oriented programming, software product-line, bytecode and intermediate language engineering, etc.
Expected learning outcomes
The student will have to demonstrate the ability to develop and implement applications whose concerns are separate and subsequently composed using the techniques presented in class. The student will also have to be able to recognize a software concern within an existing application and to separate it from the rest of the code using one of the techniques/technologies seen in class. The student must also demonstrate that he has developed the ability to write better code (simpler, more reusable and more maintainable) by applying the techniques and concepts provided by the teaching.
Lesson period: First semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course can be attended as a single course.
Course syllabus and organization
Not available in 2024/25
Lesson period
First semester
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours