La specializzazione
   
La sperimentazione
Il quadro orario
 

Informatica Abacus

FINALITA' DELL'INSEGNAMENTO

Il corso di Informatica ha come fine principale quello di mettere il Perito in Informatica in grado di affrontare (dall'analisi fino alla documentazione) la soluzione di un problema, posto dalla richiesta di un ipotetico committente, scegliendo le metodologie e gli strumenti software piu` idonei offrendogli la formazione per seguire con una certa autonomia l'evoluzione delle tecnologie informatiche.

La disciplina fornisce all'alunno le conoscenze e le abilita` necessarie per l'uso di un sistema di elaborazione ai piu` alti livelli della gerarchia che lo modella (linguaggi ad alto o altissimo livello, liguaggi applicativi).

Essa deve essere intesa soprattutto come l'ambiente in cui si sviluppano le capacita` di analizzare e risolvere problemi (anche di una certa complessita`) di varia natura, e dove di volta in volta vengono proposti i paradigmi e gli strumenti linguistici piu` idonei alla natura del problema.

Essa deve altresi` stimolare l'uso delle conoscenze acquisite nei corsi paralleli di Elettronica e Telecomunicazioni e di Sistemi di elaborazione e trasmissione delle informazioni per sfruttare al meglio i livelli sottostanti della gerarchia e per comprendere i metodi di realizzazione dei linguaggi.

Si ricorre ripetutamente al concetto di paradigma che, in questo contesto, si intende come chiave di interpretazione dei problemi e come modello di costruzione delle soluzioni (imperativo, logico, funzionale, rivolto agli oggetti, agli eventi, alle basi di dati ...).

Lo studente, allo scopo di raggiungere una certa flessibilita` e la capacita` di affrontare nuove prospettive, deve acquisire alcune di queste chiavi e la capacita` di impiegarle nei contesti appropriati.

Il corso di Informatica non deve, in ogni caso, assumere un carattere nozionistico-sintattico ne` ridursi ad una collezione di corsi sistematici sui vari linguaggi. I contenuti debbono sempre essere organizzati intorno ai nodi concettuali che vanno sempre affrontati a partire dai problemi ed applicati alla loro soluzione. Gli specifici linguaggi debbono essere visti come mezzi espressivi e come strumenti applicativi.

OBIETTIVI GENERALI

Gestire progetto e manutenzione di applicazioni per piccole realta` sul tema dei sistemi informativi.
Gestire progetto e manutenzione di applicazioni per piccole realta` su almeno un tema dell'area elettiva e di progetto.
Inserirsi nell'organizzazione di progetti complessi.
Progettare software ed intervenire, con professionalita` adeguata al compito, nelle fasi tipiche del suo ciclo di vita.
Interfacciarsi con i livelli medio-bassi del sistema di elaborazione.
Individuare le caratteristiche di nuovi linguaggi di programmazione imparandone rapidamente l'uso.
Riconoscere in un linguaggio di programmazione le caratteristiche afferenti ai vari paradigmi.


Classe terza ore 6(3)

OBIETTIVI

Risolvere problemi, indipendentemente da un linguaggio di programmazione.
Impostare problemi, anche da un punto di vista non procedurale.
Verificare la correttezza di una soluzione.
Leggere ed interpretare descrizioni sintattiche, in piu` notazioni.
Leggere ed interpretare programmi, in piu` linguaggi.
Usare il linguaggio di comando di un sistema operativo.
Usare con proprieta` un linguaggio imperativo.
Usare un linguaggio non imperativo.
Documentare software, a livello elementare.


CONTENUTI

- L'Informatica come scienza e come tecnologia (classi terza, quarta, quinta)

Concetto e ruoli dell'informazione. Origini matematiche e tecnologiche dell'informatica. Ramificazioni principali dell'informatica. Ambienti e figure professionali.

- La produzione del software

Ciclo di vita del software. Fattori di qualita` del software. Tecniche di testing. Metodologie di sviluppo top-down e bottom-up. Documentazione del software: tecniche elementari.

- Introduzione ai linguaggi

Simbolo, alfabeto, stringa, linguaggio. Definizioni intuitive di sintassi (in un linguaggio) e semantica (in un ambiente operativo) e semplici strumenti descrittivi (grafi sintattici, notazione BNF ...). Concetti di riconoscimento e di generazione di un linguaggio.

- Problemi e programmi

Il mondo dei problemi: classificazione e generalizzazioni. Intersezioni con temi introduttivi di Intelligenza Artificiale (problemi di pianificazione, spazi di ricerca, euristica ...). Distinzione e ruolo dei linguaggi: naturali, di progetto, di programmazione. Confronto fra programmazione procedurale e non procedurale. La ricorsione come schema concettuale. Concetto di algoritmo come soluzione di un problema parametrico. Dati, risultati, azioni, processi, stato di un processo, esecutori.

- Introduzione alla programmazione imperativa

Modello esecutivo: il modello classico di Von Neumann. Ruolo del Sistema Operativo. Variabili, espressioni, assegnazione, tipi elementari. Strutture di controllo e programmazione strutturata. Sottoprogrammi: - funzioni e procedure; - programmazione ricorsiva; - tecniche di passaggio dei parametri, ambiente locale e non locale (regole di visibilita`). Array e loro elaborazioni classiche (ricerca, ordinamento, fusione ...).

- Elementi di programmazione non procedurale

Caratteristiche generali, origini e motivazioni. Paradigma funzionale: - caratteristiche e metodi di controllo; - liste ed operazioni relative; - rappresentazioni delle espressioni (prefissa, postfissa, prefissa a liste...); - traccia di programmi funzionali; - applicazioni significative; - relazioni con altri paradigmi. Paradigma logico: - elementi di logica del primo ordine; - variabili, costanti e termini; - le clausole di Horn; - l'unificazione; - interpretazione procedurale e dichiarativa; - traccia di programmi logici; - applicazioni significative; - relazioni con altri paradigmi.

LABORATORIO

Uso e studio elementare del linguaggio di comando di un Sistema Operativo. Risoluzione di semplici problemi di natura numerica, simbolica e grafica con un linguaggio imperativo strutturato. Costruzione di semplici ambienti di interazione uomo-macchina. Uso e studio di almeno un linguaggio non procedurale applicato alla risoluzione di problemi di natura simbolica.

INDICAZIONI METODOLOGICHE

Compito principale del terzo anno e` introdurre l'alunno alla programmazione ed ai concetti che ne stanno al "contorno". In particolare l'esistenza di modi diversi di intendere la programmazione dovrebbe essere comunicata mediante lo studio di almeno due paradigmi di programmazione.

Uno e` quello imperativo classico, il secondo e` di tipo non procedurale, scelto tra quello funzionale e quello logico.

In un corso dall'impostazione piu` prudente lo studio dei paradigmi logico e funzionale potrebbe anche limitarsi all'uso dei relativi ambienti di sviluppo per risolvere qualche problema esemplare, e quindi ad obiettivi di familiarizzazione operativa. Esso si sviluppera` comunque nelle classi successive ogniqualvolta emergeranno situazioni per cui appaia opportuno ricorrere ai linguaggi non procedurali. Per esempio: calcolo simbolico, analizzatori sintattici, interpreti, linguaggi di interrogazioni per basi di dati, linguaggi di specifica, ecc. Resta salva la possibilita` di ogni ulteriore attivita` didattica sui paradigmi non procedurali nell'Area elettiva e di progetto.

L'alunno si rendera` conto, alla fine del terzo anno, di quali siano pregi e difetti di ciascun paradigma: cio` si realizza impostando l'attivita` di laboratorio su problemi piccoli e diversificati, finalizzati ad orientare gli alunni a sceglire il paradigma piu` adatto alla natura del problema. Appaiono probabili molte interazioni con il corso di Matematica, specie se si affronta il paradigma logico, ed e` quindi indispensabile qualche forma di coordinamento didattico. Il tema introduttivo "l'Informatica come scienza e come tecnologia", pur essendo collocato fra i contenuti del terzo anno, va inteso come tema di fondo che si presta ad essere sviluppato in ogni momento del triennio in cui se ne ravvisi l'opportunita`. Questo tema (come altri) puo` essere validamente sostenuto con una "antologia di classici", opportunamente selezionati e concordati in sede di programmazione didattica con il corso di lingua Inglese.

Il tema "La produzione del software" e` anch'esso di fondo, e viene articolato nei tre anni per livelli di approfondimento crescente. Si noti tuttavia che, per indurre le auspicate "corrette abitudini" fin dall'inizio e prima che se ne instaurino di scorrette, non sembrano sufficienti ne` dichiarazioni di principio ne` attivita` formali ridotte entro il laboratorio di questo corso ma appare indispensabile un sostegno logistico e di coordinamento didattico, almeno per quanto riguarda "Testing", "Metodologie di sviluppo" e "Documentazione".

In particolare si auspica che in laboratorio gli alunni possano usare fin dal primo giorno semplici strumenti software che li aiutino a produrre i loro elaborati, (un Outliner per le "scalette" dei lavori di Lettere, un Flowcharter per i diagrammi di transizione di Sistemi, ...), e che l'opportunita` di rispettare gli elementari standard formali e metodologici illustrati nel laboratorio di Informatica venga fatta propria e sostenuta dai docenti delle altre materie.

Classe quarta ore 6(3)

OBIETTIVI

Elaborare file ad organizzazione sequenziale.
Applicare con proprieta` tecniche di programmazione modulare.
Applicare il paradigma della programmazione orientata agli oggetti.
Applicare il paradigma della programmazione guidata da eventi.
Progettare e costruire interfacce d'utente amichevoli.
Progettare e costruire moduli significativi per traduttori di linguaggi.
Conoscere ed usare classi notevoli di oggetti contenitori.
Conoscere le basi della compilazione/interpretazione.
Definire e manipolare strutture di dati connesse da puntatori.

CONTENUTI

- La produzione del software

Elementi di analisi della complessita` computazionale. Concetti di astrazione, implementazione, visibilita` minima. Programmazione per moduli. Metodologia di progetto orientata ad oggetti. Interfaccia d'utente e programmazione guidata dagli eventi. Documentazione del software.

- Approfondimenti sulla programmazione imperativa

Strutturazione dei dati vantaggi della tipizzazione. Gestione dinamica dei dati e tecniche di recupero dalla memoria.

Programmazione per moduli. Definizione di nuovi tipi di dato (tipi di dato astratti). File di testo, file non tipizzati, file tipizzati; accesso sequenziale e accesso diretto.

- La programmazione orientata agli oggetti

Oggetto, stato interno, operazioni e loro classificazione, metodo, classe, sottoclasse, polimorfismo, ereditarieta`, genericita`. Metodi di collegamento statico e dinamico di un metodo. Persistenza di un oggetto. Classi notevoli di oggetti contenitori: Insieme, multinsieme, Sequenza con cursore (stream) e sue sottoclassi (ad es. pila e coda) Albero binario, albero, grafo.

- Elaborazione dei linguaggi

Grammatiche e loro rappresentazioni. Generazione e riconoscimento di un linguaggio. Traduttori di linguaggi: nterpretazione e compilazione. Fasi della traduzione (analisi lessicale, sintattica, ..., azioni semantiche). Aspetti notevoli: alberi sintattici, analisi ricorsiva discendente, implementazione non ricorsiva della ricorsione, generazione del codice, ecc.

LABORATORIO

Uso e studio approfondito di un linguaggio per la programmazione imperativa.

Uso e studio di un linguaggio per la programmazione orientata agli oggetti, applicato alla soluzione di problemi significativi. Implementazione di fasi significative della compilazione di linguaggi, anche se elementari. Risoluzione di problemi, anche con linguaggi non procedurali.

INDICAZIONI METODOLOGICHE

Nella classe quarta l'alunno acquisisce le competenze per affrontare progetti di una certa dimensione, fondamentalmente con la metodologia orientata agli oggetti. Nell'adottare un particolare linguaggio che supporti la programmazione orientata agli oggetti si deve comunque avere cura di evidenziarne i liniti rispetto a cio` che e` desiderabile e che si puo` ritrovare in altri linguaggi. Gli archivi si possono eventualmente vedere come particolari oggetti emergenti dal livello del sistema operativo, anche i temi classici sulle strutture dati (sequenze, pile, code, alberi, ...) si possono vedere con il paradigma degli oggetti in un'ottica unificante.

Il tema "Elaborazione dei Linguaggi" ha lo scopo di fornire importanti principi generali ma anche strumenti e occasioni per affrontare problemi di una certa complessita`. E' auspicabile che in questo anno si ponga una certa attenzione all'efficienza delle soluzioni, fornendo qualche minima nozione di analisi della complessita` computazionale degli algoritmi e che si usi qualche strumento in grado di individuare i colli di bottiglia.

Classe quinta ore 6(3)

OBIETTIVI

Scegliere, per rappresentare e gestire un insieme di informazioni, il tipo di organizzazione piu` adatto a seconda dell'applicazione.
Gestire il progetto e la manutenzione di Sistemi Informativi per piccole realta`.
Conoscere i concetti e le tecniche fondamentali per la progettazione di basi di dati.

CONTENUTI

- La produzione del software

Linguaggi di specifica. Costruzione di prototipi. Strumenti software di supporto allo sviluppo del software. Documentazione e presentazione del software.

- Gestione di informazioni

Il progetto dei sistemi informativi. Modellazione concettuale di un sistema informatico (ad es. con il modello entita`-associazioni). Dati e loro significato: intensione ed estensione. Sistemi Basati sulla Conoscenza (KBMS): scarsa estensione e larga intensione (ad es. gli shell per i sistemi esperti). Sistemi per la Gestione di Basi di Dati (DBMS): scarsa intensione e larga estensione. Organizzazione con archivi tradizionali: File sequenziali paginati, File hash, File con indici dinamici ad albero.

- Basi di dati

Concetti generali sulle basi di dati: modello, schema, vista ecc. Il modello relazionale e le sue operazioni. Traduzione dello schema concettuale in uno relazionale. Linguaggi di interrogazione non procedurali. Problematiche in multiutenza. Studio di applicazioni.

LABORATORIO

Sviluppo di un piccolo progetto all'interno della disciplina o di un progetto nell'area elettiva e di progetto. Uso e studio di un linguaggio per basi di dati che contenga anche un sottolinguaggio di interrogazione di tipo non procedurale. Realizzazione di piccoli sistemi informativi.

INDICAZIONI METODOLOGICHE

Al quinto anno le conoscenze e le abilita` apprese negli anni precedenti e nel parallelo corso di SISTEMI consentono di affrontare sia le applicazioni richieste della realta` che lo studio di nuovi paradigmi: si auspicano almeno quello della programmazione delle basi di dati e quello dei sistemi esperti. Nelle applicazioni il paradigma dei DBMS e` destinato ad interagire sempre di piu` con quello della programmazione concorrente per cui e` auspicabile che, almeno in laboratorio, si trovino dei problemi che richiedano la combinazione di entrambi.

Il tema "La produzione del software", trasversale nei tre anni, raggiunge qui la sua completa maturazione. Puo` anzi trovare attuazione in area elettiva e di progetto nella realizzazione di un progetto significativo proposto, se possibile, da un committente vero (nel mondo della scuola o anche all'esterno).

 
Competenze acquisite
     
Domande frequenti
   
LLe classi
Le lezioni
   
III A
I laboratori
   
IV A
     
V A
Materiale didattico
   
III B
Prof. Ferrari
   
IV B
Prof. Ollari
   
VB
Prof. Sacco
   
Prof. Scalari
     
     
Presentazione
Immagini
   
Lab. Informatica
   
Intranet
Lab. Multimediale
   
Archivio software
Lab. Elettronica
     
Lab. Sistemi
   
Aula multimediale
   
Le aule
 
 
     
 
ITIS Leonardo da Vinci Via Toscana 10 Parma www.itis.pr.it