Statistica Applicata - Topics on Applied Statistics with computer applications

Supporto al corso e alla didattica telematica, by T. Gastaldi   #Sapienzanonsiferma  #Sapienzadoesnotstop

tommaso.gastaldi@gmail.com


GRUPPO WHATSAPP: https://chat.whatsapp.com/EGh63XPk4T1A7sQ2YRT3KZ




Nominativi e blog di ricerca sinora ricevuti:
Blog degli studenti 2019-2020

______________________________________________________________________________________


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 12-13/2020)  

1- Test video: intro e alcune analogie tra VB.NET e C# (01_Intro_C_VB_analogie.mkv)
https://drive.google.com/open?id=1mP8iUGIfr52c0v2dfR43EmvABgiTh_pW


2- Test video: alcune differenze tra VB.NET e C#   (02_VB_C_Differenze.mkv)
https://drive.google.com/open?id=15HDthxwiVlHNXqaF51lMqcmuGTzVPpeB


3- Video: eventi in C# (03_EventiC.mkv)
https://drive.google.com/open?id=1Ebk3j6Y4rM2C5LIzAowV_OXrVREiY47o


4- Video: eventi in VB.NET e differenze rispetto a C# (04_DifferenzaGestioneEventi.mkv)
https://drive.google.com/open?id=1Q-xgqevlI2PuCyeh41N7648lrCFGSKBu


5- Video: inserimento di event handlers multipli per lo stesso controllo in VB.NET / C# (05_InserireEventHandlerMultipli.mkv)
https://drive.google.com/open?id=1LfDcZeBV85howzZ3jsByKANrxg6QKVlP


6- Video: gestire diversi controlli con un un unico event handler  (06_GestioneCentralizzataDiControlliMultipli.mkv)
https://drive.google.com/open?id=1Mr5EqCi4WNCmnRruQeJymnlKZ-CFG0qO


7- Video: Introduzione alle dichiarazioni e alle istruzioni di assegnazione (07_Dichiarazione_Assegnazione.mkv)
https://drive.google.com/open?id=1ii7ENkLG4R7RpVcNodYLgr3pPC8LBmkR


8- Video: Tipi di dati principali. Differenza tra Value type and Reference type. Classi e Strutture (08_DataTypesReferenceAndValue.mkv)
https://drive.google.com/open?id=1ABL_o0BuvWaO5koJNWVBjC5_6P8s7AQE


9- Video: Tipi di dati principali, classi e strutture, versione C#, altre analogie e differenze, aggiungere oggetti al progetto (09_DataTypesCVersion.mkv)
https://drive.google.com/open?id=1nVmOV68IwbLFB3fmPeRZXH4eaqgs-C86



Ricerche per il blog:

6) Esaminare le differenze e analogie sia sintattiche che strutturali nella gestione degli eventi in C# e VB.NET           [  Alcune Differenze tra C# e VB.NET  ]

7) Elencare i principali tipi di dati elementari disponibili nei linguaggi C# e VB.NET

8) Illustrare al meglio la differenza tra value type e reference type


Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

2) Creare una applicazione winform a piacere in VB.NET dove si aggiungono alcuni controlli al form iniziale
e vengono gestiti alcuni eventi a piacere di tali controlli

3) Ricreare gli stessi effetti in una analoga applicazione winform C#

4) Creare una applicazione winform a piacere in VB.NET dove si definiscono ed inizializzano alcuni tipi di dati

5) Replicare la stessa applicazione in C#


Link utili

https://docs.microsoft.com/en-us/dotnet/visual-basic/reference/language-specification/
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/language-specification/introduction
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/data-types/type-characters

https://sites.harding.edu/fmccown/vbnet_csharp_comparison.html
https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET

https://docs.microsoft.com/it-it/dotnet/framework/wpf/advanced/how-to-add-an-event-handler-using-code
https://stackoverflow.com/questions/1488573/how-to-raise-event-using-addhandler

https://docs.microsoft.com/it-it/dotnet/csharp/tour-of-csharp/types-and-variables
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/data-types/

https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type

 

______________________________________________________________________________________


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 19-20/3/2020)  

 

10- Video: Introduzione ai cicli DO, WHILE e agli IF (10_IntroStruttureLoopCondizionali.mkv)                      [  File Memo Strutture Controllo  ]
https://drive.google.com/open?id=1jqTATjVh3Vesl_RDvQKO_E_cAZPT-R9I


11- Video: L'algoritmo "online" per il calcolo della running mean (D. KNUTH) (11_KnuthAlgo.mkv)
https://drive.google.com/open?id=1MVF2_Eipkq_tgHNDtoOt7fe5I3TZCiCf


12- Video: Esempi circa i loop con DO, WHILE (12_StruttureDoLoopWhile.mkv)
https://drive.google.com/open?id=183mt0qFxymFxIYs_jD3Oh0-aCiVVjnaR


13- Video: Introduzione agli Array ed ai cicli FOR, FOR EACH in VB.NET (13_ArrayECicliForVB.mkv)
https://drive.google.com/open?id=13puy1BHDjB3yWYFe4qziFyVqRc8Nn4yZ


14- Video: Introduzione agli Array ed ai cicli FOR, FOR EACH in C# (14_ArrayECicliForC.mkv)
https://drive.google.com/open?id=1AeiEp62M94z4ApAVRXJDRwutf4MdBdn3


15- Video: Introduzione alle Sub e Function, passaggio per riferimento (15_Sub_Function_ByRef.mkv)
https://drive.google.com/open?id=1PGHnnyXfV7XHTxC7BtZFykTP8TGmRvg5

 


Ricerche per il blog:

9) On line algo per il calcolo della "running mean" (Knuth)

10) Strutture di DO, WHILE in VB.NET e C#

11) Strutture CONDIZIONALI in VB.NET e C#

12) Array e strutture iterative FOR, FOREACH

13) Differenza tra passaggio per Reference e per Value


Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

6) Creare una applicazione winform a piacere in VB.NET dove si calcola la media di tutti i gli interi pari e di tutti gli interi dispari tra un "Primo Intero" ed un "Ultimo Intero" a piacere definiti.

7) Replicare la stessa applicazione in C#

 

Link utili

https://stackoverflow.com/questions/1953164/why-do-the-division-operators-behave-differently-in-vb-net-and-c

https://www.c-sharpcorner.com/article/andalso-orelse-operators-in-C-Sharp/n-C-Sharp/
https://stackoverflow.com/questions/4820610/is-relying-on-short-circuiting-safe-in-net
https://blog.jsinh.in/short-circuiting-in-c-sharp/#.Xm7dgHJKi00

do, while

https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/keywords/do
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/keywords/while
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/do-loop-statement

Collections
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/concepts/collections
https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/concepts/collections

 array
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2012/wak0wfyt(v=vs.110)?redirectedfrom=MSDN
https://www.geeksforgeeks.org/c-sharp-arrays/
http://kcwebprogrammers.blogspot.com/2011/01/vb-arrays-vs-c-arrays-in-aspnet.html

for
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/for-next-statement
http://www.authorcode.com/use-of-for-each-next-loop-in-vb-net/
https://www.tutorialsteacher.com/csharp/csharp-for-loop
http://www.blackwasp.co.uk/CSharpForEachLoop.aspx

loop nesting
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/control-flow/nested-control-structures

ByRef, ByVal
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/passing-arguments-by-value-and-by-reference
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/keywords/ref

https://www.youtube.com/watch?v=75Ju0eM5T2c  Donald Knuth - My advice to young people (93/97)

https://en.wikipedia.org/wiki/Monospaced_font


______________________________________________________________________________________

VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 26-27/3/2020)

16- Video: Rappresentazione degli interi (16_IntegerRepresentation.mkv)
https://drive.google.com/open?id=1kTeN5WiPoJfUz-i5VAPgjR0QspWhKkt1


17- Video: Rappresentazioni numeri con virgola (17_FloatingPointRepresentation.mkv)
https://drive.google.com/open?id=1YQipR8WkGUhdexpA4YLMhYolGm9ttL2y


18- Video: Perdita di significatività nei floating point (18_LossOfSignificance.mkv)
https://drive.google.com/open?id=1qPKoa5OIp9bbZmGFlH8GOY9IoQGsWkn6


19- Video: Liste e dizionari (19_ListDictionary.mkv)
https://drive.google.com/open?id=1D5awMGtVJrdFJJ15o4cKBsSIqTxICLAC


