PROGRAMMAZIONE 4° ANNO

 

FINALITA' : Sviluppare capacità logiche e critiche alla luce delle nuove tecnologie. Far crescere l'interesse verso problematiche culturalmente formative nell'amb¡to scientifico. Abituare gli allievi al lavoro di gruppo. Stimolare le capacità di razionalità e progettazione. Stimolare le capacità di analisi delle situazioni problematiche in relazione alle risorse tecnologiche attuali.




OBIETTIVI DI APPRENDIMENTO: Gli obiettivi dell'insegnamento nel quarto anno di corso, sono rivolti all'approfondimento degli aspetti legati alla programmazione imperativa sviluppata attraverso lo studio della gestione dinamica delle strutture dati, in particolare gli argomenti trattati consentono di:

  • conoscere la teoria e lo sviluppo delle strutture dati articolate più utilizzate nel settore informatico, come le Pile, le Code, le Liste, gli Alberi, ed il loro utilizzo nelle più svariate applicazioni;
  • affrontare le problematiche legate all'uso di variabili dinamiche in tali strutture dati;
  • affrontare i primi approcci alla memorizzazione dei dati su memorie di massa mediante l'introduzione del concetto di File;
  • definire gli algoritmi e i diagrammi a blocchi dei problemi proposti nelle esercitazioni di laboratorio, utilizzando tali strutture dati;
  • sviluppare la codifica degli algoritmi di cui sopra in un linguaggio di programmazione imperativa in Visual Basic
  • portare lo studente a saper individuare, a fronte di una situazione problematica, quali sono le strutture più idonee per rappresentare i dati in quel contesto.


     

Il raggiungimento di tali obiettivi e fondamentale per il proseguimento nello studio della materia, oltre che per avvicinare gli studenti ad una visione professionale dell' informatica.




METODI: Per il raggiungimento degli obiettivi gli argomenti verranno introdotti in modo graduale mettendone in evidenza gli aspetti logici ed applicativi e sottolineando quelli che più direttamente fanno riferimento a problematiche reali. Verranno potenziate capacità logiche e di progettazione di algoritmi attraverso l'esame approfondito dei problemi con la individuazione delle complessità , della eventuale scomposizione in sottoproblemi e della ricerca della strategia risolutiva ottimale. L'uso dei laboratori sarà volto alla realizzazione pratica del lavoro di ricerca e di progettazione fatto dagli allievi e allo stesso tempo consentirà di rendere ogni allievo consapevole degli eventuali pregi o difetti del proprio lavoro creando, quindi, anche i presupposti per una proficua collaborazione tra gli alunni con confronti, scambi di opinioni e idee.
La modalità dell' insegnamento sarà diversificata in relazione ai contenuti e ai ritmi di apprendimento degli allievi. Si adotteranno, pertanto, le seguenti scelte metodologiche:

  • lezione frontale ( spiegazione e relative esercitazioni )
  • dibattito in classe ( scambi di opinioni tra allievi e tra allievi ed insegnante )
  • insegnamento per problemi ( studio di una situazione problematico per la quale si chiede un metodo di risoluzione )
  • scoperta guidata ( l'insegnante condurrà l'allievo a porsi lui stesso delle domande indirizzandolo attraverso brevi spiegazioni alla soluzione di un problema );
  • lavori di gruppo ( si costituiranno gruppi di lavoro composti da allievi di differenti capacità al fine di consentire ai più deboli di avere un punto di riferimento che possa proficuamente sollecitare un rinnovato interesse verso la disciplina ed aumentare il grado di fiducia nelle proprie capacità)
  • visite guidate (aziende, esposizioni, etc.).
     



Accanto a queste attività, qualora le esigenze lo impongano, alcune ore sia in orario scolastico che pomeridiano verranno destinate al recupero degli allievi in difficoltà per consentire loro di non rimanere eccessivamente indietro con gli argomenti trattati e quindi di accumulare lacune difficilmente recuperabili nelle fasi successive




