ANNO SCOLASTICO 2015/2016 CLASSE 4° IC Programma svolto per la materia Informatica 1) Definizione di classi generiche in linguaggio Java. La struttura dati lista: confronto tra liste e vettori. Implementazione, in linguaggio Java, di una lista concatenata semplice. L'interfaccia "List" e le classi "LinkedList" e "ArrayList" del package "java.util". Implementazione dei metodi "get", "set", "ensureCapacity", "trimToSize", "add", "remove" e "toString" della classe "ArrayList". 2) Creazione di oggetti di una classe generica. Le principali sottoclassi della classe "Number". Le liste concatenate semplici: implementazione dei metodi "size", "nodeAt", "get", “set”, "add", "swap", "indexOf" e "remove" della classe "SimpleLinkedList". Le liste concatenate doppie: i metodi "get", "set", "nodeAT", "add" e "remove" della classe "DoubleLinkedList". Le liste circolari. 3) Definizione ricorsiva della struttura dati lista: implementazione dei metodi "size", "get", "set", "add", "indexOf" e "remove" della classe "RecursiveList". L'interfaccia "Stack" e sua implementazione tramite vettore. Esempio di programma in linguaggio Java che valuta un'espressione in notazione polacca inversa per mezzo di uno stack. 4) l'interfaccia "Queue" e sua implementazione tramite vettore circolare. Implementazione delle interfacce "Stack" e "Queue" tramite liste concatenate semplici. L'interfaccia "Deque" (doppia coda). Implementazione dell'interfaccia "Deque" tramite vettore circolare. Le code di priorità: l'interfaccia “PriorityQueue” e sua implementazione per mezzo di un vettore e di una lista concatenata semplice. 5) Il metodo "main" ed i parametri della linea di comando della JVM. L'istruzione "foreach" e le interfacce "Iterable" ed "Iterator". Le classi interne. La “Java Collection Framework” e le principali classi ed interfacce del package “java.util”. 6) I dizionari ed i principali metodi dell'interfaccia "Map". Implementazione di un dizionario per mezzo di una lista. Le tabelle “hash” ed il fenomeno delle collisioni. Implementazione di un dizionario per mezzo di una tabella ad indirizzamento diretto e di una tabella “hash”. Calcolo della funzione “hash” con i metodi della divisione e della moltiplicazione. 7) Introduzione agli alberi informatici: definizione di nodo di un albero, nodo radice, nodo padre, nodo figlio, nodo interno, nodo foglia, nodi fratelli, nodi ascendenti, nodi discendenti, profondità e grado di un nodo, livello ed altezza di un albero e di un sotto-albero. Alberi ordinati e loro implementazione in linguaggio Java. 8) Algoritmi ricorsivi per il calcolo della profondità di un nodo, del numero di nodi, del numero di foglie e dell'altezza di un albero ordinato. Attraversamento di un albero in ordine anticipato, posticipato e di livello. Implementazione in linguaggio Java dei principali algoritmi di attraversamento di un albero ordinato. Esempio di albero che rappresenta un'espressione aritmetica. 9) Definizione di albero binario: relazione tra altezza e numero di nodi. Attraversamento di un albero binario in ordine anticipato, posticipato e simmetrico. Alberi binari degeneri, bilanciati e completi. Esempio d'implementazione in linguaggio Java di un albero binario e degli algoritmi di attraversamento in ordine anticipato, simmetrico e posticipato. 10) Gli alberi binari di ricerca: ricerca di un particolare elemento, dell'elemento minimo, dell'elemento massimo, dell'elemento successivo, dell'elemento precedente. Inserimento e cancellazione di elementi. Implementazione di un albero binario di ricerca per mezzo dell'interfaccia “Comparable”. Implementazione di una coda di priorità per mezzo di un albero binario di ricerca. 11) I grafi orientati e non orientati: definizione matematica ed interpretazione grafica. Vertici, archi, vertici adiacenti e grado di un vertice. Cammini e cicli. Vertici e grafi connessi. Rappresentazione in memoria centrale di un grafo tramite matrici e liste di adiacenza. Gli algoritmi di ricerca in ampiezza ed in profondità. Implementazione, in linguaggio Java, dell'algoritmo di ricerca in ampiezza. ANNO SCOLASTICO 2015/2016 CLASSE 4° IC Laboratorio: 1. Esercizi di programmazione in linguaggio Java sui file sequenziali. 2. Il linguaggio HTML: sitografia, titoli, intestazioni, paragrafi, elenchi puntati e numerati, collegamenti esterni o interni, immagini. 3. Sviluppo di un sito web con Dreamweaver. 4. I fogli di stile: concetti di base e font. La formattazione di una pagina HTML. 5. Creazione di pagine web con l'uso dei fogli di stile. 6. Realizzazione, con l'uso dei CSS, di un sito web con layout a 2 colonne. 7. Esercitazioni su HTML e CSS (layout a più colonne). 8. CSS: menu a più livelli. Uso di sprite e sliding doors. Pseudo classi. 9. la grafica per il web: i formati delle immagini. 10. Introduzione al linguaggio JavaScript: concetti di base. 11. La struttura generale di un programma JavaScript: variabili locali e globali. Le istruzioni di controllo. 12. Esempio di sviluppo di un semplice programma in linguaggio JavaScript. 13. La gestione degli eventi in JavaScript. Introduzione ai Form. 14. Sviluppo di un programma in JavaScript che visualizza la somma tra due numeri digitati nel browser. 15. Sviluppo di un programma in JavaScript che valuta un'equazione di secondo grado. 16. Esercizio su JavaScript (pagamento di una bolletta). Il tag SELECT. 17. Cenni al bubbing degli eventi. Sviluppo di una pagina web dinamica per il gioco del "tris" in JavaScript. 18. I form XHTML: introduzione. Il tag FORM. 19. I principali controlli grafici di un form XHTML. 20. Introduzione a jQuery. 21. Esercitazione su jQuery. 22. Sviluppo del gioco del quindici in linguaggio JavaScript. 23. I package AWT e SWING per lo sviluppo di interfacce grafiche in linguagio Java. Creazione e inizializzazione di finestre. I "layout manager" "BorderLayout", "FlowLayout" e "GridLayout". 24. I principali componenti grafici del package "java.swing". 25. Progettazione e realizzazione di menu. La gestione degli eventi. Esempio di codifica di un'applicazione con interfaccia grafica in linguaggio java. 26. Sviluppo, in linguaggio java, dell'applicazione grafica “gioco del tris". 27. Sviluppo, in linguaggio java, dell'applicazione grafica "gioco del quindici". 28. Sviluppo, in linguaggio java, dell'applicazione grafica “calcolatrice tascabile”. 29. Sviluppo, in linguaggio java, dell'applicazione grafica “traduttore dall'Italiano all'Inglese e viceversa”. Gli insegnanti: Gli alunni: ______________________ ________________________ ______________________ ________________________