20-Video: Primo esempio sulle liste e organizzazione di un programma (20_ListExamplesAndProgramOrganization.mkv)
https://drive.google.com/open?id=1IOs7_MErv3_0l9YHGKw1BGYtOCEzPcFi


21- Video: Algoritmo di Welford per la varianza (21_WelfordVarianza.mkv)
https://drive.google.com/open?id=1p44XXjbWKqxEqtDjYdBFzyUGO4eGi1S2

 

Ricerche per il blog:

14) Rappresentazione dei numeri nel computer: tipi interi e floating point           [  Programma test tipi numerici  ]

15) Il problema della perdita di significatività e la cancellazione catastrofica

16) Le liste e i dizionari: differenze e similitudini

17) Gli algoritmi per il calcolo della varianza

18) Le convenzioni sui nomi utilizzate in programmazione (PascalCasing, camelCasing, snake_casing, ...)


Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

8) Creare una applicazione winform a piacere in VB.NET dove si calcola la media e varianza di tutti i gli interi utilizzando l'algoritmo di Welford, dopo averli memorizzati in una lista.

9) Replicare la stessa applicazione in C#

 

Link utili

Number representation
https://www.cs.uky.edu/~jzhang/CS321/lecture1.pdf

Floating point
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
https://www.volkerschatz.com/science/float.html
https://en.wikipedia.org/wiki/Floating-point_arithmetic
https://stackoverflow.com/questions/618535/difference-between-decimal-float-and-double-in-net

0.1 in floating point base 2:
https://math.stackexchange.com/questions/2431129/how-to-determine-a-number-closest-to-a-given-number-in-floating-point
https://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/
https://stackoverflow.com/questions/588004/is-floating-point-math-broken
https://www.exploringbinary.com/floating-point-converter/
https://en.wikipedia.org/wiki/Dyadic_rational
https://stackoverflow.com/questions/55755444/why-is-the-precision-accurate-when-decimal-takes-in-a-string-instead-of-float
https://jonskeet.uk/csharp/DoubleConverter.cs

Underflow https://en.wikipedia.org/wiki/Arithmetic_underflow
Epsilon (proprietà): https://docs.microsoft.com/it-it/dotnet/api/system.double.epsilon?view=netframework-4.8
https://stackoverflow.com/questions/11781899/c-sharp-decimal-epsilon
Machine Epsilon: https://en.wikipedia.org/wiki/Machine_epsilon

Stabilità numerica
http://www.ams.sunysb.edu/~jiao/teaching/ams526_fall12/lectures/lecture08.pdf
http://www.physics.udel.edu/~bnikolic/teaching/phys660/PDF/unavoidable_errors.pdf
https://epdf.pub/accuracy-and-stability-of-numerical-algorithms66ed566c6de1c9442780fa4ffa4c02a190717.html

https://stackoverflow.com/questions/2056445/no-overflow-exception-for-int-in-c

Welford: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.302.7503&rep=rep1&type=pdf

https://www.johndcook.com/blog/standard_deviation/
https://www.johndcook.com/blog/2008/11/05/how-to-calculate-pearson-correlation-accurately/
https://www.johndcook.com/blog/2008/09/28/theoretical-explanation-for-numerical-results/
https://it.wikipedia.org/wiki/Algoritmi_per_il_calcolo_della_varianza
https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
http://cpsc.yale.edu/sites/default/files/files/tr222.pdf   "Algorithms for computing the sample variance: Analysis and recommendations"

Convenzioni sui nomi delle variabili:
https://devopedia.org/naming-conventions
https://stackoverflow.com/questions/149491/pascal-casing-or-camel-casing-for-c-sharp-code
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/

Kahan, Neumaier summation (compensazione somma)
https://en.wikipedia.org/wiki/Kahan_summation_algorithm
https://github.com/JuliaLang/julia/issues/199


______________________________________________________________________________________


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 2-3/4/2020)  


22- Video: Relazioni di ricorrenza per la covarianza (22_CovarianceRecurrence.mkv)
https://drive.google.com/open?id=1_yFbuxvfqXR8GwINTr_h3YD2ME5LK4Iq


23- Video: Covarianza e Correlazione (23_CovarianceAndCorrelation.mkv)
https://drive.google.com/open?id=1ukJgmSnzzk-0_OsDZT8elSFIk1rUho0b


24- Video: Introduzione ai coefficienti binomiali, permutazioni, combinazioni, fattoriali (24_CoefficientiBinomiali)
https://drive.google.com/open?id=1lhARr194lWVVWL8CYhY3BJvVIwiCoC5x


25- Video: Altre proprietà dei coeff. binomiali, simmetria, zero fattoriale (25_CoefficientiBinomialiSimmetryAndZero.mkv)
https://drive.google.com/open?id=1SrvRTysTUEyJWy8hwdF1jhXGWS60PwVk


26- Video: Aggiunta di References, Struct BigInteger, Struttura Try Catch, Parte 1 (26_AddReferenceBigIntegerTryCatch_1)
https://drive.google.com/open?id=1Hpl2bxWgMUl05pCmKayuBhCr0DrhbQvE


27- Video: Aggiunta di References, Struct BigInteger, Struttura Try Catch, Parte 2 (27_AddReferenceBigIntegerTryCatch_2)
https://drive.google.com/open?id=1srL7SIWQW-owlsl2-5nvg35ZrZSFhQEI


28- Video: Extra info su Start Up applicazioni, Application Framework, void Main() (28_AppendiceStartupApplicazione.mkv)
https://drive.google.com/open?id=1L8FIDmwJtnbmEA1Evx5T8bpQQ8RFjb7c

 

Ricerche per il blog:

19) Relazioni di ricorrenza per la covarianza

20) Coefficienti binomiali e loro proprietà

21) La struttura Try Catch e la gestione delle eccezioni in C# e VB.NET

22) Gli algoritmi per il calcolo del fattoriale

23) Tipi numerici a precisione arbitraria e la Struct BigInteger di System.Numerics


Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

10) Creare una applicazione winform (in VB.NET e C#) che calcoli le medie e varianze degli interi pari e dispari (2n, 2n-1), n=1,2,... e poi calcolare la covarianza tra le due liste di valori

11) Creare una applicazione winform (in VB.NET e C#) che utilizzi la struttura BigInteger e il meccanismo Try Catch Finally

 

Link utili

Covarianza https://stats.stackexchange.com/questions/29713/what-is-covariance-in-plain-language

Sorted List https://stackoverflow.com/questions/1427147/sortedlist-sorteddictionary-and-dictionary
Namespace  https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/namespaces/using-namespaces

Relazioni ricorrenza https://www.math.unipd.it/~tonolo/didattica/Matematica_D/2004/ricorrenze.pdf
Ricorrenza binomiale
https://proofwiki.org/wiki/Pascal's_Rule/Combinatorial_Proof
https://en.wikipedia.org/wiki/Binomial_coefficient

System Numerics https://stackoverflow.com/questions/9824479/how-to-add-a-reference-to-system-numerics-dll
BigInteger  https://docs.microsoft.com/en-us/dotnet/api/system.numerics.biginteger?redirectedfrom=MSDN&view=netframework-4.8
Precisione arbitraria https://it.qwe.wiki/wiki/Arbitrary-precision_arithmetic
Conversioni, troncamenti https://docs.microsoft.com/it-it/dotnet/api/microsoft.visualbasic.conversion.int?view=netframework-4.8

Algoritmi efficienti per fattoriale
https://cs.stackexchange.com/questions/14456/factorial-algorithm-more-efficient-than-naive-multiplication
http://www.luschny.de/math/factorial/FastFactorialFunctions.htm
http://www.cecm.sfu.ca/personal/pborwein/PAPERS/P29.pdf
http://www.luschny.de/math/factorial/conclusions.html

Try catch, throw, throw new, stepthrough, catch and rethrow, unhandled exceptions
https://www.appmarq.com/public/robustness,7910,Never-exit-a-finally-block-with-a-return-break-continue-or-throw
https://docs.microsoft.com/it-it/dotnet/standard/exceptions/best-practices-for-exceptions
https://airbrake.io/blog/dotnet-exception-handling/exception-class-hierarchy
https://stackoverflow.com/questions/5164497/c-does-throw-exit-the-current-function
https://www.completecsharptutorial.com/basic/complete-system-exception.php
https://www.tutorialsteacher.com/csharp/csharp-exception
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/throw-statement
https://softwareengineering.stackexchange.com/questions/306669/differences-between-throw-and-throw-new-and-exactly-how-exceptions-bubble-u
https://agirlamonggeeks.com/2017/12/12/c-attributes-you-should-know-2-debuggerstepthrough-and-debuggerhidden/
https://visualstudiomagazine.com/articles/2016/11/01/handle-unhandled-visual-basic-and-c-exceptions.aspx
https://stackoverflow.com/questions/5762526/how-can-i-make-something-that-catches-all-unhandled-exceptions-in-a-winforms-a
https://social.technet.microsoft.com/wiki/contents/articles/36836.exception-bubbling-in-c.aspx
https://www.csharp-examples.net/catching-unhandled-exceptions/
https://stackoverflow.com/questions/881473/why-catch-and-rethrow-an-exception-in-c

Main() function Vs MyApplication, Application Framework https://stackoverflow.com/questions/7258909/where-is-the-main-function-in-vb-nett
OnLoad https://stackoverflow.com/questions/3670806/form-load-event-or-override-onload
https://docs.microsoft.com/it-it/dotnet/api/system.windows.forms.form.onload?view=netframework-4.8

 

__________________________________________________________________________________________


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 9-10/4/2020)
  

