[Dispense, appunti ed esercizi in Rete]
In questo topic vorremmo raccogliere un po' di link a varie dispense e appunti liberi presenti in rete riguardo vari argomenti di Informatica: chiunque è a conoscenza di materiale condivisibile online può postarlo, magari con qualche parola di recensione.
Ideale poi sarebbe riportare, oltre al commento personale, anche ad esempio
- autore
- corso di laurea, sede
- sito web "madre", se esiste.
Cerchiamo inoltre di tenere questo topic libero da commenti, discussioni, saluti e complimenti. Postare solo per mettere materiale, o in caso aprire un altro topic.
Grazie per ogni contributo!
Ideale poi sarebbe riportare, oltre al commento personale, anche ad esempio
- autore
- corso di laurea, sede
- sito web "madre", se esiste.
Cerchiamo inoltre di tenere questo topic libero da commenti, discussioni, saluti e complimenti. Postare solo per mettere materiale, o in caso aprire un altro topic.
Grazie per ogni contributo!
Risposte
Click.
E' la pagina del corso di programmazione (C++) e An.Numerica del cdl in Matematica, Roma1.
Vari link a esami passati e dispense.
In particolare, sul C++
Dispensa1 **
Dispensa2
Sono dispense davvero base per chi parte analfabeta di programmazione.
Un ringraziamento ai professori Marco Marfurt e Stefano Finzi Vita.
** A queste dispense è riferita una parte del commento successivo dell'utente "apatriarca", in cui segnala alcuni punti non esatti o contestabili.
E' la pagina del corso di programmazione (C++) e An.Numerica del cdl in Matematica, Roma1.
Vari link a esami passati e dispense.
In particolare, sul C++
Dispensa1 **
Dispensa2
Sono dispense davvero base per chi parte analfabeta di programmazione.
Un ringraziamento ai professori Marco Marfurt e Stefano Finzi Vita.
** A queste dispense è riferita una parte del commento successivo dell'utente "apatriarca", in cui segnala alcuni punti non esatti o contestabili.