CRITERI PER LE VERIFICHE E LA VALUTAZIONE:

La fase di controllo degli obiettivi raggiunti costituisce un momento fondamentale e allo stesso tempo assai delicato del processo educativo. Il lavoro fatto durante l'attività didattica deve avere un riscontro oggettivo nel grado di preparazione raggiunto dagli allievi e nelle abilità da loro conseguite. La rilevazione dei risultati raggiunti deve avvenire attraverso una attenta, obiettiva ed oculata analisi di ciascun allievo al fine di evitare il più possibile la formulazione di giudizi non completamente corretti.
Essa nel contempo influisce sul giudizio riguardante sia le scelte metodologico/didattiche, sia sugli strumenti adottati per il perseguimento degli obiettivi preposti.

Per le verifiche verranno proposte prove scritte di tipo tradizionale e di tipo strutturato (domande a risposta multipla ed a risposta singola, corrispondenze, domande vero/falso, domande a risposta libera contenuta entro determinati limiti, etc.). Le prove suddette saranno integrate da esperienze di laboratorio dove saranno testati programmi in Visual basic elaborati dagli allievi e da colloqui orali. Si prevede di effettuare ogni quadrimestre un minimo di due prove scritte, due colloqui orali e due esperienze di laboratorio.

Per i criteri di valutazione si vedano le relative tabelle.
 


CONTENUTI



I SISTEMI OPERATIVI

- Introduzione
- Struttura e modalità di funzionamento
- Tipi di sistemi operativi
- Prestazioni di un sistema operativo
- Interrupt
- Gestione del processore
- Nucleo del sistema operativo
- Stati di un processo
- Politiche di schedulazione
- Procedure di sincronizzazione e comunicazione tra processi
- Gestione della memoria
- Allocazione a singola partizione
- Allocazione per partizioni
- Gestione delle informazioni
- Directory
- Meccanismi di protezione
- Allocazione dello spazio su disco
- Struttura gerarchica dei sistemi operativi

MODULO A: I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI



EVOLUZIONE DEI LINGUAGGI DI PROGRAMMAZIONE

- L’importanza dell’astrazione
- La produzione del software, l’algoritmo
- Programmazione strutturata
- I paradigmi di programmazione
- Storia dei linguaggi di programmazione
- Elementi comuni ai linguaggi di programmazione
- Programmazione ad oggetti

PROGRAMMARE AD OGGETTI

- Orientamento agli oggetti
- Gli oggetti
- Attributi e metodi
- Interazione tra oggetti
- L’incapsulamento
- L’interfaccia verso l’esterno
- L’accesso agli attributi
- Le classi
- Le classi astratte
- L’ereditarietà
- La gerarchia delle classi
- Tipi di ereditarietà
- Il polimorfismo
- Una nuova metodologia
- I linguaggi orientati agli oggetti


MODULO B: IL LINGUAGGIO DI PROGRAMMAZIONE

L’AMBIENTE DI PROGRAMMAZIONE

- Introduzione
- La struttura dei programmi
- Gli identificatori
- Variabili e costanti
- Tipi di dato
- Operatori
- Commenti e documentazione
- La gestione dell’input/output
- Le strutture di controllo
- La struttura di dati array
- Le eccezioni


GLI OGGETTI IN JAVA

- Dichiarazione di una classe
- Dichiarazione degli attributi
- Dichiarazione dei metodi
- Creazione ed uso di oggetti
- Attributi e metodi static
- Array di oggetti
- Ereditarietà
- Polimorfismo
- Le librerie
- Le stringhe


STRUTTURE DINAMICHE DI DATI E GESTIONE DEI FILE

- Introduzione
- Array dinamici
- Gestione automatica della memoria
- Pila
- Coda
- Liste concatenate
- Albero
- I flussi di input/output
- File strutturati: apertura e chiusura, scrittura e lettura
- File di testo: apertura e chiusura, scrittura e lettura