Seconda prova informatica 2013 2014

Seconda prova svolta

Tema di: Informatica generale, applicazioni tecnico scientifiche informatica

Testo valevole per i corsi di ordinamento e per i corsi sperimentali del progetto Sirio

Anno scolastico: 2013/2014

Testo, svolgimento e spiegazione passo passo della seconda prova di esami di stato per l'indirizzo Informatico di un Istituto Tecnico Industriale

visualizza e scarica questa pagina in formato PDF


Testo della prova

[nascondi]

Si vuole creare un sistema per automatizzare la gestione dei percorsi di alternanza Scuola-Lavoro realizzati, a partire dall’anno scolastico 2011/2012, da un istituto tecnico.

I percorsi sono progettati ed attuati in collaborazione con aziende selezionate nel territorio. Per consentire l’inizio delle attività, ciascun Consiglio di Classe dell’istituto nomina un docente referente e seleziona gli studenti che frequenteranno le attività formative in alternanza presso le aziende. Le aziende nominano il tutor aziendale che seguirà gli studenti nel loro percorso di apprendimento. Gli studenti possono essere inviati a più riprese presso le aziende effettuando, in tal modo, più di un periodo di formazione. Al termine del periodo di formazione, il tutor aziendale fornisce al docente referente la valutazione sulle attività svolte dagli studenti. Nella base di dati si vogliono memorizzare i dati degli studenti, con l’indicazione della classe che frequentano, e dei docenti referenti.

Compito delle aziende è indicare il numero di studenti, l’inizio e la durata del periodo di formazione, e rilasciare un attestato di partecipazione che riporta le generalità dello studente, la classe, le attività svolte, la valutazione, i nominativi del tutor aziendale e del docente referente.

Il sistema per automatizzare la gestione dei percorsi in alternanza deve prevedere:

  1. la memorizzazione delle informazioni delle aziende e dei tutor designati da ciascuna azienda e quelle riguardanti i periodi di formazione in alternanza (descrizione, argomento, modalità di svolgimento, ecc);
  2. la gestione dello svolgimento dei periodi di formazione in alternanza (data inizio, data fine, valutazione, ecc.).

Il candidato, fatte le opportune ipotesi aggiuntive, realizzi:

  1. un’analisi della realtà di riferimento individuando le possibili soluzioni e scelga quella che a suo motivato giudizio è la più idonea a rispondere alle specifiche indicate;
  2. uno schema concettuale della base di dati;
  3. uno schema logico della base di dati;
  4. la definizione delle relazioni della base di dati in linguaggio SQL;
  5. le seguenti interrogazioni espresse in linguaggio SQL:
    1. elencare le aziende ed i relativi tutor;
    2. elencare gli studenti delle classi quinte che partecipano all’attività di alternanza, suddivisi per specializzazione;
    3. determinare il numero di studenti che ciascuna azienda ha accolto nell’anno scolastico 2013/2014;
    4. stabilire la classe con il maggior numero di studenti che, nell’anno scolastico 2012/2013, hanno frequentato i percorsi di alternanza;
    5. stampare gli attestati relativi ai periodi di formazione a cui ha partecipato un singolo studente;
  6. l’interfaccia utente che il candidato intende proporre per interagire con la base di dati e codificare, in un linguaggio di programmazione a scelta, un segmento significativo del progetto realizzato;
  7. l’architettura del sito web dell’istituto che presenti alle famiglie ed alle aziende l’attività di alternanza scuola-lavoro.


su

Analisi della realtà di riferimento(bozza)

[nascondi]
Si userà il DBMS MYSQL e il linguaggio php per l'implementazione dell'interfaccia grafica (pagina web) e delle interrogazioni al database. Si ipotizza quindi di poter testare il funzionamento del software in un ambiente preinstallato in locale che comprende una piattaforma integrata di sviluppo web (come ad esempio EasyPhp) contenente:
  • il server web Apache
  • il server di database MySQL
  • un interprete di script php
  • e l'interfaccia grafica phpMyAdmin per la creazione delle tabelle e il test delle query in SQL.