29- Video: Regressione, part 1 (29_Regression_1.mkv)
https://drive.google.com/open?id=1mR-nHY2iOEALj6yWrxWN_eHlbsuAXfJK


30- Video: Regressione, part 2 (30_Regression_2.mkv)
https://drive.google.com/open?id=1mBJ1U2wqxQ-Q32J1_e7KmGX1i62aV3Fx


31- Video: Regressione, part 3 (31_Regression_Extra.mkv)
https://drive.google.com/open?id=1LE_vK4eD_CaGemukdZAx8JeCKdMFYSBy


32- Video: Operatori in C#, VB.NET (32_OperatoriCenniClassificazione.mkv)
https://drive.google.com/open?id=1DkFoV_eie2d20HKY874PRRnxXk9hcp-Z


33- Video: Operatori logici e bitwise, shift aritmetici (33_BitwiseLogiciShift.mkv)
https://drive.google.com/open?id=1_NnocGnYKB27dV3IMFudEUkjGPPXmDpS

Ricerche per il blog:

24) Regressione lineare

25) Scomposizione della varianza nella regressione lineare

26) I principali operatori in VB.NET e C#

27) Cercare su Internet applicazioni interessanti ed eleganti di operatori bitwise


Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

12) Creare una applicazione winform in VB.NET che calcoli la retta di regressione di Y rispetto a X, il coefficiente di accostamento R² e la scomposizione della varianza da un dataset bivariato reale a piacere preso da Internet. Ad esempio, si può prendere dalla banca dati: https://data.world/datasets/multivariate o qualsiasi altra fonte si desideri. Possibilmente usare dei dati che vi interessano personalmente e trarre qualche conclusione personale dai risultati. Per il calcolo di media, varianza, covarianza, ovviamente utilizzare le formule di ricorrenza che abbiamo studiato (Knuth, Welford, ...) [e non le formule naive].

13) Riscrivere o tradurre l'applicazione in C# controllando la corrispondenza dei risultati e discutendo eventuali punti di interesse/attenzione e divergenza tra i linguaggi.


Link utili



Regressione
https://en.wikipedia.org/wiki/Simple_linear_regression
http://www.dsu.univr.it/documenti/OccorrenzaIns/matdid/matdid324170.pdf

Operatori bitwise
https://en.wikipedia.org/wiki/Bit_manipulation
https://it.cppreference.com/w/cpp/language/operator_precedence
https://stackoverflow.com/questions/141525/what-are-bitwise-shift-bit-shift-operators-and-how-do-they-work/141873#141873
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/operators-and-expressions/logical-and-bitwise-operators
https://www.codeproject.com/Articles/544990/Understand-how-bitwise-operators-work-Csharp-and-V

Nuovi operatori
https://devblogs.microsoft.com/dotnet/building-c-8-0/
https://csharp.today/c-6-features-null-conditional-and-and-null-coalescing-operators/
https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges
https://blog.jetbrains.com/dotnet/2019/04/24/indices-ranges-null-coalescing-assignments-look-new-language-features-c-8/
https://stackoverflow.com/questions/102084/hidden-features-of-vb-net
https://stackoverflow.com/questions/6792729/vb-net-null-coalescing-operator
https://stackoverflow.com/questions/45470502/is-there-a-null-conditional-operator-in-vbnet
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/operators/null-conditional-operators
https://stackoverflow.com/questions/54092458/why-doesnt-the-new-hat-operator-index-from-the-c-sharp-8-array-slicing-feature
https://devblogs.microsoft.com/dotnet/building-c-8-0/
https://stackoverflow.com/questions/45470502/is-there-a-null-conditional-operator-in-vbnet

Esempi manipolazione bit
https://www.hackerearth.com/practice/notes/bit-manipulation/
https://graphics.stanford.edu/~seander/bithacks.html
https://www.geeksforgeeks.org/count-set-bits-in-an-integer/
https://codeforwin.org/2018/05/10-cool-bitwise-operator-hacks-and-tricks.html

Alcuni data set / link vari
https://new.censusatschool.org.nz/resource/multivariate-data-sets/
https://datasetsearch.research.google.com/
https://help.yahoo.com/kb/download-historical-data-yahoo-finance-sln2311.html
https://data.world/datasets/multivariate
https://data.oecd.org/
https://data.worldbank.org/
https://people.bath.ac.uk/pssiw/stats2/page16/page16.html
https://vincentarelbundock.github.io/Rdatasets/datasets.html
https://g2aging.org/?section=page&pageid=18
http://www.share-project.org/special-data-sets.html
https://www.data.gov/
https://guides.emich.edu/data/free-data



__________________________________________________________________________________________



VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 16-17/4/2020)  


34- Video: Valore del LSB (34_LSBValue.mkv)
https://drive.google.com/open?id=1Y-8KLvUXwQHoGDBwwVoCx2J8YxHvPjZY

35- Video: Unset rightmost bit  (35_UnsetRightmostSetBit.mkv)
https://drive.google.com/open?id=1yC6okDwYW0ZMDoB31gzZUNYIKI7NSdcH

36- Video: Somma dei bit, naive algo e Kernighan algo (36_SetBitCount.mkv)
https://drive.google.com/open?id=1ODrBk5875iimmKI7Up3DQV108X_DcNfl

37- Video: Test potenza di 2, shift, odd rounding (37_TestPower_Shift_OddRounding.mkv)
https://drive.google.com/open?id=1TYdt2IUHvRSSoLNY_Vrghul46p22GoIv

38- Video: Massima potenza di 2 in N (38_MaxPowerOfTwoFactor.mkv)
https://drive.google.com/open?id=1J4dcNEmjy79iayJiKiwZxAlyra_WrRdu

39- Video: Formula di Legendre, valutazione 2-adica, massima potenza di 2 in N! (39_Legendre2adicValuation.mkv)
https://drive.google.com/open?id=1uDD5koWh_Agkx9oLUIjDzbbCLyM863Yi

40- Video: Leggere un file di dati - Part 1: specifica CSV, StreamReader, TextFieldParser (40_DataFileParsing_CSV.mkv)
https://drive.google.com/open?id=12ofp1DSRQ5pfxWkxihQdLlAyl7hhTYv8


41- Video: Leggere un file di dati - Part 2: Using statement (41_UsingStatement.mkv)
https://drive.google.com/open?id=1qkR5YKsU8xvSQSi1RdguN2-qY7JfppNM

[ File con esempio (EsempioLetturaCSV.txt) di TextFieldParser per il file sui mammiferi
scaricato dal sito: https://new.censusatschool.org.nz/resource/multivariate-data-sets/ 
dimostra anche la funzionalità di drag drop del nome file in una TextBox, da cui successivamente può essere letto o modificato dall'utente.
Variante della  funzione di lettura con lo StreamReader (VarianteFunzioneLetturaConStreamReader.txt) ]


Ricerche per il blog:

28) Algoritmi classici di manipolazione dei bit, usando maschere e operatori bitwise, e relative classiche domande da intervista tecnica (interview questions) per assunzione (Google/Amazon/...).

29) La formula di Legendre e la sua utilità nelle applicazioni

30) Elementi fondamentali della specifica CSV

