Size: 6423
Comment:
|
Size: 4705
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
Line 14: | Line 13: |
[[Anchor(docente)]] == Docente == Applicazioni avanzate nei più svariati ambiti spingono oggi verso un utilizzo dei calcolatori (finalmente) per rispondere ai problemi con soluzioni che gli esseri umani non sono in grado di trovare (non facilmente, almeno). [[BR]] Sistemi intelligenti sono già impiegati oggi in svariati ambiti: controllo di processi industriali, controllo del traffico aereo, commercio elettronico, robotica, grid computing, applicazioni mediche, giochi, intrattenimento, e oltre. [[BR]] I sistemi di elaborazione sono inoltre sempre più estesi, e la realtà apre quindi naturalmente alla possibilità di realizzare sistemi costituiti, gestiti o coadiuvati da una pluralità di entità autonome, chiamate agenti, che interagiscono fra loro in ambienti complessi. Essi sono già di fatto dei sistemi multi-agente, essendo costituiti da componenti collocate in un ambiente, autonome e sociali. [[BR]] [#TOP Top of Page] [[BR]] [[Anchor(obiettivi)]] == Obiettivi del Corso == ''[Passibile di modifiche]'' [[BR]] Il corso si propone di fornire le nozioni fondamentali per la comprensione e la progettazione di sistemi che utilizzano tecniche di Intelligenza Artificiale nel senso più ampio, e in particolare affrontare i problemi tipici dell'ingegneria del software orientata agli agenti. [[BR]] Il corso si sofferma (ma non solo) sui metodi per la progettazione di agenti capaci di prendere decisioni razionali, e metodi per la progettazione di sistemi che prevedono la presenza di più agenti, in grado di comunicare e interagire. [[BR]] Alla fine del corso gli studenti dovrebbero acquisire la capacità di progettare, ed eventualmente sviluppare, sistemi intelligenti basati su agenti. [[BR]] [#TOP Top of Page] [[BR]] [[Anchor(prerequisiti)]] == Prerequisiti == Sono indispensabili conoscenze di base di informatica e di programmazione avanzata. Sono utili conoscenze di base di matematica, logica, intelligenza artificiale. [[BR]] [#TOP Top of Page] [[BR]] [[Anchor(materiale)]] == Testi e Materiale Didattico == === Testi consigliati === ''Testi'' * S. Russell, P. Norvig, "Intelligenza artificiale. Un approccio moderno" Volumi 1 e 2. Pearson Education Italia, 2005. [http://aima.cs.berkeley.edu/ link] * ''In alternativa'': S. Russell, P. Norvig, "Artificial Intelligence: A modern approach", Prentice Hall, Englewood Cliffs, NJ, 2nd ed., 1995. [http://aima.cs.berkeley.edu/ link] * Matt Ginsberg, "Essentials of Artificial Intelligence", Morgan Kaufmann Ed., 1993. [http://cirl.uoregon.edu/ginsberg/ link al sito dell'autore] * M.Ghallab, D. Nau, P. Traverso, "Automated Planning - Theory and Practice", Morgan Kaufmann Ed., 2004. [http://www.laas.fr/planning/ link] ''Varie e sparse'' * D. C. Dennett, D. R. Hofstadter, "L'io della mente. Fantasie e riflessioni sul se' e sull'anima", Adelphi Ed., 1997. [http://en.wikipedia.org/wiki/The_Mind's_I link a wikipedia] * D. R. Hofstadter, "Goedel, Escher, Bach: un'eterna ghirlanda brillante", Adelphi Ed., 1990. [http://en.wikipedia.org/wiki/Goedel_Escher_Bach link a wikipedia] === Materiale Didattico, Links, Varie ed Eventuali === ''Lucidi'' * [attachment:chapter01.pdf AI e agenti: introduzione] (aprile 2009) * [attachment:chapter02.pdf Agenti: razionalità, ambienti, tipologie] (aprile 2009) * [attachment:chapter03.pdf Problem Solving e Ricerca] (maggio 2009) * [attachment:chapter07.pdf Agenti Logici] (maggio 2009) * [attachment:chapter11.pdf Planning: (breve) introduzione] (maggio 2009) * [attachment:chapter11a-dlvK.pdf Planning: K action language e DLV^K] * [attachment:chapter22.pdf Comunicazione e Linguaggio] (maggio 2009) * [attachment:chapter22a-AgentCommunication.pdf Comunicazione tra Agenti] (maggio 2009) * [attachment:Multi-Agent-Interactions.pdf Interazioni multi agente] (giugno 2009) ## * [attachment:200705-Ricca-SeminarioOntoDLP.pdf OntoDLP] - Lucidi del seminario 2007 ''Tutorial'' * [attachment:JADETutorial_FIPA.pdf FIPA] (reperibile su [http://jade.tilab.com/ http://jade.tilab.com/]) * [attachment:JADETutorial_Programming.pdf Jade - Programming] (reperibile su [http://jade.tilab.com/ http://jade.tilab.com/]) * [attachment:JADEProgramming-Tutorial-for-beginners.pdf Utilizzare Jade] (reperibile su [http://jade.tilab.com/ http://jade.tilab.com/]) ''Links'' * [http://www.fipa.org/ FIPA] * [http://www.fipa.org/ JADE] * [http://www.agentlink.org/ agentlink.org] ''Ringraziamenti'' [http://aima.cs.berkeley.edu/ Stuart Russell e Peter Norvig] - [http://www.wfaber.com Wolfgang Faber] - [http://www.kr.tuwien.ac.at/staff/eiter/ Thomas Eiter] e [http://www.kr.tuwien.ac.at/staff/michael/ Michael Fink] - [http://www.mat.unical.it/ricca/ Francesco Ricca] e [mailto:gallucci@exeura.it Lorenzo Gallucci] - [http://staff.unak.is/not/yuan/ Tangming Yuan] [[BR]] [#TOP Top of Page] [[BR]] [[Anchor(prerequisiti)]] == Progetti, Esercizi, Elaborati == * [attachment:2007-Aspirapolvere.jar Aspirapolvere] [Maggio 2007 - Archivio eseguibile java (.jar)] - Simulazione di un agente aspirapolvere. L'agente si muove in un ambiente inizialmente sconosciuto, senza alcuna indicazione sulla posizione di eventuali ostacoli, ne' sullo stato del pavimento. Il suo scopo e' pulire la stanza (a meno di aree irraggiungibili) nel minor tempo possibile, e tornare nel punto di partenza. L'agente e' stato realizzato da [mailto:sirianni.marco@yahoo.it Marco Sirianni] e [mailto:saverio_vescio@yahoo.it Saverio Vescio]. * [attachment:2007-SistemiIntelligenti-ProgettoFinale.pdf SPECIFICHE del progetto di fine corso - A.A. 2006/2007] [Giugno 2007 - File in formato .pdf] [[BR]] [#TOP Top of Page] [[BR]] |
|
Line 137: | Line 29: |
=== Esercitatori === * '''Mario Alviano''' - alviano[at]mat.unical.it - [http://www.alviano.com/ home page] * '''Susanna Cozza''' - cozza[at]mat.unical.it |
|
Line 138: | Line 34: |
---- [[Anchor(materiale)]] == Testi consigliati == ''Testi'' * Roberto Bruni, Andrea Corradini, Vincenzo Gervasi, ''Programmazione in Java'', APOGEO, 2009. * Harvey M. Deitel, Paul J. Deitel, ''Java. Fondamenti di programmazione'', APOGEO, 2005. * Cay Horstmann, ''Concetti di informatica e fondamenti di Java'', APOGEO, 2007 |
|
Line 139: | Line 42: |
''Varie e sparse'' * D. C. Dennett, D. R. Hofstadter, "L'io della mente. Fantasie e riflessioni sul se' e sull'anima", Adelphi Ed., 1997. [http://en.wikipedia.org/wiki/The_Mind's_I link a wikipedia] * D. R. Hofstadter, "Goedel, Escher, Bach: un'eterna ghirlanda brillante", Adelphi Ed., 1990. [http://en.wikipedia.org/wiki/Goedel_Escher_Bach link a wikipedia] [#TOP Top of Page] |
|
Line 140: | Line 48: |
== Materiale Didattico, Links, Varie ed Eventuali == ''Lucidi'' * - ''Tutorial'' * - ''Links'' * - |
|
Line 141: | Line 56: |
Torna alla pagina ["Didattica"] | [#TOP Top of Page] ---- [[Anchor(obiettivi)]] == Obiettivi del Corso == Il corso intende fornire solide basi sulla programmazione dei calcolatori elettronici per la risoluzione di problemi. Esso prevede lo studio di tecniche di programmazione nel linguaggio Java, con uso di semplici strutture dati, ed una introduzione alla programmazione ad oggetti. [[BR]] [#TOP Top of Page] ---- [[Anchor(prerequisiti)]] == Prerequisiti == Sono utili conoscenze di base di matematica, logica, una dimestichezza minima con l'uso del computer. [#TOP Top of Page] ---- [[Anchor(programma)]] == Programma del Corso == * Rappresentazione dell’informazione * Rappresentazione di numeri naturali * Cenni di aritmetica binaria * Rappresentazione di informazione non numerica (caratteri, immagini, ecc.) * Calcolo proposizionale * Architettura del calcolatore * Processore, memoria centrale, memoria di massa, memoria cache, periferiche * Algoritmi * Definizione di algoritmo * Risoluzione algoritmica dei problemi * Linguaggi di Programmazione * Definizione informale di un linguaggio di programmazione * Linguaggi a basso e ad alto livello * Interpreti e Compilatori * Diagrammi di flusso e pseudo-codice * Ambienti integrati di programmazione * Gli ambienti visuali * Programmazione in Java - Primi Passi * Introduzione - Struttura di un programma * Il metodo main * La memoria: concetti fondamentali * Librerie * Operazioni di ingresso/uscita * Concetto di variabile * Inizializzazione e assegnamento * Costanti * Espressioni aritmetiche e booleane * Priorità degli operatori * Ambienti di sviluppo * Compilatore, linker e debugger * Definizione dello spazio di lavoro e di un progetto * L'Editor * Compilazione, esecuzione e debugging di un programma * Tipi Primitivi * Tipi interi, tipi reali, tipo char, tipo bool * Conversioni di tipo e operazioni di cast * Strutture di Controllo * Istruzioni semplici e composte * Definizione di blocco di istruzioni * Visibilità delle variabili * L'istruzione IF * Effettuare confronti * L'istruzione WHILE * L'istruzione FOR * L'istruzione DO-WHILE * L'istruzione SWITCH * L’istruzione BREAK * Istruzioni innestate * Le funzioni in Java – I Metodi * I moduli di programmi in Java * Dichiarazioni e definizioni di metodi * Parametri formali e valore di ritorno * Durata degli identificatori * Regole di visibilità * Concetto di ricorsione * Ricorsione e iterazione * Cenni all’overloading delle funzioni * Array - Riferimenti * Dichiarare e allocare gli array * I riferimenti e i loro parametri * Passare gli array ai metodi * Array multidimensionali * Array di caratteri e stringhe * Concetti fondamentali * Funzioni di libreria * Introduzione alla Programmazione Orientata Agli Oggetti [#TOP Top of Page] ---- Torna alla pagina ["didattica"] |
Corso di INFORMATICA
Corso di Laurea in Matematica
Docente
Francesco Calimeri [http://www.mat.unical.it/calimeri link alla home page] BR Dipartimento di Matematica, Università della Calabria, 87036 Rende (CS). BR Ufficio: cubo 30B, 2°piano BR Telefono: +39 0984 496478 BR Fax: +39 0984 496410 BR Email: calimeri[AT]mat.unical.it BR BR
Esercitatori
Mario Alviano - alviano[at]mat.unical.it - [http://www.alviano.com/ home page]
Susanna Cozza - cozza[at]mat.unical.it
[#TOP Top of Page]
Testi consigliati
Testi
Roberto Bruni, Andrea Corradini, Vincenzo Gervasi, Programmazione in Java, APOGEO, 2009.
Harvey M. Deitel, Paul J. Deitel, Java. Fondamenti di programmazione, APOGEO, 2005.
Cay Horstmann, Concetti di informatica e fondamenti di Java, APOGEO, 2007
Varie e sparse
D. C. Dennett, D. R. Hofstadter, "L'io della mente. Fantasie e riflessioni sul se' e sull'anima", Adelphi Ed., 1997. [http://en.wikipedia.org/wiki/The_Mind's_I link a wikipedia]
D. R. Hofstadter, "Goedel, Escher, Bach: un'eterna ghirlanda brillante", Adelphi Ed., 1990. [http://en.wikipedia.org/wiki/Goedel_Escher_Bach link a wikipedia]
[#TOP Top of Page]
Materiale Didattico, Links, Varie ed Eventuali
Lucidi
- -
Tutorial
- -
Links
- -
[#TOP Top of Page]
Obiettivi del Corso
Il corso intende fornire solide basi sulla programmazione dei calcolatori elettronici per la risoluzione di problemi. Esso prevede lo studio di tecniche di programmazione nel linguaggio Java, con uso di semplici strutture dati, ed una introduzione alla programmazione ad oggetti. BR
[#TOP Top of Page]
Prerequisiti
Sono utili conoscenze di base di matematica, logica, una dimestichezza minima con l'uso del computer.
[#TOP Top of Page]
Programma del Corso
- Rappresentazione dell’informazione
- Rappresentazione di numeri naturali
- Cenni di aritmetica binaria
- Rappresentazione di informazione non numerica (caratteri, immagini, ecc.)
- Calcolo proposizionale
- Architettura del calcolatore
- Processore, memoria centrale, memoria di massa, memoria cache, periferiche
- Algoritmi
- Definizione di algoritmo
- Risoluzione algoritmica dei problemi
- Linguaggi di Programmazione
- Definizione informale di un linguaggio di programmazione
- Linguaggi a basso e ad alto livello
- Interpreti e Compilatori
- Diagrammi di flusso e pseudo-codice
- Ambienti integrati di programmazione
- Gli ambienti visuali
- Programmazione in Java - Primi Passi
- Introduzione - Struttura di un programma
- Il metodo main
- La memoria: concetti fondamentali
- Librerie
- Operazioni di ingresso/uscita
- Concetto di variabile
- Inizializzazione e assegnamento
- Costanti
- Espressioni aritmetiche e booleane
- Priorità degli operatori
- Ambienti di sviluppo
- Compilatore, linker e debugger
- Definizione dello spazio di lavoro e di un progetto
- L'Editor
- Compilazione, esecuzione e debugging di un programma
- Tipi Primitivi
- Tipi interi, tipi reali, tipo char, tipo bool
- Conversioni di tipo e operazioni di cast
- Strutture di Controllo
- Istruzioni semplici e composte
- Definizione di blocco di istruzioni
- Visibilità delle variabili
- L'istruzione IF
- Effettuare confronti
- L'istruzione WHILE
- L'istruzione FOR
- L'istruzione DO-WHILE
- L'istruzione SWITCH
- L’istruzione BREAK
- Istruzioni innestate
- Le funzioni in Java – I Metodi
- I moduli di programmi in Java
- Dichiarazioni e definizioni di metodi
- Parametri formali e valore di ritorno
- Durata degli identificatori
- Regole di visibilità
- Concetto di ricorsione
- Ricorsione e iterazione
- Cenni all’overloading delle funzioni
- Array - Riferimenti
- Dichiarare e allocare gli array
- I riferimenti e i loro parametri
- Passare gli array ai metodi
- Array multidimensionali
- Array di caratteri e stringhe
- Concetti fondamentali
- Funzioni di libreria
- Introduzione alla Programmazione Orientata Agli Oggetti
[#TOP Top of Page]
Torna alla pagina ["didattica"]
Torna alla home page di [http://www.mat.unical.it/calimeri Francesco Calimeri]