- Oggetto:
- Oggetto:
Programming For Data Science
- Oggetto:
Programming For Data Science
- Oggetto:
Academic year 2023/2024
- Course ID
- NEU0264C
- Teacher
- Elena Grassi (Lecturer)
- 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)
- 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; optional oral test.
The written test will be organized in two sections (theory and programming/R), there will be one mandatory question, covering very basic arguments in 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). Theory will be covered with open-ended questions requiring short answers. 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 question have errors but the other parts of the elaborate are good, to discuss errors and to change (+/-2 /30 as an average difference) the grade of the written test.
Esame scritto, orale opzionale.
Lo scritto è organizzato in due sezioni (teoria e programmazione in R) e includerà una domanda obbligatoria, su argomenti fondamentali per R, che dovrà essere corretta 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). Per la teoria ci saranno domande aperte con risposte brevi. 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 la domanda obbligatoria abbia errori ma il resto dello scritto sia corretto, discutere gli errori e per eventualmente cambiare il voto finale (+- 2 /30 come differenziale indicativo).
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: