Programma consuntivo di Informatica Anno scolastico 2013 – 2014 Classe TERZA A Docente teorico Lolita Tiriticco Indirizzo Docente tecnico pratico Informatico Massimiliano Patti ______________________________________________________________________ Obiettivi L'obiettivo della materia nella terza classe è introdurre l’alunno alla programmazione evidenziando l’esistenza di diversi modi di intenderla ed abituandolo a ragionare per modelli utilizzando le tecniche di approccio alla soluzione dei problemi ( prevalentemente il top-down). Al termine della terza classe gli studenti dovranno raggiungere i seguenti obiettivi: Analizzare correttamente un problema, rappresentarlo in forma astratta, individuando le strutture dati più opportune. Impostare problemi, da un punto di vista procedurale. Risolvere problemi, indipendentemente da un linguaggio di programmazione. Verificare la correttezza di una soluzione. Leggere ed interpretare algoritmi risolutivi utilizzando un metalinguaggio convenzionale (diagrammi a blocchi e linguaggio di progetto). Applicare correttamente la programmazione strutturata scomponendo un problema in sottoproblemi secondo i canoni della metodologia Top-Down e della programmazione modulare. Usare e saper rappresentare con proprietà le strutture fondamentali di un linguaggio di programmazione imperativo. Usare una interfaccia software per la programmazione imperativa conoscendo i principi della compilazione e interpretazione dei linguaggi di programmazione. Essere in grado di realizzare programmi nel linguaggio prescelto, verificandone la correttezza e producendo una idonea documentazione. Obiettivi minimi per l’attribuzione della sufficienza: Possedere i contenuti minimi: Sapere la teoria dell’informatica: basi dei linguaggi di programmazione, loro distinzione. Definizione di algoritmo, costrutti dei linguaggi di programmazione, teorema di Bohm-Jacopini. Differenza tra compilatore ed interprete. Sapere perché si usano e quanti sono i tipi predefiniti per i dati. Operazioni con esse. Struttura di un programma con sottoprogrammi: differenze tra procedura e funzione e come si implementano. Dati strutturati: gli array, e le basi del linguaggio C. Usare i diagrammi di flusso e la pseudo codifica. Applicare le conoscenze acquisite per la soluzione di problemi (saper analizzare e risolvere semplici problemi indipendentemente dal linguaggio di programmazione, saper sviluppare semplici programmi strutturati e con array in linguaggio C ). Esprimersi in modo semplice ma con uso del linguaggio specifico della materia. Contenuti: Unità 1 – Introduzione all’informatica Informatica e sistemi di elaborazione Hardware e Tipi di computer Software e loro classificazione. Cosa vuol dire programmare I linguaggi di programmazione La traduzione di un programma: compilatori ed interpreti, vantaggi e svantaggi. I linguaggi imperativi ed altri linguaggi Unità 2 – Primi elementi di programmazione Definizione di algoritmo: progettare soluzioni Componenti di un algoritmo: dati Componenti di un algoritmo: istruzioni Rappresentazione e verifica degli algoritmi Dichiarazione dei dati Istruzioni di I/O e loro gestione La sequenza e l’assegnazione Costanti e variabili Variabili numeriche ed alfanumeriche Unità 3 – La selezione La struttura di selezione Selezioni semplici Selezioni ad una via Selezioni in cascata Selezioni annidate Selezioni multipla Concetti di logica Utilizzo dei connettivi Unità 4 – Struttura iterativa Struttura iterativa Uso delle diverse strutture iterative Ciclo con uscita per risposta esplicita Ciclo con contatore e sommatorie Ciclo con uscita per condizione avverata Cicli annidati Unità 5 – La programmazione complessa La complessità dei problemi. Sottoprogrammi e funzioni. Variabili locali e globali, parametri, passaggio dei parametri. La ricorsione. Unità 6 – Le strutture dati semplici Vettori: caratteristiche, caricamento, visualizzazione. Ricerca e ricerca dicotomica; shift-sinistro e destro; rotazione sinistra e destra. Ordinamento per selezione e bubble sort. Vettori paralleli. Il merge. Le stringhe ed i vettori di caratteri Unità 7 – Le strutture dati complesse Matrice: visualizzazione, gestione, operazioni. Matrici quadrate e trasposte. Memorizzazione di strutture dati statiche: vettore di memoria, allocazione di array e matrici. Unità 8 – Nuovi tipi per i dati Come si dichiara un nuovo tipo per i dati. Dichiarazione di nuovo tipo per le strutture dati. Il Linguaggio C e l’ambiente DEV C++ La programmazione e le basi del linguaggio, la struttura di un programma in C. Gli statement, dichiarazione di variabili e costanti I tipi di dati del C ed il casting per la conversione di tipo Gli operatori di relazione e logici Input ed output formattati e la funzione Random. La programmazione strutturata La sequenza in C La struttura di alternativa semplice e nidificata La struttura di scelta multipla La ripetizione: Precondizionale, Postcondizionale, Derivata. Organizzazione dei programmi Lo sviluppo top-down Le funzioni Funzioni con parametri Passaggio dei parametri Dichiarazione delle funzioni con i prototipi Implementazione delle procedure Gli array con le operazioni di scansione, caricamento, ricerca, selezione, shift , rotazione ed ordinamento per selezione. Le stringhe e la librerie string.h con le funzioni principali. Stringhe come vettore di char. Typedef per le strutture e tipo enumerativo. Laboratorio Le ore di laboratorio sono state utilizzate per esercizi e verifiche pratiche. Per l’implementazione abbiamo utilizzato l’interfaccia Dev C++. Materiale didattico Libro di testo: : Iacobelli,Ajme,Marrone – EPROGRAM Tomo A – Juvenilia Scuola Appunti e codice forniti dall’insegnante.