Vai al contenuto principale
Oggetto:
Oggetto:

Programming For Data Science

Oggetto:

Programming For Data Science

Oggetto:

Academic year 2022/2023

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 - informatics
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.

The written test will be organized in three sections (shell, R, snakemake), there will be two mandatory questions, covering very basic arguments in shell and R, that need to have a correct answer for the test to be passed. Questions will test the ability of the students to write short chunks of code by hand and reason on easy algorithms (i.e. filling in some missing parts of some code, fixing some errors). Each question will have a number of points assigned, the total score will be converted in the resulting grade (in /33). An example of the written test, alongside its solutions, will be circulated among students.

The oral will be useful if the mandatory questions have errors but the other parts of the elaborate are good, to discuss errors and to change the grade of the written test.

After the initial basic lessons there will be a non-mandatory written test to ascertain that the knowledge needed to follow lessons of the other modules has been gained.

Esame scritto, orale opzionale.

Lo scritto è organizzato in tre sezioni (shell, R, snakemake) e includerà due domande obbligatorie, su argomenti fondamentali per la shell ed R, che dovranno essere corrette per superare l'esame. Le domande saggeranno la capacità degli studenti di scrivere piccole porzioni di codice su carta e ragionare su facili algoritmi (per esempio completando esempi di codice o correggendo errori). Ogni domanda avrà un punteggio, il totale verrà convertito in trentatreesimi (/33) per determinare il voto finale. Un esempio dello scritto, con annesse soluzioni, sarà reso disponibile agli studenti.

L'orale è utile per risolvere dubbi in caso le domande obbligatorie abbiano errori ma il resto dello scritto sia corretto, discutere gli errori e per eventualmente cambiare il voto finale.

Dopo le prime lezioni su argomenti di base ci sarà un esonero, non obbligatorio, per controllare che le conoscenze di base necessarie per seguire gli altri moduli del corso siano state acquisite.

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

  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

Suggested readings and bibliography

Oggetto:



Oggetto:
Last update: 20/06/2022 10:28
Location: https://www.biotechnologyneuroscience.unito.it/robots.html
Non cliccare qui!