Corso di Fondamenti di Programmazione
(Statistica per le Tecnologie dell'Informazione)
Docente: Paolo Franciosa
anno accademico 2002-2003
Prerequisiti | Obiettivi | Programma |
Materiale Didattico | Diario delle Lezioni | Ricevimento Studenti |
Prove d'esame | Modalità d'esame |
OObiettivi e contenuti del corso
Vengono illustrati i principi fondamentali della programmazione strutturata, con particolare riferimento alla programmazione orientata agli oggetti.Vengono inoltre presentati alcuni algoritmi fondamentali per problemi di ordinamento, ricerca e selezione, evidenziandone le caratteristiche di efficienza.
Alla fine del corso lo studente sarà in grado di
Da definire
Testi consigliati
|
|
Strumenti di programmazione
|
|
Altri link rilevanti
|
L'esame consiste in una prova scritta, di norma svolta nell'aula informatica, ed un colloquio.
Nella prova scritta si richiede di scrivere o completare un sorgente Java. Lo studente potra' utilizzare un semplice strumento di sviluppo (p.es. JCreator LE), il compilatore Java e la macchina virtuale Java disponibili in laboratorio. Potrà inoltre consultare la documentazione sulle API standard Java.
Non è permessa la consultazione di materiale cartaceo, ne' di quanto non previsto nel paragrafo precedente.
Il materiale prodotto durante la prova (sorgenti Java, bytecode, eventuale documentazione generata con Javadoc) dovrà essere salvato in una opportuna cartella.
Per facilitare l'organizzazione della prova si raccomanda agli studenti di prenotarsi solo se si è realmente intenzionati a sostenere l'esame.
Gli studenti non prenotati o che si presenteranno in ritardo o non muniti di un documento di riconoscimento non saranno ammessi a sostenere la prova scritta. E' possibile prenotarsi anche inviando una e-mail al docente
15 aprile 2003 | vacanze pasquali | |
vacanze pasquali | 24 aprile 2003 (lab) | festività |
29 aprile 2003 | festività | 2 maggio 2003 |
6 maggio 2003 | 8 maggio 2003 (lab) | 9 maggio 2003 |
13 maggio 2003 | 15 maggio 2003 (lab) | 16 maggio 2003 |
20 maggio 2003 | 22 maggio 2003 (lab) | 23 maggio 2003 |
27 maggio 2003 | 29 maggio 2003 (lab) | 30 maggio 2003 |
15-4-03 (lezione) | |
---|---|
Argomenti |
Introduzione al corso Origini del linguaggio Java Richiami sulla compilazione/interpretazione di un programma in linguaggio evoluto Il ciclo di compilazione Java La Java Virtual Machine Esempi di programmi Java I metodi System.out.print e System.out.println Cenni all'uso di variabili, assegnazioni, strutture di controllo if e while
|
Riferimenti al testo | Capitolo 1: tutto. |
Esercizi proposti |
|
24-4-03 (laboratorio) | |
---|---|
Argomenti |
Strumenti per sviluppo, compilazione, esecuzione di programmi in Java Compilazione di sorgenti Java da linea di comando (comando "javac") Esecuzione di codice intermedio (.class) da linea di comando (comando "java") Uso di un semplice ambiente di programmazione a finestre: JCreator LE Cenni alla consultazione della documentazione sulle API Java |
Riferimenti al testo | |
Esercizi proposti |
|
29-4-03 (lezione) | |
---|---|
Argomenti |
Tipi primitivi: aritmetici, carattere, boolean Dichiarazione di variabili, variabili final Operatori aritmetici, relazionali, logici Costruzione di espressioni complesse Precedenza tra operatori Conversioni implicite ed esplicite, operatore cast Istruzione di selezione if ... else ...
|
Riferimenti al testo | Capitolo 2: tutto. Capitolo 3: fino 3.3.1.2 (compreso). |
Esercizi proposti |
|
2-5-03 (lezione) | |
---|---|
Argomenti |
Istruzioni if annidateCicli: istruzione while , for Esempi di programmi con cicli e selezioni Input/output con metodi della classe JOptionPane Alcuni metodi della classe Math
|
Riferimenti al testo | Capitolo 3: fino a 3.6 (compreso) esclusi 3.3.2, 3.4.3. Del 3.7 è stata trattata inoltre l'istruzione break (3.7.1)
|
Esercizi proposti |
|
Soluzioni ad alcuni esercizi |
6-5-03 (lezione) | |
---|---|
Argomenti |
Istruzione for Esempi di semplici programmi con cicli Dichiarazione e allocazione di array Esempi di programmi su array |
Riferimenti al testo | Capitolo 3: da 3.5 alla fine. Capitolo 4: fino a 4.3 (compreso) |
Esercizi proposti |
|
Soluzioni ad alcuni esercizi |
8-5-03 (laboratorio) | |
---|---|
Argomenti |
Consultazione della documentazione sulle API Java Uso di metodi static Alcuni metodi static delle classi JOptionPane: showInputDialog e showMessageDialog Alcuni metodi della classe Math Alcuni metodi della classe Arrays: fill e sort Cenni al sovraccarico di metodi |
Riferimenti al testo |
9-5-03 (lezione) | |
---|---|
Argomenti |
Generazione di punti con coordinate casuali per la stima di π (Pi greco) Inizializzazione di array Ordinamento per selezione Complessità computazionale dell'algoritmo di ordinamento per selezione |
Riferimenti al testo | Capitolo 4: fino 4.3 (compreso), 4.5 (escluso 4.5.5) |
Esercizi proposti |
|
Programmi presentati |
13-5-03 (lezione) | |
---|---|
Argomenti |
Istruzione do ... while Differenze tra le varie istruzioni di ciclo Ricerca binaria, sua complessità, ricerca binaria con interpolazione (cenni) Array multidimensionali Esempi di programmi su array |
Riferimenti al testo | Capitolo 3: 3.4.3; Capitolo 4: 4.4, 4.5.5 |
Esercizi proposti |
|
Programmi presentati |
15-5-03 (laboratorio) | |
---|---|
Argomenti | Esercitazioni in Java |
16-5-03 (lezione) | |
---|---|
Argomenti |
Definizione di metodi static Signature di un metodo: tipo restituito, nome, parametri formali Abbinamento tra parametri attuali e formali, conversioni implicite, passaggio per valore Variabili locali: ambito di visibilità Parametri di tipo array, passaggio per riferimento Uso del costrutto .length in metodi con parametri array multidimensionaliIstruzione switch (cenni)
|
Riferimenti al testo | Capitolo 3: 3.3.2; Capitolo 5: tutto (escluso 5.9) |
Esercizi proposti | Riprendere esercizi svolti, realizzando le singole funzioni attraverso la definizione di metodi e la relativa invocazione |
Programmi presentati |
20-5-03 (lezione) | |
---|---|
Argomenti |
La ricorsione Generalità sul paradigma divide et impera Definizione ricorsiva del fattoriale di un naturale Realizzazione del fattoriale ricorsivo in Java L'ordinamento per fusione (merge sort) Codifica del merge sort |
Riferimenti al testo | Capitolo 6: tutto (escluso 6.6) |
Esercizi proposti |
|
Programmi presentati |
22-5-03 (laboratorio) | |
---|---|
Argomenti |
Definizione di metodi public static Uso di metodi public definiti in altre classi dall'utenteRealizzaione di semplici metodi pubblici di Input/Output Documentazione di classi e metodi: javadoc Commenti javadoc relativi a classi e metodi: i tag @param e @return Metodi che restituiscono array |
Riferimenti al testo | |
Esercizi proposti |
|
Programmi presentati |
|
23-5-03 (lezione) | |
---|---|
Argomenti |
Classi ed oggetti Definizione e istanziazione di oggetti Principio dell'incapsulamento, risorse public e private Utilizzo di alcuni metodi della classe StringBuffer
|
Riferimenti al testo | Capitolo 8: fino a 8.4 (compreso), con enfasi sull'uso di classi predefinite piuttosto che sulla definizione di nuove classi |
Esercizi proposti |
|
Programmi presentati |
27-5-03 (lezione) | |
---|---|
Argomenti |
Invocazione di metodi: metodi static vs. metodi membro, metodi interni alla classe Visibilità di metodi: public e private Passaggio di parametri oggetto (riferimento), il parametro implicito this Ereditarietà: il metodo clone() , il metodo toString() Cenni al concetto di polimorfismo Esempi di uso della classe Rectangle
|
Riferimenti al testo | |
Esercizi proposti |
|
Programmi presentati |
29-5-03 (laboratorio) | |
---|---|
Argomenti |
Simulazione di prova scritta
(vedi modalità d'esame)
|
30-5-03 (lezione) | |
---|---|
Argomenti |
Definizione di una classe: variabili membro e metodi membro Definizione ed implementazione di una classe Pila
|
Riferimenti al testo | Capitolo 8: fino 8.4 (compreso) |
Esercizi proposti |
|
Programmi presentati |
|