Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura dei sistemi di elaborazione 2. Architettura a livelli e astrazioni funzionali 3. Struttura della CPU 4. Differenze e idee alla base del tecniche del parallelismo, pipelining e unità funzionali multiple 5. Esercizi sulla correzione degli errori 6. Spiegare i concetti di Classe/ oggetto /metodo / attributo. 7. Algoritmi di ordinamento (SelectionSort, InsertionSort, Bubblesort, Mergesort, Quicksort) 8. Differenze tra Accesso ai file in modalità sequenziale o casuale e tra file binari e testuali. Programmazione java: 9. Dichiarazione di una variabile 10.Dichiarazione di un array 11.Definizione di una classe 12.Compilazione di una classe tramite riga di comando o tramite Bluej 13.Scrittura di un metodo per la stampa di un array 14.Scrittura di un metodo per il confronto tra due array 15. Scrittura del metodo main per l’input da tastiera tramite la classe scanner 16.Esempio conversione esplicita tra due tipi di dato per cui è prevista 17.Dato un programma già scritto trovare l’errore e correggerlo 18.Data una classe che implementa un algoritmo scrivere la classe mail che la utilizza secondo l’obiettivo specificato Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso In riferimento al libro adottato Concetti di Informatica e Fondamenti di Java Cay. S Horstmann: Capitolo 1 - Introduzione Che cos'e' la programmazione? L'anatomia di un computer Tradurre in codice macchina programmi leggibili dalle persone Il linguaggio di programmazione Java Prendere confidenza con il computer Compilare un semplice programma Errori Il processo di compilazione Capitolo 2 - Utilizzare Oggetti Tipi e variabili L’operatore di Assegnazione Oggetti classi e metodi Parametri e valori restituiti dei metodi Tipi numerici Costruire Oggetti Metodi d’accesso e metodi modificatori Riferimenti a oggetti Capitolo 3 – Realizzare Classi Scatole nere Progettare l’interfaccia pubblica di una classe Realizzare costruttori e metodi Parametri impliciti ed espliciti dei metodi Capitolo 4 - Tipi di dati fondamentali Tipi di numeri Assegnazioni Costanti Conversione dei tipi di dati Invocare metodi statici Stringhe Leggere dati in ingresso Caratteri Capitolo 5 - Decisioni L'enunciato if Confrontare valori Operatori relazionali Confrontare numeri in virgola mobile Confrontare stringhe Alternative multiple Sequenze di confronto Diramazioni annidate Utilizzare le espressioni booleane Il tipo boolean I metodi predicativi Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso Gli operatori booleani Utilizzare variabili booleane Capitolo 7 - Iterazioni Cicli while Cicli for Cicli annidati Argomenti avanzati Capitolo 8 - Vettori e array Array Vettori Trovare un valore Contare Trovare il massimo o il minimo Memorizzare numeri in vettori Dichiarare array e accedervi Array a due dimensioni Capitolo 9 – Progettazione di Classi Metodi di accesso Metodi modificatori Metodi statici Ambito di visibilità Capitolo 15 – File e Flussi Leggere e scrivere file di testo Formato binario e formato testo Accesso casuale Flussi di oggetti Capitolo 17 – Ordinamento e Ricerca Ordinamento per selezione Ordinamento per Fusione In riferimento al libro: “Fondamenti di informatica oggetti e Java” L. Cabibbo McGraw- Hill 1 ARCHITETTURA DEI CALCOLATORI 1.1 Calcolatori e applicazioni; Alcuni esempi d'applicazioni; Applicazioni e interfaccie; 1.2Architettura dei calcolatori Hardware e software Macchina di von neumann 1.3 Tecnologie dei calcolatori codifica dei dati microprocessore Memoria centrale Memoria secondaria 1.5 Calcolatori e programmazione Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso 2.OGGETTI SOFTWARE 2.1Programmi e programmazione ; 2.2 Introduzione agli oggetti software; 2.3 Esempi d'oggetti software; L'oggetto software System.out 3.OGGETTI E JAVA 3.1 Introduzione alla programmazione in Java Il linguaggio di programmmazione Java Classi Java Programmi di java API di java (cenni) Programmazione in java 3.2 Introduzione a Java Scrittore sullo schermo Calcolo di una radice quadrata 4.STRUMENTI PER LA PROGRAMMAZIONE 4.1 Strumenti per la programmazione Editing e editor Compilazione e compilatori Esecuzione Compilatori ed interpreti Compilazione ed esecuzione di programma Java Java 2 Software Development Kit 4.2 Che cosa fare in pratica 4.3 Errori di programmazione 4.4 Ambienti integrati di sviluppo 5.PROBLEMI ,ALGORITMI E OGGETTI 5.1 Problemi e Algoritmi Comprensione del problema Identificazione di un algoritmo per il problema 6.LE BASI DEL LINGUAGGIO JAVA 6.1 Sintassi e semantica 6.2 Introduzione alla sintassi di Java 6.3 Introduzione alla semantica di Java Semantica delle espressioni Semantica delle istruzioni 6.4 Sintassi , semantica ed errori 6.5 Introduzione alle istruzioni di Java 7.LEGGIBILITA' (solo da leggere) 7.1 Stile e convenzioni di codifica 7.2 Commenti 7.3 Scelta dei nomi 7.4 Indentazione 8 Uso di Oggetti 8.1 Tipi ed espressioni Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso 8.2 Uso di oggetti 8.2.1 Operazioni e messaggi 8.2.2 Operazioni e metodi 8.2.3 Invocazione di metodi 8.2.4 Accesso a propriet_a di oggetti 8.3 Descrizione di oggetti e classi 8.3.1 Descrizione di metodi 8.3.2 Descrizione di metodi che restituiscono un valore 8.3.3 Descrizione di variabili 8.3.4 Selezione di metodi 8.4 Creazione di oggetti e costruttori 9 VARIABILI E ASSEGNAZIONE 9.1 Variabili e assegnazione 9.1.2 Dichiarazione di variabili 9.1.3 Assegnazione e accesso 9.1.4 Costanti 10 ERRORI DI PROGRAMMAZIONE (CENNI) 10.1 Classificazione degli errori 10.2 Errori sintattici 10.3 Errori di semantica statica 10.4 Errori di semantica dinamica 10.5 Errori logici 10.6 Discussione 11 TIPI ED ESPRESSIONI 11.1 Tipi 11.2 Espressioni 11.3 Tipi primitivi per numeri interi 11.3.1 Introduzione al tipo primitivo int 11.3.2 Valutazione delle espressioni 11.3.3 Rappresentazione dei numeri interi 11.3.4 Altri tipi primitivi numerici interi 11.4 Tipi primitivi per numeri reali 11.5 Conversione tra tipi 11.5.1 Conversione implicita 11.5.2 Conversione esplicita 11.7.2 Il tipo primitivo boolean 12TIPI RIFERIMENTO E STRINGHE 12.1 TIPI DI RIFERIMENTO 12.2 STRINGHE E OGGETTI STRING 12.3 USO DI VARIABILI RIFERIMENTO 12.4 USO D'OGGETTI STRING 12.5 STRINGHE E TIPI PRIMITIVI 12.6 CONVERSIONE DA I TIPI PRIMITIVI A STRINGHE 12.7 CONVERSIONE TRA STRINGHE E TIPI PRIMITIVI 12.8 IL METODO CHARAT 12.9 CONCATENAZIONE DI STRINGHE 12.10 CONFRONTO TRA STRINGHE Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso 13 ISTRUZIONI CONDIZIONALI E BLOCCO 13.1 INTRODUZIONE ALLE ISTRUZIONI DI CONTROLLO 13.2 ISTRUZIONE CONDIZIONALE IF-ELSE 13.3 BLOCCO (ISTRUZIONE COMPOSTA) 13.4 ISTRUZIONE CONDIZIONALE IF 13.5 ISTRUZIONI CONDIZIONALI ANNIDATE 13.6 CASCATA DI ISTRUZIONI IF-ELSE 13.7 IL PROBLEMA DELL'ELSE MANCANTE 13 ISTRUZIONI CONDIZIONALI E BLOCCO 13.1 INTRODUZIONE ALLE ISTRUZIONI DI CONTROLLO 13.2 ISTRUZIONE CONDIZIONALE IF-ELSE 13.3 BLOCCO(ISTRUZIONE COMPOSTA) 13.4 ISTRUZIONE CONDIZIONALE IF 13.5 ISTRUZIONI CONDIZIONALI ANNIDATE 13.6 CASCATA D'ISTRUZIONI IF-ELSE 14 ISTRUZIONI RIPETITIVE 14.1 ISTRUZIONI RIPETITIVE 14.2 ISTRUZIONE RIPETITIVA WHILE 14.3 ISTRUZIONE RIPETITIVA FOR 14.3.1 ISTRUZIONE FOR CON VARIABILE CONTATORE 14.4 ISTRUZIONE RIPETITIVA DO-WHILE 14.5 CONFRONTO TRA ISTRUZIONI RIPETITIVE 14.7 ISTRUZIONI RIPETITIVE E CICLI 14.9 ISTRUZIONI RIPETITIVE ANNIDATE 15 DEFINIZIONE DI METODI 15.1 INTRODUZIONE ALLA DEFINIZIONE DI METODI 15.1.1 DEFINIZIONE DI UN SEMPLICE METODO 15.1.2 USO DI CLASSI E METODI 15.2 METODI E VARIABILI LOCALI 15.3 METODI CON PARAMETRI 15.4 METODI CHE RESTITUISCONO UN VALORE 15.5 SOVRACCARICO DI NOMI 15.6 AUTO-REFERENZIAZIONE 15.7 CLASSI E APPLICAZIONI 15.8 VISIBILITA’ DELLE VARIABILI 15.9 PROGRAMMAZIONE STRUTTURATA (E NON) 15.11.1 IL MODIFICATORE PRIVATE 15.12 LEGAME DEI PARAMETRI 15.12.1 LEGAME DEI PARAMETRI PER VALORE 15.12.2 LEGAME DEI PARAMETRI PER RIFERIMENTO 18 DEFINIZIONE DI CLASSI 18.1 CLASSI PER ISTANZIARE OGGETTI 18.3 VARIABILI D'ISTANZA 18.3.1 ACCESSO A VARIABILI D'ISTANZA 18.4 METODI D'ISTANZA 18.5 COSTRUTTORI 18.6.1 AUTO-REFERENZIAZIONE Università degli studi di Roma “Tor Vergata” Ingegneria Medica Informatica I Programma del Corso 18.6.4 18.6.5 18.6.6 18.6.7 SOVRACCARICO DEL COSTRUTTORE 371 METODI DI CLASSE 372 VARIABILI DI CLASSE 372 CLASSI E OGGETTI 373 19 ARRAY 19.1 IL PROBLEMA DEGLI STUDENTI DA PROMUOVERE 19.2 ARRAY 19.3 ARRAY IN JAVA 19.4 USO DI ARRAY 19.4.1 DICHIARAZIONE DI VARIABILI ARRAY E TIPI ARRAY 19.4.2 CREAZIONE DI ARRAY 389 19.4.3 ACCESSO A UN ARRAY 389 19.4.4 IL PROBLEMA DEGLI STUDENTI DA PROMUOVERE 390 19.4.5 LUNGHEZZA DI UN ARRAY 390 19.5.2 VISUALIZZAZIONE DEGLI ELEMENTI DI UN ARRAY 19.5.3 CALCOLO DEL MASSIMO ELEMENTO DI UN ARRAY DI INTERI 19.7 PARAMETRO DEL METODO MAIN 404 20 ARRAY DI ARRAY 417 20.1 ARRAY BIDIMENSIONALI 417 20.1.1 CREAZIONE E USO DI ARRAY BIDIMENSIONALI 418 20.2 ARRAY DI ARRAY 420 24 ORDINAMENTO 24.1 ORDINAMENTO 24.3 ORDINAMENTO 24.4 ORDINAMENTO 24.5 ORDINAMENTO 24.6 ORDINAMENTO 24.7 ORDINAMENTO DI UN ARRAY PER SELEZIONE A BOLLE PER INSERZIONE PER FUSIONE(SOLO ALGORITMO) VELOCE (SOLO ALGORITMO)