B1459 - ARTIFICIAL INTELLIGENCE, BLOCKCHAIN E CRIPTOVALUTE NELLO SVILUPPO SOFTWARE

Academic Year 2023/2024

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Science (cod. 5898)

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. In particular, the instructor recommends to use paper and pen/pencil to attend the class activities, or their electronic equivalent, and, when needed, a laptop with internet access.

    Open source systems are largely preferred.

    Office hours

    See the website of Giancarlo Succi