31) Metodi disponibili per leggere file testuali di dati statistici, con esempi

 
Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

14) Collegare la lettura di dati da un file dati a vostra scelta (tra i dataset disponibili su Internet) alla vostra precedente applicazione (HW 12) sulla regressione, automatizzando la lettura e le successive elaborazioni. Svolgere l'esercizio in VB.NET e C#. [Cercare, laddove possibile, di rendere l'applicazione più generale possibile evitando il più possibile specificità legate al particolare dataset utilizzato.]
 

Link utili

http://graphics.stanford.edu/~seander/bithacks.html
https://codeforwin.org/2016/01/c-program-to-check-lsb-of-number.html
https://stackoverflow.com/questions/33726223/how-can-i-set-the-least-significant-bit-of-an-integer-in-c
https://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer#109025
https://www.techiedelight.com/brian-kernighans-algorithm-count-set-bits-integer/
https://tutorialspoint.dev/algorithm/bitwise-algorithms/count-set-bits-in-an-integer
https://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit
https://www.geeksforgeeks.org/print-kth-least-significant-bit-number/
https://stackoverflow.com/questions/108318/whats-the-simplest-way-to-test-whether-a-number-is-a-power-of-2-in-c
https://www.geeksforgeeks.org/highest-power-2-less-equal-given-number/
https://aticleworld.com/interview-questions-on-bitwise-operators-in-c/
https://medium.com/@codingfreak/bit-manipulation-interview-questions-and-practice-problems-27c0e71412e7
https://www.careercup.com/page?pid=bit-manipulation-interview-questions


Legendre
https://it.wikipedia.org/wiki/Identit%C3%A0_di_Legendre-de_Polignac
https://artofproblemsolving.com/wiki/index.php/Legendre%27s_Formula
https://www.geeksforgeeks.org/legendres-formula-highest-power-of-prime-number-that-divides-n/

CSV spec
https://tools.ietf.org/html/rfc4180
https://www.thoughtspot.com/6-rules-creating-valid-csv-files
https://en.wikipedia.org/wiki/Comma-separated_values


StreamReader / TextFieldParser - CSV parsing
https://docs.microsoft.com/it-it/dotnet/api/microsoft.visualbasic.fileio.textfieldparser?view=netframework-4.8
https://stackoverflow.com/questions/16588454/textfieldparser-class

https://www.codeproject.com/Questions/384247/How-to-read-from-csv-file-using-csharp-net
https://stackoverflow.com/questions/3507498/reading-csv-files-using-c-sharp
https://stackoverflow.com/questions/41935187/read-csv-file-with-streamreader-in-c-sharp
https://stackoverflow.com/questions/35437313/read-a-csv-file-in-c-sharp-efficiently
https://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader

Using statement
https://www.codeproject.com/Articles/6564/Understanding-the-using-statement-in-C
https://stackoverflow.com/questions/212198/what-is-the-c-sharp-using-block-and-why-should-i-use-it

 

__________________________________________________________________________________________

 

VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi 23-24/4/2020)  


42- Video: Distribuzione semplice di frequenze in classi intervallari, Lambda expressions (42_FrequencyDistribution_Part1_LambdaExpressions.mkv)
https://drive.google.com/open?id=1jAm-RfmCxtJ7NAppQqARfycwvNJjWPrR


43- Video: Introduzione alla grafica 2D, Part 1: esempio scatterplot (43_IntroGrafica_ScatterPlot.mkv)
https://drive.google.com/open?id=1p60_qCCnB6sxue0mOMCaV4Dwjnmeuz_4


44- Video: Introduzione alla grafica 2D, Part 2: esempio histogram (44_IntroGrafica_Istogram.mkv)
https://drive.google.com/open?id=1vK1hNzcy6sV_e1LY21iwC6ebNwPHw5jC


45- Video: Introduzione alla grafica 2D, Part 3: interactive charting (45_IntroGrafica_InteractiveChart.mkv)
https://drive.google.com/open?id=1499eL1XtjwP7nZKwMPoVtZbQA_8uo-8C


46- Video: Distribuzione bivariata / multivariata di frequenze (46_BivariateFrequencyDistribution.mkv)
https://drive.google.com/open?id=1tlQotLCNZ-KkxsdjDDG53xW-dcYc8kW4

 


Ricerche per il blog:

32) Procedure per calcolare la distribuzione di frequenze univariata o bivariata

33) Fare un approfondimento sulle "Lambda expressions"

34) Principali oggetti grafici: Graphics, Bitmap, Rectangle, Point, PointF, Size, SizeF, Pen, Brush, Color, Font, ...
 
35) Trasformazione di coordinate: dal "mondo reale" al "mondo virtuale"


Homework
(inserire nel blog il link al file zip contenente l'intera soluzione)

15) Inserire il calcolo delle distribuzioni semplici e bivariate di alcune variabili di interesse nella vostra precedente applicazione (HW 15) di analisi dati. Aggiungere anche una rappresentazione grafica a piacere di variabili del vostro dataset, programmata con la libreria GDI+ di .NET. Svolgere l'esercizio in VB.NET e C#.

(link al progetto di esempio relativo al file mammals.csv con lo scatterplot)

16) Estendere a piacere a funzionalità della classe di chart interattivo (in VB.NET o C#) aggiungendo la capacità di ridimensionare il rettangolo ponendo il mouse sui lati o sugli angoli del rettangolo e altre eventuali funzionalità che pensate possano essere utili (es. rotazioni, etc.).


Link utili

https://www.superprof.co.uk/resources/academic/maths/statistics/descriptive/frequency-distribution.html
https://en.wikipedia.org/wiki/Frequency_distribution
https://en.wikipedia.org/wiki/Contingency_table
https://en.wikipedia.org/wiki/Marginal_distribution

Lambda expression
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/how-to-create-a-lambda-expression
https://www.tutorialsteacher.com/linq/linq-lambda-expression
https://www.codemag.com/Article/1001051/Practical-Uses-of-Lambdas
https://linqsamples.com/linq-to-objects/Any-lambda

Graphics (2D)
https://www.vbtutor.net/vb2017/vb2017_lesson26.html
https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/how-to-create-graphics-objects-for-drawing
https://www.dreamincode.net/forums/topic/67275-the-wonders-of-systemdrawinggraphics/
https://www.codeproject.com/Articles/1355/Professional-C-Graphics-with-GDI
https://www.c-sharpcorner.com/topics/gdi

Mouse / rotation
https://www.codeproject.com/Articles/33789/Custom-Mouse-Cursors-VB-NET
https://stackoverflow.com/questions/6921585/how-to-rotate-a-rectangleshape-in-vb-net
https://docs.microsoft.com/it-it/dotnet/api/system.drawing.graphics.rotatetransform?view=netframework-4.8
https://docs.microsoft.com/it-it/dotnet/api/system.drawing.drawing2d.matrix?view=netframework-4.8
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.cursors?redirectedfrom=MSDN&view=netframework-4.8)

__________________________________________________________________________________________



VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi 30/4/2020)  

 

47- Video: Nozione di Stack, action frame, Heap, uso della memoria da parte dei programmi (47_Stack_Heap.mkv)
https://drive.google.com/open?id=16z_MpuJRhPS0JIq1eRFdsjvMXeippXQW
 

48- Video: Prima introduzione alla nozione di ricorsione, esempio classico: fattoriale naive (48_Ricorsione_Intro_Fatt_1_Naive.mkv)
https://drive.google.com/open?id=1ds8lHTn4qsLhOZj9PAaxpC_V0-hPnFdh


49- Video: Introduzione alla simulazione di processi aleatori, oggetto random, numeri pseudocasuali (49_StochasticProcess_Part1_RandomObject.mkv)
https://drive.google.com/open?id=1NA77bdyVzXoaogYDSbQ6X6N5y8SqsR64
 

50- Video: Bernoulli random walk, generazione e rappresentazione (50_StochasticProcess_Part2_BernoulliRandomWalk_Chart.mkv)
https://drive.google.com/open?id=1U8flFDg168CzXkOIWMy9tPbOs9nF6fyk
 

51- Video: Brownian motion, Introduzione al teorema del limite centrale (CLT) funzionale, Donsker's theorem + 2 Esercizi (51_StochasticProcess_Part3_BrownianMotion_FunctionalCLT_DonskerTheorem.mkv)
https://drive.google.com/open?id=1rL270Rk-WDyLsPJawha0f9tO_pkvmUvo


