Course Syllabus
Obiettivi formativi
Il corso si propone di familiarizzare gli studenti con i fondamenti della programmazione e fornire loro una panoramica delle tecniche di data science e intelligenza artificiale utilizzate in un contesto aziendale. Il programma comprende un'introduzione alla programmazione (Python), ai database (SQL) e alle tecniche di machine learning. Le lezioni e il materiale didattico saranno in lingua inglese.
Il corso è alternativo al corso ‘Informatica Generale e Laboratorio Informatico – 1’ che si concentra maggiormente sui sistemi informativi aziendali e delle loro implicazioni organizzative e gestionali.
Al termine del corso, lo studente sarà in grado di:
• comprendere i concetti fondamentali della programmazione imperativa;
• implementare semplici programmi in Python;
• interrogare un database usando il linguaggio SQL;
• comprendere e applicare tecniche di intelligenza artificiale e data mining per preparare, analizzare, e elaborare i dati;
• gestire il cambiamento in azienda, proponendo moderne soluzioni di gestione e analisi dei dati e collaborando in team inter-funzionali;
• comprendere i trend del mondo digitale e il loro impatto nelle imprese, in particolar modo quelle del settore finanziario e nella società;
• acquisire un linguaggio tecnico che consenta di comunicare efficacemente sia con interlocutori con competenze tecnico-informatiche avanzate sia con utenti finali;
• sviluppare buone capacità di apprendimento che permettano di intraprendere con maggiore autonomia studi più avanzati.
Contenuti sintetici
Il corso di "Informatica Generale e Laboratorio informatico -T2 - Data science e programmazione" si propone di introdurre gli studenti ai concetti fondamentali della programmazione e offrire loro una visione generale delle tecniche di data science e intelligenza artificiale applicate nell'ambito aziendale. Il programma del corso comprende un breve introduzione sui sistemi informativi aziendali, una panoramica introduttiva della programmazione utilizzando il linguaggio Python, l'apprendimento dei concetti base dei database con l'utilizzo del linguaggio SQL, e l'acquisizione di competenze pratiche nelle tecniche di machine learning. Le lezioni e il materiale didattico saranno in lingua inglese.
Programma esteso
Introduzione al ruolo delle tecnologie nel mondo del business come componente fondamentale per le organizzazioni di successo.
Analisi delle nuove tendenze digitali: processi di digital transformation in azienda ed evoluzione tecnologica nella società dell’informazione.
Cenni di programmazione: concetti di base della programmazione imperativa e sviluppo di semplici programmi in Python.
Metodi di gestione e analisi dati: database relazionali, SQL, data warehouse, knowledge graph, business analytics.
Machine learning e data mining: soluzioni supervisionate e non supervisionate tipicamente utilizzate nell’ambito d’impresa con particolare attenzione alle reti neurali.
Natural Language Processing: metodi di elaborazione e analisi del testo.
Fondamenti di sicurezza: gestione e prevenzione del rischio in ambito aziendale.
Fondamenti di etica informatica: una panoramica sui temi etici fondamentali, in particolare riguardo all'uso dell'intelligenza artificiale .
Laboratorio informatico: la parte di laboratorio è finalizzata a conferire agli studenti una conoscenza di livello intermedio nell'utilizzo dell'applicativo Microsoft Excel per la risoluzione di alcune problematiche tipiche aziendali.
Prerequisiti
Conoscenze di tipo matematico e logico acquisite nella scuola superiore. Conoscenza della lingua inglese.
Metodi didattici
Lezioni frontali. Le lezioni si svolgono nei laboratori informatici per consentire le esercitazioni di Python, SQL e Microsoft Excel.
Modalità di verifica dell'apprendimento
La verifica dell'apprendimento comprende una prova scritta e, opzionalmente, una prova orale integrativa. La prova scritta, che prevede domande a scelta multipla e domande aperte, si svolgerà nei laboratori didattici per poter valutare le abilità dello studente nell'utilizzo del linguaggio Python e dell'applicativo Microsoft Excel.
La prova finale si articola in due parti.
Parte di Informatica Generale:
- 16 domande a selezione multipla (1 risposta corretta su 4), che assegnano 1 punto ciascuna (0 punti in caso di risposta errata o mancante). Queste saranno estratte in maniera casuale da una lista di domande pre-definite. In particolare ci saranno tre tipi di domande: 1) Teoria di Data Science e Informatica (coperta dalle slide del corso), 2) Teoria di Python, 3) Interpretazione di codice Python (in cui si mostra un piccolo frammenti di codice e si chiede l'output).
- 1 esercizio di Python che assegna un massimo di 8 punti (0 punti in caso di risposta del tutto o in larga parte mancante). L'esercizio richiede di scrivere un frammento di codice che esegua un determinato compito (per esempio: iterare su una lista e eliminare tutti i numeri pari, trovare il minimo in una lista numerica).
- 1 query SQL che assegna un massimo di 8 punti (0 punti in caso di risposta del tutto o in larga parte mancante; si ricorda che la query deve essere eseguibile). L'esercizio (simile a quello riportato in sezione 'Esercitazioni SQL- Esempio di domanda SQL nella prova finale') mostrerà un database composto da alcune tabelle e richiederà di formulare una certa query (di solito combinando più tabelle).
Questa parte attribuisce la votazione massima conseguibile nella prova.
Parte di laboratorio Informatico (Excel):
- 3 domande aggiuntive a selezione multipla (1 risposta corretta su 4) sui contenuti del Laboratorio Informatico (la risposta a tali domande richiede l'utilizzo di Excel). Le domande saranno sia di teoria che di pratica.
Errori o omissioni nella parte di Laboratorio Informatico determinano le seguenti penalizzazioni da applicare alla votazione conseguita nella parte di Informatica Generale:
- 3 risposte corrette: nessuna penalizzazione;
- 1 risposta sbagliata o mancante: - 1 punto;
- 2 risposte sbagliate o mancanti: - 3 punti;
- 3 risposte sbagliate o mancanti: - 5 punti.
Non sono tenuti a rispondere a queste 3 domande aggiuntive: (1) gli studenti di AA precedenti che abbiano già verbalizzato il credito relativo al modulo Abilità Informatiche Preparazione Tesi e (2) gli studenti di AA precedenti che abbiano già superato il modulo di Laboratorio Informatico.
La votazione finale è quella della parte di Informatica Generale meno le eventuali penalizzazioni di Laboratorio Informatico (esempio: 27 punti nella parte di informatica generale, -3 punti in quella di Laboratorio Informatico - ovvero, 2 risposte errate o mancanti - totale della prova 24/30).
Testi di riferimento
- Slide delle lezioni e altro materiale condiviso sulla piattaforma di e-Learning.
- W3C Python tutorial (https://www.w3schools.com/python/)
- Downey, A. B. (2015). Think Python: How to Think Like a Computer Scientist, Version 2.4. Green Tea Press. (Disponibile gratuitamente online con licenza Creative Commons, https://greenteapress.com/thinkpython2/thinkpython2.pdf)
Si consiglia inoltre il seguente testo facoltativo:
- Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition. Aurélien Géron. O’Reilly, 2019.
Periodo di erogazione dell'insegnamento
Primo semestre.
Lingua di insegnamento
Inglese.
Sustainable Development Goals
Learning objectives
The objective of this course is to introduce students to programming and provide them with an overview of the data science and artificial intelligence techniques employed in a business environment. It covers the fundamentals of programming (Python), databases (SQL), and machine learning. All classes and course materials will be in English.
The course can be taken as an alternative to ‘Informatica Generale e Laboratorio Informatico – 1’, which focuses instead on providing a general understanding of the issues related to technological innovation in financial companies and society, data and information management, digital business models, business information systems and their organisational and management implications.
At the end of the course, the student will be able to:
• Understand the fundamental concepts of imperative programming;
• Implement simple programs in Python;
• Query a database using the SQL language;
• Understand and apply artificial intelligence and data mining techniques to prepare, analyze, and process data;
• Manage change in a business environment by proposing modern data management and analysis solutions and collaborating in cross-functional teams;
• Understand the trends of the digital world and their impact on businesses, especially in the financial sector and society;
• Acquire a technical language that enables effective communication with both highly skilled technical-informatics professionals and end users;
• Develop strong learning skills that allow for greater autonomy in pursuing advanced studies.
Contents
The course "Informatica Generale e Laboratorio informatico -T2 - Data science e programmazione" aims to acquaint students with programming and give them a comprehensive understanding of the data science and artificial intelligence methods utilized within a business setting. The program includes a brief introduction to business information systems, an introductory overview of programming using the Python language, learning the basic concepts of databases using SQL, and gaining practical skills in machine learning techniques. All classes and course materials will be in English.
Detailed program
Introduction to Business Information Systems: architectures and applications supporting the operational, tactical, and strategic needs of enterprises.
Digital trends: digital transformation processes in companies and technological evolution in the information society.
Programming Basics: basic concepts of imperative programming and development of simple programs in Python.
Methods for Data Management and Analysis: relational databases, SQL, data warehousing, knowledge graphs, business analytics.
Machine Learning and Data Mining: supervised and unsupervised solutions, with a specific focus on neural networks.
Natural Language Processing: methods for text processing and analysis.
Foundations of Security: risk management and prevention in the business environment.
Foundations of Computer Ethics: an overview of fundamental ethical topics, particularly regarding the use of artificial intelligence.
Computer Lab: the lab component aims to provide students with intermediate-level proficiency in using Microsoft Excel to solve typical business problems.
Prerequisites
Mathematical and logical knowledge acquired in high school. Proficiency in the English language.
Teaching methods
Frontal lessons. The lessons take place in computer labs to allow for practical exercises in Python, SQL, and Microsoft Excel.
Assessment methods
The assessment of learning includes a written test and, optionally, an additional oral examination. The written test, which includes multiple-choice questions and open-ended questions, will take place in the teaching labs (laboratori didattici) in order to evaluate the student's skills in using the Python language and the Microsoft Excel application.
The final exam consists of two sections.
Computer Science Section:
- 16 multiple-choice questions (1 correct answer out of 4), each worth 1 point (0 points for incorrect or missing answers). These questions will be randomly selected from a predefined list. Specifically, there will be three types of questions: 1) Data Science and Computer Science theory, 2) Python theory, 3) Python code interpretation (where a small code snippet is provided, and the output is requested).
- 1 Python exercise worth a maximum of 8 points (0 points for a substantially or mostly incomplete response). The exercise requires writing a code snippet to perform a specific task (e.g., iterating over a list and removing all even numbers, finding the minimum in a numeric list).
- 1 SQL query worth a maximum of 8 points (0 points for a substantially or mostly incomplete response; please note that the query must be executable). The exercise (similar to the one presented in the "SQL Exercises - Example SQL question in the final exam" section) will present a database consisting of several tables and will require formulating a specific query (usually involving multiple tables).
This section awards the maximum achievable score in the exam.
Computer Lab Section (Excel):
- 3 additional multiple-choice questions (1 correct answer out of 4) on the contents of the Computer Lab (answering these questions requires the use of Excel). The questions will cover both theory and practice.
Errors or omissions in the Computer Lab section result in the following penalties applied to the score obtained in the General Computer Science section:
- 3 correct answers: no penalty
- 1 incorrect or missing answer: -1 point
- 2 incorrect or missing answers: -3 points
- 3 incorrect or missing answers: -5 points
The additional 3 questions do not need to be answered by: (1) students who have already completed the "Abilità Informatiche Preparazione Tesi" module, and (2) previous academic year students who have already passed the Computer Lab module.
The final grade is determined by the Computer Science section score minus any penalties from the Computer Lab section (e.g., 27 points in the General Computer Science section, -3 points in the Computer Lab section - i.e., 2 incorrect or missing answers - resulting in a total score of 24/30).
Textbooks and Reading Materials
- The slides used in the classroom and other study materials available on e-Learning platform.
- W3C Python tutorial (https://www.w3schools.com/python/)
- Downey, A. B. (2015). Think Python: How to Think Like a Computer Scientist, Version 2.4. Green Tea Press. (Freely available online with Creative Commons licence, https://greenteapress.com/thinkpython2/thinkpython2.pdf)
Optional textbook
- Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition. Aurélien Géron. O’Reilly, 2019.
Semester
First semester.
Teaching language
English.