Ipotesi aggiuntive:

  1. si ipotizza che gli stage possano essere fatti solo dalle classi del triennio (terza, quarta, quinta)
  2. si ipotizza che le azioni formative si svolgano nello stesso anno di frequenza della classe (cioè ad esempio la classe terza D informatica dell'a.s. 2012/2013 può svolgere attività di formazione valido nello stesso anno scolastico); in caso di attività a cavallo tra due anni (vedi attività estive) si suddivideranno le attività in due periodi adiacenti (ognuno appartenente al corrispondente a.s.)
  3. si ipotizza che ogni docente possa essere referente di una sola classe
  4. ogni azienda nomina normalmente solo un tutor aziendale ma la progettazione consentirà la nomina anche di più tutor per azienda
  5. lo studente può svolgere più attività formative nella stessa azienda ma in periodi diversi (la progettazione in realtà prevederà anche la possibilità di svolgere attività sempre in periodi diversi ma anche in aziende diverse)
Notazioni:
  • Le attività formative verranno chiamate "azioni formative"
  • per a.s. si intenderà: anno scolastico

Saranno usati gli stessi strumenti per l'installazione del software dopo la fase di test negli host del cliente. Si prevede in particolare l'uso di un computer server (contenente il server web e il motore MySQL e php) e poi l'uso di un computer client in rete col server per ogni punto di controllo contenente l'interfaccia grafica che interagisce col database situato sul server remoto.


su



Schema logico

[nascondi]

La progettazione logica sarà fatta elencando le tabelle e le relazioni tra le tabelle

tabelle:


aziende(idazienda, nome, indirizzo, sitoweb, email, contatti)
tutor(idtutor, nome, cognome, idazienda)
studenti(idstudente, nome, cognome, datanascita, codicefiscale, idclasse)
classi(idclasse, numero, sezione, specializzazione, annoi, annof, idreferente) *1
referenti(idreferente, nome, cognome)
azioniformative(idazione, descrizione, argomento, modo, idazienda, datainizio, datafine)*2
formazione(idstudente,idazione, valutazione)

Note:
^ *1:

  • per numero si intende 3,4,5 a secondo se si tratta rispettivamente di classe terza, quarta, quinta (vedi ipotesi aggiuntive
  • per sezione si userà un campo testuale di 4-5 lettere per consentire sezioni del tipo: DELE; ad esempio: classe 4 (numero), D elettronica abbreviato in DELE. Questo ovviamente non basta ad indicare la specializzazione che è invece inserita appunto nel campo specializzazione e vincolata nell'inserimento tramite CHECK
  • per annoi si intende anno inizio e per annof anno fine; se ad esempio abbiamo: a.s. 2013/2014, allora annoi = 2013 e annof=2014. Questo per consentire una più semplice gestione delle query senza niente togliere alla generalità della progettazione.
  • mettere qui la chiave esterna idreferente ha come conseguenza la possibilità che più classi abbiano lo stesso referente; questo è molto vicino alla realtà e genera una relazione uno a molti tra referenti e classi (un docente può fare da referente in più classi fermo restando che ogni classe ha un solo referente)

^ *2: per modo si intendono le modalità di svolgimento (campo testuale) come da testo della prova.




relazioni:*

Tabella 1Tabella 2Relazionetramite
aziendetutor1-Midazienda
studenticlassiM-1idclasse
referenteclassi1-Midreferente
azioniformativeaziendeM-1idaziennda
azioniformativestudentiM-Nformazione

^ * NB: le relazioni tra le tabelle, sono descritte in maniera non grafica poichè la progettazione concettuale descrive già ampiamente le associazioni tra le entità; ciononostante è opportuno descriverle indicando, per ogni relazione, la maniera nella quale sono collegate, e cioè: o tramite una chiave esterna (nel caso di relazioni uno a uno e uno a molti), oppure tramite un'altra tabella (nel caso di relazione molti a molti). Nella tabella quindi il campo tramite assume proprio: il nome del campo chiave esterna (relazioni 1-1, m-1) o il nome della tabella che fa da "ponte" tra le due. Si intende anche specificare che, la chiave esterna che fa da collegamento (tramite) tra le due tabelle, abbia lo stesso nome della chiave primaria alla quale si collega.

su


Definizione delle relazioni

[nascondi]
in lavorazione su

Query SQL

[nascondi]
  1. elencare le aziende ed i relativi tutor;

    SELECT azienda.nome AS AZIENDA, sitoweb AS SITO, tutor.nome AS 'NOME TUTOR', cognome
    FROM aziende, tutor
    WHERE (aziende.idtutor=tutor.idtutor)
  2. elencare gli studenti delle classi quinte che partecipano all’attività di alternanza, suddivisi per specializzazione;

    SELECT nome, cognome, datanascita, specializzazione
    FROM studenti, classi, formazione, azioniformative
    WHERE (studenti.idclasse=classi.idclasse) and
    (formazione.idstudente=studenti.idstudente) and
    (azioniformative.idazione = formazione.idazione) and
    (classi.numero=5)
    GROUP BY specializzazione

  3. determinare il numero di studenti che ciascuna azienda ha accolto nell’anno scolastico 2013/2014;

    SELECT aziende.nome AS 'AZIENDA', count(idstudente) AS 'studenti a.s. 2013/2014'
    FROM studenti, aziende, formazione, azioniformative, classi
    WHERE (studenti.idclasse=classi.idclasse) and
    (studenti.idstudente = formazione.idstudente) and
    (formazione.idazione=azioniformative.idazione) and
    (azioniformative.idazienda=aziende.idazienda) and
    (annoi=2013) and (annof=2014)
    GROUP BY aziende.nome
  4. stabilire la classe con il maggior numero di studenti che, nell’anno scolastico 2012/2013, hanno frequentato i percorsi di alternanza;

    SELECT concat(classi.numero,' ', classi.sezione, ' ',
    classi.specializzazione) AS classe,
    count(idstudente) AS numero
    FROM studenti, aziende, formazione, azioniformative, classi
    WHERE (studenti.idclasse=classi.idclasse) and
    (studenti.idstudente = formazione.idstudente) and
    (formazione.idazione=azioniformative.idazione) and
    (azioniformative.idazienda=aziende.idazienda) and
    (annoi=2012) and (annof=2013)
    GROUP BY classe
    ORDER BY 2 DESC
    LIMIT 1
    NB: ORDER BY 2 vuol dire orina in base al secondo campo della select (si poteva scrivere: ORDER BY numero)
    ATTENZIONE: questa query funziona solo se i campi numero, sezione e specializzazione sono vincolati a dei valori predefiniti non modificabili dall'utente (ecco perché nelle CREATE TABLE saranno previste tre condizioni di CHECK in AND tra di loro).
  5. stampare gli attestati relativi ai periodi di formazione a cui ha partecipato un singolo studente;

    SELECT studente.nome, studente.cognome, datanascita, codicefiscale,
    concat(classi.numero,' ', classi.sezione, ' ', classi.specializzazione) AS classe,
    tutor.nome, tutor.cognome, aziende.nome AS 'azienda',
    descrizione, argomento, datainizio, datafine, valutazione
    FROM studenti, classi, aziende, tutor,
    azioniformative, formazione
    WHERE (studenti.idclasse=classi.idclasse) and
    (studenti.idstudente = formazione.idstudente) and
    (formazione.idazione=azioniformative.idazione) and
    (azioniformative.idazienda=aziende.idazienda)
    (tutor.idazienda=aziende.idazienda) and
    ( (studenti.cognome=[inserisci cognome]) and
    (studenti.nome=[inserisci nome]) )
NB: le query qui presenti non sono state provate, quindi sono possibili errori od omissioni.
su

Codifica in linguaggio php

[nascondi]
in lavorazione

su

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.