-------------- Video opzionali (help esercizi 1-2) -------------


51- Video: Optional 1 - Help per Esercizio 1 (51_Optional1_Esercizio1_Part1.mkv)   [cercare di fare l'esercizio prima da soli]
https://drive.google.com/open?id=1p7JAWpjN7QBB8-OLF96X-_xmRzBUOgDS

51- Video: Optional 2 - Help per Esercizio 2 - 1/4 (51_Optional2_Esercizio2_Part1.mkv) 
https://drive.google.com/open?id=1ayT_rk5EGpenVI24Yx5-nXV_ML_Md3Rk

51- Video: Optional 3 - Help per Esercizio 2 - 2/4 (51_Optional3_Esercizio2_Part2.mkv) 
https://drive.google.com/open?id=1Ron2SC1VQgN0D3Gxf5WeU3VcxapWIo1L

51- Video: Optional 4 - Help per Esercizio 2 - 3/4 (51_Optional4_Esercizio2_Part3.mkv) 
https://drive.google.com/open?id=1s0mYl4jspsHHd1Z5vRqvIJ4HMr3LigBw

51- Video: Optional 5 - Help per Esercizio 2 - 4/4 (51_Optional5_Esercizio2_Part4.mkv)  
https://drive.google.com/open?id=1z05tmdCyOwOMf_WbnzyEWADyBgVu80E0




Ricerche per il blog:

36) Uso della memoria da parte di un programma, nozione di stack e Heap

37) Spiegare a parole proprie la nozione di ricorsione confrontandola con quella di iterazione

38) Introdurre la nozione di processo aleatorio e in particolare la Random walk
 
39) Spiegare in termini semplici e intuitivi il significato del teorema funzionale del limite centrale per processi aleatori e la sua analogia
con il teorema del limite centrale (CLT)

40) Spiegare in termini semplici la nozione di Brownian motion, specialmente come limite della random walk.


Homework (inserire nel blog il link al file zip contenente l'intera soluzione)

17) Svolgere gli Esercizi 1 e 2 (indicati nel video 51) con vostro il linguaggio preferito (C# o VB.NET).

 

Random Walk, ScalingLimit

Esempio di output dell'esercizio 2 (Wiener Process come Scaling limit di Random Walk)

Brownian Motion

Esempio di output dell'esercizio 2 (Wiener Process, Brownian Motion)



Link utili


Call stack https://www.youtube.com/watch?v=Q2sFmqvpBe0
Memoria, stack, ricorsione https://www.youtube.com/watch?v=ygK0YON10sQ

Stack vs Heap
https://www.youtube.com/watch?v=ZMZpH4yT7M0
https://www.youtube.com/watch?v=IX3fDYz0WyM

Ricorsione
https://www.sparknotes.com/cs/recursion/whatisrecursion/section1/page/3/
https://www.codeproject.com/Articles/142292/Recursive-methods-in-Csharp
https://stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration
https://stackoverflow.com/questions/5002946/recursive-function-be-converted-into-a-non-recursive-function
https://www.youtube.com/watch?v=HXNhEYqFo0o (Programming Loops vs Recursion - Computerphile)
https://www.youtube.com/watch?v=Mv9NEX(What on Earth is Recursion? - Computerphile)
https://stackoverflow.com/questions/21426688/the-difference-between-head-tail-recursion?noredirect=1&lq=1
https://stackoverflow.com/questions/33923/what-is-tail-recursion?rq=1rsion?rq=1

Da iterazione a ricorsione e viceversa
https://www.refactoring.com/catalog/replaceIterationWithRecursion.html
https://web.archive.org/web/20120227170843/http://cs.saddleback.edu/rwatkins/CS2B/Lab%20Exercises/Stacks%20and%20Recursion%20Lab.pdf
https://stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration?noredirect=1&lq=1

Overhead ricorsione
http://www.cs.iit.edu/~cs561/cs331/recursion/recursionoverhead.html


Random Walk
https://it.wikipedia.org/wiki/Passeggiata_aleatoria
https://github.com/danielbank/RandomWalk
https://www.softcover.io/read/bf34ea25/math_for_finance/random_walks

Brownian Motion
https://it.wikipedia.org/wiki/Processo_di_Wiener
https://it.wikipedia.org/wiki/Moto_browniano
http://www.math.unl.edu/~sdunbar1/MathematicalFinance/Lessons/BrownianMotion/PathProperties/pathproperties.pdf
https://math.stackexchange.com/questions/3145821/why-isn-t-brownian-motion-differentiable
https://www.jstor.org/stable/2243421?seq=1#metadata_info_tab_contents     (by Monroe D. Donsker)
http://www.columbia.edu/~ks20/4404-Sigman/4404-Notes-sim-BM.pdf
https://www.stat.berkeley.edu/~aldous/Research/Ugrad/ZY1.pdf
https://math.stackexchange.com/questions/918943/simple-question-about-the-definition-of-brownian-motion
https://www.stat.berkeley.edu/~aldous/205B/bmbook.pdf
http://homepage.ntu.edu.tw/~jryanwang/course/Financial%20Computation%20or%20Financial%20Engineering%20(graduate%20level)/FE_Ch01%20Wiener%20Process.pdf
https://www.csie.ntu.edu.tw/~lyuu/finance1/2014/20140423.pdf
https://www.probabilitycourse.com/chapter11/11_4_1_brownian_motion_as_the_limit_of_a_symmetric_random_walk.php
http://www.math.tau.ac.il/~tsirel/Courses/Brown/lect3.pdf
http://galton.uchicago.edu/~lalley/Courses/313/WienerProcess.pdf
https://almostsure.wordpress.com/2009/10/08/the-pathological-properties-of-brownian-motion/
https://www.math.wisc.edu/~roch/grad-prob/gradprob-notes27.pdf


Generazione variabili aleatorie Normal (Gaussian) (µ,σ²)
https://en.wikipedia.org/wiki/Marsaglia_polar_methodlar_method
https://en.wikipedia.org/wiki/Ziggurat_algorithm
https://www.doc.ic.ac.uk/~wl/papers/07/csur07dt.pdf
https://www.researchgate.net/publication/5142858_Fast_Generation_of_Discrete_Random_Variables (article by George Marsaglia et al.)
http://www.mat.ufrgs.br/~viali/estatistica/mat2274/material/textos/p376-muller.pdf  (by Mervin Edgar Muller)
http://interstat.statjournals.net/YEAR/2012/articles/1205003.pdf


Discrete r.v. generation
https://stats.stackexchange.com/questions/67911/how-to-sample-from-a-discrete-distribution/68041#68041
https://math.stackexchange.com/questions/1427288/how-to-sample-a-binomial-random-variable
https://math.stackexchange.com/questions/1420248/generation-of-random-variable-from-a-complicated-cdf/1420322#1420322
https://stackoverflow.com/questions/9956486/distributed-probability-random-number-generator/9958717#9958717
https://stats.stackexchange.com/questions/198431/how-to-understand-the-alias-method-for-generating-discrete-random-variables
http://www.jstatsoft.org/v11/i03/paper
https://github.com/cantino/walker_method
https://keithschwarz.com/darts-dice-coins/
https://www.keithschwarz.com/interesting/code/?dir=alias-method
https://www.jstor.org/stable/pdf/2683739.pdf?casa_token=mXVTh2MsufQAAAAA:U9f6FK7NiPBpRVDYnyIUJqL8cxYP53hh2cKdxX3E_TlGh3nig2fiTQWuevpIyQ0fSiveVZenoxAz_9nODjRykkAJ4mbr4lE39K4LqycpZdvZK8b-4w


Math.NET Numerics (NuGet Packages)
https://numerics.mathdotnet.com/

Nullable types
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/data-types/nullable-value-types

Extension methods
C# https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
VB.NET https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/how-to-write-an-extension-method



______________________________________________________________________________________________________

 


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi 6-7/5/2020)  


52- Video: Dalla Random Walk al Processo di Wiener, Teorema funzionale del limite centrale (52_FromRandomWalkToWienerProcess)
https://drive.google.com/open?id=1Ei_Bei8nKUJhlkcBjDbo2lEP1536T0ko


53- Video: Dal Brownian Motion al Geometric Brownian Motion (incrementi moltiplicativi e "returns", Lognormale) (53_FromBrownianMotionToGBM.mkv)
https://drive.google.com/open?id=1_FdzpbqODI-0OHYKqI6gaHscYKnJWO9o


