Anno di corso: 1

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 8
Tipo: A scelta dello studente
Crediti: 16
Tipo: A scelta dello studente
Crediti: 4
Tipo: Lingua/Prova Finale
Crediti: 13
Tipo: Altro

PROGRAMMAZIONE 1

Scheda dell'insegnamento

Anno accademico di regolamento: 
2018/2019
Anno di corso: 
1
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
8
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
76
Prerequisiti: 

Le conoscenze di tipo matematico e logico acquisite nella scuola superiore

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

La verifica dell'apprendimento comprende una prova scritta e un eventuale colloquio orale.

Nella prova scritta si richiede di:

rispondere ad alcune domande a risposta multipla, che hanno lo scopo di verificare la preparazione dello studente sulle varie parti del programma;
svolgere al computer alcuni esercizi di programmazione in linguaggio Java, con lo scopo di verificare se lo studente è in grado di applicare le tecniche di programmazione viste durante le lezioni e le esercitazioni, e di implementare tali tecniche nel linguaggio di programmazione Java.
La prova scritta può essere sostituita da due prove parziali erogate in itinere.

Al colloquio orale, oltre alla discussione dello scritto, possono essere fatte domande sugli argomenti del corso.

Valutazione: 
Voto Finale

Obiettivi formativi

Acquisire le basi della programmazione imperativa in Java

Contenuti

L’insegnamento presenterà i concetti alla base dei linguaggi di programmazione ad alto livello focalizzandosi sul paradigma imperativo. Questi concetti verranno spiegati utilizzando il linguaggio Java e saranno fatti sperimentare agli studenti con l’implementazione di semplici algoritmi mirati

Programma esteso

Struttura logica di un elaboratore e codifica dell'informazione. Gerarchia dei linguaggi di programmazione, compilatori e interpreti. Cenni informali sulla correttezza dei programmi (sintassi, semantica). La Java Virtual Machine. Algoritmi e programmi
Tipi di dati primitivi. Variabili, dichiarazioni e assegnamenti. Espressioni e valutazione. Type checking
Stringhe. Input/Output da tastiera/su schermo (classe Scanner)
Strutture di controllo: sequenza, selezione, iterazione. Array di tipi primitivi
Applicazione semplificata della progettazione logica del programma
Metodi di classe, definizione ed invocazione. Parametri di tipo primitivo. Uso della dot notation. Record di attivazione. Variabili di classe e costanti
Classi e istanze come strutture dati, con attributi di tipo primitivo e complesso. Il concetto di reference: cenni alla gestione della memoria in Java (heap, stack e loro uso durante l’esecuzione dei programmi). Array di reference. Metodi di classe con tipi di dati complessi: definizione e invocazione. Passaggio di parametri by reference e by value

Bibliografia consigliata

Libro di testo:

Walter Savitch - Programmazione con Java - Seconda Edizione, 2013, Pearson Education Italia, ISBN 9788871929613
Appunti scritti dai docenti

Metodi didattici

L’insegnamento è composto da lezioni frontali, esercitazioni in aula e sessioni di lavoro assistito in laboratorio. Inoltre, verranno resi disponibili on-line sia le slide e gli esercizi svolti in classe che vari tipi di esercizi mirati (quiz, domande pratiche) da svolgere individualmente da parte degli studenti