Wiki page
[Piano delle lezioni] by
EnricoGiampieri
2017-03-08 13:37:24.
D 2017-03-08T13:37:24.409
L Piano\sdelle\slezioni
N text/x-markdown
P 8ef6b28dbbdf839b62d7645917cade4864f64880
U EnricoGiampieri
W 2583
1. controllo di versione e fossil
- Installazione python e matlab, ambiente di sviluppo spyder e matlab
- Altri linguaggi ad alto livello: R, Mathematica/Sage, Scala, Julia
- Version control, Git and Fossil
- Documentazione, help, metadati, bug tracking
- Code correctness, replicability and reproducibility (fixing the random seed)
2. introduzione a python
- Introduzione a python
- Interfacce di esecuzione: script, MATLAB-like, notebook
- Strutture dati dai base: liste, set, dizionari, queue, deque
3. testing e hypothesys
- test: classical test, property test, regression testing
- (https://en.wikipedia.org/wiki/Therac-25)
- (https://www.fastcompany.com/28121/they-write-right-stuff)
- The pain of testing random processes
- debugging?
4. vettorizzazione e numpy
- programmazione vettoriale (numpy e matlab)
- Problemi del calcolo numerico? Overflow, underflow, precision loss, testing per uguaglianza/similitudine
5. Scipy
- Librerie pre-esistenti (scipy, etc...), non reinventare la ruota
- Visualizzazione grafica
6. Dataframe e Pandas
- IO di dati, caricare CSV, excel, scaricare da internet e simili
- dataframes, tidy data, split-apply-combine (grouping), join, pivot e melt
7. data pipeline e snakemake
- life cycle of data (raw, source, usage, temporary)
- file formats: hdf5, csv, json, xml, yaml, ini, etc..
- Data testing: hashing functions, sanity controls
- DRY KISS (Don’t Repeat Yourself, Keep It Simple Stupid), remove redundancy from code and data
- pipeline e make, idempotenza, DAG (directed acyclic graphs)
8. profiling
- line_profile
- memory_profile
9. intro ai big data
- intro to big data: out-of-core algorithm (chunking), sparse matrices, memmapping
- Semafori, Resource locks (lock files), operazioni atomiche, concurrency and parallel execution
## Argomenti da inserire?
* regex
* comandi di bash
* debugging
* iteratori e generatori
* programmazione funzionale (iteratori, map-filter-reduce)
## Argomenti che non tratteremo
* Interfacciamento con database (SQL)
* Interfaccia con linguaggi di basso livello (Cython)
* Interfaccia con altri linguaggi di alto livello ( R )
* Algebra simbolica (sympy)
* Pacchetti statistici/machine learning
* Design GUI interface
* Esplorazione dati, glueviz
* Generazione automatica di report (docutils, reportlab) e literate programming
* Bash e librerie per interfacciarcisi
* Micro web framework per il reporting (flask, bottle, etc...)
Z 42f9340a8a412769352a321202de0bac