Programmazione

A.A. 2015/2016
Insegnamento per
12
Crediti massimi
120
Ore totali
Lingua
Italiano
Obiettivi formativi
Il corso di Programmazione è un corso di 12 crediti finalizzato all'insegnamento della programmazione. Trattandosi di un corso di base, non richiede alcuna conoscenza specifica pregressa; obiettivo del corso è formare gli studenti alla programmazione in senso tradizionale, mediante l'uso del linguaggio Java.

Struttura insegnamento e programma

Edizione attiva
Responsabile
Laboratori: 48 ore
Lezioni: 72 ore
STUDENTI FREQUENTANTI
Programma
Il programma di massima del corso è il seguente (fra parentesi quadre sono indicati i riferimenti alle corrispondenti sezioni del Savitch):

Introduzione al corso; Architettura del calcolatore; Che cos'è l'informatica; Linguaggi di programmazione (macchina, assembly, alto livello); Il calcolatore come macchina programmabile
La macchina di von Neumann; Informazione (bit, byte,...); Caricamento in RAM del programma, fetch-decode-execute; Architettura della CPU: ALU e CU; Un esempio di CPU con relativo linguaggio assembly
Elementi di algebra booleana; Principali operatori logici; Tabelle di verita`, equivalenza logica [Dispense]
Rappresentazione dell'informazione; Notazione posizionale; Rappresentazione degli interi negativi; Range di rappresentazione, overflow; Cenni alla rappresentazione dei reali: virgola fissa e mobile (standard IEEE 754); I caratteri (ASCII e Unicode) [Dispense]
Ciclo di vita del software; Strumenti per la programmazione; La JVM
Linguaggio: aspetti lessicali, sintattici, pragmatici; indentazione; commenti [2.4]
Variabili; tipi primitivi ed espressioni [2.1]
Variabili di tipo riferimento; invocazioni di metodi; segnature; la classe BigInteger
La classe String [2.2]; I/O elementare in Java [2.3]
Selezione binaria (if) [3.1]
Tipo boolean [3.2]
Selezione multiaria (switch) [3.3]
Esercizi sulla programmazione di base (senza cicli)
Cicli (while, do, for) [4.1]
Uso dei cicli; break e continue [4.2]
Esercizi sull'uso dei cicli
Definizione e invocazione di metodi statici [5.1]
La classe Math [5.2]; classi involucro [9.2.5]
Invocazione di metodi: stack e record di attivazione [5.3]
Scrittura di metodi [5.4]
Array [6.1]; ArrayList e generici [12.1]
Array e metodi [6.2]
Esercizi su array e metodi statici
Prova in itinere
Ordinamento [6.3]
Array multidimensionali [6.4]
Ricorsione [7.1]
Esercizi sulla ricorsione
Definizione di classi [8.1]
Information hiding e incapsulamento [8.2]
Oggetti e riferimenti [8.3]; costruttori [9.1]
Esercizi sulla scrittura di classi
Variabili e metodi statici [9.2]; Overloading [9.3]
Array e classi [9.6]
Cenni all'ereditarieta` e al polimorfismo
Package [9.8]
Eccezioni [13.1]
Informazioni sul programma
Il corso di Programmazione è un corso di 12 crediti finalizzato all'insegnamento della programmazione. Trattandosi di un corso di base, non richiede alcuna conoscenza specifica pregressa; obiettivo del corso è formare gli studenti alla programmazione in senso tradizionale, mediante l'uso di un linguaggio a oggetti; il linguaggio insegnato nel corso sarà Java.

Il corso si compone di due moduli, svolti in parallelo: questa pagina descrive solo il modulo di Programmazione (teoria), mentre il Laboratorio di programmazione è tenuto da tre diversi docenti in parallelo, e ciascuno ha una sua propria pagina web, cui vi preghiamo di fare riferimento per informazioni.
Metodi didattici
Lezioni frontali + laboratori didattici
Materiale didattico e bibliografia
I testo consigliati per il corso sono:

W. Savitch: Programmazione di base e avanzata con Java, Addison-Wesley, Pearson Education Italia.
G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione Java, Addison-Wesley, Pearson Education Italia.
Per la prima parte si farà riferimento a

[FAP] "Dispense per la prima parte del corso di Fondamenti di Architetture e Programmazione" di Paolo Boldi.
STUDENTI NON FREQUENTANTI
Programma
Ibidem
Materiale didattico e bibliografia
Ibidem
Periodo
Primo semestre
Periodo
Primo semestre
Modalità di valutazione
Esame
Giudizio di valutazione
voto verbalizzato in trentesimi
Docente/i
Ricevimento:
Su appuntamento
Stanza 5019, Piano 5, via Celoria 18
Ricevimento:
Su appuntamento.
Studio 5007 - via Celoria, 18