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