- Oggetto:
- Oggetto:
Programming For Data Science
- Oggetto:
Programming For Data Science
- Oggetto:
Academic year 2024/2025
- Course ID
- NEU0264C
- Teachers
- Luca Alessandrì (Lecturer)
Paolo Provero (Lecturer) - Year
- 1st year
- Teaching period
- First semester
- Type
- Distinctive
- Credits/Recognition
- 5
- Course disciplinary sector (SSD)
- SSD: INF/01 - informatics
- Delivery
- Formal authority
- Language
- English
- Attendance
- Obligatory
- Type of examination
- Written and oral (optional)
- Type of learning unit
- modulo
- Modular course
- DataScience (NEU0264)
- Prerequisites
- Basic mathematical concepts (shared with Data Science as a whole, with a focus on integer division and positional numeral system with different bases).
- Propedeutic for
- The module "Bioinformatics" of Data Science.
- Oggetto:
Sommario del corso
- Oggetto:
Course objectives
The course aims to introduce the basic concepts of computer programming (with R), focused on imperative programming and working on datasets represented in a tabular format. A basic understanding of computer architecture and how file systems are structured will precede the study of fundamental programming concepts and easy algorithms. These fundamental skills will be leveraged as the starting point for the Statistics and Bioinformatics laboratories.
Il corso mira a introdurre i concetti basilari della programmazione imperativa (in particolare del linguaggio R, mirando a lavorare su dataset rappresentate in formato tabulare. Nozioni base di architettura degli elaboratori e struttura del file system saranno la base per lo studio dei principali costrutti di programmazione e di semplici algoritmi. Gli argomenti affrontati costituiranno le basi dei laboratori di Bioinformatica e Statistica
- Oggetto:
Results of learning outcomes
At the end of the course the students will be able to 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.
Alla fine del corso gli studenti saranno in grado di 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.
- Oggetto:
Program
- Basic computer architecture and data representation, file systems and file encoding.
- Imperative programming: variables, control flow (if/else/loops) and functions. Visualizing flowcharts and simple sorting algorithms
- Focus on R: vectors, lists and data frames. Vectorization and the apply functions instead of loops. Interaction with the file system. Object oriented programming in R and a guide of its ecosystem of libraries. Plotting with ggplot and notebooks.
- Breve introduzione all'architettura degli elaboratori e alla rappresentazione dei dati, file system e codifica dei dati.
- Programmazione imperativa: variabili, controllo di flusso (if/else/cicli) e funzioni. Visualizzare i diagrammi di flusso e semplici algoritmi di ordinamento
- Approfondimento su R: vettori, liste e data frame. Vettorizzazione e le funzioni apply al posto dei loop. Operazioni sul filesystem. Programmazione a oggetti in R e guida al suo ecosistema di librerie. Grafici con ggplot e utilizzo dei notebook
- Basic computer architecture and data representation, file systems and file encoding.
- 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; practical test; oral test if necessary.
The written test will consiste of multiple choice question mainly focusing on the theory part. The practical test will require the students to produce R scripts to solve programming problems. The oral test will be required at the instructors' discretion when there is uncertainty on the assessment of the level of proficiency.
Test scritto; prova pratica; eventualmente prova orale.
La prova scritta consisterà in domande a risposta multipla incentrate principalmente sulla parte teorica. La prova pratica richiederà agli studenti di produrre script R per risolvere problemi di programmazione. La prova orale sarà richiesta a discrezione dei docenti quando vi siano incertezze sulla valutazione del livello di competenza.
Suggested readings and bibliography
- Oggetto:
https://elearning.unito.it/medicina/course/view.php?id=15508
https://elearning.unito.it/medicina/course/view.php?id=15508
https://www.jaredlander.com/r-for-everyone/
https://github.com/swirldev/R_Programming_E
- Enroll
- Open
- Oggetto: