Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
You are currently using guest access
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Master Degree
  3. Data Science [FDS02Q - FDS01Q]
  4. Courses
  5. A.A. 2024-2025
  6. 1st year
  1. Foundations of Computer Science
  2. Summary
Insegnamento Course full name
Foundations of Computer Science
Course ID number
2425-1-FDS01Q009
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi

Al termine del corso lo studente sarà in grado di interrogare e di inferire la struttura implicita della base di dati a partire dalle tabelle che la compongono.

Inoltre lo studente saprà scrivere e correggere gli errori di semplici programmi in Python per la gestione e l'analisi di dataset formati da poche tabelle interconnesse, come quelle disponibili a kaggle.com (formati CSV, TSV, JSON). In particolare, le analisi verranno fatte utilizzando il Jupyter Notebook.

Infine, lo studente potrà interrogare database relazionali usando SQL, sia come linguaggio separato, sia come chiamata in un programma Python.

Conoscenza e comprensione

Questo insegnamento fornisce le conoscenze basilari e capacità di comprensione relativamente a:

  • Database.
  • SQL
  • Programmazione in Python
  • Notebook Jupyter
  • Gestione di dati tabellari con Pandas

Capacità di applicare conoscenza e comprensione

Alla fine dell'insegnamento gli studenti saranno in grado di:

  • Scrivere interrogazioni in SQL
  • Scrivere notebook in Python per gestire dataset
  • Scrivere notebook in Python per analizzare e pulire dataset

Contenuti sintetici

Organizzazione di dati grezzi: file system, file con delimitatori.

Introduzione ai database. Il modello relazionale dei dati e linguaggio SQL. Select ... From … Where.

Introduzione alla programmazione in Python. Programmazione esplorativa. Gestione dati in formato tabellare.

Cenni di test e debugging.

Programma esteso

  1. Organizzazione di dati grezzi
  2. file, directory, tipi di file
  3. principali comandi da terminale
  4. file con delimitatori.
  5. Introduzione ai database.
  6. Il modello relazionale dei dati
  7. Il linguaggio SQL: Select ... From … Where su una tabella.
  8. Interrogazioni su più tabelle.
  9. Introduzione alla programmazione in Python.
  10. Array, liste, dizionari
  11. Cicli
  12. Organizzazione di un programma: funzioni
  13. Librerie
  14. Programmazione esplorativa. Gestione dati in formato tabellare.
  15. Jupyter Notebook
  16. Pandas
  17. Cenni di test e debugging.

Prerequisiti

Conoscenza di un linguaggio di programmazione

Modalità didattica

Tutte le attività sono tenute in presenza e non vengono registrate nè trasmesse in streaming. L'insegnamento è erogato in Inglese. Le attività previste sono:

  • lezioni da 2 o 3 ore svolte (totale 28 ore) in modalità erogativa nella parte iniziale ed in modalità interattiva nella parte successiva. Le attività richiedono l'utilizzo di un PC, pertanto si terranno in un laboratorio informatico.
  • attività di laboratorio da 2 o 3 ore svolte (totale 18 ore) in modalità erogativa nella parte iniziale ed in modalità interattiva nella parte successiva

Materiale didattico

  • Downey Think Python 2e: How To Think Like a Computer Scientist
  • Downey Think Stats 2e
  • Downey Elements of Data Science. This book is a bit too basic.
  • VanderPlas, Python Data Science Handbook
  • Elmasri, Navathe, Fundamentals of Database Systems

Periodo di erogazione dell'insegnamento

Primo semestre

Modalità di verifica del profitto e valutazione

L'esame consiste di due parti: uno scritto su SQL e un progetto relativo alla parte su Python.

L'esame scritto prevede quattro domande a risposta aperta per la parte di Basi di Dati, dove ogni domanda è una query SQL. Nello scritto viene valutata la completezza e la correttezza delle risposte.

Il progetto in Python è svolto in piccoli gruppi (max 3 persone), e prevede una discussione del progetto dove viene valutata la capacità individuale di realizzare le analisi richieste e di giustificare le decisioni progettuali. Sia lo scritto che la presentazione del progetto devono essere completati entro Settembre 2025.

Il voto finale è ottenuto per 1/4 dalla prova scritta e per 3/4 dal progetto.

Non sono previste prove in itinere. Si ricorda che è necessario essere iscritti alle prove d'esame tramite segreterie online. Non verranno fatte eccezioni al riguardo.

Orario di ricevimento

Il ricevimento è online e su appuntamento a https://www.unimib.it/gianluca-della-vedova

Sustainable Development Goals

SCONFIGGERE LA POVERTÀ | SCONFIGGERE LA FAME | SALUTE E BENESSERE | ISTRUZIONE DI QUALITÁ | ENERGIA PULITA E ACCESSIBILE | LAVORO DIGNITOSO E CRESCITA ECONOMICA | IMPRESE, INNOVAZIONE E INFRASTRUTTURE | CITTÀ E COMUNITÀ SOSTENIBILI
Export

Aims

At the end of the course, the students will understand how to query a database, and how to infer the implicit structure of a database from its tables.

