Skip to main content
e-Learning - UNIMIB
  •  Log in
Home
Percorso della pagina
  1. Science
  2. Master Degree
  3. Data Science [F9101Q]
  4. Courses
  5. A.A. 2019-2020
  6. 1st year
  1. Foundations of Computer Science
  2. Summary
Course summary syllabus
Insegnamento Course full name
Foundations of Computer Science
Course ID number
1920-1-F9101Q001

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 utilizzato 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

    1. file, directory, tipi di file

    2. principali comandi da terminale

    3. file con delimitatori.

  2. Introduzione ai database.

    1. Il modello relazionale dei dati

    2. Il linguaggio SQL: Select ... From … Where su una tabella.

    3. Interrogazioni su più tabelle.

  3. Introduzione alla programmazione in Python.

    1. Array, liste, dizionari

    2. Cicli

    3. Organizzazione di un programma: funzioni

    4. Librerie

  4. Programmazione esplorativa. Gestione dati in formato tabellare.

    1. Notebook

    2. Pandas

    3. Cenni di Numpy

  5. Cenni di test e debugging.

Prerequisiti

Nessuno

Modalità didattica

Lezioni e esercizi al computer.

Il corso è erogato in Italiano.

Materiale didattico

Downey, Pensare in Python (https://github.com/AllenDowney/ThinkPythonItalian)

Downey, Think Python (http://greenteapress.com/wp/think-python-2e/)

VanderPlas, Python Data Science Handbook (https://jakevdp.github.io/PythonDataScienceHandbook/

Atzeni, Ceri, Paraboschi Torlone, Basi di dati modelli e linguaggi (4 ed)

Allulli, Nanni. Fondamenti di Basi di Dati


Periodo di erogazione dell'insegnamento

Primo semestre

Modalità di verifica del profitto e valutazione

L'esame consiste di due parti: uno scritto per basi di dati e un progetto per Python.

Nell'esame scritto con domande a risposta aperta per la parte di Basi di Dati viene valutata la completezza e la correttezza delle risposte.

Per il progetto su Python da svolgere in piccoli gruppi (max 3 persone), con discussione del progetto, viene valutata la capacità di realizzare le analisi richieste e di giustificare le decisioni progettuali.

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

Non sono previste prove in itinere.

Orario di ricevimento

Su appuntamento per email

Export

Aims

At the end of the course, the students will understand how 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 use the Jupyter Notebook.

Finally, the students will be able to query a relational database using SQL, both as a separate language  as well as called 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

    1. files, directories, types of files

    2. main command-line commands

    3. delimiter-separated values

  2. Introduction to data bases.

    1. The Relational Data Model.

    2. SQL: Select ... From … Where on a table.

    3. Querying two or more tables.

  3. Introduction to programming in Python.

    1. Arrays, lists, dictionaries

    2. Loops

    3. Organization of a programma: functions

    4. Modules and libraries

  4. Explorative programming. Managing tabular data.

    1. Notebook

    2. Pandas

    3. Introduction to Numpy

  5. Introduction to testing and debugging.

Prerequisites

None

Teaching form

Lectures and exercises with a PC.

This course is taught in Italian.

Textbook and teaching resource

Downey, Pensare in Python (https://github.com/AllenDowney/ThinkPythonItalian)

Downey, Think Python (http://greenteapress.com/wp/think-python-2e/)

VanderPlas, Python Data Science Handbook (https://jakevdp.github.io/PythonDataScienceHandbook/

Atzeni, Ceri, Paraboschi Torlone, Basi di dati modelli e linguaggi (4 ed)

Allulli, Nanni. Fondamenti di Basi di Dati




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 grading of the project is based on the individual contribution that is displayed during the oral discussion and on the fitness of the project to perform the required analysis.

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

There are no in-progress exams.

Office hours

Please reserve a meeting via email

Enter

Key information

Field of research
INF/01
CFU
6
Term
Primo Semestre
Activity type
Obbligatorio a scelta
Course Length (Hours)
46
Degree Course Type
Corso di Laurea Magistrale

Students' evaluation

View previous A.Y. evaluation

Enrolment methods

  • Manual enrolments
  • Guest access
  • Self enrolment (Student)

Staff

    Teacher

  • Picture of Gianluca Della Vedova
    Gianluca Della Vedova
  • Picture of Marco Previtali
    Marco Previtali

  • Foundations of Computer Science
  • Sections
  • General
  • Home
Get the mobile app
Policies
© 2022 Università degli Studi di Milano-Bicocca