* Come imparare il C++
* Link utili - risorse per tutti! (C++)
EDIT: Come richiesto inserisco i commenti alla prima delle due dispense postate precedentemente. Non ho niente contro il professor Marfurt che l'ha scritta, anche perché non so assolutamente niente di lui, ma è l'occasione di criticare molti dei difetti che ho avuto modo di vedere in molti corsi universitari sul C++ (principalmente aiutando i loro studenti in diversi forum).
Partirei prima di tutto da pagina 2 (l'enfasi è stata aggiunta da me)
3. Quale compilatore usare:
I programmi riportati in queste dispense sono stati scritti pensando di usare il compilatore Dev-C++ che è installato nel Laboratorio di Calcolo del nostro Dipartimento, ma che può essere prelevato liberamente in rete ed installato facilmente su qualsiasi PC anche a casa vostra (cosa che caldamente vi raccomando di fare). Nel caso vogliate usare un altro compilatore potrebbe essere necessario apportare ai programmi qualche piccola modifica.
Questo piccolo paragrafo pregiudica a mio avviso tutto il manuale (e non è ancora neanche iniziato!). Significa principalmente che chiunque non sia in grado di installare sul proprio PC Dev-C++ (chiunque abbia Windows Vista, Windows 7 o qualsiasi versione di Linux o Mac) è costretto a fare delle modifiche al codice presente nel libro. Codice del quale non capisce nulla e al quale non è ovviamente in grado di mettere mano in modo autonomo. Questo povero studente sarebbe quindi costretto o a chiedere su di un forum o a fare le esercitazioni sempre e solo nel laboratorio del dipartimento. Scrivere un codice portabile su tutti i sistemi non sarebbe stato complicato e la quantità del codice del tutto equivalente. Sembra quindi più che altro una decisione dettata da pigrizia o addirittura ignoranza che di certo non giova agli studenti.
A questo punto vediamo gli errori e le imprecisazioni. Per prima cosa in C++ (e in C a partire dallo standard del 1999) una funzione deve scrivere esplicitamente il valore di ritorno e non esiste più il valore di ritorno di default uguale a int. Si tratta in questo caso di ignoranza, perché il professore scrive in seguito:
E infatti la funzione main() è di tipo int, soltanto che il tipo può, in questo caso particolare, essere omesso; tuttavia, se provate a modificare tutti i programmi che abbiamo scritto fino ad adesso sostituendo main() con int main() vedrete che tutto funzionerà perfettamente allo stesso modo.
Sfortunatamente questa frase, seppur errata, che avrebbe permesso a coloro con compilatori meno permissivi di modificare correttamente il proprio programma, è a pagina 53.
Istruzione 5: system ("PAUSE"); Questa istruzione serve a fissare lo schermo nella situazione attuale in modo che noi possiamo leggervi il risultato.
Questa frase ha uno sfondo di verità, su Windows mette in pausa l'esecuzione del programma. Il problema del suo uso qui è però duplice. Prima di tutto sta usando questa funzione solo per ovviare ad un limite di Dev-C++ (altri IDE sono perfettamente in grado di mantenere aperta la finestra anche dopo l'esecuzione del programma e se si fa partire il programma direttamente da console il problema neanche si pone). Inoltre, la funzione system sospende l'esecuzione del programma corrente per far partire il comando che gli viene passato per argomento. È una funziona complicatissima e non portabile per fare qualcosa che si può semplicemente implementare con un printf e uno scanf (oppure con cout e cin)...
Il manuale si ostina poi ad insegnare sia printf/scanf che cout/cin. Considerando che fanno le stesse cose mi sembra una decisione molto discutibile. Soprattutto considerando che viene prima insegnata la coppia printf/scanf il cui comportamento è a volte a dir poco criptico. Sfortunatamente vengono spesso insegnate in modo incredibilmente superficiale nonostante l'incredibile numero di pagine dedicate. Perché passare 4-5 pagine a spiegare qualcosa per poi mostrare un'alternativa molto più facile e idiot proof? Non esiste alcun motivo per cui un programmatore C++ debba conoscere questa libreria del C.
Passiamo ora alla terza riga:
#include
anche questa riga non fa parte propriamente del programma C++; essa è una direttiva che avverte il compilatore che una o più istruzioni che compariranno in seguito, si possono trovare nel file stdio.h, e i simboli < e > servono ad
indicare che questo particolare file si trova nella Libreria Standard.
Non è del tutto esatto. L'uso di <> o "" determina l'insieme delle cartelle nel quale cercare gli header. Cartelle che possono essere spesso modificate negli IDE o passando istruzioni al compilatore. <> si usa di solito per indicare librerie esterne al programma corrente, mentre "" vengono usate per librerie interne.
Istruzione 6: return 0; Questa istruzione serve a terminare il programma e a restituire il controllo al sistema operativo del computer.
È vero ma l'inserimento di tale istruzione in C++ è facoltativa alla fine del main.
Ci sono poi altre cose che ho visto in giro (ma che dovrei mettermi a cercare), ma sta già diventando lungo e quindi mi fermo.
Sempre di Eckel, una delle bibbie disponibili su Java, edizione gratuita: Thinking in Java 3a ed. raggiungibile dalla pagina
http://www.mindview.net/Books/TIJ/
http://www.mindview.net/Books/TIJ/
Argomento: Dispense sulla semantica dei linguaggi di programmazione. Le dipense utilizzando la Semantica Operazionale.
Autore: Gordon Plotkin
Lingua: Inglese
Corso: Laboratory for Foundations of Computer Science
Università: University of Edinburgh
Versione Originale
Versione Latex
Giudizio: sono le dispense originali della discussione che Plotkin tenne all'università di Aarhus in Danimarca, dove vennero raccolti i modi di dimostrazione e le regole che si basano sull'approccio operazionale dello studio dei linguaggi di programmazione. Il mio giudizio è molto positivo. Le dispense sono spiegate abbastanza bene, ci sono molti pezzi definibili "mattoni" (tanti), ma studiando le dispense si capisce affondo non solo uno studio di una semantica, ma diversi modi di dimostrazione. Almeno io le trovo molto buone (alle volte è pure divertente).
PS: esiste una relazione di un docente italiano che ha derivato le cose dette nelle dispense di Plotkin in lingua italiana, che è più fattibile della versione originale, non trovo però più il link al documento.
EDIT:
aggiunto il link ad una versione rivista delle dispense originali, scritte in latex, così c'è la possibilità di copiare e ricercare parti di testo.
Preferisco questa versione, che è identica a quella originale, ma è più gestibile su un computer senza stamparla.
EDIT2:
non trovando più il link delle dispense italiane che citavo nel "Post Scriptum", posso consigliare un'alternativa, cioè il libro:
"Semantica Operazionale: strumenti e applicazioni. Linguaggi Imperativi e Funzionali" di I.Mastroeni e C.Priami
a detta degli autori nella prefazione, il libro è una derivazione diretta delle note di Plotkin.
Autore: Gordon Plotkin
Lingua: Inglese
Corso: Laboratory for Foundations of Computer Science
Università: University of Edinburgh
Versione Originale
Versione Latex
Giudizio: sono le dispense originali della discussione che Plotkin tenne all'università di Aarhus in Danimarca, dove vennero raccolti i modi di dimostrazione e le regole che si basano sull'approccio operazionale dello studio dei linguaggi di programmazione. Il mio giudizio è molto positivo. Le dispense sono spiegate abbastanza bene, ci sono molti pezzi definibili "mattoni" (tanti), ma studiando le dispense si capisce affondo non solo uno studio di una semantica, ma diversi modi di dimostrazione. Almeno io le trovo molto buone (alle volte è pure divertente).
PS: esiste una relazione di un docente italiano che ha derivato le cose dette nelle dispense di Plotkin in lingua italiana, che è più fattibile della versione originale, non trovo però più il link al documento.
EDIT:
aggiunto il link ad una versione rivista delle dispense originali, scritte in latex, così c'è la possibilità di copiare e ricercare parti di testo.
Preferisco questa versione, che è identica a quella originale, ma è più gestibile su un computer senza stamparla.
EDIT2:
non trovando più il link delle dispense italiane che citavo nel "Post Scriptum", posso consigliare un'alternativa, cioè il libro:
"Semantica Operazionale: strumenti e applicazioni. Linguaggi Imperativi e Funzionali" di I.Mastroeni e C.Priami
a detta degli autori nella prefazione, il libro è una derivazione diretta delle note di Plotkin.
Computational Complexity: A Modern Approach
Sono le bozze del nuovo libro di Arora sulla teoria della complessità che a detta di molti sostituirà l'ormai vecchiotto omonimo libro di Papadimitriou. L'ho appena iniziato a leggere ed è veramente ben scritto. È destinato perlopiù a graduate student, ma credo che anche un volenteroso laureando come me possa approcciarlo. Tratta dai concetti base della teoria dellla complessità (classi P e NP, NP-completezza, IP, ecc.) fino ad argomenti più avanzati e moderni (un assaggio di Quantum Computing, teoremi PCP, ...).
Sono le bozze del nuovo libro di Arora sulla teoria della complessità che a detta di molti sostituirà l'ormai vecchiotto omonimo libro di Papadimitriou. L'ho appena iniziato a leggere ed è veramente ben scritto. È destinato perlopiù a graduate student, ma credo che anche un volenteroso laureando come me possa approcciarlo. Tratta dai concetti base della teoria dellla complessità (classi P e NP, NP-completezza, IP, ecc.) fino ad argomenti più avanzati e moderni (un assaggio di Quantum Computing, teoremi PCP, ...).
Segnalo alcune risorse per informatica teorica, che ritengo degne di nota.
Dalla homepage del prof. Giorgio Ausiello - Università della Sapienza (qualcuno non sa chi è?!?), nella sezione dedicata alla didattica dei vari corsi, è disponibile il PDF del famoso lavoro di informatica teorica scritto assieme ai colleghi
Ausiello, d'Amore, Gambosi - Linguaggi, Modelli, Complessità (a parte è il nono capitolo).
E' un "must", non ha bisogno di commenti.
Di Pilu (Pierluigi) Crescenzi, Ordinario di Informatica a Firenze
Informatica Teorica - Linguaggi, Computabilita, Complessita
una approfondita introduzione all'IT, usata per un suo corso del III anno.
Anche Renzo Sprugnoli è ordinario a UNIFI, e dalla sua homepage mette a disposizione cose interessanti, fra le quali gli
Appunti di Informatica Teorica
Andrea Asperti, Ordinario di Informatica Teorica a Bologna, tiene un corso di IT nel quale usa delle proprie note di
Teoria della Calcolabilità
molto dettagliate; c'è l'avviso di "work in progress" (ma credo si riferisca solo a eventuali revisioni e/o correzioni, poiché sono datate 2006).
Sebastiano Vigna, associato all'Università di Milano, mette a disposizione delle
Dispense di informatica teorica
che si soffermano in particolare sulle macchine RAM.
Dalla homepage del prof. Giorgio Ausiello - Università della Sapienza (qualcuno non sa chi è?!?), nella sezione dedicata alla didattica dei vari corsi, è disponibile il PDF del famoso lavoro di informatica teorica scritto assieme ai colleghi
Ausiello, d'Amore, Gambosi - Linguaggi, Modelli, Complessità (a parte è il nono capitolo).
E' un "must", non ha bisogno di commenti.
Di Pilu (Pierluigi) Crescenzi, Ordinario di Informatica a Firenze
Informatica Teorica - Linguaggi, Computabilita, Complessita
una approfondita introduzione all'IT, usata per un suo corso del III anno.
Anche Renzo Sprugnoli è ordinario a UNIFI, e dalla sua homepage mette a disposizione cose interessanti, fra le quali gli
Appunti di Informatica Teorica
Andrea Asperti, Ordinario di Informatica Teorica a Bologna, tiene un corso di IT nel quale usa delle proprie note di
Teoria della Calcolabilità
molto dettagliate; c'è l'avviso di "work in progress" (ma credo si riferisca solo a eventuali revisioni e/o correzioni, poiché sono datate 2006).
Sebastiano Vigna, associato all'Università di Milano, mette a disposizione delle
Dispense di informatica teorica
che si soffermano in particolare sulle macchine RAM.
Appunti Vari e schematici di interi corsi
Autore: Nicola Asuni
Su questo sito sono annotati moltissimi argomenti trattati nei corsi univesitari.
Lo stile del sito è molto comodo, è da tenere come memorandum, come schema-riassunto degli argomenti. Non tratta quasi mai un argomento completamente.
Ma con frasi brevi e concise riassume molte cose.
Io lo ho preso molte volte in considerazione come punto di riferimento per ripassare o tenere a mente alcuni concetti.
https://appunti.asuni.xyz/
Argomenti trattati:
* Analisi Numerica
* APSI (Architettura dei Processori e Sistemi Integrati)
* Basi di Dati II
* Data Mining
* Economia
* El. Immagini
* Geometria Comp.
* Informatica Generale
* Informatica Teorica
* Inglese
* Lab OO - Java
* Logica Matematica
* Meccanica Razionale
* Metodi Formali
* Optoelettronica
* Ottimizzazione
* Reti di Calcolatori
* Sistemi Operativi
* Statistica
* Formulari e Tabelle
Giudizio: Ottimo e molto comodo lo stile schematico.
Autore: Nicola Asuni
Su questo sito sono annotati moltissimi argomenti trattati nei corsi univesitari.
Lo stile del sito è molto comodo, è da tenere come memorandum, come schema-riassunto degli argomenti. Non tratta quasi mai un argomento completamente.
Ma con frasi brevi e concise riassume molte cose.
Io lo ho preso molte volte in considerazione come punto di riferimento per ripassare o tenere a mente alcuni concetti.
https://appunti.asuni.xyz/
Argomenti trattati:
* Analisi Numerica
* APSI (Architettura dei Processori e Sistemi Integrati)
* Basi di Dati II
* Data Mining
* Economia
* El. Immagini
* Geometria Comp.
* Informatica Generale
* Informatica Teorica
* Inglese
* Lab OO - Java
* Logica Matematica
* Meccanica Razionale
* Metodi Formali
* Optoelettronica
* Ottimizzazione
* Reti di Calcolatori
* Sistemi Operativi
* Statistica
* Formulari e Tabelle
Giudizio: Ottimo e molto comodo lo stile schematico.
Appunti e dispense per vari corsi del primo triennio di informatica, validi ovviamente anche per altri CDL.
Gianfranco Niesi del DIMA, Università di Genova, ha tenuto un corso di matematica discreta dove usava i propri
Appunti di Matematica Discreta (a parte l'errata corrige)
secondo me fatti bene.
Alberto Albano e Michele Rossi, dell'Università di Torino, tengono un corso di Matematica Discreta per informatica dove usano la dispensa
Matematica Discreta per Informatica
redatta dallo stesso Albano e dal collega Marco Burzio, completa e chiara. Manca solo la teoria dei grafi, alla quale supperisce sempre Burzio il quale tiene un corrispondente corso nel CDL di matematica dove usa la propria dispensa di
Teoria dei grafi
Sempre di Teoria dei Grafi segnalo questa dispensa (raggiungibile dalla pagina "didattica") del prof. Carlo Casolo, ordinario di Algebra a Firenze, del
Corso di Teoria dei Grafi
discorsiva e chiara, pur rispettando la formalità. C'è qualche refuso qua e là, si vede non l'hanno letta in molti (sarò stato il solo?
)
Per lo studio della Logica, segnalo le dispense e gli appunti del prof. Giangiacomo Gerla dell'Università di Salerno, raggiungibili dalla pagina della didattica.
Gianfranco Niesi del DIMA, Università di Genova, ha tenuto un corso di matematica discreta dove usava i propri
Appunti di Matematica Discreta (a parte l'errata corrige)
secondo me fatti bene.
Alberto Albano e Michele Rossi, dell'Università di Torino, tengono un corso di Matematica Discreta per informatica dove usano la dispensa
Matematica Discreta per Informatica
redatta dallo stesso Albano e dal collega Marco Burzio, completa e chiara. Manca solo la teoria dei grafi, alla quale supperisce sempre Burzio il quale tiene un corrispondente corso nel CDL di matematica dove usa la propria dispensa di
Teoria dei grafi
Sempre di Teoria dei Grafi segnalo questa dispensa (raggiungibile dalla pagina "didattica") del prof. Carlo Casolo, ordinario di Algebra a Firenze, del
Corso di Teoria dei Grafi
discorsiva e chiara, pur rispettando la formalità. C'è qualche refuso qua e là, si vede non l'hanno letta in molti (sarò stato il solo?

Per lo studio della Logica, segnalo le dispense e gli appunti del prof. Giangiacomo Gerla dell'Università di Salerno, raggiungibili dalla pagina della didattica.
Da leggere questo articolo sui fondamenti della Fisica dei Calcolatori, sono riassunti casi specifici sul modo in cui un calcolatore "fa" i calcoli.
Titolo: The Fundamental Physical Limits of Computation
Autore: Bennett, Charles H.; Landauer, Rolf
Rivista: Scientific American, v253 n1 p48-56 Jul 1985
PDF: http://zimp.zju.edu.cn/~xinwan/courses/ ... ennett.pdf
Esiste anche la traduzione italiana, ma disponibile solo sulla controparte italiana della rivista Science:
Cfr. Ch.H. Bennett, R. Landauer, "I limiti fisici fondamentali del calcolo" da ‘Le scienze’, 205, 1985.
Io lo ho trovato affascinante, consiglio la lettura anche ai non addetti ai lavori
Titolo: The Fundamental Physical Limits of Computation
Autore: Bennett, Charles H.; Landauer, Rolf
Rivista: Scientific American, v253 n1 p48-56 Jul 1985
PDF: http://zimp.zju.edu.cn/~xinwan/courses/ ... ennett.pdf
Esiste anche la traduzione italiana, ma disponibile solo sulla controparte italiana della rivista Science:
Cfr. Ch.H. Bennett, R. Landauer, "I limiti fisici fondamentali del calcolo" da ‘Le scienze’, 205, 1985.
Io lo ho trovato affascinante, consiglio la lettura anche ai non addetti ai lavori

Segnalo questo sito:
http://calcolatori.iet.unipi.it/
Autore: Frosini
Università: Università di Pisa
nella sezione: "Contributi degli studenti"
sono presenti molti approfondimenti e domande/risposte sull'architettura di un calcolatore e di un sistema operativo. Molto basso livello come segmentazione, paginazione, DMA, ecc
E' presente il codice sorgente del nucleo di un sistema operativo funzionante (unix-like) commentato in italiano, dove è possibile visionare un vero sistema operativo.
L'ambiente del sito è più orientato ad un corso di Sistemi Operativi 2, dove si visiona il più basso livello di OS che interagisce con l'architettura, il sistema di IO. L'architettura menzionata è il classico Intel 386(IA32).
Le domande/risposte anche se collegate con il libro "Calcolatori Elettronici. Volume IV" (G. Frosini, B. Lazzerini), spiegano tantissime cose su un'architettura (tempo fa solo li ho trovato risposta ad una dubbio)
Giudizio: Ottimo
http://calcolatori.iet.unipi.it/
Autore: Frosini
Università: Università di Pisa
nella sezione: "Contributi degli studenti"
sono presenti molti approfondimenti e domande/risposte sull'architettura di un calcolatore e di un sistema operativo. Molto basso livello come segmentazione, paginazione, DMA, ecc
E' presente il codice sorgente del nucleo di un sistema operativo funzionante (unix-like) commentato in italiano, dove è possibile visionare un vero sistema operativo.
L'ambiente del sito è più orientato ad un corso di Sistemi Operativi 2, dove si visiona il più basso livello di OS che interagisce con l'architettura, il sistema di IO. L'architettura menzionata è il classico Intel 386(IA32).
Le domande/risposte anche se collegate con il libro "Calcolatori Elettronici. Volume IV" (G. Frosini, B. Lazzerini), spiegano tantissime cose su un'architettura (tempo fa solo li ho trovato risposta ad una dubbio)
Giudizio: Ottimo
Tema: Algoritmo del Simplesso
Autore: Gionata Massi
Riporto il link di un'applicazione web, che implementa l'algoritmo del Simplesso, noto algoritmo che risolve problemi di Programmazione Lineare.
Non si ha avrà una soluzione sempre, ma è in molti casi si ha la soluzione ottima per determinati problemi di Pogrammazione Lineare Reale, con limitazione di 11 coordinate.
Secondo me avere un'implementazione a portata di mano è una cosa davvero comoda.
Questo sito cerca di implementare anche la risoluzione di problemi con programmazione lineare intera (PLI), con l'algoritmo approssimato, però con seri problemi (v. NOTE).
Possibile visionare il codice sorgente e visione di ogni passaggio interno all'algoritmo nei vari passaggi di calcolo.
Algoritmo del Simplesso Implementazione
Giudizio: molto comodo nella parte di programmazione lineare
NOTE: grazie all'utente Benny, che ha provato e descritto il problema che si riscontra con la PLI, di seguito la descrizione:
Autore: Gionata Massi
Riporto il link di un'applicazione web, che implementa l'algoritmo del Simplesso, noto algoritmo che risolve problemi di Programmazione Lineare.
Non si ha avrà una soluzione sempre, ma è in molti casi si ha la soluzione ottima per determinati problemi di Pogrammazione Lineare Reale, con limitazione di 11 coordinate.
Secondo me avere un'implementazione a portata di mano è una cosa davvero comoda.
Questo sito cerca di implementare anche la risoluzione di problemi con programmazione lineare intera (PLI), con l'algoritmo approssimato, però con seri problemi (v. NOTE).
Possibile visionare il codice sorgente e visione di ogni passaggio interno all'algoritmo nei vari passaggi di calcolo.
Algoritmo del Simplesso Implementazione
Giudizio: molto comodo nella parte di programmazione lineare
NOTE: grazie all'utente Benny, che ha provato e descritto il problema che si riscontra con la PLI, di seguito la descrizione:
"Benny":
Ti dico, funziona egregiamente nella parte PLC (ed è ottimo per come mostra i passaggi) tuttavia quando si passa alla programmazione intera opera in maniera strana: sceglie correttamente dei pivot col metodo del simplesso duale ma non inserisce i nuovi vincoli di interezza, ovvero il tableau accresce in variabili di slack ma non in vincoli. Posso assicurarti che ho sottoposto problemi basilari, con 2 variabili e 1 vincolo reale. Peccato, perchè per il resto è davvero ben fatto.
Corso: Fondamenti di Linguaggi di Programmazione
Argomento: Semantica Denotazione/Operazionale di un Linguaggio IMP, Ordinamento Parziale Completo (CPO) (Teoria dei Domini) e Minimi Punti Fissi, Semantica Operazionale Lazy/Eager e Linguaggi Paralleli.
Autore: Murano Aniello, | Luca Paolini, Giulio Manzonetto, Ugo Solitro (Lambda calcolo)| Massimo Merro (Linguaggi concorrenti)
Università: Università degli Studi di Napoli Federico II.
http://people.na.infn.it/~murano/Fondamenti-old.html
Giudizio: molto utile. Uniche slide che ho trovato, in cui si dice esplicitamente come collegare la Teoria dei Domini (CPO) e la Semantica Denotazione.
NOTE: le slide sono un collage di note del docente di quel corso e riferimenti al libro "The Formal Semantics of Programming Languages: An Introduction" di Glynn Winskel (sul sito dell'autore c'è anche molto materiale in più), senza il libro non si possono comprendere a pieno gli argomenti, ma senza le note di questo docente (almeno con me) non si fa nulla con i capitoli 5 e 8 (fondamentale Slide della "Sesta Lezione").
PS: non utilizzate le nuove slide di quel corso, che non fanno vedere i simboli matematici corretti.
Lambda Calcolo - non tipato
http://www.di.unito.it/~paolini/papers/laurea2.ps
http://www-lipn.univ-paris13.fr/~gmanzo ... esis.ps.gz
...
NOTE: varie note e dispense sul Lambda Calcolo ed Informatica Teorica. Io le ho utilizzate solo per il λ-calcolo non tipato, e queste note sono le uniche che ho trovato in cui si parla di β−η-normalform o β−η-riduzione. Le ritengo valide essendo che riussumono molti argomenti e trattanto in modo approfondito molti teoremi fondamentali.
Libro Semantica
Hanne Riis Nielson, Flemming Nielson.
Semantics with Applications: A Formal Introduction
Wiley Professional Computing, 1992.
Linguaggi Concorrenti
Pi-calcolo
Note: slide semplici e chiare sulla sintassi e la semantica del π-calcolo.
Argomento: Semantica Denotazione/Operazionale di un Linguaggio IMP, Ordinamento Parziale Completo (CPO) (Teoria dei Domini) e Minimi Punti Fissi, Semantica Operazionale Lazy/Eager e Linguaggi Paralleli.
Autore: Murano Aniello, | Luca Paolini, Giulio Manzonetto, Ugo Solitro (Lambda calcolo)| Massimo Merro (Linguaggi concorrenti)
Università: Università degli Studi di Napoli Federico II.
http://people.na.infn.it/~murano/Fondamenti-old.html
Giudizio: molto utile. Uniche slide che ho trovato, in cui si dice esplicitamente come collegare la Teoria dei Domini (CPO) e la Semantica Denotazione.
NOTE: le slide sono un collage di note del docente di quel corso e riferimenti al libro "The Formal Semantics of Programming Languages: An Introduction" di Glynn Winskel (sul sito dell'autore c'è anche molto materiale in più), senza il libro non si possono comprendere a pieno gli argomenti, ma senza le note di questo docente (almeno con me) non si fa nulla con i capitoli 5 e 8 (fondamentale Slide della "Sesta Lezione").
PS: non utilizzate le nuove slide di quel corso, che non fanno vedere i simboli matematici corretti.
Lambda Calcolo - non tipato
http://www.di.unito.it/~paolini/papers/laurea2.ps
http://www-lipn.univ-paris13.fr/~gmanzo ... esis.ps.gz
...
NOTE: varie note e dispense sul Lambda Calcolo ed Informatica Teorica. Io le ho utilizzate solo per il λ-calcolo non tipato, e queste note sono le uniche che ho trovato in cui si parla di β−η-normalform o β−η-riduzione. Le ritengo valide essendo che riussumono molti argomenti e trattanto in modo approfondito molti teoremi fondamentali.
Libro Semantica
Hanne Riis Nielson, Flemming Nielson.
Semantics with Applications: A Formal Introduction
Wiley Professional Computing, 1992.
Linguaggi Concorrenti
Pi-calcolo
Note: slide semplici e chiare sulla sintassi e la semantica del π-calcolo.
Argomento: Algoritmi e Strutture Dati
Autore: Paolo Baldan e Livio Colussi (Esercizi) e Philip Bille (Soluzioni Cormen), Pinotti, Vincenzo Cutello , Roberto Posenato (Algoritmi Avanzati)
Temi: Esercizi di un corso di algoritmi e strutture dati 1, con soluzioni complete. Analisi degli Algoritmi, Programmazione Dinamica, Greedy, Reti di Flusso. Bozze di Soluzione degli esercizi del libro "Introduzione agli Algoritmi e Strutture Dati - 1st & 2nd edition" di Cormen, Rivest et. all.
Esercizi Algoritmi 1
NOTE: esercizi svolti, scritti da Livio Colussi responsabile della traduzione del famoso "Introduzione agli Algoritmi e Strutture dati", con tutte le soluzioni con spiegazione completa.
Ipotesi di Soluzione Cormen
NOTE: Il primo link sono delle possibili soluzioni degli esercizi del libro "Introduction to algorithms - 2nd edition", sono solo degli aiuti per capire se la propria soluzione all'esercizio possa essere corretta oppure per trovare una strada per risolverlo, non ci sono soluzioni complete (tranne alcuni casi) e non ci sono tutti gli esercizi.
Analisi degli Algoritmi
Analisi degli algoritmi
Soluzioni
NOTE: penso che siano utile per comprendere come si analizza un algoritmo così da calcolarne la complessità numerica, gli algoritmi sono di tipo iterativo. In alcuni spiega ogni passaggio, altri solo il risultato.
Equazioni di ricorrenza
NOTE: metodi di calcolo delle equazioni di ricorrenza, slide che riassumono le tecniche principali (ne mancano alcune minori), fatto molto bene.
Animazione algoritmi
Dizionari di Algoritmi e Implementazione
https://xlinux.nist.gov/dads/
http://www.algosort.com/
http://www.cs.sunysb.edu/~algorith/
Algoritmi di Ottimizzazione della classe NP
Algoritmi Avanzati
http://profs.sci.univr.it/~posenato/hom ... lgavanzati
NOTE: slide davvero ben fatte, su molti argomenti di corsi avanzati di algoritmi (riassuntive ma ottime), tratta algoritmi di ricerca locale e algoritmi approssimati. Molte illuminanti le slide su Programmazione Dinamica che cerca di generalizzare questa tecnica.
Autore: Paolo Baldan e Livio Colussi (Esercizi) e Philip Bille (Soluzioni Cormen), Pinotti, Vincenzo Cutello , Roberto Posenato (Algoritmi Avanzati)
Temi: Esercizi di un corso di algoritmi e strutture dati 1, con soluzioni complete. Analisi degli Algoritmi, Programmazione Dinamica, Greedy, Reti di Flusso. Bozze di Soluzione degli esercizi del libro "Introduzione agli Algoritmi e Strutture Dati - 1st & 2nd edition" di Cormen, Rivest et. all.
Esercizi Algoritmi 1
NOTE: esercizi svolti, scritti da Livio Colussi responsabile della traduzione del famoso "Introduzione agli Algoritmi e Strutture dati", con tutte le soluzioni con spiegazione completa.
Ipotesi di Soluzione Cormen
NOTE: Il primo link sono delle possibili soluzioni degli esercizi del libro "Introduction to algorithms - 2nd edition", sono solo degli aiuti per capire se la propria soluzione all'esercizio possa essere corretta oppure per trovare una strada per risolverlo, non ci sono soluzioni complete (tranne alcuni casi) e non ci sono tutti gli esercizi.
Analisi degli Algoritmi
Analisi degli algoritmi
Soluzioni
NOTE: penso che siano utile per comprendere come si analizza un algoritmo così da calcolarne la complessità numerica, gli algoritmi sono di tipo iterativo. In alcuni spiega ogni passaggio, altri solo il risultato.
Equazioni di ricorrenza
NOTE: metodi di calcolo delle equazioni di ricorrenza, slide che riassumono le tecniche principali (ne mancano alcune minori), fatto molto bene.
Animazione algoritmi
Dizionari di Algoritmi e Implementazione
https://xlinux.nist.gov/dads/
http://www.algosort.com/
http://www.cs.sunysb.edu/~algorith/
Algoritmi di Ottimizzazione della classe NP
Algoritmi Avanzati
http://profs.sci.univr.it/~posenato/hom ... lgavanzati
NOTE: slide davvero ben fatte, su molti argomenti di corsi avanzati di algoritmi (riassuntive ma ottime), tratta algoritmi di ricerca locale e algoritmi approssimati. Molte illuminanti le slide su Programmazione Dinamica che cerca di generalizzare questa tecnica.
Argomento: Basi di Dati
Autore: Giovanna Guerrini, Eugenio di Sciascio, Mario Cannataro, Dimitris Plexousakis e Fabrizio Riguzzi
Tema: Normalizzazione (Normal Form), Dipendenze Funzionali Minimali e Copertura Canonica, Concorrenza, Anomalie, Ripristino dei Dati e Locking
Teoria della Normalizzazione:
Canonical Cover, Normal Form, Dipendenze Funzionali e Chiusura
Ridondanze e Anomalie, Scomposizione schemi relazionali, Normal Form, Lossless Join, Insiemi Dipendenze Minimali e Chiusura
NOTE: i primi due link sono fatti molto bene, tra tutti quelli che ho letto per comprendere questi argomenti sono stati i più completi, coprono la Normalizzazione in modo completo, da studiare insieme perchè alcune parti del primo file sono trattate in modo non troppo approfondito
Scomposizone Alternativa in Normal Form
NOTE: il link sopra è un algoritmo di scomposizone alternativo, non ricordo per quale scomposizione si utilizza, mi sembra BCNF, ma sono sicuro che è diverso l'approccio utilizzato. Da vedere.
Concorrenza:
ACID, Anomalie e Ripristino, Serializability, Equivalence, 2PLock e TimeStamp, ed altri Locking
Locking Esercizi Svolti1 (da slide 9)
Locking Esercizi Svolti2
Concorrenza Esercizi+Teoria
Concorrenza Esercizi Svolti
NOTE: il primo link copre l'intero argomento delle concorrenza, con anomalie e ripristino dei dati, l'unico che parla di alcune parti di teoria di un DB, che ho trovato solo su un libro specializzato. Il secondo ed il terzo visualizzano passo per passo vari tipi di Locking (upgrade lock, incremental lock, ecc), fatti molto bene. Gli ultimi due sono degli esercizi pratici, con qualche nota in più su alcune parti non coperte completamente dalle altre slide, con relative soluzioni.
Esercizi Vari
Autore: Giovanna Guerrini, Eugenio di Sciascio, Mario Cannataro, Dimitris Plexousakis e Fabrizio Riguzzi
Tema: Normalizzazione (Normal Form), Dipendenze Funzionali Minimali e Copertura Canonica, Concorrenza, Anomalie, Ripristino dei Dati e Locking
Teoria della Normalizzazione:
Canonical Cover, Normal Form, Dipendenze Funzionali e Chiusura
Ridondanze e Anomalie, Scomposizione schemi relazionali, Normal Form, Lossless Join, Insiemi Dipendenze Minimali e Chiusura
NOTE: i primi due link sono fatti molto bene, tra tutti quelli che ho letto per comprendere questi argomenti sono stati i più completi, coprono la Normalizzazione in modo completo, da studiare insieme perchè alcune parti del primo file sono trattate in modo non troppo approfondito
Scomposizone Alternativa in Normal Form
NOTE: il link sopra è un algoritmo di scomposizone alternativo, non ricordo per quale scomposizione si utilizza, mi sembra BCNF, ma sono sicuro che è diverso l'approccio utilizzato. Da vedere.
Concorrenza:
ACID, Anomalie e Ripristino, Serializability, Equivalence, 2PLock e TimeStamp, ed altri Locking
Locking Esercizi Svolti1 (da slide 9)
Locking Esercizi Svolti2
Concorrenza Esercizi+Teoria
Concorrenza Esercizi Svolti
NOTE: il primo link copre l'intero argomento delle concorrenza, con anomalie e ripristino dei dati, l'unico che parla di alcune parti di teoria di un DB, che ho trovato solo su un libro specializzato. Il secondo ed il terzo visualizzano passo per passo vari tipi di Locking (upgrade lock, incremental lock, ecc), fatti molto bene. Gli ultimi due sono degli esercizi pratici, con qualche nota in più su alcune parti non coperte completamente dalle altre slide, con relative soluzioni.
Esercizi Vari
Segnalo un sito su cui si trovano molte dispense ed esercizi svolti su tantissimi argomenti, non solo di Informatica!
Buona lettura
http://www.extrabyte.info/
Buona lettura

http://www.extrabyte.info/
Dispense di Linguaggi Formali
http://www.dimi.uniud.it/~dovier/DID/dispensa.pdf
Eserciziario
http://www.cs.unipr.it/Informatica/Cors ... ni2004.pdf
Dispense e tool consigliati dall'utente Rggb:
http://www.cs.unicam.it/tesei/didattica ... 4Total.pdf
http://www.cs.nuim.ie/~jpower/Courses/P ... index.html
Tool
JFLAP un ottimo simulatore ed interprete per costruire automi (DFA, NFA, ε-NFA, ecc..), convertire da-a grammatiche, RE, ecc.
Molto comodo per testare ciò che si è fatto.
Libro Linguaggi Formali e Compilatori
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman
Compilers: Principles, Techniques, and Tools - Second edition - The Dragon Book
Pearson Education - 2006
Sito di un corso tenuto da Ullman: http://infolab.stanford.edu/~ullman/dragon.html
http://www.dimi.uniud.it/~dovier/DID/dispensa.pdf
Eserciziario
http://www.cs.unipr.it/Informatica/Cors ... ni2004.pdf
Dispense e tool consigliati dall'utente Rggb:
http://www.cs.unicam.it/tesei/didattica ... 4Total.pdf
http://www.cs.nuim.ie/~jpower/Courses/P ... index.html
Tool
JFLAP un ottimo simulatore ed interprete per costruire automi (DFA, NFA, ε-NFA, ecc..), convertire da-a grammatiche, RE, ecc.
Molto comodo per testare ciò che si è fatto.
Libro Linguaggi Formali e Compilatori
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman
Compilers: Principles, Techniques, and Tools - Second edition - The Dragon Book
Pearson Education - 2006
Sito di un corso tenuto da Ullman: http://infolab.stanford.edu/~ullman/dragon.html
Autore: Agostino Dovier
Università: Università di Udine - Corso di Laurea in Matematica
Argomento: Linguaggio C per un corso di Informatica 1
http://www.dimi.uniud.it/dovier/DID/MAT ... ica_04.pdf
NOTE: Dispense essenziali e riassuntive sui Principi di programmazione in C.
Università: Università di Udine - Corso di Laurea in Matematica
Argomento: Linguaggio C per un corso di Informatica 1
http://www.dimi.uniud.it/dovier/DID/MAT ... ica_04.pdf
NOTE: Dispense essenziali e riassuntive sui Principi di programmazione in C.