Vai al contenuto principale
Oggetto:
Oggetto:

Programming For Data Science

Oggetto:

Programming For Data Science

Oggetto:

Academic year 2021/2022

Course ID
NEU0264C
Teacher
Prof.ssa Elena Grassi (Lecturer)
Modular course
Year
1st year
Teaching period
First semester
Type
Distinctive
Credits/Recognition
5
Course disciplinary sector (SSD)
INF/01 - informatica
Delivery
Formal authority
Language
English
Attendance
Obligatory
Type of examination
Written and oral (optional)
Oggetto:

Sommario del corso

Oggetto:

Course objectives

The course aims to introduce how to effectively operate on command line interfaces (with the linux shell) and the basic concepts of computer programming (with R). It will also explain how to structure pipelines, made from single steps implemented with either approaches. It will focus on some of the technical aspects of scientific reproducibility (package management systems and containers). These fundamental skills will be leveraged as the starting point for the Bioinformatics lessons.

Il corso mira a introdurre come utilizzare in maniera efficace le interfacce a linea di comando (in particolare la shell di linux) e i concetti basilari della programmazione (in particolare del linguaggio R). Descriverà anche come strutturare analisi più complesse composte da singoli passaggi implementati con entrambi gli approcci. Saranno analizzati alcuni aspetti tecnici relativi al problema della riproducibilità scientifica (sistemi di gestione dei pacchetti e container). Gli argomenti affrontati costituiranno le basi delle lezioni di Bioinformatica.

 

 

Oggetto:

Results of learning outcomes

At the end of the course the students will be able to independently work on the linux shell and write simple R scripts to perform basic data wrangling, selecting the most appropriate data structures to easily visualize and interpret aspects of different datasets. They will also be able to approach higher level problems dividing them in simpler steps, that can be tackled with basic programming constructs, and structuring them in small pipelines. They will know the basic concepts of software containers and how to use them in the context of reproducible science.

Alla fine del corso gli studenti saranno in grado di usare indipendentemente la shell di linux e scrivere semplici script R per l’analisi dei dati, scegliendo le migliori strutture dati per visualizzare ed interpretare facilmente diversi dataset. Saranno anche in grado di affrontare problemi di alto livello dividendoli in sotto-problemi più semplici e strutturare le soluzioni tramite piccole pipeline. Conosceranno i concetti alla base dei container e come usarli nel contesto della riproducibilità scientifica.

 

Oggetto:

Course delivery

Classroom lectures and practical sessions in computer room.

Lezioni frontali e sessioni pratiche in aula informatica.

Oggetto:

Learning assessment methods

Written test; optional oral test.

Esame scritto, orale opzionale.

 

Oggetto:

Program

  1. Linux shell: traversing the file system and listing files, effective operations via metacharacters. Basic operations on textual files, piping commands and redirection
  2. Imperative programming: variables, control flow (if/else/loops) and functions. Visualizing flowcharts and simple sorting algorithms
  3. Focus on R: vectors, lists and data frames. Vectorization and the apply functions instead of loops. Object oriented programming in R and a guide of its ecosystem of libraries. Plotting with ggplot and notebooks
  4. Pipelines: organizing principles and main pipeline management systems. Snakemake as an example
  5. Reproducibility at the software level: introduction to docker and package management systems

  1. Shell di linux: muoversi nel file system ed elencare i file, operazioni rapide tramite metacaratteri. Operazioni di base su file testuali, usare i comandi in pipe e redirezione
  2. Programmazione imperativa: variabili, controllo di flusso (if/else/cicli) e funzioni. Visualizzare i diagrammi di flusso e semplici algoritmi di ordinamento
  3. Approfondimento su R: vettori, liste e data frame. Vettorizzazione e le funzioni apply al posto dei loop. Programmazione a oggetti in R e guida al suo ecosistema di librerie. Grafici con ggplot e utilizzo dei notebook
  4. Pipeline: principi organizzativi e principali strumenti di gestione delle pipeline. Snakemake come caso di studio
  5. Riproducibilità a livello di software: introduzione a docker e ai sistemi di gestione dei pacchetti

Suggested readings and bibliography

Oggetto:



Oggetto:
Last update: 30/09/2021 13:14
Location: https://www.biotechnologyneuroscience.unito.it/robots.html
Non cliccare qui!