Moreover, the students will be able to write and debug some simple programs in Python, to manage and analyze datasets consisting of a few interconnected tables, such as those usually available at kaggle.com (CSV, TSV, JSON formats). This part will taught with the Jupyter Notebook.

Finally, the students will be able to query a relational database using SQL, both via a dedicated interface and from a Python program.

Knowledge and understanding

This course provides basic knowledge and understanding on:

  • Data bases
  • SQL
  • Programming in Python
  • Jupyter notebooks
  • Managing tabular datasets with Pandas

Ability to apply knowledge and understanding

At the end of the course the students will be able to:

  • Write SQL queries
  • Write Python notebooks to manage datasets
  • Write Python notebooks to analyze and clean datasets

Contents

Organizing raw datasets: file system, delimited files.

Introduction to data bases. Relational Data Model and SQL. Select ... From … Where.

Introduction to programming with Python. Explorative programmaing. Managing tabular data.

Introduction to testing and debugging.

Detailed program

  1. Organizing raw datasets
  2. files, directories, types of files
  3. main command-line commands
  4. delimiter-separated values
  5. Introduction to data bases.
  6. The Relational Data Model.
  7. SQL: Select ... From … Where on a table.
  8. Querying two or more tables.
  9. Introduction to programming in Python.
  10. Arrays, lists, dictionaries
  11. Loops
  12. Organization of a programma: functions
  13. Modules and libraries
  14. Explorative programming. Managing tabular data.
  15. The Jupyter Notebook
  16. Pandas
  17. Introduction to testing and debugging.

Prerequisites

Basic knowlege of any programming language

Teaching form

All activities are in-person and will be neither recorded nor streamed. The teaching language of this course is English. The activities will be:

  • lectures, 2 or 3 hours each (overall 28 hours), with an initial part in unidirectional mode and a second part in interactive mode. The activities will require using a PC, therefore they will take place in a computer lab.
  • lab activities, 2 or 3 hours each (overall 18 hours), with an initial part in unidirectional mode and a second part in interactive mode.

Textbook and teaching resource

  • Downey Think Python 2e: How To Think Like a Computer Scientist
  • Downey Think Stats 2e
  • Downey Elements of Data Science. This book is a bit too basic.
  • VanderPlas, Python Data Science Handbook
  • Elmasri, Navathe, Fundamentals of Database Systems

Semester

First

Assessment method

The exam consists of 2 parts: a written exam (with open questions) on the data bases topics, and a small group (max 3 people) project, with an oral discussion, on the Python topics.

The grading of the written exam is based on the correctness and the completeness of the answers. The written exam consists of writing 4 SQL queries, where each query corresponds to an open-ended question.

The grading of the project is based on the individual contribution that is displayed during the oral discussion, including the ability to explain the choices made to complete the project, and on the fitness of the project to perform the required analysis. Both the written exam and the project discussion must be completed by September 2025.

The final grade is 1/4 of the written exam and 3/4 of the project.

There are no in-progress exams. Beware that you must be registered via "segreterie online" to take the exam. If you are not registered, you will not allowed to take the exam. No exceptions will be made.

Office hours

Office hourse are online. You can book a meeting at https://www.unimib.it/gianluca-della-vedova

Sustainable Development Goals

NO POVERTY | ZERO HUNGER | GOOD HEALTH AND WELL-BEING | QUALITY EDUCATION | AFFORDABLE AND CLEAN ENERGY | DECENT WORK AND ECONOMIC GROWTH | INDUSTRY, INNOVATION AND INFRASTRUCTURE | SUSTAINABLE CITIES AND COMMUNITIES
Enter

Key information

Field of research
INF/01
ECTS
6
Term
First semester
Activity type
Mandatory to be chosen
Course Length (Hours)
46
Degree Course Type
2-year Master Degreee
Language
English

Staff

    Teacher

  • SC
    Simone Ciccolella
  • Gianluca Della Vedova
    Gianluca Della Vedova

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

Sustainable Development Goals

NO POVERTY - End poverty in all its forms everywhere
NO POVERTY
ZERO HUNGER - End hunger, achieve food security and improved nutrition and promote sustainable agriculture
ZERO HUNGER
GOOD HEALTH AND WELL-BEING - Ensure healthy lives and promote well-being for all at all ages
GOOD HEALTH AND WELL-BEING
QUALITY EDUCATION - Ensure inclusive and equitable quality education and promote lifelong learning opportunities for all
QUALITY EDUCATION
AFFORDABLE AND CLEAN ENERGY - Ensure access to affordable, reliable, sustainable and modern energy for all
AFFORDABLE AND CLEAN ENERGY
DECENT WORK AND ECONOMIC GROWTH - Promote sustained, inclusive and sustainable economic growth, full and productive employment and decent work for all
DECENT WORK AND ECONOMIC GROWTH
INDUSTRY, INNOVATION AND INFRASTRUCTURE - Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation
INDUSTRY, INNOVATION AND INFRASTRUCTURE
SUSTAINABLE CITIES AND COMMUNITIES - Make cities and human settlements inclusive, safe, resilient and sustainable
SUSTAINABLE CITIES AND COMMUNITIES

You are currently using guest access (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics