Corso di Laurea Ingegneria Informatica Presentazione del corso di Fondamenti di Informatica C. Limongelli – A. Miola 1 Ottobre 2012 http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 1 Benvenuti ! ! ! http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 2 Riferimenti di base per l’avvio q Siti web di interesse per gli studenti di questo corso : § il sito Web del Corso http://www.dia.uniroma3.it/~java/fondinf/ § il sito Web del Corso di Studi in Ingegneria Informatica http://didattica.dia.uniroma3.it § il sito Web di Ateneo http://www.uniroma3.it § la piattaforma Moodle http://elearning.dia.uniroma3.it http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 3 Contenuti q Cosa è l’Informatica q Obiettivi del corso q Programma del corso q Materiale didattico q Organizzazione didattica q Modalità e date di esame http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 4 Cosa non è l’Informatica q L’Informatica non è soltanto la scienza e la tecnologia dei calcolatori (Computer Science – in inglese) § i calcolatori sono solo degli strumenti q L’Informatica non coincide con nessuna delle applicazioni dei calcolatori http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 5 Cosa è l’Informatica . . . q L’Informatica è la scienza della rappresentazione, dell’organizzazione e del trattamento (automatico) della informazione “L’Informatica si può fare anche senza un calcolatore” q L’Informatica è scienza in quanto propone un approccio sistematico e disciplinato alla soluzione (automatica) dei problemi attraverso l’elaborazione (automatica) dell’informazione http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 6 . . . Cosa è l’Informatica . . . “L’Informatica si può fare anche senza un calcolatore” Una storiella . . . di fantascienza ? Issac Asimov : “Nove volte sette” Da “Racconti Matematici” antologia a cura di Claudio Bartocci Einaudi Editore - 2006 Provate a fare una ricerca su internet ! http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 7 . . . Cosa è l’Informatica . . . Nel racconto, Asimov dimostra come sia necessario non far atrofizzare nessuna conoscenza e nessuna capacità Affrontando il tema (oggi più che mai attuale) dei rapporti fra scienza ed etica, Asimov ci propone un paradosso : il ritorno dai giganteschi elaboratori elettronici all'umile matita, al semplice pezzo di carta, all'elementare memorizzazione della tavola pitagorica, non è una regressione ma costituisce un progresso . . . http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 8 . . . Cosa è l’Informatica . . . q L’elaborazione dell’informazione comporta la conoscenza di: § concetto di informazione § metodi e strumenti per la sua rappresentazione § metodi e strumenti per il suo trattamento e quindi la sua trasformazione § struttura e funzionamento dello strumento di elaborazione (il calcolatore) q La soluzione automatica di problemi comporta la conoscenza di: § informazione descrittiva, formalizzata, del problema § una soluzione corretta ed efficiente - algoritmo § regole per automatizzare il processo risolutivo - programma http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 9 . . . Cosa è l’Informatica q Nell’Informatica quindi si possono individuare due piani - paralleli q il piano astratto, concettuale, metodologico, logicomatematico § legato all’informazione, ai problemi e agli algoritmi q il piano concreto, pragmatico, tecnologico, fisicoelettronico § legato al calcolatore, ai dati e ai programmi http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 10 Cosa è il calcolatore q Il calcolatore è lo strumento principale per l’elaborazione automatica dell’informazione q Il calcolatore può essere inteso come: § una macchina utilizzabile per eseguire programmi, già disponibili (in genere definiti da altri), detti applicazioni § una macchina programmabile per risolvere nuovi problemi q Nei calcolatori si possono individuare due componenti: § HARDWARE - la parte fisica tangibile fatta di componenti elettroniche ed elettromeccaniche § SOFTWARE - la parte non tangibile e variabile fatta di programmi per l’uso dell’hardware e per la soluzione di problemi http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 11 Sapere e saper fare q Nell’Informatica quindi, come in altre discipline, bisogna quindi sapere e saper fare q Il sapere vuol dire conoscere, ragionare, cioè fare analisi e sintesi (Cartesio !) q Una componente fondamentale nella soluzione dei problemi è la capacità di sapere in cosa consiste un problema e la sua soluzione q Una componente importante nella soluzione automatica dei problemi è la capacità di saper fare, cioè come arrivare alla soluzione a partire dal sapere in cosa essa consiste § Sapere utilizzare uno strumento – il calcolatore – per . . . http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 12 Evoluzione dell’Informatica q La storia dell’Informatica inizia con l’avvento dei calcolatori elettronici digitali (fine della II guerra mondiale) q Ma c’è anche una preistoria . . . q Evoluzione dei concetti, metodi e modelli teorici (matematica e logica) q Evoluzione degli strumenti q Evoluzione delle applicazioni Provate a fare una ricerca su internet ! http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 13 Il corso di base di Informatica q Nella Laurea Triennale in Ingegneria Informatica è previsto al primo anno un corso di base di Informatica Fondamenti di Informatica (di 15 crediti) q Il corso costituisce un’introduzione alle metodologie e alle tecnologie per il trattamento automatico dell’informazione q In questo corso i concetti vengono presentati con riferimento al linguaggio di programmazione orientata agli oggetti Java, che costituisce anche lo strumento primario per le attività pratiche al calcolatore http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 14 Obiettivi del Corso q L’obiettivo del corso di Fondamenti di Informatica è quello di fornire gli elementi di base della cultura informatica attraverso strumenti - metodologici e concettuali - efficaci e duraturi per affrontare in modo flessibile l’evoluzione tecnologica e il vasto mondo delle applicazioni, in particolare § introdurre l'Informatica come disciplina per la soluzione automatica di problemi § presentare i concetti di base della programmazione dei calcolatori; gli strumenti linguistici, le metodologie e tecniche, in parte formali ed in parte pragmatiche, della programmazione; gli aspetti qualitativi dell’efficienza e della correttezza • la programmazione è una disciplina che si fonda su consolidate basi di teoria dei linguaggi e di metodologie di progetto ed analisi http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 15 Programma del Corso . . . q Introduzione degli elementi essenziali relativi a: § § § § § architettura di un calcolatore sistema operativo rappresentazione delle informazioni reti di calcolatori e servizi di rete gli strumenti software di supporto q Introduzione di strumenti relativi a: § programmi e programmazione § programmazione orientata ad oggetti § programmazione in linguaggio Java http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 16 . . . Programma del Corso . . . q Introduzione alla soluzione automatica di problemi § concetti di problema, algoritmo, linguaggio e programma q Programmazione orientata agli oggetti § concetti di variabile, dichiarazione e assegnazione § concetti base della programmazione orientata agli oggetti • classe, oggetto, metodo - in modo inizialmente astratto e poi con riferimento al linguaggio Java q Tecniche di programmazione § tipi di dato, strutture di controllo, modalità di definizione di classi, gli array e le stringhe - in modo inizialmente astratto e poi con riferimento al linguaggio Java q Un approccio disciplinato alla programmazione § concetti di correttezza, testing e debugging http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 17 . . . Programma del Corso q Ricorsione q Costo dei programmi q Algoritmi di ordinamento q Strutture collegate lineari q Tipi astratti di dato q Realizzazione e gestione di tipi astratti in Java http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 18 Materiale didattico Libro di riferimento : Luca Cabibbo Fondamenti di informatica: Oggetti e Java McGraw-Hill Editore, 2004 Ulteriore materiale didattico sarà reso disponibile sul sito web del corso all’indirizzo http://www.dia.uniroma3.it/~java/fondinf/ § le dispense del corso § l’ambiente di programmazione TextPad per Java § link all’ambiente di supporto didattico Moodle § altri programmi di supporto http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 19 Organizzazione della didattica q L’attività didattica assistita del corso è articolata in § lezioni ed esercitazioni in aula § attività pratica di laboratorio § esercizi di autovalutazione § assistenza individuale q Per ottenere il miglior profitto è indispensabile avvalersi di tutte e quattro le componenti dell’attività didattica http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 20 Attività didattica . . . q Le lezioni del corso si terranno : § Nel I semestre dal 1/10/2012 al 25/01/2013 § Nel II semestre dal 4/03/2013 al 7/06/2013 q Nel corso dell’anno sono previste le seguenti interruzioni didattiche : § Dal 19/12/2012 al 6/1/2013 (Vacanze di Natale) § Dal 1/02/2013 al 28/02/2013 (Esami) § Dal 29/03/2013 al 2/04/13 (Vacanze di Pasqua) q Gli esami si svolgono tra il 10/06/2013 e il 31/07/2013 e nei mesi di Settembre 2013 e Febbraio 2014 http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 21 . . . Attività didattica q Le lezioni del corso – nel I semestre – si terranno nei giorni indicati nell’apposito Calendario pubblicato sul sito del corso http://www.dia.uniroma3.it/~java/fondinf/ q Il Mercoledì non c’è lezione a meno di recuperi oppure di attività di laboratorio per gruppi q Il calendario settimanale delle lezioni viene pubblicato sul sito del corso con congruo anticipo q Il calendario delle lezioni del II semestre sarà fissato successivamente http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 22 Calendario delle lezioni Data Giorno Dove Argomento ___________________________________________________________ 01/10/2012 02/10/2012 04/10/2012 05/10/2012 Lun Mar Gio Ven in aula Presentazione del corso in aula Architettura del calcolatore in aula Sistema Operativo NON C’E’ LEZIONE 08/10/2012 Lun in aula 09/10/2012 Mar in aula 11/10/2012 12/10/2012 Gio Ven in aula in aula Problemi, Algoritmi, Programmi Problemi, Algoritmi, Programmi Programmi e Oggetti software Rappresentazione dell'informazione http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 23 Attività di laboratorio q Durante il corso, per tutte le attività pratiche al computer, lo studente potrà accedere al laboratorio: § Laboratorio Aula Informatica - CampusOne Via Vasca Navale 81 - piano terra – nei pressi Aula N11 q L’accesso al laboratorio è libero o su prenotazione ed è consentito negli orari di apertura affissi presso il laboratorio q L’utilizzazione delle apparecchiature del laboratorio è consentita nel rispetto del regolamento fissato e disponibile sul sito del corso http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 24 Autovalutazioni Si trovano su Moodle http://elearning.dia.uniroma3.it/moodle Nome del corso Fondamenti di Informatica (per informatici) 2012-2013 Chiave di accesso al corso fondinfinf-2013 Le autovalutazioni verranno rese disponibili insieme agli argomenti presentati a lezione Troverete anche materiale aggiuntivo importante per l’istallazione del software http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 25 Assistenza individuale . . . I docenti del corso ricevono gli studenti nel loro studio presso il Dipartimento Informatica e Automazione II piano : Prof.ssa C. Limongelli - stanza 201 Giovedì ore 14:00 – 16:00 [email protected] Prof. A. Miola - stanza 207 Giovedì ore 14:00 – 16:00 [email protected] http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 26 . . . Assistenza individuale Collaborazione al corso Prof. Fabio Gasparetti Prof. Giuseppe Sansonetti Gestione piattaforma Moodle Prof. Filippo Sciarrone Tutor per assistenza individuale e in laboratorio Daniela Carboni Matteo Lombardi Alessandro Marani Matteo Pellegrini Attilio Priolo Antonio Zoccoli http://www.dia.uniroma3.it/~java/fondinf/ [email protected] Presentazione Corso 27 Informazioni q Le informazioni relative al corso si possono trovare consultando: § il sito Web del Corso http://www.dia.uniroma3.it/~java/fondinf/ § il sito Web del Corso di Studi in Ingegneria Informatica http://didattica.dia.uniroma3.it § le bacheche del Corso di Studi in Ingegneria Informatica presso il Dipartimento di Informatica e Automazione, Via Vasca Navale 79 - I piano, presso la Segreteria Didattica http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 28 Organizzazione dello studio individuale q Sulla base di quanto detto dovrebbe immediatamente risultare quale è l’impegno che si richiede a ciascuno studente nella preparazione all’esame di questo corso § l’organizzazione didattica complessivamente proposta è volta a favorire la migliore produttività nello studio § i risultati migliori si possono ottenere soltanto con una frequenza e uno studio assiduo e continuativo, data anche la forte interdipendenza dei vari argomenti via via trattati nel corso http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 29 E ancora . . . q In tal senso si tenga conto che, secondo le stime e le valutazioni emerse in sede nazionale per gli studi della Facoltà di Ingegneria, il miglior profitto nello studio di una materia si può ottenere dedicando allo studio individuale mediamente 1.5 volte il tempo dedicato alla frequenza delle attività assistite dal docente, che per questo corso sono previste per la durata complessiva di circa 140-150 ore http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 30 . . . e ancora . . . q Quindi è necessario dedicare a questo corso, oltre alle ore di lezione, mediamente 200-250 ore di studio individuale, da distribuirsi uniformemente nel tempo q Si tenga anche conto che se non si frequentano le lezioni le ore da dedicare alla preparazione dell’esame sono almeno 400 § che certamente non possono essere concentrate in poche settimane prima dell’esame http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 31 . . . e ancora q Si suggerisce quindi di eseguire molti esercizi al calcolatore e di produrre elaborati sintetici di descrizione dei vari argomenti teorici, come utili test intermedi di autovalutazione q Lo studio individuale è certamente facilitato da una continua interazione con il docente durante l’orario di ricevimento per verificare il grado di apprendimento § L’interazione con il docente, se non possibile in presenza, può avvenire anche per posta elettronica, tenendo comunque conto che il docente non risponde a mail non firmate o a mail che pongono problemi la cui soluzione è disponibile sul sito del corso http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 32 Riassumendo q Per la preparazione dell’esame del corso si suggerisce il seguente metodo di studio § § § § § Studiare il materiale delle varie lezioni in sequenza, a partire dalle varie dispense e con l’ausilio del libro di testo nei capitoli a cui le dispense fanno riferimento Svolgere con continuità e in sequenza i vari esercizi proposti, lezione dopo lezione, dopo aver studiato il materiale relativo Svolgere con continuità e in sequenza i vari esercizi di autovalutazione proposti Svolgere con continuità e in sequenza i vari esercizi proposti durante le sedute in Laboratorio Verificare direttamente con i docenti, durante l'orario di ricevimento studenti, la correttezza delle soluzioni ai vari esercizi e quindi il livello di preparazione raggiunto http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 33 Esame di Fondamenti di Informatica q L’esame di Fondamenti di Informatica consiste di tre parti § la prima parte comprende domande a risposta chiusa § la seconda e la terza parte comprendono domande a risposta aperta relative alla parte teorica del programma del corso ed esercizi di programmazione q Ciascuna delle parti incide per 10/30 sulla votazione finale q L’esame si intende superato (con almeno 18/30) se la votazione riportata in ciascuna delle tre parti è non inferiore a 6/10, ma comunque la seconda e la terza parte verranno considerate se e solo se la votazione della prima parte è non inferiore a 6/10 q Quindi, c’è la verbalizzazione dell’esito, con l’eventuale discussione degli elaborati delle due prove http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 34 Date di esame q Le date degli esami di Luglio e Settembre 2013 e Febbraio 2014 saranno fissate a breve e saranno comunque pubblicate sul sito del corso e su quello del Corso di Studi in Ingegneria Informatica http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 35 Prova Intermedia q Alla fine del primo semestre – nel mese di Fabbraio 2013 (data da fissare) – si svolgerà una Prova Intermedia con la stessa struttura e modalità dell’esame finale ma con domande relative solo al programma svolto nel primo semestre http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 36 Ammissione alla Prova Intermedia q L’ammissione alla Prova Intermedia sarà riservata esclusivamente ai soli studenti che durante il primo semestre avranno dimostrato di aver studiato con continuità e profitto, svolgendo positivamente tutte le attività proposte durante il corso e partecipando alle sedute di laboratorio q I docenti del corso decideranno quali studenti ammettere sulla base della interazione individuale avuta durante il primo semestre e comunicheranno l’elenco degli ammessi entro la fine del semestre stesso http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 37 Esito della Prova Intermedia q Il superamento della prova intermedia offre allo studente la possibilità di sostenere un esame finale ridotto su un programma da concordare sulla base delle attività svolte nel secondo semestre q Nel secondo semestre del corso verranno organizzate attività di recupero personalizzato per gli studenti che non saranno stati ammessi alla prova intermedia e per quelli che non l’avranno superata http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 38 Alcune statistiche dell’a.a. 2011-2012 q Gli studenti attivi nel corso sono stati circa 280 q Gli ammessi alla Prova Intermedia circa 160 (il 57% circa del totale) q Gli studenti promossi alla Prova Intermedia sono stati 100 (il 58% circa degli ammessi e il 32% circa del totale) q Gli studenti promossi all’esame – nei due appelli di Luglio e Settembre 2012 – sono stati circa 140 (il 50% circa del totale) http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 39 Riferimenti q Questa dispensa contiene, direttamente o indirettamente, le principali informazioni relative al corso presentato § obiettivi e contenuti § modalità per seguirlo, per studiare e per l’esame finale q Questa stessa dispensa, come tutte le altre che seguiranno, si può trovare accedendo al sito del corso http://www.dia.uniroma3.it/~java/fondinf/ http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 40 Alcune riflessioni . . . Da un racconto di Stanislaw Lem “L'hotel straordinario” Il racconto si articola sul celebre Paradosso del Grand Hotel inventato dal matematico David Hilbert per mostrare alcune caratteristiche del concetto di infinito, e le differenze fra operazioni con insiemi finiti ed infiniti. http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 41 . . . Alcune riflessioni . . . q Hilbert immagina un hotel con infinite stanze, tutte occupate, ed afferma che qualsiasi sia il numero di altri ospiti che sopraggiungano, sarà sempre possibile ospitarli tutti, anche se il loro numero è infinito q Nel caso semplice, arriva un singolo nuovo ospite. Il furbo albergatore sposterà tutti i clienti nella camera successiva (l'ospite della 1 alla 2, quello della 2 alla 3, etc.); in questo modo, benché l'albergo fosse pieno è comunque possibile sistemare il nuovo ospite, essendo infinito il numero delle stanze ∞+1=∞ http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 42 . . . Alcune riflessioni . . . q Un caso meno intuitivo si ha quando arrivano infiniti nuovi ospiti. Sarebbe possibile procedere nel modo visto in precedenza, ma solo scomodando infinite volte gli ospiti (già spazientiti dal precedente spostamento): sostiene allora Hilbert che la soluzione sta semplicemente nello spostare ogni ospite nella stanza con numero doppio rispetto a quello attuale (dalla 1 alla 2, dalla 2 alla 4,etc.), lasciando ai nuovi ospiti tutte le camere con i numeri dispari, che sono essi stessi infiniti. Gli ospiti sono tutti dunque sistemati, benché l'albergo fosse pieno ∞+∞=∞ E SE ARRIVANO INFINITI GRUPPI DI INFINITI OSPITI ? http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 43 . . . Alcune riflessioni . . . Da un racconto di Umberto Eco: “Intervista a Pitagora” q I numeri, l’aritmetica, la matematica, la fisica, le scienze, l’anima, lo spirito e la vita q II numero, sostanza di tutte le cose http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 44 . . . Alcune riflessioni . . . q ECO : Buongiorno Maestro. q PITAGORA : Salute e armonia a te. q ECO : Pitagora ... Mi dà una certa emozione pronunciare questo nome, che fu sacro a molti, poiché Lei, Maestro, fu tenuto dai suoi discepoli in conto di divinità ... q PITAGORA : Non a torto. q ECO : Mi chiedo se per molti che ci ascoltano il suo nome non evochi soltanto memorie ingrate: la tavola pitagorica, il teorema di Pitagora ... http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 45 . . . Alcune riflessioni . . . q PITAGORA : Perché ingrate ? Si tratta di due piccole applicazioni; e mi turba quanto tu dici, che per molti la mia fama si sia identificata con questi artifici secondari. Ma anche in essi risplende l'armonia sublime del numero. Pensa alla tavola: una matrice elementare da cui puoi generare tutti gli sposalizi possibili tra numero e numero, dati una volta per tutte, senza tema di errore, perché la regola di questo quadrato magico è la stessa che regola l'armonia dell'universo, dal cerchio più ampio delle sfere celesti agli abissi dell'infinitamente piccolo. http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 46 . . . Alcune riflessioni q PITAGORA : II numero, sostanza di tutte le cose ! http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 47