- Docente: Giancarlo Succi
- Credits: 6
- SSD: INF/01
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
-
Corso:
Second cycle degree programme (LM) in
Computer Science (cod. 5898)
Also valid for Second cycle degree programme (LM) in Digital Innovation Policies and Governance (cod. 5889)
-
from Sep 16, 2024 to Dec 20, 2024
Learning outcomes
This course aims at ensuring that at the end of the course the students: • know the main cognitive models that can explain how people develop software • are aware of the opportunities and the limits of applying techniques of artificial intelligence to develop software • are familiar at how the principles of software engineering can guide the development of AI systems • have an understanding of the principles of blockchain and their applications • understand the role and the potentials of cryptocurrencies and the problems associated to them when developing software • are able to build complex models of production processes and of products combining the most modern approaches, with specific attention to AI, blockchain, and cryptocurrencies.
Course contents
In the last years there has been a completely change of paradigm in software production that has lead to rethink at processes and production contexts. In particular, there has been a renewed interest in artificial intelligence, with a strong interest in the application of machine learning in predicting quality and productivity and in the use of cognitive models to orient the production processes.
On the other side, a strong need has emerged to identify software tools suitable to handle platforms for data management, that are always more complex and generate systems that at first appear to have strong effects but then are hard to evolve. Moreover, there are always more distributions of applications and development processes, interconnected with new methods of management of aspects and applications related to the introduction of blockchain systems and cryptocurrencies.
Prerequisites:
Even if there is not any formal prerequisite, the course is characterised as a software engineering course and will not present fundamental aspects of artificial intelligence and machine learning; to this end, it is recommended that the students not having such knowledge take before this course the one of Deep Learning, cod. 91250, of Prof. Asperti.
Knowledge and ability to acquire:
This is a software engineering course that intends to educate the students so that at the end of the course students:
- know the main cognitive models that can explain how people develop software
- are aware of the opportunities and limits of the applications of artificial intelligence for the development of software
- become acquainted on how the principles of software engineering can guide the development of systems based on artificial intelligence
- master the principles of blockchain and their applications
- understand the role and the potentiality of cryptocurrencies and the problems associated to them in the development of software
- manage to build complex production models and complex products combining the most advantages existing technologies, methods, and tools, including AI, blockchain systems, and cryptocurrencies
Topics:
- Cognitive models for software development (systemic approaches, impulsive-reflective models, ...)
- Application of AI to software development (testing, prediction, evaluation)
- Use of software engineering principles in the development of AI systems
- Blockchain (principles, distributed ledger technologies, smart contracts, platforms)
- Cryptocurrencies (principles, transactions, consensus algorithms, overview of existing currencies
Readings/Bibliography
Given the novelty of the topics and their constant evolution, there is not a official textbook of the course but the instructor will supply a list of relevant readings for the course.
Teaching methods
- Frontal lectures
- Guided exercises
- Discussions
- Presentations of experts
- Presentations by students
Assessment methods
- In the first exam session the student can select between an omnicomprehensive oral and a (individual or group) project on the topics of the course and assigned by the instructor.
- In the following sessions, the evaluation will be on an omnicomprehensive oral.
Teaching tools
The course uses the standard tools for the teaching activities and a unique experimental platform based on the integration of LLMs, semantic networks, and HPC (https://research.constructor.tech/) very kindly supplied by the pioneering Constructor Group (https://constructor.tech).
The instructor recommends warmly to use paper and pen/pencil to attend the class activities, or their electronic equivalent, and, when needed, a laptop with internet access, also to use the above-mentioned platform.
Open source systems are largely preferred.
Office hours
See the website of Giancarlo Succi