programma - Dipartimento di Informatica e Automazione

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
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
Cosa è l’Informatica
Obiettivi del corso
Programma del corso
Materiale didattico
Organizzazione didattica
Modalità e date di esame
http://www.dia.uniroma3.it/~java/fondinf/
Presentazione Corso
4
Cosa non è l’Informatica
L’Informatica non è soltanto la scienza e la
tecnologia dei calcolatori
(Computer Science – in inglese)
 i calcolatori sono solo degli strumenti
L’Informatica non coincide con nessuna
delle applicazioni dei calcolatori
http://www.dia.uniroma3.it/~java/fondinf/
Presentazione Corso
5
Cosa è l’Informatica . . .
L’Informatica è la scienza della
rappresentazione, dell’organizzazione e del
trattamento (automatico) della informazione
“L’Informatica si può fare anche
senza un calcolatore”
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 . . .
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)
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
Nell’Informatica quindi si possono individuare
due piani - paralleli
 il piano astratto, concettuale, metodologico, logicomatematico
 legato all’informazione, ai problemi e agli algoritmi
 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
Il calcolatore è lo strumento principale per
l’elaborazione automatica dell’informazione
 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
 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
 Nell’Informatica quindi, come in altre discipline,
bisogna quindi sapere e saper fare
 Il sapere vuol dire conoscere, ragionare, cioè fare
analisi e sintesi (Cartesio !)
 Una componente fondamentale nella soluzione dei
problemi è la capacità di sapere in cosa consiste un
problema e la sua soluzione
 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

La storia dell’Informatica inizia con l’avvento dei
calcolatori elettronici digitali (fine della II guerra
mondiale)
 Ma c’è anche una preistoria . . .
 Evoluzione dei concetti, metodi e modelli teorici
(matematica e logica)
 Evoluzione degli strumenti
 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
Nella Laurea Triennale in Ingegneria
Informatica è previsto al primo anno un corso
di base di Informatica
Fondamenti di Informatica (di 15 crediti)
Il corso costituisce un’introduzione alle
metodologie e alle tecnologie per il
trattamento automatico dell’informazione
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
 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 . . .
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
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 . . .
 Introduzione alla soluzione automatica di problemi
 concetti di problema, algoritmo, linguaggio e programma
 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
 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
 Un approccio disciplinato alla programmazione
 concetti di correttezza, testing e debugging
http://www.dia.uniroma3.it/~java/fondinf/
Presentazione Corso
17
. . . Programma del Corso
Ricorsione
Costo dei programmi
Algoritmi di ordinamento
Strutture collegate lineari
Tipi astratti di dato
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
L’attività didattica assistita del corso è
articolata in
 lezioni ed esercitazioni in aula
 attività pratica di laboratorio
 esercizi di autovalutazione
 assistenza individuale
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 . . .
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
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)
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
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/
Il Mercoledì non c’è lezione a meno di recuperi
oppure di attività di laboratorio per gruppi
Il calendario settimanale delle lezioni viene
pubblicato sul sito del corso con congruo
anticipo
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
http://www.dia.uniroma3.it/~java/fondinf/
Problemi, Algoritmi,
Programmi
Problemi, Algoritmi,
Programmi
Programmi e Oggetti software
Rappresentazione
dell'informazione
Presentazione Corso
23
Attività di laboratorio
 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
 L’accesso al laboratorio è libero o su prenotazione ed è
consentito negli orari di apertura affissi presso il
laboratorio
 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
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
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 . . .
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 . . .
Quindi è necessario dedicare a questo corso,
oltre alle ore di lezione, mediamente 200-250
ore di studio individuale, da distribuirsi
uniformemente nel tempo
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
 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
 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
 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
 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
 Ciascuna delle parti incide per 10/30 sulla
votazione finale
 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
 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
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
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
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
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
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
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
Gli studenti attivi nel corso sono stati circa
280
Gli ammessi alla Prova Intermedia circa 160
(il 57% circa del totale)
Gli studenti promossi alla Prova Intermedia
sono stati 100 (il 58% circa degli ammessi e il
32% circa del totale)
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
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
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 . . .
 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
 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 . . .
 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”
I numeri, l’aritmetica, la matematica, la
fisica, le scienze, l’anima, lo spirito e la
vita
II numero, sostanza di tutte le cose
http://www.dia.uniroma3.it/~java/fondinf/
Presentazione Corso
44
. . . Alcune riflessioni . . .
 ECO : Buongiorno Maestro.
 PITAGORA : Salute e armonia a te.
 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à ...
 PITAGORA : Non a torto.
 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 . . .
 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
PITAGORA :
II numero, sostanza di tutte le cose !
http://www.dia.uniroma3.it/~java/fondinf/
Presentazione Corso
47