54- Video: Il processo di Poisson e la sua relazione con le principali distribuzioni (Bernoulli, Binomiale, Poisson, Uniforme, Esponenziale negativa, Normale)  (54_PoissonJumpProcess.mkv)
https://drive.google.com/open?id=1qVrANd7IMe1Y42OMStmbz9KNJXNfyKdq


Proprietà del processo di Poisson e richiami sulle principali distribuzioni coinvolte:

55- Video: Proprietà del processo di Poisson: richiami sulla Binomiale (55_ProprietaProcessoPoisson_1_RiepilogoBinomiale.mkv)
https://drive.google.com/open?id=1MTEWuPxZnt_4PTjrrlRsFbHZukdUUX3Q


56- Video: Proprietà del processo di Poisson: richiami sulla Poisson come limite della Binomiale (56_ProprietaProcessoPoisson_2_RiepilogoPoisson.mkv)
https://drive.google.com/open?id=1FtHa7LdcYfxtvEqce-RRasuE0Jr6cBNc


57- Video: Proprietà del processo di Poisson: richiami sulla Poisson sulla Esponenziale come distribuzione "memoryless" degli interarrivi (57_ProprietaProcessoPoisson_3_RiepilogoEsponenziale.mkv)
https://drive.google.com/open?id=1n4Caef-kG-iJaiRjN7bhkSfo1nbU7w3m


Ricerche per il blog:

41) Definizione differenziale del processo di Wiener

42) Definizione differenziale del processo Geometric Brownian Motion e significato intuitivo/motivazione

43) Il processo di Poisson e la sua relazione con varie distribuzioni statistiche
 

Homework (inserire nel blog il link al file zip contenente l'intera soluzione)

Svolgere gli Esercizi e ripassi (indicati nel video 54):

18)  Esercizio di completamento del programma sui processi stocastici:

 - Aggiungere la simulazione del Geometric Brownian Motion:

Geometric Brownian Motion

Esempio di output dell'esercizio 2 (Geometric Brownian Motion)


- Implementare la simulazione del Processo di Poisson con plot delle seguenti distribuzioni: Distribuzione del processo alla fine dell'intervallo di tempo e su 1 o 2 tempi scelti a piacere, distribuzione dei tempi di arrivo, distribuzione dei tempi di interarrivo:

 

Poisson Jump Process

Esempio di output dell'esercizio 2 (Poisson Jump Process)


19) Punto A) Raccogliere (da Internet) e testare (con vostro grafico/simulazione) programmi/snippets per
- i principali generatori di numeri pseudocasuali:

- Distribuzioni discrete qualsiasi: Inversione della CDF, "Alias" method
- Principali discrete: Bernoulli, Binomiale, Ipergeometrica, Poisson, etc.
- Principali continue: Normale, Esponenziale, Weibull, Lognormale, Gamma, (Chi quadro, F Fisher, T Student),  etc.

20) Punto B)  Raccogliere (su Internet) e testare programmi/snippets per il calcolo delle probabilità per le principali distribuzioni discrete:
Binomiale, Ipergeometrica, Poisson

[Nota importante: Incorporare sempre, come commenti nel codice, i link dai quali si sono tratte o ricavate le funzioni e le procedure utilizzate.]


Link utili


Geometric Brownian Motion

https://en.wikipedia.org/wiki/Geometric_Brownian_motion
https://www.quantstart.com/articles/Geometric-Brownian-Motion/
https://math.stackexchange.com/questions/2288421/stochastic-differential-equation-solution-for-geometric-brownian-motion
https://quant.stackexchange.com/questions/33360/on-the-application-of-itos-lemma-to-geometric-brownian-motion
https://scholar.uwindsor.ca/cgi/viewcontent.cgi?article=1020&context=major-papers

Itō Lemma, Stochastic calculus

https://en.wikipedia.org/wiki/Stochastic_calculus
https://en.wikipedia.org/wiki/It%C3%B4_calculus
https://en.wikipedia.org/wiki/Riemann%E2%80%93Stieltjes_integral
https://ocw.mit.edu/courses/mathematics/18-s096-topics-in-mathematics-with-applications-in-finance-fall-2013/lecture-notes/MIT18_S096F13_lecnote18.pdf
https://math.stackexchange.com/questions/1553893/stochastic-integrals-are-confusing-me-please-explain-how-to-compute-int-w-sdw
https://math.stackexchange.com/questions/1807057/the-integral-is-the-area-under-the-curve-is-there-a-similar-notion-for-stochast?noredirect=1&lq=1
http://www.columbia.edu/~ww2040/4701Sum07/lec0813.pdf
https://projecteuclid.org/download/pdf_1/euclid.pja/1195572786        (by Kiyosi Itō)
https://it.wikipedia.org/wiki/Kiyoshi_It%C5%8D
http://math.uchicago.edu/~may/REU2017/REUPapers/Zhang,Shangxi.pdf
https://en.m.wikipedia.org/wiki/It%C3%B4_calculus
https://www.sjsu.edu/faculty/watkins/ito.htm
https://en.m.wikipedia.org/wiki/Malliavin_calculus
https://en.m.wikipedia.org/wiki/Malliavin_derivative
https://en.m.wikipedia.org/wiki/Skorokhod_integral
https://www.quantstart.com/articles/Itos-Lemma/


Lognormale

https://it.wikipedia.org/wiki/Distribuzione_lognormale
https://stats.stackexchange.com/questions/238529/the-sum-of-independent-lognormal-random-variables-appears-lognormal?newreg=5fcf09fc5dcf472fb5b241b9f24259c1


Distributions

https://en.wikipedia.org/wiki/Random_variableom_variable
https://en.wikipedia.org/wiki/Probability_distribution
https://en.wikipedia.org/wiki/List_of_probability_distributions
http://www.stat.yale.edu/Courses/1997-98/101/ranvar.htm

Poisson jump process

https://www.probabilitycourse.com/chapter11/11_1_2_basic_concepts_of_the_poisson_process.php
https://stats.stackexchange.com/questions/325539/lambda-exponential-vs-poisson-interpretation/325662
http://www.it.uu.se/edu/course/homepage/fussmobb/ht06/computing/labb5.pdf
http://www.math.unl.edu/~sdunbar1/ProbabilityTheory/Lessons/Poisson/PoissonOld/poisson.shtml

Compound Poisson process

https://en.wikipedia.org/wiki/Compound_Poisson_process

Binomiale
https://www3.nd.edu/~rwilliam/stats1/x13.pdfats1/x13.pdf

Ipergeometrica
https://math.stackexchange.com/questions/2236194/derivation-for-hypergeometric-distribution-formula-and-comparsion-with-bernoulli/2246014

Poisson
https://it.wikipedia.org/wiki/Distribuzione_di_Poisson
https://medium.com/@andrew.chamberlain/deriving-the-poisson-distribution-from-the-binomial-distribution-840cc1668239

Exponential
https://en.wikipedia.org/wiki/Exponential_distribution


Generazione variabili aleatorie
https://en.wikipedia.org/wiki/Inverse_transform_sampling
https://en.wikipedia.org/wiki/Alias_method   (alias)
https://core.ac.uk/download/pdf/6287927.pdf   (ziggurat)
https://www.doornik.com/research/ziggurat.pdf
https://www.jstatsoft.org/index.php/jss/article/view/v005i08/ziggurat.pdf  (George Marsaglia)
https://www.jstatsoft.org/article/view/v011i03/v11i03.pdf
https://dl.acm.org/doi/pdf/10.1145/355744.355749 (Walker)
https://www.encyclopediaofmath.org/index.php/Generating_random_variables
https://blogs.mathworks.com/cleve/2015/05/18/the-ziggurat-random-normal-generator/
https://stackoverflow.com/questions/218060/random-gaussian-variables
https://math.stackexchange.com/questions/2429125/generate-random-variable-with-given-pdf/2429191#2429191
https://math.stackexchange.com/questions/1427288/how-to-sample-a-binomial-random-variable
https://math.stackexchange.com/questions/1722835/simulate-a-random-variable
https://math.stackexchange.com/questions/2321370/simulation-of-asymmetric-double-exponential-distribution?rq=1


