Programma del Corso - Dipartimento di Informatica e Automazione

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