Introduction to Programming [Sezione B] - Teoria (2004/2005)

Course Not running, not visible

Course code
4S00016
Name of lecturer
Ugo Solitro
Number of ECTS credits allocated
8
Other available courses
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Period
First four month term - 1st year, Second four-month term
Web page
http://amarena.sci.univr.it/edu/pub/bscw.cgi/0/1819585

To show the organization of the course that includes this module, follow this link * Course organization

Lesson timetable

First four month term - 1st year
Day Time Type Place Note
Tuesday 1:30 PM - 3:30 PM lesson Lecture Hall Gino Tessari  
Thursday 11:30 AM - 1:30 PM lesson Lecture Hall Gino Tessari  
Friday 9:30 AM - 11:30 AM lesson Lecture Hall Gino Tessari  
Second four-month term
Day Time Type Place Note
Monday 9:30 AM - 11:30 AM lesson Lecture Hall Gino Tessari  
Tuesday 8:30 AM - 10:30 AM lesson Lecture Hall Gino Tessari  
Thursday 11:30 AM - 1:30 PM lesson Lecture Hall Gino Tessari  

Learning outcomes

Il corso tratta i principi e la pratica della programmazione imperativa e le nozioni fondamentali della programmazione a oggetti.
Scopo del corso è consentire allo studente di costruire e comprendere programmi di piccole e medie dimensioni, individuare errori e valutare la correttezza degli algoritmi rispetto alle loro specifiche.

Alla conclusione del corso lo studente deve inoltre poter affrontare l'apprendimento di altri linguaggi di programmazione imperativi e di approfondire la conoscenza della programmazione a oggetti.

Syllabus

Prerequisiti.
I contenuti degli insegnamenti di Informatica di base e di Matematica di base

Programmazione Imperativa.
Introduzione. Cenni storici. Le origini. Problemi. Descrizione rigorosa dei problemi. Le specifiche. Macchine astratte. Definizione matematica di una macchina semplificata. Algoritmi. Descrizione rigorosa delle soluzioni. Nozione di algoritmo come ``programma'' eseguibile da un particolare esecutore. Tesi di Church.

Il linguaggio di programmazione. Macchina astratta, interprete e compilatore. Variabili, espressioni e tipi. Identificatori, variabili, espressioni. Tipi di dati base: interi, reali, booleani, caratteri. Definizione di ambiente e di stato. Dichiarazione di variabili e loro valutazione. Comandi. Nozione di comando. Assegnamento: sintassi e valutazione. Comandi strutturati: sequenza, blocco, condizionale e iterazione. Valutazione dei comandi. Tipi di dati strutturati. Strutture dati a dimensione prefissata (vettori, array, record) e non (sequenze, file, ...): caratteristiche generali, tecniche di accesso, criteri per l'uso. Puntatori. Nozione di puntatore; aritmetica dei puntatori. Sottoprogrammi. Nozione di sottoprogramma; procedure e funzioni. Parametri formali e attuali; passaggio per valore e per riferimento. Stack di ambienti. Variabili locali; visibilità, tempo di vita.

Tipi di Dati Astratti. I tipi di dati come strutture algebriche e relazionali. I tipi di dati strutturati rivisitati. Esempi. Ricorsione Induzione matematica: numeri naturali e insiemi induttivamente generati. Definizioni per ricorsione strutturale. Soluzione ricorsiva di problemi. Programmazione ricorsiva: ruolo dello stack e valutazione di sotto-programmi ricorsivi. Tipi di Dati Astratti e Ricorsione. Tipi di dati ricorsivi: liste, pile, alberi, alberi binari. Algoritmi ricorsivi; eliminazione della ricorsione.
Programmazione a Oggetti.
Introduzione. Il punto di vista ``a oggetti'': un diverso stile di programmazione. Classi, oggetti, messaggi. Definizioni, entitàdi istanza e di classe. Ereditarietà e Polimorfismo. Sotto-classi e sovra-classi, relazioni fra le classi. Nozione di polimorfismo in generale e nel linguaggio JAVA. Classi astratte e Interfacce. Nozioni di classe astratta e di interfaccia: somiglianze, differenze, utilità.
Il corso viene svolto in 64 ore di lezioni ed esercitazioni in aula distribuite in due periodi.

Reference books
Author Title Publisher Year ISBN Note
Stefano Mizzaro Introduzione alla programmazione con il linguaggio Java (Edizione 2) Franco Angeli 2000 8846416961 Il testo di riferimento verrà integrato con note in formato elettronico messe a disposizione nell'area dedicata all'insegnamento.

Assessment methods and criteria

Prove scritte.
L'esame finale dell'insegnamento di Programmazione consiste in colloquio orale; per essere ammessi al colloquio è necessario superare le prove scritte e/o pratiche appositamente predisposte nelle date che verranno rese note nel calendario degli esami.
Prove di ammissione parziali si potranno svolgere al termine del I e del II periodo di lezione.
Le prove di ammissione possono esentare in tutto o in parte dalla prova orale.
Colloquio e Valutazione.

Nel giorno fissato per le prove orali lo studente prende visione delle prove effettuate e discute, quando necessario, gli elaborati.
Se il candidato ha conseguito in ogni parte più del 50% del punteggio (cioè almeno 15 punti su trenta) la valutazione delle prove scritte è ottenuta calcolando la media pesata dei punteggi ottenuti nella parte di teoria (peso 2/3) e in quella di laboratorio (peso 1/3).

La valutazione finale è fissata nel colloquio orale.
Avvertenza importante!

Le prove di teoria e di laboratorio sono parte del medesimo esame e debbono obbligatoriamente essere sostenute all'interno dello stesso Appello

Teaching aids

Documents

Studying