Calcolo distribuzioni
https://math.stackexchange.com/questions/202554/how-do-i-compute-binomial-coefficients-efficiently
https://math.stackexchange.com/questions/3460756/can-a-binominal-or-multinomial-coefficient-be-computed-efficiently?noredirect=1&lq=1
https://cs.stackexchange.com/questions/48669/how-to-improve-the-binomial-algorithm
https://www.lexifi.com/quant/efficient-simulation-method-poisson-distribution/
https://www.jstor.org/stable/2686033?seq=2#metadata_info_tab_contents


Select/Switch
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/select-case-statement
https://stackoverflow.com/questions/252489/why-was-the-switch-statement-designed-to-need-a-break

Enum
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/builtin-types/enum
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/enum-statement

Modificatori di accesso / Livelli di accesso
http://www.binaryintellect.net/articles/255f31ac-a304-4063-ad2d-93a790417f3c.aspx
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/declared-elements/access-levels


______________________________________________________________________________________________________

 


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi 14-15/5/2020)  


58- Video: Introduzione ai modelli con Mean Reversion, Ornstein–Uhlenbeck aritmetico e geometrico (58_Ornstein_Uhlenbeck_Vasicek.mkv)
https://drive.google.com/open?id=1Wo-s1Q3MfvYaGJld6tsgC3QrPNnM9aem


59- Video: Introduzione al calcolo del PNL (order matching) (59_PNLComputation_1_LotMatching.mkv)
https://drive.google.com/open?id=15FtDoD-2JkDT1M-2f_Y3s70T5HAhwVKF


60- Video: Calcolo del PNL per sequenze arbitrarie di ordini. Lot identification method. Esempi implementazione (60_PNLComputation_2_Programming.mkv)
https://drive.google.com/open?id=1gQZtMcHtyTvXvCVeYs1zC4TW9MBOxChg

 

-------------- Video opzionali (help per esercizio 3) -------------


60- Video: Optional 1 - Help per Esercizio 3 - 1/3 (60_Optional1_Esercizio3_Part1.mkv)   [fare l'esercizio prima da soli]
https://drive.google.com/open?id=1NZkfnqsCMKDkzQ8htXq1cNUz-tUD7dDK


60- Video: Optional 2 - Help per Esercizio 3 - 2/3 (60_Optional1_Esercizio3_Part2.mkv) 
https://drive.google.com/open?id=1EGOKveLBXhfE5UuKta3VYmCcIQI_IavP

60- Video: Optional 3 - Help per Esercizio 3 - 3/3 (60_Optional1_Esercizio3_Part3.mkv) 
https://drive.google.com/open?id=1VdYXP1qgooYPCDA79ePgJTu_o3wUb1rBu_o3wUb1rB



----- Video extra opzionali di esercizio base programmazione (sul tema della ricorsione e algoritmi Divide & Conquer) ------


48- Video: Optional 1 - Product splitting (48_Optional1_Ricorsione_Fatt_2_ProductSplitting.mkv)
https://drive.google.com/open?id=1Cf212GIkctBzBBjs11EpSmua1Q6xaomn


48- Video: Optional 2 - Odd Product splitting (48_Optional2_Ricorsione_Fatt_3_ProductSplitting.mkv)
https://drive.google.com/open?id=1X1BeR5H-pz5I_i4eiTETJpuVHY8_YiWg


48- Video: Optional 3 - Binary splitting (48_Optional3__Ricorsione_Fatt_4_BinarySplitting.mkv)tting.mkv)
https://drive.google.com/open?id=14WJ2sEsNhRp8LSnYfKOC-efYxMTFINvb


48- Video: Optional 3 - Hamming weight, popcount (48_Optional4_BitCount_HammingWeight.mkv)
https://drive.google.com/open?id=1-_jlA9w4potK7U8a9k1H3oBKJf9eZmHZ


 

Ricerche per il blog:

44) Processi stocastici con mean reversion: Ornstein–Uhlenbeck process, Dixit & Pindyck Model, Vasicek model, etc.

45) Scomposizione del PNL e concetto di matching degli ordini (o lot)

47) Linguaggi: Breve nota di utilizzo sui componenti: Timer e Backgroud worker. E sulla nozione di "extension method":
https://docs.microsoft.com/it-it/dotnet/api/system.windows.forms.timer?view=netcore-3.1
https://docs.microsoft.com/it-it/dotnet/api/system.componentmodel.backgroundworker?view=netcore-3.1

vb.net extension method https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methodss
c# extension method  https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/classes-and-structs/extension-methods

 

Homework (inserire nel blog il link al file zip contenente l'intera soluzione)


- Aggiungere all'Esercizio 2 sui Processi Stocastici, anche 2 esempi di modello con Mean reversion (uno per incrementi aritmetico, uno per incrementi geometrici)

- Svolgere l'Esercizio 3 indicato nel video 60 di calcolo/scomposizione PNL, e rappresentazione grafica del lot matching.

Ornstein–Uhlenbeck process

Esempio di processo con mean reversion (Processo Ornstein–Uhlenbeck originante da 0 con reversion speed 0.5 e livello di equilibrio 2)

 

Geometric Brownian Motion with mean reversion

Esempio di processo con mean reversion (GBM originante a 100, con reversion speed 0.5 e livello di equilibrio 300)


Lot matching algorithm

Esempio di semplice rappresentazione lot matching (ordini casuali)  - Esercizio 3


Link utili


Ornstein–Uhlenbeck process, Vasicek model, Dixit & Pindyck Model

https://en.wikipedia.org/wiki/Ornstein%E2%80%93Uhlenbeck_processess
http://stat.math.uregina.ca/~kozdron/Teaching/Regina/441Fall14/Notes/L31-32-Nov19.pdf
https://www.biorxiv.org/content/10.1101/067363v3.full
https://www.jstor.org/stable/3318524?seq=5#metadata_info_tab_contents
https://www.vosesoftware.com/riskwiki/GeometricBrownianMotionmodels.php
https://www.sciencedirect.com/topics/economics-econometrics-and-finance/mean-reversion
http://marcoagd.usuarios.rdc.puc-rio.br/sim_stoc_proc.html#mc-gbm    (pagina di Marco A. G. Dias)
http://marcoagd.usuarios.rdc.puc-rio.br/revers.html


Lot Matching, tax lot identification method

https://www.tradingtechnologies.com/xtrader-help/fix-adapter-reference/pl-calculation-algorithm/understanding-pl-calculations/ns/
https://www.interactivebrokers.com/en/software/ibto/ibto/lotmatchingmethods.htm
https://www.krisan.com/understanding-the-5-matching-methods-in-portfoliocenter/
https://www.investopedia.com/articles/05/taxlots.asp
https://www.investopedia.com/terms/s/specific-share-identification.asp
https://novelinvestor.com/choose-right-default-cost-basis-method/
https://www.schwab.com/resource-center/insights/content/save-on-taxes-know-your-cost-basis


Divide & Conquer, Hamming weight

https://en.wikipedia.org/wiki/Divide-and-conquer_algorithm
https://en.wikipedia.org/wiki/Hamming_weight
https://bisqwit.iki.fi/source/misc/bitcounting/
https://appunti.fandom.com/it/wiki/Algoritmi_e_programmazione:Il_paradigma_%22divide_et_impera%22
https://it.qwe.wiki/wiki/Divide_and_conquer_algorithm
https://www.geeksforgeeks.org/divide-and-conquer/

 

https://en.wikipedia.org/wiki/Rate_of_return#Logarithmic_or_continuously_compounded_return
https://www.mcxindia.com/education-training/knowledge-series/methodogies/aav
https://onlinelibrary.wiley.com/doi/pdf/10.1111/opec.12007
https://www.investopedia.com/ask/answers/021015/how-can-you-calculate-volatility-excel.asp
https://en.wikipedia.org/wiki/Volatility_(finance)


______________________________________________________________________________________________________

 


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi 21-22/5/2020)  


61- Video: Esercizio 4 + Help su esercizio 4 - 1/4 (61_Esercizio4_Part1.mkv)
https://drive.google.com/open?id=1ErXwSDz7oiMH3nyjl5C-yCocr4DBf910

62- Video: Help su esercizio 4 - 2/4 (62_Esercizio4_Part2.mkv)
https://drive.google.com/open?id=1_e1G6mgLW99KZVNC9BPr4P8a3uoDxHFv

63- Video: Help su esercizio 4 - 3/4 (63_Esercizio4_Part3.mkv)
https://drive.google.com/open?id=1v1L6zTKlsOESOhzeaM92hbP7CAthYUvw

