SCUOLA ANNO ACCADEMICO CORSO DI LAUREA INSEGNAMENTO TIPO DI ATTIVITÀ AMBITO DISCIPLINARE CODICE INSEGNAMENTO ARTICOLAZIONE IN MODULI SETTORI SCIENTIFICO DISCIPLINARI DOCENTE RESPONSABILE CFU NUMERO DI ORE RISERVATE ALLO STUDIO PERSONALE NUMERO DI ORE RISERVATE ALLE ATTIVITÀ DIDATTICHE ASSISTITE PROPEDEUTICITÀ ANNO DI CORSO SEDE DI SVOLGIMENTO DELLE LEZIONI ORGANIZZAZIONE DELLA DIDATTICA MODALITÀ DI FREQUENZA METODI DI VALUTAZIONE TIPO DI VALUTAZIONE PERIODO DELLE LEZIONI CALENDARIO DELLE ATTIVITÀ DIDATTICHE ORARIO DI RICEVIMENTO DEGLI STUDENTI Scienze di Base e Applicate 2015/2016 Informatica Linguaggi di Programmazione Caratterizzante Discipline informatiche 04758 NO INF01 Gabriele Fici Ricercatore, Università di Palermo 9 153 72 Programmazione e Laboratorio C.I., Metodi matematici per l’informatica. II Consultare il sito www.cs.unipa.it Lezioni frontali, Lezioni di laboratorio eesercitazioni Facoltativa Prove in itinere, Prova orale finale Voto in trentesimi Primo semestre Consultare il sito www.cs.unipa.it Lunedì e Mercoledì 15:00 – 17:00 RISULTATI DI APPRENDIMENTO ATTESI Conoscenza e capacità di comprensione Conoscenza delle macchine astratte. Conoscenza panoramica storica dei vari paradigmi di programmazione. Conoscenza del paradigma di programmazione funzionale, logico, dichiarativo e strutturale. Conoscenza del paradigma orientato agli oggetti. Conoscenza del linguaggio Java. Capacità di applicare conoscenza e comprensione Capacità di valutare le funzionalità dei diversi paradigmi di programmazione. Capacità di scrivere un codice nel linguaggio di programmazione Java. Autonomia di giudizio Capacità di valutare e comparare autonomamente le soluzioni di un problema di limita complessità. Abilità comunicative Capacità di organizzarsi in gruppi di lavoro. Capacità di comunicare efficacemente in forma orale, anche utilizzando termini in Inglese. Capacità di apprendere Capacità di catalogare, schematizzare e rielaborare le nozioni acquisite. OBIETTIVI FORMATIVI Fornire le competenze di base, sia metodologiche che tecniche, sui linguaggi di programmazione, in particolar modo sui linguaggi orientati agli oggetti. ORE FRONTALI 12 LEZIONI FRONTALI Concetti base sui linguaggi di programmazione: linguaggi interpretati e compilati, macchine astratte, gestione della memoria, paradigmi di programmazione, linguaggi di scripting. 16 Paradigma di programmazione orientato agli oggetti: classi, attributi e metodi, incapsulamento, ereditarietà, polimorfismo, accenni alle differenze tra Java e C++. Caratteristiche di Java: ereditarietà singola, overloading e overriding di metodi, static type checking e dynamic late binding, classi astratte e interfacce. LEZIONI DI LABORATORIO ED ESERCITAZIONI Programmazione in linguaggio Java: struttura delle classi, strutture di controllo del flusso, stringhe, array e arraylist, ereditarietà e polimorfismo, classi astratte e interfacce, gestione dell'input output, gestione delle eccezioni, implementazioni di strutture dati, basi di interfacce grafiche. 22 22 TESTI CONSIGLIATI Esercizi di programmazione in linguaggio Java M. Gabbrielli, S. Martini, Linguaggi di programmazione, principi e paradigmi, Mc GrawHill; C. Horstmann, Concetti di informatica e fondamenti di Java, Apogeo; S. Mazzanti, V. Milanese, Programmazione di applicazioni grafiche in Java, Apogeo; C. Demetrescu, U. Ferraro Petrillo, I. Finocchi, G. F. Italiano, Progetto di algoritmi e strutture dati in Java, Mc GrawHill.