Scheda PROGRAMMATORE A. Connotazioni generali dell'intervento A.1 Soggetto promotore: Associazione GIU.L.I.A A.2 Tipologia formativa: Il livello- Qualifica di programmatore A.3 Durata intervento : n° 500 ore A.4 Requisiti di ammissione: -età: 18° anno compiuto -titolo di studio : diploma di scuola secondaria superiore. B. Struttura dell'intervento formativo B.1 Profilo professionale B.1.1 Professione: Programmatore Java B1.1 Settore di attività Descrizione delle attività lavorative abitualmente espletate dalla figura professionale in oggetto. E' IN GRADO DI: - Realizzare in maniera efficiente ed economica i programmi e curarne la perfetta funzionalità predisponendo tutti i controlli necessari al fine di garantire l'esatta esecuzione. - Esaminare i diagrammi a blocchi delle procedure, - Preparare i diagrammi a blocchi dei programmi da realizzare. - Implementare in linguaggio Java un prodotto software descritto da un documento di progetto dettagliato sfruttando al meglio le potenzialità del linguaggio. - Effettuare la stesura e l'aggiornamento della documentazione relativa ai programmi. - Garantire che tutti i file siano utilizzati nel modo stabilito dagli standard. - Ottimizzare la realizzazione dei programmi secondo le norme in atto e documentarli, al fine di ottenere programmi facilmente gestibili nella fase di manutenzione. - Assicurare che la registrazione dei programmi a lui affidata sia conforme al vincoli degli standard - Osservare tutti gli accorgimenti prescritti per la sicurezza delle lavorazioni alle quali è addetto, utilizzare correttamente i presidi antinfortunistici e segnalare eventuali carenze ed inosservanze, mantenere, in tale ambito, le prescritte c/o necessarie condizioni igieniche. B.1.2 ATTIVITA’ B.1.2a Definizione delle capacità operative (saper fare): Fornire un'analisi di un problema e del prodotto software in grado di automatizzare la soluzione. Codificare in linguaggio Java un prodotto software descritto da un adeguato progetto dettagliato. 1 Verificare il corretto funzionamento del prodotto sviluppato ed eventualmente procedere alla rimozione dei difetti evidenziati durante le prove effettuate sul prodotto. B.1.2b Definizione delle conoscenze (sapere): Fondamenti di informatica e degli strumenti offerti dai sistemi operativi. Cielo di vita del software, cenni alle principali metodologie di progetto (process oriented, data oriented, object oriented). Programmazione object oriented. Linguaggio Java Struttura di un'applicazione con interfaccia grafica. B.2 ARTICOLAZIONE: cielo unico di 500 ore . Area Tecnico-Operativa (saper fare) . LABORATORIO DI TECNICA PROFESSIONALE . Disciplina n° l: Fondamenti Informatici e sistemi operativi. (20 ore) Obiettivi specifici: . Fornire le conoscenze teoriche indispensabili per poter sfruttare gli strumenti offerti dal sistema operativo e per sviluppare algoritmi complessi. Alla fine del modulo il corsista conoscerà: Struttura di un PC Struttura e scopo di un sistema operativo I comandi fondamentali per l'interazio ne con sistemi operativi con interfaccia a carattere (MS-Dos) e grafica (Windows) I fondamenti della logica matematica. Struttura di un microprocessore e cenni di Assembly Intel 80x86 Contenuti Specifici: Elementi costitutivi di un PC: processore memoria principale e memoria di massa schede di espansione e periferiche. I comandi fondamentali per l'interazione con MS-DOS: configurazione del sistema gestione dei file avvio di programmi. I comandi fondamentali per l'interazione con Windows: configurazione del sistema gestione di file e risorse 2 avvio di programmi Elementi costitutivi dell'interfaccia di un'applicazione con interfaccia grafica: denominazione funzionamento uso. Fondamenti della logica matematica: tabelle di verità calcolo delle proposizioni. Struttura di un microprocessore Linguaggio Assembly per processori Intel 80x86. Esercitazioni: - Assemblare e configurare un PC Configurazione del PC Interagire efficientemente con il sistema operativo Analisi dei problemi reali Uso di un sistema operativo a caratteri e finestre. Costruzione tabelle di verità . Area Tecnico-Operativa (saper fare) . Disciplina n° 2: Linguaggio C (180 ore) Obiettivi specifici: - Fornire una adeguata competenza sul linguaggio di programmazione C, di tipo procedurale. Alla fine dei modulo il corsista conoscerà: La sintassi e la semantica del linguaggio C I servizi offerti dalle principali librerie fornite con il linguaggio C Contenuti specifici. - Le origini del linguaggio C L'aspetto di un programma C Le espressioni 1 tipi di dati principali Le variabili 1 modificatori di accesso Specificatori di classe Inizializzazione delle variabili Le costanti Gli operatori Gli array e le stringhe I puntatori 3 - Funzioni di allocazione dinamica del C Le funzioni Regole e visibilità delle funzioni L'istruzione return Ricorsione Le strutture Gli array di strutture 1 puntatori a strutture 1 campi Bit Le unioni Le enumerazioni Le operazioni di 1/0 da console La funzioni printf() La funzione scanf() Operazione di I/O da FILE Principi di funzionamento del file system Gli stream standard Il preprocessore (dírettíve: #define-#error;#ifdef;#include……) Linking Tecniche procedurali di debugging. Esercitazioni: - Ciclo di vita del software: studio del problema, realizzazione grafi di flusso, flow chart - Codifica di programmi C a partire da progetti procedure oriented. - Test Debugging e correzione dei programmi C. . Area Tecnico-Operativa (saper fare) . Disciplina n° 2: Linguaggio Java (200 ore) Obiettivi specifici: Fornire un'adeguata competenza sul linguaggio Java, di tipo object oriented. Alla fine dei modulo il corsista conoscerà: La sintassi e la semantica del linguaggio Java 1 servizi offerti dalle principali librerie fornite con il linguaggio Java Contenuti specifici: Introduzione al Java Meccanismi Uso degli Oggetti Print Stream La classe string Variabili di riferimento 4 Utilizzo delle classi Creazioni di oggetti Gli ingressi L'ingresso da file su disco Introduzione all'elaborazione in rete Definizioni di classi Progettazioni di classi Specifica di una classe Interactive 10 Variabili dichiarazioni e istruzione return Implementazione della classe Name Applet, disegno e creazione di controlli Elaborazione numerica Controllo del comportamento Esecuzione condizionale Il tipo boolean e le espressioni con valore booleano Come rispondere al controlli Verifica del comportamento degli oggetti Categorie di errori Driver dio verifica Verifica automatica Tecniche di debug Oggetti multipli Strutture di ciclo Vettori Interazione Progetto di cicli Contatori Accumulatori ed esterni Il ciclo for, i cortocircuiti,breack e continue Organizzazione degli oggetti Introduzione agli array Ricorsione con Vector, array e string Le torri di Hanoi Classi e metodi astratti Eccezioni Esercitazioni: Cielo di vita del software: studio del problema, realizzazione grafi di flusso, flow chart Codifica di programmi Java a partire da progetti object oriented Test, Debugging e correzione dei programmi Java. .Area Tecnico-Scientifica (sapere) 5 .Disciplina n° l: Tecniche di programmazione (80 ore) Obiettivi specifici: Fornire una adeguata competenza orientata agli oggetti, nonché le conoscenze di base sul ciclo di vita del software e le tecniche di progetto e validazione. Alla fine del modulo il corsista conoscerà: Il ciclo di vita del software. Tecniche di progetto e programmazione, data oriented, procedure oriented e object oriented. Gli strumenti di specifica e documentazione del progetto software. Tecniche di base di validazione del prodotto software. Contenuti specifici: Modelli del ciclo di vita del software: Bulld&FIX Waterfall. Concetti di base dell'ingegneria del software: riuso manutenibilità trasportabilità Programmazione data oriented. Tecniche di rappresentazione delle relazioni fra dati. Programmazione procedure oriented. Tecniche di rappresentazione degli algoritmi. Programmazione object oriented. Tecniche di rappresentazione di un progetto basato sugli Oggetti. Tipi di dati fondamentali e loro implementazione secondo i vari tipi di programmazione: pile, liste, code, alberi, grafi. Algoritmi fondamentali: ordinamento, scansione. Tecniche di programmazione fondamentali: divide et impera branch and bound greedy back tracking. Metodologie di base per l'individuazione dei potenziali punti deboli del progetto e per la predisposizione di un piano di test per la validazione del prodotto software. . Area Socio-Culturale . Disciplina n° l: Organizzazione e disciplina di settore. (20 ore) Obiettivi specifici: 6 Fornire le conoscenze legali necessarie all'attività nel settore informatico. Alla fine del modulo il corsista conoscerà: La legislazione sociale Il contratto collettivo nazionale di lavoro del settore La normativa riguardante la tutela della salute e la sicurezza dei lavoratori nell'ambiente di lavoro Le fonti normativa specifiche del settore. Contenuti specifici: Il rapporto di lavoro subordinato Il contratto di lavoro Tipologia Contenuto Effetti Il collocamento dei lavoratori Assunzione, inquadramento professionale, svolgimento, risoluzione del rapporto. Gli enti di Previdenza INPS, INAIL: contribuzione rischi assicurati prestazioni erogate La vigilanza sulla applicazione delle leggi in materia di lavoro La sicurezza sul lavoro: normativa antinfortunistica, il decreto legislativo 626/94 Norme sulla sicurezza degli impianti: L. 5/3/90, n° 46; D.P.R. 5/12/91 . n° 477: regolamento di attuazione Smaltimento dei rifiuti tossici. 7 1.1 La sicurezza sul lavoro: normativa antinfortunistica Unità Durata Contenuti Didattiche 1 2 ore Aspetti generali del D. lgs. 626/94: la prevenzione degli infortuni e l’igiene del lavoro 2 2 ore I soggetti della prevenzione Il medico competente; Il datore di lavoro, i dirigenti e i preposti; Il rappresentante dei lavori per la sicurezza; I lavoratori addetti al pronto Soccorso, antincendio, evacuazione Obblighi, responsabilità sanzioni 3 2 ore Il medico competente; la prevenzione e la sorveglianza sanitaria 4 2 ore Il ciclo produttivo del comparto e i principali rischi specifici Misure di prevenzione collettiva presenti sul posto di lavoro 5 2 ore Procedure riferite alla mansione Rischi connessi alla propria mansione / posto di lavoro Dispositivi di Protezione Individuale obbligatori Obblighi, responsabilità, sanzioni 6 2 ore Il servizio di prevenzione / protezione I lavoratori incaricati dell’attività di pronto soccorso , di lotta antincendio e di evacuazione dei lavoratori I piani di emergenza Il soccorso antincendio L’evacuazione 8 C. Prova finale PROVA PRATICA Primo linguaggio - (durata massima: 6 ore): Realizzare, sulla base di dati forniti, un programma in grado di trattare un archivio dati che possa permettere le seguenti funzioni: creazione e definizione della struttura dell'archivio dati, inserimento, modifica , cancellazione di dati all'interno dell'archivio, manipolazione dei dati all'interno dell'archivio (ordinamento, selezione etc.), realizzando: i diagrammi a blocchi, una stampa dei codice, il programma eseguibile con i dati inseriti nel file, il risultato delle stampe effettuate dal programma. Secondo linguaggio (durata massima 3 ore) Apportare alcune modifiche ad un programma già realizzato 'm gruppo con l'utilizzazione del secondo linguaggio intervenendo su programmi o parti di programma eseguiti da terzi tramite: modifiche dell'interfaccia grafica, inserimento / modifica di un form di accesso ai dati. Colloquio: su tutte le discipline del corso Il raggiungimento degli obbiettivi formativi viene certificato al termine del corso mediante: Prova teorico-pratica: avente per oggetto lo sviluppo (analisi, codifica, test e correzione) di un programma in linguaggio java. 9 Colloquio: relativo ad argomenti fondamentali trattati nell'ambito degli insegnamenti teorico impartiti durante il corso con speciale attenzione alla loro applicazione da parte del candidato nello svolgimento della prove teorico-pratica. Al superamento di tale prova verrà rilasciato il seguente certificato: Attestato di qualifica professionale Programmazione Formativa Descrizione del processo formativo Numero di cicli: 1 Durata in ore del ciclo: 500 Discipline e moduli: Arca tecnico operativa (Saper fare) Fondamenti informatici e sistemi operativi. l° Linguaggio C 2° Linguaggio di programmazione Java Durata ore + esercitazioni + esercitazioni TOTALE 20 180 200 400 Arca Tecnico scientifica (Sapere) Tecniche di programmazione 80 TOTALE 80 Area socio culturale Organizzazione e disciplina del settore 20 TOTALE 10 20 11