Programmazione (Informatica / Ed. 2)
Indice
- Avvisi
- Orari delle lezioni
- Test di autovalutazione
- Compitini
- Appelli
- Iscrizioni agli appelli
- Programma del corso
- Libri di testo consigliati
- Modalità d'esame
- Ricevimento studenti
- Link utili
Avvisi
- Risultati scritto e verbalizzazioni. La seguente tabella riporta i risultati dello scritto del 21/09.
A causa di problemi di salute, il dottor Trentini non può effettuare le discussioni dei progetti; le discussioni
e le verbalizzazioni verranno fissate in seguito, in una data comunicata sul wiki di laboratorio.
Andrea Bombelli 25 Nicola Chirco 27 Maria Grazia d'Aquino 18 Francesco Lombardo insuff. Marco Manfredini insuff. José Luis Medrano Rioja 24 Simone Oberti 24 (già verbalizzato) - Appello di settembre. Il testo del progetto per l'appello di settembre è pubblicato sul wiki di laboratorio.
Orari delle lezioni
Come gli studenti che frequentano con regolarità sanno perfettamente, l'orario delle lezioni è il seguente:
- Teoria:
- mercoledì 13:30-16:30, aula 208
- giovedì 14:30-17:30, aula 400
- Laboratorio:
- turno A (lettere H-P): martedì 8:30-12:30, aula 309
- turno B (lettere Q-Z): lunedì 8:30-12:30, aula 309
Le lezioni del venerdì (segnate in calendario) sono usate solo per i recuperi. Tutte le lezioni di recupero, o quelle eventualmente annullate, sono sempre state e saranno sempre comunicate con regolarità nella sezione "Avvisi" di questa pagina. Invito gli studenti a consultarla con attenzione, e in caso di dubbio a scrivere al docente che sarà lieto di rispondere e chiarire ogni perplessità.
Test di autovalutazione
- Test del 29/10/2008 su selezione e cicli.
Compitini
I compitino | Esercizi di preparazione | Testo e soluzioni | Esiti |
---|---|---|---|
II compitino | Esercizi di preparazione | Testo e soluzioni | Esiti |
Tabella riassuntiva |
Appelli
Iscrizioni agli appelli
Ricordiamo agli studenti che chiunque intenda sostenere l'esame (anche solo verbalizzare il voto) in un certo appello, deve iscriversi a quell'appello presso i terminali SIFA. Questa procedura va seguita anche dagli studenti che non devono sostenere la prova scritta, anche nel caso che non intendano nemmeno fare l'orale.
Programma di massima del corso di Programmazione (A.A. 2008/2009)
Nel seguente programma i numeri indicati fra parentesi quadre si riferiscono ai corrispondenti capitoli nel libro adottato per il corso (Dai fondamenti agli oggetti, III edizione).
A - ARCHITETTURE
- Introduzione al corso, scopo
- Orari
- Struttura del corso
- Lezioni frontali
- Esercitazioni
- Laboratorio
- Testi di riferimento
- Sito del turno
- Modalità d'esame
- Cos'è l'informatica [1.1]
- Il calcolatore come macchina programmabile [1.4]
- Hardware
- Software (principali categorie)
- Architettura del calcolatore: la macchina di von Neumann [1.5]
- CPU
- RAM
- BUS
- Periferiche (memorie di massa)
- Dagli algoritmi ai programmi [1.2]
- Linguaggi di programmazione (macchina, assembly, alto livello)
- Rappresentazione dell'informazione [Dispense]
- Informazione (bit, byte,-) [1.3]
- Funzionamento della macchina di von Neumann
- Caricamento in RAM del programma, fetch-decode-execute
- Architettura della CPU: ALU e CU
- Un esempio di CPU con relativo linguaggio assembly
- Struttura di un linguaggio assembly, tipi di istruzioni
- Esempi di semplici programmi assembly
B - PROGRAMMAZIONE
- Ciclo di vita del software
- Linguaggi ad alto livello [1.6]
- Strumenti per la programmazione [1.7]
- Traduttori, editor [1.7]
- La JVM [1.8]
- Perché Java
- Programmazione strutturata [1.9]
- Concetti di variabile, tipo, assegnamento [1.10]
- Selezione (decidere se n è pari o dispari) [1.11]
- Iterazione (somma primi n numeri; cosa succede se n=0?; calcolo somma di seq.; calcolo media; calcolo media pari/dispari; calcolo MCD) [1.11]
- Altri esempi (x*y mediante somme iterate, x/y mediante sottrazioni iterate) [1.11]
- Introduzione alla programmazione a oggetti [1.12]
- Aspetti sintattici [1.13]
- BNF e carte sintattiche [1.13]
- Cenni della grammatica di Java [1.14]
- Primi esempi di programmi in Java [1.15]
- Invocazioni di metodi [2.1.1]
- Invocazione di costruttori [2.1.1]
- Classi per I/O [2.1.1, 2.1.2]
- Esempi [2.1.2]
- Prototipi, segnature, overloading [2.2]
- Classe String: costruttori e oggetti [2.3]
- Tipi di variabili: primitivi, riferimenti [2.4]
- Esempi (la classe Frazione) [3.1]
- Uso della classe Frazione [3.1]
- Principi di buona programmazione: commenti, indentazione, cenno a javadoc ([7.8])
- if [3.2]
- Il tipo boolean e operatori logici [3.3, 3.4]
- Cicli: while, do, for [3.5, 3.6]
- Esempi (fra cui: palindrome) [3.5, 3.6]
- Istruzioni break e continue [3.7]
- Cicli infiniti
- Espressioni: tipo, valore [4.1]
- Effetti collaterali [4.1]
- Lazy evaluation [4.1]
- Tipi numerici interi e operatori [4.3, 4.2]
- Tipi numerici floating point e operatori [4.4, 4.2]
- Conversioni di tipo e cast [4.5]
- Operatore +; il metodo toString [4.5]
- Tipo char; relazione con i tipi interi [4.6]
- Regole di precedenza
- Costanti
- Istruzione switch [4.8]
- Metodi statici [4.9]
- Classi involucro [4.10]
- Boxing e unboxing [4.10]
- Tipi enumerativi (cenni) e loro uso negli switch [4.7]
- Array con esempi [5.1]
- Cicli foreach per array [5.2]
- Cenni ad array a più dimensioni [5.6]
- Parametri del main [5.3]
- Esempi
- Sequenza e uso delle classi generiche [5.7]
- Classe Rettangolo [6.1]
- Classe Quadrato [6.3]
- Relazioni fra Quadrato e Rettangolo [6.4]
- Ereditarietà
- Rappresentazione UML
- Overriding
- Uso dei riferimenti
- Polimorfismo
- instanceof
- Esempio FigureAreaMax
- Classe Cerchio
- Introduzione alle classi astratte [6.5]
- Riepilogo: gerarchia delle classi, gerarchia dei tipi [6.6]
- Classe Object [6.6]
- Uso dei tipi riferimento (promozioni, cast) [6.7]
- Dynamic binding [6.8]
- Un esempio [6.9]
- Cenni ai package
- Gestione di file [6.10]
- Esempi [6.11]
- Interfacce [6.12]
- Interfacce e tipi [6.12]
- Implementazione di classi: la classe Frazione [7.1, 7.2]
- La classe Orario [7.4]
- Metodi e campi statici [7.5]
- Modificatore final (per gli attributi)
- Riepilogo sui membri delle classi [7.6]
- Garbage collection [7.6]
- Implementazione di un'interfaccia [7.7]
- Ereditarietà (la classe Quadrato) [8.1]
- Costruttori e ereditarietà [8.2]
- Estensioni di classi astratte
- Adombramento di variabili: uso di this
- Uso di super [8.3]
- Overloading di metodi e costruttori [8.4, 8.5]
- Modificatori di accesso [7.10, 8.13]
- Modificatore final per i metodi e le classi
- Il metodo equals [8.7]
- Esempi di classi e ereditarietà [8.9, 8.10, 8.11]
- Invocazione di costruttori e metodi [8.2]
- Passaggio di parametri [10.1]
- Per valore
- Cenni ad altri metodi
- Passaggio per riferimento
- Varargs
- Organizzazione della memoria [10.2]
- Stack e record di attivazione [10.2]
- Metodi ricorsivi [10.3]
- Notazione postfissa
- Introduzione alle eccezioni [11.1]
- Eccezioni [11.2]
- Notazione postfissa con eccezioni [11.4]
- Sollevare eccezioni [11.6]
- Eccezioni controllate e non controllate [11.8]
Libri consigliati
Il testo consigliato per il corso è:
G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA, Addison-Wesley, Pearson Education Italia, II edizione.
Per Java 1.5 (Tiger), consiglio:
D. Flanagan, B. McLaughlin: Java 5.0 Tiger: A Developer's Notebook, O'Reilly.
Inoltre, ecco alcuni tutorial consigliati (sito della Sun):
- homepage dei tutorial
- generici
- collezioni
- Swing per lo sviluppo di interfacce grafiche.
Per la parte sulla turtle graphics, consultate questa pagina.
Modalità d'esame
Questo documento descrive le modalità d'esame per il corso di Programmazione, A.A. 2008/2009, presso il corso di laurea in Informatica.Compitini
Durante l'anno verranno organizzati due compitini, costituiti da quiz a risposta chiusa o guidata. I compitini si svolgeranno intorno a metà novembre e metà gennaio, rispettivamente, in date che verranno rese pubbliche nelle modalità consuete.
Gli studenti che abbiano sostenuto tutti e due i compitini e li abbiano superati con voti non inferiori a 18 sono esentati dal sostenere la prova scritta dell'appello di gennaio/febbraio 2009. Nel caso che non sostengano l'esame in uno di questi due appelli, o che non lo superino, i compitini cesseranno di avere validità negli appelli successivi.
Progetti, prova scritta e calcolo del voto di base
- Progetto di laboratorio. Per ogni anno accademico vengono proposti tre testi per il progetto di laboratorio. Il primo testo sarà proposto a gennaio e sarà valido per gli appelli di gennaio e febbraio. Il secondo testo sarà proposto a giugno e sarà valido per giugno e luglio. Il terzo testo sarà proposto a settembre e sarà valido per settembre. Indicativamente il tempo previsto per lo svolgimento dei progetti è di tre settimane. Il progetto di laboratorio va svolto a gruppi di non più di tre persone ed è necessario per poter sostenere l'esame negli appelli indicati.
- Una settimana circa prima dell'orale si svolge una prova scritta. Sono tenuti a partecipare alla prova tutti gli studenti iscritti all'appello che non ne siano esentati (cioè, che non abbiano sostenuto i compitini con media sufficiente, per i soli appelli di gennaio/febbraio 2009).
- Il giorno prima dell'orale vengono rese pubbliche le valutazioni dei progetti e degli scritti.
Per ogni studente viene calcolato un voto di base, secondo la seguente formula arrotondata all'intero più vicino:
Prova orale
Sono ammessi alla prova orale solo gli studenti che abbiano ottenuto una valutazione maggiore o uguale a 18 per il progetto e per lo scritto (o i compitini). Gli studenti ammessi devono sostenere due prove orali:
- Discussione del progetto: in questa prova viene discusso brevemente il progetto realizzato dagli studenti. L'obiettivo della discussione è verificare che lo studente abbia partecipato attivamente alla realizzazione del progetto; in caso contrario, lo studente verrà rimandato ad un appello successivo. I docenti di laboratorio, a seguito della discussione, possono modificare il voto attribuito allo studente per la parte di progetto (e quindi modificare il voto di base di conseguenza), e possono, in determinate circostanze, chiedere che lo studente sostenga obbligatoriamente la prova orale, che è altrimenti solo facoltativa.
- Orale o verbalizzazione: gli studenti che abbiano superato la discussione del progetto possono chiedere che venga verbalizzato il loro voto di base senza sostenere l'orale, oppure possono decidere di sostenere la prova orale: in questo caso, però, il voto finale potrebbe essere minore o maggiore del voto di base, ed è anche perfettamente possibile che lo studente venga rimandato. La prova orale è obbligatoria per gli studenti con voto superiore a 27.
Salto di appello
Se uno studente non supera l'esame all'appello di giugno, non potrà sostenere l'appello di luglio. Lo stesso vale per gli appelli di gennaio/febbraio.
Modifica alle modalità d'esame
Queste modalità d'esame possono essere soggette a revisioni nel corso dell'anno. Ogni modifica verrà comunicata per tempo agli studenti, e comunque prima del primo appello disponibile.
Modalità di iscrizione agli appelli
- dovete consegnare il progetto entro la data indicata nel testo e con le modalità previste; eventuali domande sul progetto vanno rivolte ai docenti di laboratorio;
- il voto assegnato al progetto è da considerarsi provvisorio fino all'avvenuta discussione; per la discussione non è necessaria alcuna iscrizione, basta presentarsi il giorno fissato per le discussioni; la discussione può avvenire nella sessione per cui si è consegnato il progetto, o in una delle sessioni successive coperte dal progetto, ed in ogni caso prima dell'orale e/o della verbalizzazione;
- l'iscrizione al SIFA va fatta relativamente all'appello in cui si intende verbalizzare, ed è obbligatoria; anche se il terminale SIFA indica che l'appello è uno scritto, l'iscrizione va fatta sia che voi dobbiate sostenere lo scritto, sia che non lo dobbiate sostenere perché avete l'esonero;
- se dovete sostenere lo scritto, dovrete presentarvi alla data dello scritto; in caso contrario, potete presentarvi alla data indicata per gli orali;
- alla data degli orali si devono presentare tutti gli studenti iscritti che abbiano una valutazione sufficiente del progetto e che abbiano sostenuto con successo lo scritto (oppure che ne siano esonerati, avendo sostenuto i compitini); in quella sede, potranno scegliere se fare l'orale o se verbalizzare il voto.
Ricevimento studenti
Il docente riceve il giovedì, dalle ore 13.30 alle ore 14.30, nel suo studio di Via Comelico, 39/41 (II piano), su appuntamento. Un appuntamento può essere fissato a lezione, oppure inviando una mail al docente e attendendo una risposta di conferma.