Insegnamenti

 

60/61/124 - PROGRAMMAZIONE 2

Anno Accademico ​2019/2020

Docente
MAURIZIO ​ATZORI (Tit.)
Periodo
Secondo Semestre​
Modalità d'Erogazione
Convenzionale​
Lingua Insegnamento
ITALIANO​



Informazioni aggiuntive

CorsoPercorsoCFUDurata(h)
[60/61] ​ ​INFORMATICA [61/00 - Ord. 2016] ​ ​PERCORSO COMUNE984
Obiettivi

Il corso di Programmazione 2 ha come obiettivo l'insegnamento della programmazione ad oggetti e l'introduzione alla programmazione con altri paradigmi. Viene utilizzato Java come linguaggio di programmazione del corso, ma si fa riferimento anche ad altri linguaggi (es. Python) per evidenziare le possibili alternative di design dei linguaggi di programmazione.


1. Conoscenze e capacità di comprensione.
Lo studente apprenderà le basi ed alcune tecniche avanzate di programmazione orientata ad oggetti in Java.
Sarà capace di leggere e capire la documentazione delle API e codice commentato scritto da altri sviluppatori.

2. Abilità nell'applicare le conoscenze.
Lo studente sarà capace di scrivere e commentare codice Java, sviluppare nuove classi, ragionare su differenti implementazioni e risolvere in autonomia errori di compilazione e a tempo di esecuzione.

3. Autonomia di giudizio.
Il corso fornisce agli studenti diligenti le competenze di base per applicare le metodologie di programmazione ad oggetti descritte durante il corso alla risoluzione di problemi applicativi connessi al proprio campo di studi.

4. Abilità comunicative.
Le lezioni prevedono un alto grado di interazione con gli studenti, che apprenderanno a comunicare in modo appropriato i concetti appresi, con padronanza della terminologia internazionalmente utilizzata.
La correzione della prova teorica tiene conto della capacità dello studente di comprendere il linguaggio tecnico, anche espresso in lingua inglese, inerente gli argomenti studiati.
La abilità comunicative vengono ulteriormente valutate nella prova pratica che include la comprensione e scrittura di commenti nel linguaggio tecnico appreso a lezione.

5. Capacità di apprendimento.
Il corso fornisce agli studenti diligenti una preparazione sufficiente alla comprensione di testi di programmazione avanzati, inclusa documentazione tecnica come le specifiche API, rendendoli capaci di ampliare in futuro le proprie conoscenze in modo autonomo.

Prerequisiti

Basi di programmazione imperativa e conoscenza di un linguaggio tipo C (che lo studente avrà acquisito al corso di Programmazione 1).
Basi di algoritmi e strutture dati (che lo studente avrà acquisito al corso di Algoritmi e Strutture Dati 1).

Contenuti

La lista dei principali argomenti insegnati nel corso e' la seguente.

01 - Introduzione al corso e architetture
02 - Creazione classi e oggetti
03 - Ereditarietà
04 - Approfondimenti sull'Ereditarietà e altre tecniche
05 - Eccezioni
06 - Interfacce
07 - Tipi enum e parametrici
08 - Object e Java Collections
09 - Programmazione funzionale
10 - Java Streams
11 - Classi Innestate
12 - Annotazioni

Maggiori informazioni sono disponibili sulla pagina dedicata di elearning moodle al seguente indirizzo:
https://elearning.unica.it/course/view.php?id=121

Metodi Didattici

Programmazione 2 (PR2) è un corso di 9 crediti, corrispondenti ad 84 ore.
Lezioni frontali: 48 ore, tipicamente 2 ore di lezione, due lezioni alla settimana, 12 settimane
Laboratori: 36 ore, 3 ore alla settimana, 12 settimane

Verifica dell'apprendimento

L'esame finale è diviso in due parti:
1) teoria, volta a verificare i descrittori di Dublino 1 e 2.
2) pratica, volta a verificare i restanti descrittori.
da svolgersi nello stesso appello.
La parte teorica è propedeutica a quella pratica.

La prova teorica si compone di un certo numero di domande scritte, tipicamente 15 domande Vero/Falso da 2 punti l'una se risposte correttamente, per un totale di 30 punti.
E' richiesto un voto minimo di 18 su 30 per poter sostenere la prova pratica.

La prova pratica consiste nello sviluppo di classi e interfacce Java.
Solitamente, data una classe di test (con JUnit o con assert) lo studente deve sviluppare classi e metodi per superare i test software forniti, nell'ordine richiesto.
Il voto della prova pratica è ottenuto dalla somma dei pesi di ciascun test superato.

Entrambe le prove sono espresse in trentesimi, e se superate (voto uguale o maggiore di 18 in entrambe) il voto finale è dato dalla somma pesata delle due prove (35% teoria, 65% pratica salvo diversa indicazione).

Testi

E' raccomandato inoltre l'utilizzo di un libro di testo aggiornato almeno a Java 8.
Si consigliano ad esempio:
- Concetti di Informatica e Fondamenti di Java, by Cay S. Horstmann
- Thinking in Java, by Bruce Eckel

Altre Informazioni

Il corso di Programmazione 2 è presente su Moodle, piattaforma di e-learning, attualmente accessibile alla seguente url:

https://elearning.unica.it/course/view.php?id=121

- slide delle lezioni
- slide di laboratorio
- testi sugli esercizi di laboratorio
- soluzioni degli esercizi di laboratorio
- quiz
- handnotes/appunti delle lezioni
- link di approfondimento
- esercizi/esempi di esame
- tutorial ufficiali Oracle

credits unica.it | accessibilità Università degli Studi di Cagliari
C.F.: 80019600925 - P.I.: 00443370929
note legali | privacy

Nascondi la toolbar