64- Video: Help su esercizio 4 - 4/4 (64_Esercizio4_Part4.mkv)
https://drive.google.com/open?id=1kFto9m810CUahWAbExK5F3faQEj-Mncl

 

Naive strategy and PNL

Esempio di simulazione trading con calcolo PNL  - Esercizio 4

 

Ricerche per il blog:

48) Moving averages

49) Bollinger Bands

50) Alcuni esempi di strategie di trading algoritmico utilizzate

 

Homework Homework (inserire nel blog il link al file zip contenente l'intera soluzione)


- Svolgere l'Esercizio 4 indicato nel video 49 (processo aleatorio + ordini e calcolo PNL)

- Completare l'Esercizio 4 aggiungendo i 4 indicatori quantitativi indicati alla fine del video 52  (Running Mean, Moving Averages, Moving STD, Bollinger Bands)

 

Link utili


MA
https://www.investopedia.com/terms/m/movingaverage.asp
https://school.stockcharts.com/doku.php?id=technical_indicators:moving_averages
https://it.wikipedia.org/wiki/Media_mobile
https://en.wikiversity.org/wiki/Moving_Average


Bollinger bands
https://it.wikipedia.org/wiki/Bande_di_Bollinger
http://www.traderpedia.it/wiki/index.php/Bollinger_bands
https://origin2.cdn.componentsource.com/sites/default/files/resources/dundas/538216/Documentation/Bollinger.html
http://www.great-trades.com/Help/bollinger%20bands%20calculation.htm

Trading strategies
https://www.capitalindex.com/uk/eng/pages/trading-guides/different-types-of-trading-strategies
https://www.investopedia.com/articles/trading/06/daytradingretail.asp
https://en.wikipedia.org/wiki/Trading_strategy
https://www.ig.com/en/trading-strategies/the-complete-guide-to-trading-strategies-and-styles-190709
https://www.fxcm.com/markets/insights/different-types-forex-trading-strategies/

 

 


______________________________________________________________________________________________________

 


VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi 28-29/5/2020)  


Ultimazione esercizi e ricerche prima dell'esame.

 

 

 

    ______________  Esercizio/Progetto di Esame  (1 appello, giugno)   ______________ 


Simulare i prezzi di uno strumento finanziario e creare una qualsiasi strategia di trading a piacere che usi le bande di Bollinger.
Applicare la strategia generando gli ordini e visualizzando il corrispondente andamento del PNL e del Drawdown.

Nel grafico dei prezzi rappresentare esplicitamente i seguenti elementi:
- Running mean, Moving mean (k termini), e bande di Bollinger (ovviamente basate sulla moving mean e la moving variance) [naturalmente sempre formule del tipo Knuth/Welford che abbiamo studiato per i calcoli di medie e varianze.]

Infine, plottare la distributione dei returns relativi ai prezzi BID (o ASK) generati. -


Consegna: entro sabato 6 giugno. Per la consegna, come al solito, caricare su google drive la soluzione zippata e inviare il link.

Valutazione: Verrà discussa all'orale

Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque nel suo complesso una realizzazione personale e individuale. Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la sessione corrente di esami.

Gli orali per gli scritti sufficienti potranno iniziare fin da lunedi.

 

    ______________  Esercizio/Progetto di Esame  (2 appello, luglio)   ______________ 


Data una sequenza di istanti qualsiasi, generare e rappresentare graficamente 2 serie storiche di prezzi X, Y utilizzando un generatore di processo aleatorio a piacere (random walk, ABM o GBM, etc.) e calcolare e rappresentare graficamente la nuvola di punti X, Y, le linee delle medie, il baricentro e le due rette di regressione di Y rispetto a X e viceversa. Calcolare il coefficiente di determinazione R^2. Commentare brevemente il risultato con considerazione personali. (NB: Per medie, varianze e covarianze, usare sempre gli algoritmi di Knuth/Welford, come sudiato).

-Variante per bonus lode: Anzichè Y indipendente da X, dare la possibilità di generare Y in modo tale che, dato X,  la correlazione teorica r, tra X ed Y, sia uguale ad un valore prefissato dall'utente (in caso ricercare su internet come generare serie correlate). Verificare che il coefficiente r empirico sia prossimo al teorico prefissato.


Consegna: entro 13 luglio. Per la consegna, come al solito, caricare su google drive la soluzione zippata e inviare il link.

Valutazione: Verrà discussa all'orale

Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque nel suo complesso una realizzazione personale e individuale. Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la sessione corrente di esami.

Gli orali per gli scritti sufficienti potranno iniziare dal 14 luglio.

______________________________________________________

 

   ______________  Esercizio/Progetto di Esame  (Appello, settembre 2020)   ______________ 


1) Creare (o cercare su Internet) dei data set che enfatizzino al massimo l'opportunità di utlizzare le formule di Knuth e Welford per il calcolo di media, varianza, covarianza. Mostrando con simulazioni come in certi casi le formule "naive" possano generare risultati del tutto incorretti nella rappresentazione "floating point". Discutere brevemente quali sono le cause tecniche di tali errori che possono sorgere utilizzando le formule naive e illustrare, confrontandoli con diversi esperimenti al PC, quali siano le migliori soluzioni tecniche per correggere tali problematiche.

2) Generare una serie storica di uno strumento finanziario simulato, mediante GBM con mean reversion su un prezzo di equilibrio dato, e applicare una strategia a piacere per generare e visualizzare gli ordini con rappresentazione a piacere. Calcolare e visualizzare con dei grafici sia il PNL corrente che il drawdown corrente con grafici a piacere.


Consegna: entro 13 Settembre. Per la consegna, come al solito, caricare su google drive la soluzione zippata e inviare il link (nel nome del file mettere il proprio nome).

Valutazione: Verrà discussa all'orale

Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque nel suo complesso una realizzazione personale e individuale. Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la sessione corrente di esami.

Gli orali per gli scritti sufficienti potranno iniziare dal 14 Settembre, ore 14:00, nostro gruppo Whatsapp.

______________________________________________________

 

  ______________  Esercizio/Progetto di Esame  (Appello, Ottobre 2020)   ______________ 


1) Creare (o cercare su Internet) dei data set che illustrino al meglio l'opportunità di utlizzare le formule di Knuth e Welford per il calcolo di media, varianza, covarianza in luogo delle formule naive. Mostrando con simulazioni come in certi casi le formule "naive" possano generare risultati errati nella rappresentazione "floating point" (specialmente a 32 bit). Discutere brevemente quali sono le cause tecniche di tali errori che possono sorgere utilizzando le formule naive e illustrare, confrontandoli con diversi esperimenti al PC, quali siano le migliori soluzioni tecniche proposte per correggere tali problematiche.

2) Data una sequenza di istanti qualsiasi, generare e rappresentare graficamente 2 serie storiche di prezzi X, Y utilizzando un generatore di processo GBM per il primo processo, mentre la seconda serie storica venga generata con una correlazione uguale a 0.8 rispetto alla prima e calcolare e rappresentare graficamente la nuvola di punti X, Y, le linee delle medie, il baricentro e le due rette di regressione di Y rispetto a X e viceversa. Calcolare il coefficiente di determinazione R^2. Commentare brevemente il risultato con considerazione personali. (NB: Per medie, varianze e covarianze, usare sempre gli algoritmi di Knuth/Welford, come sudiato).


Consegna: entro 4 Ottobre. Per la consegna, come al solito, caricare su google drive la soluzione zippata e inviare il link (nel nome del file mettere il proprio nome).

Valutazione: Verrà discussa all'orale

Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque nel suo complesso una realizzazione personale e individuale. Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la sessione corrente di esami.

Gli orali per gli scritti sufficienti potranno iniziare il 5 Ottobre, ore 14:00, nostro gruppo Whatsapp.

______________________________________________________

 

 



Strumenti utili in generale

Visual Studio: https://visualstudio.microsoft.com/it/downloads/     

https://visualstudio.microsoft.com/it/vs/older-downloads/

Video Player VLC (in caso servisse): https://www.videolan.org/vlc/download-windows.it.html

Notepad++ (per lavorare con file dati CSV) https://notepad-plus-plus.org/downloads/v7.8.5/

OBS Studio, open broadcaster software:  https://obsproject.com/

Catalogo corsi  Sapienza https://corsidilaurea.uniroma1.it/it/users/tommasogastaldiuniroma1it