• Edizioni di altri A.A.:
  • 2022/2023
Attenzione! Per visualizzare le informazioni dettagliate può essere necessario navigare nei moduli/canali indicati di seguito.

  • Lingua Insegnamento:
    Italiano 
  • Testi di riferimento:
    Walter Savitch
    Programmazione di base e avanzata con Java (seconda edizione)
    Pearson 
  • Obiettivi formativi:
    Obiettivo del corso è insegnare i fondamenti della programmazione strutturata utilizzando Java come linguaggio di programmazione. Non è obiettivo del corso insegnare la programmazione ad oggetti, che sarà invece uno dei punti centrali del corso di Programmazione e Algoritmi 2.

    RISULTATI DI APPRENDIMENTO ATTESI

    CONOSCENZA E CAPACITÀ DI COMPRENSIONE:

    Alla fine dell’insegnamento lo studente dovrà essere in grado di:
    * illustrare il funzionamento di base di un calcolatore elettronico e il significato di algoritmo;
    * illustrare il concetto di complessità computazionale asintotica di un algoritmo;
    * illustrare i fondamenti della programmazione strutturata;
    * illustrare i metodi di base che Java mette a disposizione per l'input/output da tastiera;
    * esporre i metodi più importanti delle classi String e Math di Java;
    * esporre il funzionamento degli algoritmi di ricerca lineare e binaria e degli algoritmi di ordinamento più comuni


    CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE:

    Alla fine dell’insegnamento lo studente dovrà essere in grado di:

    * generare manualmente la traccia di esecuzione di un programma scritto nel linguaggio Java;
    * scrivere semplici programmi strutturati in linguaggio Java;
    * calcolare la complessità computazionale asintotica di semplici programmi Java;
    * utilizzare un ambiente di sviluppo Java come Visual Studio Code sia nella fase di sviluppo che in quella di debugging.


    ABILITÀ DI COMUNICAZIONE:
    Alla fine dell’insegnamento lo studente dovrà essere di spiegare il funzionamento di programmi e algoritmi usando un linguaggio corretto e preciso 
  • Prerequisiti:
    Nessuno 
  • Metodi didattici:
    Il corso si articolerà in
    * Un modulo di 6 cediti (48 ore) costituito da lezioni frontali in aula.
    * Un modulo da 3 crediti (24 ore) costituito da esercitazioni in laboratorio. Per consentire a tutti gli studenti di avere a disposizioni un proprio PC, il modulo di laboratorio è sdoppiato in due canali, a seconda della prima lettera del cognome. 
  • Modalità di verifica dell'apprendimento:
    L'esame consiste in un progetto, una prova pratica ed una prova scritta, più una prova orale, normlamente opzionale.

    La parte progettuale consiste nello sviluppare un programma (o parte di esso) secondo una specifica indicata dal docente. Il progetto si può svolgere in gruppo. Il progetto può essere valutato positivamente o negativamente. La valutazione positiva è condizione necessaria per poter sostenere la prova pratica. Una volta che il progetto è stato valutato positivamente, rimane valido per tutto l'anno accademico.

    La prova pratica si svolge in aula informatica al calcolatore, e consiste in una modifica da apportare al proprio progetto. La valutazione è in trentesimi.

    La prova scritta, di solito svolta immediatamente dopo la prova orale, consiste in una serie di esercizi sul programma del corso. La valutazione è in trentesimi.

    Il voto finale è la media del voto della prova pratica e della prova scritta.

    È previsto che, durante lo svolgimento delle lezioni, si svolgeranno dei "compitini" in classe, delle prove d'esame facoltative che, se svolte correttamente, daranno dei punti addizionali al voto dell'esame finale. 
  • Sostenibilità:
    Non tratta tematiche direttamente riconducibili alla sostenibilità ambientale e sociale. 
  • Altre Informazioni:
    Ulteriori informazioni sono disponibili sul sito web dell'insegnamento nella piattaforma di e-learning fad.unich.it 

Introduzione alla programmazione. Primi passi con Java. Istruzioni ed operatori condizionali. Iterazione definita. Iterazione indefinita. Sottoprogrammi e metodi statici. Vettori. Ricorsione. Complessità computazionale asintotica. Algoritmi di ricerca e ordinamento. Strutture dati concatenate.

Introduzione alla programmazione.
* Hardware e Software
* Linguaggi di programmazione, interpreti e compilatori
* Il bytecode Java e la Java Virtual Machine
* Programmazione strutturata ed orientata agli oggetti
* Testing e debugging
* Riutilizzo del software

Primi passi con Java.
* Un semplice programma Java
* L'ambiente di sviluppo Visual Studio Code
* Variabili e tipi di dato numerici
* Espressioni aritmetiche
* Assegnamento
* Rappresentazione binaria di dati numerici
* Casting e promozione di valori numerici
* Input e output
* Il tipo stringa
* Costanti
* Stile di programmazione

Istruzioni ed operatori condizionali.
* L'istruzione if-then-else
* L'operatore ternario
* Il tipo booleano
* Cenni di logica delle proposizioni
* Espressioni booleane
* Uguaglianza in Java
* L'istruzione e l'operatore switch

Iterazione definita.
* Iterazione definita in Java
* Esempi di programmi che usano l'iterazione definita
* Istruzioni break e continue
* Uso del debugger in Visual Studio Code

Iterazione indefinita
* Istruzioni while e do-while
* Esempi di programmi che usano l'iterazione indefinita
* Scrivere cicli senza bug
* L'istruzione for

Sottoprogrammi e metodi statici.
* Sottoprogrammi e metodi statici
* Passaggio di parametri
* Metodi che restituiscono un risultato
* Documentazione con Javadoc

Vettori.
* I vettori
* Ricerca lineare e ricerca binaria
* Ordinamento di un vettore: selection sort, bubble sort, quicksort
* Vettori multidimensionali
* Cenni di complessità computazionale asintotica

Ricorsione.
* Programmi ricorsivi
* La pila dei record di attivazione

Avvisi

Nessun avviso in evidenza

Documenti

Nessun documento in evidenza

Scopri cosa vuol dire essere dell'Ud'A

SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551

SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371

email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693

icona Facebook   icona Twitter

icona Youtube   icona Instagram