DIPARTIMENTO DI
INFORMATICA Università di Torino | |
Corso di: Programmazione 1Laurea in InformaticaAnno accademico: 2003-2004Docente: Barbara DEMOINDICE
Lezione 1 - Giovedi' 2/10 . Obiettivi del corso: introdurre alla programmazione pensando
alle proprieta' di efficienza e correttezza dei programmi
Esempio del calcolo con una calcolatrice
della somma degli interi da 1 ad n con la formula di Gauss e con una iterazione per
sommare 1+2+.. +i +... +n. Stima del numero di operazioni. Lezione 2 - Lunedi' 6/10 : Codice macchina, ling. assembler, ling. di alto livello. Esempi.
Algoritmo e specifica in linguaggio formale.
Compilatore: analisi sintattica e traduzione. Un primo programma Java. Macchina virtuale java.
Errori sintattici ed errori in fase di esecuzione. Lezione 3 - Martedi' 7/10: Specifica in linguaggio Java degli algoritmi
di somma degli interi da 1 ad un n dato. Cenni ai tipi di dati: int e stringhe.
Introduzione dell'iterazione con l'istruzione for.
Specifica dell'invariante di ciclo Lezione 4 - Giovedi' 9/10: Riscrittura della specifica degli algoritmi per
la somma degli interi da 1 ad un n dato in un programma con due diversi metodi ed il main
che li invoca.
Ricalcolato il numero di operazioni per i due metodi.
Lezione 5 - Lunedi' 13/10: Metodi: specifica ed invocazione. Parametri formali ed attuali.
Trovare il massimo di due numeri: introduzione dell'istruzione di condizione(if).
Introduzione della classe Console e Console.readInt
per la lettura di interi. Lezione 6 - Martedi'14/10: Tipi di dati fondamentali: int, double; boolean.
Assegnazioni, conversioni, cast. Lezione 7 - Giovedi'16/10: Trovare il massimo in una sequenza di interi: iterazione
con l'istruzione while. Specifica di asserzione iniziale, invariante di ciclo,
asserzione finale Lezione 8 - Lunedi' 20/10: array e loro allocazione in heap con new.
Modello della memoria con pila e heap. Valori e riferimenti ad oggetti.
Visibilita' delle variabili: variabili locali al metodo.
Lezione 9 - Martedi'21/10: Metodo per la lettura di un array restituito a chi
lo invoca. Ricerca lineare di un intero in un array di interi non ordinato. Lezione 10 - Giovedi'23/10:
Schema generale di un metodo che opera su un array totalmente riempito.
Array parzialmente riempiti.
Inserimento di un elemento in un array ordinato conservando l'ordine con Invariante di ciclo.
Considerazioni sul numero di operazioni e su varianti dell'algoritmo.
Lezione 11 - Lunedi' 27/10: Ordinamento per inserimento.
Stima del numero di operazioni dell'algoritmo. Lezione 12 - Giovedi' 30/10:
Disegniamo l'invariante di ciclo per alcuni algoritmi su array considerati nelle precedenti lezioni:
inserimento in array ordinato non completamente riempito.
Esercizio: compattazione di un array non ordinato totalmente riempito da cui si vogliono togliere
le occorrenze di un elemento dato. Verifica che un array sia l'inverso di un secondo array
entrambi totalmente riempiti.
Lunedi' 3/11: ESONERO
Lezione 13 - Martedi' 4/11: La bandiera olandese. Lezione 14 - Giovedi' 6/11:Ricerca binaria di un elemento in un array ordinato
e totalmente riempito.
Lezione 15 - Lunedi' 10/11: Classi ed oggetti: introduzione;
variabili pubbliche, private, statiche Lezione 16 - Giovedi' 12/11:
Lezione 17 - Lunedi' 17/11: Su come i metodi possono ritornare all'ambiente chiamante dei risultati.
Esempio: classi Coppia (di interi) e ProvoCoppia dove un metodo che trova il min ed il massimo in un array
torna questi valori 1.in un oggetto Coppia poi 2. in un vettore di due interi: discussione.
Codice Lezione 18 - Martedi' 18/11: Osservazioni sulle operazioni insiemistiche su insiemi rappresentati in array
totalmente riempiti, ordinati e senza ripetizioni: i metodi restituiscono array totalmente riempiti
ordinati e senza ripetizioni Lezione 19 - Giovedi' 20/11:
Ordinamento di un array con l'algoritmo di selezione (del minimo). Discussione e codice
Lunedi' 17/11: inaugurazione aa.
Lezione 20 - Martedi' 25/11: Stringhe Lezione 21 - Giovedi' 26/11:Esercizio. Senza usare la classe Math scrivere due metodi
espLento ed espVeloce che calcolano l'elevazione a potenza di x alla n
Lezione 22 - Lunedi' 1/12: Dimensione del problema risolto da cui dipende il numero di
ripetizioni di una iterazione in un algoritmo: ricerca in array e ordinamento di array, Gauss costante
e proporzionale ad n, esponenziale veloce.
Lezione 23 - Martedi' 2/12: Esercizi sul modello della memoria con pila
e heap dagli
esami degli anni precedenti. Lezione 24 - Giovedi' 4/12: Esercizi dagli esami degli anni precedenti. e Modalita' di esame. Materiale varioElenco del materiale di laboratorio o relativo agli esami scritti che sto aggiornando: per fine anno spero contenga soltanto materiale NON gia' allegato al Calendario delle lezioni.
Curiosare nel materiale relativo al corso
Programmazione 1 B e a tutti i laboratori. |
[Corso di Studi di Informatica] |
Last update: Nov 12, 2003 | |