Corso di Laurea Ingegneria Informatica Presentazione del corso di Fondamenti di Informatica C. Limongelli – A. Miola 4 Ottobre 2010 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 qSiti 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 http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 3 Contenuti qCosa è l’Informatica qObiettivi del corso qProgramma del corso qMateriale didattico qOrganizzazione didattica qModalità e date di esame http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 4 Cosa non è l’Informatica qL’Informatica non è soltanto la scienza e la tecnologia dei calcolatori (Computer Science – in inglese) § i calcolatori sono solo degli strumenti qL’Informatica non coincide con nessuna delle applicazioni dei calcolatori http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 5 Cosa è l’Informatica . . . qL’Informatica è la scienza della rappresentazione, dell’organizzazione e del trattamento (automatico) della informazione “L’Informatica si può fare anche senza un calcolatore” qL’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 . . . qL’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) qLa 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 qNell’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 qIl 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 qNella Laurea Triennale in Ingegneria Informatica, a partire dall’ a.a. 2008/09, è previsto un corso di base di Informatica Fondamenti di Informatica (di 15 crediti) qIl corso costituisce un’introduzione alle metodologie e alle tecnologie per il trattamento automatico dell’informazione qIn 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 . . . qIntroduzione 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 qIntroduzione 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 qRicorsione qCosto dei programmi qAlgoritmi di ordinamento qStrutture collegate lineari qTipi astratti di dato qRealizzazione 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 Attività didattica . . . qLe lezioni del corso si terranno : § Nel I semestre dal 4/10/2010 al 28/01/2011 § Nel II semestre dal 1/03/2011 al 10/06/2011 qNel corso dell’anno sono previste le seguenti interruzioni didattiche : § Dal 23/12/2010 al 9/1/2011 (Vacanze di Natale) § Dal 31/01/2011 al 28/02/2011 § Dal 21/04/2011 al 27/04/11 (Vacanze di Pasqua) qGli esami si svolgono tra il 13/06/2011 e il 29/07/2011 e nel mese di Settembre http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 20 . . . Attività didattica qLe 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/ qIl Mercoledì non c’è lezione a meno di recuperi oppure di attività di laboratorio per gruppi qIl calendario settimanale delle lezioni viene pubblicato sul sito del corso con congruo anticipo qIl calendario delle lezioni del II semestre sarà fissato successivamente http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 21 Calendario delle lezioni Data Giorno Dove Argomento ___________________________________________________________ 04/10/2010 05/10/2010 07/10/2010 07/10/2010 Lun Mar Gio Ven in aula in aula in aula in aula Presentazione del corso Architettura del calcolatore Sistema Operativo Problemi, Algoritmi, Programmi 11/10/2010 Lun in aula 12/10/2010 14/10/2010 Mar Gio in aula in aula 15/10/2010 Ven in aula Problemi, Algoritmi, Programmi Programmi e Oggetti software Rappresentazione dell'informazione Rappresentazione dell'informazione http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 22 Organizzazione della didattica qL’attività didattica assistita del corso è articolata in § lezioni ed esercitazioni in aula § attività pratica di laboratorio § esercizi di autovalutazione § assistenza individuale qPer ottenere il miglior profitto è indispensabile avvalersi di tutte e tre le componenti dell’attività didattica http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 23 Assistenza individuale I docenti del corso ricevono gli studenti nel loro studio presso il Dipartimento Informatica e Automazione II piano : Prof. Fabio Gasparetti - stanza 202b Martedì ore 14:00 – 16:00 [email protected] Prof. A. Miola - stanza 207 Giovedì ore 14:00 – 16:00 [email protected] Prof.ssa C. Limongelli - stanza 201 per appuntamento [email protected] http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 24 Informazioni qLe 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 25 Attività di laboratorio q Durante il corso, per tutte le attività pratiche al computer, lo studente potrà accedere ad uno dei seguenti laboratori: § Laboratorio Aula Informatica - CampusOne Via Vasca Navale 81 - piano terra – nei pressi Aula N11 § Laboratorio Informatico - ADiSU - Sala “Luigi Arata” Via Vasca Navale 79 - piano terra – edificio ADiSU q L’accesso ai laboratori è libero o su prenotazione ed è consentito negli orari di apertura affissi presso i laboratori q L’utilizzazione delle apparecchiature dei laboratori è consentita nel rispetto del regolamento fissato e disponibile sul sito del corso http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 26 Organizzazione dello studio individuale qSulla 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 27 E ancora . . . qIn 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 28 . . . e ancora . . . qQuindi è necessario dedicare a questo corso, oltre alle ore di lezione, mediamente 200-250 ore di studio individuale, da distribuirsi uniformemente nel tempo qSi 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 29 . . . 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 30 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 31 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 32 Date di esame qLe date degli esami di Luglio e Settembre 2011 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 33 Prova Intermedia qAlla fine del I semestre – nel mese di Fabbraio 2011 (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 I semestre qIl superamento della prova intermedia offre allo studente la possibilità di sostenere un esame finale ridotto ai soli contenuti del programma svolto nel II semestre http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 34 Ammissione alla Prova Intermedia qL’ammissione alla Prova Intermedia sarà riservata esclusivamente ai soli studenti che durante il I semestre avranno dimostrato di aver studiato con continuità e profitto, svolgendo positivamente tutte le autovalutazioni proposte durante il corso e partecipando alle sedute di laboratorio qI docenti del corso decideranno quali studenti ammettere sulla base della interazione individuale avuta durante il I semestre e comunicheranno l’elenco degli ammessi entro la fine del I semestre http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 35 Alcune statistiche dell’a.a. 2008-2009 qGli studenti attivi nel corso sono stati circa 200 qGli ammessi alla Prova Intermedia circa 130 qGli studenti promossi alla Prova Intermedia sono stati circa 50 (il 25% circa del totale) qGli studenti promossi all’esame – nei due appelli di Luglio e Settembre 2009 – sono stati circa 80 (il 40% circa del totale) http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 36 Una prima attività qCome è stato detto l’informatica ha una forte base metodologica e in particolare ha come riferimento la matematica discreta e la logica qPer poter affrontare questo corso con una valida prospettiva di successo gli studenti devono essere padroni di tecniche di ragionamento anche solo elementari qAccedendo al sito dell’ambiente di supporto didattico Moodle si trovano vari quesiti tra cui quelli di logica con relative soluzioni – esercitarsi con questi quesiti è un valido banco di prova http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 37 Riferimenti qQuesta 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 qQuesta 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 38 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 39 . . . 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 40 . . . 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 41 . . . Alcune riflessioni . . . Da un racconto di Umberto Eco: “Intervista a Pitagora” qI numeri, l’aritmetica, la matematica, la fisica, le scienze, l’anima, lo spirito e la vita qII numero, sostanza di tutte le cose http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 42 . . . 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 43 . . . 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 44 . . . Alcune riflessioni qPITAGORA : II numero, sostanza di tutte le cose ! http://www.dia.uniroma3.it/~java/fondinf/ Presentazione Corso 45