Auguri, per un ottimo anno 2009,
a tutti gli studenti del blog
Con questo blog voglio offrire una nuova opportunità didattica agli studenti, pubblicandovi le mie lezioni, esercizi, soluzioni. Questo blog è a costo zero. Gli studenti coinvolti sono quelli dell'Istituto Tecnico Industriale Statale Alessandro Volta di Perugia
INSERT INTO Docente VALUES(1,'Informatico','A042','didatticaComputer.blogspot.com','computer@mondo.it');
INSERT INTO Docente VALUES(2,'Letterato','A050','didatticaLettere.blogspot.com','lettere@mondo.it');
INSERT INTO Docente VALUES(3,'Matematico','A047','didatticaNumeri.blogspot.com','matematica@mondo.it');
INSERT INTO Docente VALUES(4,'Elettronico','A034','didatticaCircuiti.blogspot.com','elettronica@mondo.it');
INSERT INTO Docente VALUES(5,'Inglese','A346','didatticaLingua.blogspot.com','lingua@mondo.it');
INSERT INTO Studente VALUES( 1,'Tizio','VAL','tizio@libero.it');
INSERT INTO Studente VALUES( 2,'Caio','VAL','caio@libero.it');
INSERT INTO Studente VALUES( 3,'Sempronio','VAL','sempronio@libero.it');
INSERT INTO Studente VALUES( 4,'Qui','VAL','qui@mondo.it');
INSERT INTO Studente VALUES( 5,'Qua','VAL','qua@google.it');
INSERT INTO Studente VALUES( 6,'Quo','VAL','quo@libero.it');
INSERT INTO Studente VALUES( 7,'Paperino','IVAL','pape@tin.it');
INSERT INTO Studente VALUES( 8,'Paperone','IVAL','dollaro@tutto.it');
INSERT INTO Studente VALUES( 9,'Bassotti','IVAL','rubo@galera.it');
INSERT INTO Studente VALUES( 10,'MacchiaNera','IIIBE','macchia@libero.it');
INSERT INTO Studente VALUES( 11,'Paperina','IIIBE','papera@libero.it');
INSERT INTO Studente VALUES( 12,'Topolino','IIIBE','topolino@libero.it');
INSERT INTO Materia VALUES(1,'Informatica','elaborazione dei dati');
INSERT INTO Materia VALUES(2,'Matematica','elaborazione dei numeri');
INSERT INTO Materia VALUES(3,'Lettere','elaborazione dei testi');
INSERT INTO Materia VALUES(4,'Elettronica','elaborazione dei segnali');
INSERT INTO Materia VALUES(5,'Inglese','elaborazione della lingua straniera');
INSERT INTO Modulo VALUES(1,1,'Consolidamento Linguaggio Java','Ripetizione del modulo sui fondamenti del linguaggio java e sui concetti della programmazione ad oggetti','Concetti programmazione oggetti');
INSERT INTO Modulo VALUES(1,2,'Progettazione database,'Introduzione dello schema concettuale e dello schema logico,'Saper disegnare lo schema di un database');
INSERT INTO Modulo VALUES(1,3,'Sql','Studio delle istruzioni del linguaggio Structured Query Language di manipolazione ed interrogazione dei database','Saper costruire un database fisico e saperlo interrogare');
INSERT INTO Programmazione VALUES(1,1,1,1,'0908','1008');
INSERT INTO Programmazione VALUES(2,1,1,2,'1008','1108');
INSERT INTO Programmazione VALUES(3,1,1,3,'1108','1208');
INSERT INTO Voto VALUES(1,'orale',6,'221108','lo schema concettuale',3,1,2,1);
INSERT INTO Voto VALUES(2,'scritto',7,'241108','lo schema concettuale',1,1,2,1);
Esercizi per la classe IVA Liceo Tecnico da fare per domani 12 dicembre 2008
Scrivere le istruzioni per eseguire i seguenti metodi:
Pubblicate la soluzione nel vostro blog.
Buon Lavoro
Schema fisico del database registro dei voti degli studenti.
Trasformiamo lo schema logico nello schema fisico di un database concreto. Scegliamo il database SQLITE per la sua semplicità, per la sua portabilità, perchè non va configurato, perchè un database con tutte le sue tabelle sta in un unico file fisico. Chiamiamolo registroVoti.db
creazione del database fisico
sqlite3 registroVoti.db
definiamo le create table per ogni tabella relazionale del nostro database
CREATE TABLE DOCENTE (idDocente integer primary key, nome text, classeConcorso text, blog text, email text, foto blob);
CREATE TABLE STUDENTE(idStudente integer primary key, nome text, classe text, email text, foto blob);
CREATE TABLE MATERIA(idMateria integer primary key, nome text, descrizione text);
CREATE TABLE MODULO(idMateria integer references MATERIA, idModulo integer, nome text, descrizione text, obiettivo text, primary key(idMateria, idModulo));
CREATE TABLE VOTO(idVoto integer primary key autoincrement, tipo text, voto integer, data text, argomento text, idStudente integer references STUDENTE, idMateria integer references MATERIA, idModulo integer references MODULO, idDocente integer references DOCENTE);
CREATE TABLE PROGRAMMAZIONE(idProgramma integer primary key, idDocente integer references DOCENTE, idMateria integer references MATERIA, idModulo integer references MODULO, mmaaInizio text, mmaaFine text);
Schema logico dello schema concettuale
Per costruire lo schema logico a partire dallo schema concettuale dobbiamo identificare e definire i seguenti elementi:
La prima regola della mappatura ci informa che ogni entità dello schema concettuale diventa una tabella relazionale.
pertanto prima fase del lavoro risulta nell'identificazione delle seguenti tabelle:
Un'ulteriore regola della mappatura ci informa che una relazione dotata di attributi diventa a sua volta una tabella. In questo schema concettuale la relazione "programma" soddisfa quella condizione. pertanto la relazione "programma" diventa tabella, chiamiamola "Programmazione" per nostra comodità. La tabella "programmazione si aggiunge alle precedenti:
La seconda regola della mappatura ci informa che i campi delle tabelle sono esattamente gli attributi delle rispettive entità del disegno concettuale.
La terza regola della mappatura ci informa che le chiavi primarie delle tabelle sono le chiavi primarie delle entità.
La quarta regola della mappatura ci informa che la chiave primaria della tabella corrispondente ad un'entità debole si forma combinando insieme la chiave primaria della tabella dell'entità dalla quale dipende con quella parziale dell'entità debole.
La quinta regola ci informa che per mantenere le relazioni uno a molti nelle tabelle dello schema logico è necessario copiare la chiave primaria della tabella dell'entità dalla parte dell'uno in un campo della tabella corrispondente all'entità dalla parte dei molti e che questo campo duplicato si chiama chiave straniera.
La sesta regola ci informa che una relazione molti a molti o dotata di attributi, come in questo caso la relazione "programma", diventa una tabella associativa avente come chiavi straniere le chiavi primarie delle tabelle delle entità che mette in relazione e come campi gli attributi della relazione.
Da tutte queste regole applicate al nostro schema concettuale deriva la definizione del seguente schema logico:
DOCENTE(idDocente, nome, blog, classeConcorso, email, foto)
STUDENTE(idStudente, nome, classe, email, foto)
MATERIA(idMateria, nome, descrizione)
MODULO(*idMateria, idModulo, nome, descrizione, obiettivo)
VOTO(idVoto, tipo, voto, data, argomento, *idStudente, *idMateria, *idModulo, *idDocente)
PROGRAMMAZIONE(idProgramma, *idDocente, *idMateria, *idModulo, mmaaInizio, mmaaFine)
Database per realizzare un registro informatizzato dei voti degli studenti.
Si vogliono memorizzare i voti degli studenti di un istituto scolastico.
Per ogni voto si vuole conoscere la data, il voto, il tipo di voto, la materia, il modulo, l'argomento della verifica, l'insegnante, lo studente, l'anno scolastico, la classe dello studente.
Per la materia occorre conoscere oltre il nome, i moduli programmati dall'insegnante. Un modulo ha un nome, una descrizione sintetica,un obiettivo, una data di inizio e di fine. Per l'insegnante si vuole conoscere l'email, l'indirizzo del blog, la classe di concorso.
Per la classe IIIA Liceo Tecnico. Vi ricordo il testo dei due esercizi da svolgere per domani.
Numero matricola studente | voto |
1 | 7 |
1 | 8 |
1 | 6 |
2 | 6 |
3 | 8 |
3 | 4 |
4 | 6 |
ossia è una lista ordinata per numero matricola crescente. Quindi tutti i voti per ogni studente sono raggruppati in ordine consecutivo. Ho un gruppo di voti per il primo studente, un altro gruppo di voti per il secondo studente, per il terzo e così via;
Quest'ultimo esercizio assomiglia un pò a quello del Massimo. Infatti anche in questo caso occorre confrontare lo studente correntemente letto con il precedente. Se lo studente è lo stesso il voto va sommato alla somma parziale dei voti precedenti del medesimo studente. Se lo studente cambia...
(pensateci...)
1) Costruisci la classe Rettangolo. Lo scopo è quello di creare degli oggetti Rettangolo di lati a, b.
Scrivi il codice java per la suddetta classe.
Definisci le variabili di istanza.
Definisci il costruttore che richieda come parametri i lati del rettangolo
Definisci il metodo getLati().
Definisci il metodo setLati(...) con i parametri lati per modificare il valore dei lati
Definisci il metodo getArea().
Definisci il metodo getPerimetro().
2) costruisci la classe testaRettangoli
4. scorri l'array con il for e per ogni rettangolo stampa l'area e il perimetro.
1) Costruisci la classe Triangolo. Lo scopo è quello di creare degli oggetti triangolo di base a, e altezza b.
Scrivi il codice java per la suddetta classe.
Definisci le variabili di istanza.
Definisci il costruttore che richieda come parametri base e altezza del triangolo
Definisci i metodi getBase() , getAltezza(), setBase(...) , setAltezza(...)
Definisci il metodo getArea().
2) costruisci la classe TestaTriangoli
4. scorri l'array con il for e per ogni triangolo stampa l'area.
1) Costruisci una classe Cerchio. Lo scopo è quello di creare degli oggetti Cerchio di raggio r.
Scrivi il codice java per la suddetta classe.
Definisci la variabile di istanza raggio di tipo intero.
Definisci il costruttore che richieda come parametro il raggio del cerchio
Definisci il metodo getRaggio().
Definisci il metodo setRaggio(….) con il parametro raggio.
Definisci il metodo getArea().
Definisci il metodo getCirconferenza().
2) Costruisci la classe TestaCerchio nella quale è presente il metodo main(). Lo scopo di questa classe è quello di instanziare alcuni oggetto di tipo Cerchio e di memorizzarli in un Array:
Riepilogo griglia di valutazione: con il punteggio da compilare a cura dell'insegnante.
Analisi e Progettazione della soluzione | Sintesi, completezza ed organicità dei contenuti | Conoscenza dell'argomento | Esattezza delle operazione e/o argomentazioni | Capacità di ricorrere a linguaggi specifici | Validità ed originalità delle scelte |
|
public void getNome(){
return nome;
}
public String setNome(){
nome=n;
}
nota bene la somma di tutti i punteggi è 106 superiore a 100 ! (bonus di 6 punti)
Contenuti del modulo
| Obiettivi specifici |
|
Saper riconoscere le entità, gli attributi e le relazioni di un dominio del quale occorre progettare il database.
Saper disegnare lo schema concettuale con il metodo grafico entità-relationship a partire dall'analisi del testo del problema del dominio
Saper fare il mapping, ossia trasformare lo schema concettuale entità relazionale nelle corrispondenti tabelle relazionali del database.
Saper attribuire la chiave straniera (esterna) alla tabella giusta in fase di mappatura.
Applicare la metodologia della progettazione |
tempi previsti dal 15 ottobre 2008 al 15 novembre 2008 ore 25
modulo:
Principi degli Algoritmi
Contenuti del modulo
| Obiettivi specifici | Metodi didattici | Strumenti | Verifiche | |
|
| x Lezioni frontali
x Problem solving
x Esercitazioni di Laboratorio
x Discussione Guidata
x Studio di casi x Uso del Blog
| x Libro di testo
x Appunti del docente
x Ricerche su internet
x Materiali sul blog del docente e degli studenti
| x Colloquio orale
x Questionario chiuso x Problem solving
x Esercitazioni pratiche
|
tempi previsti dal 11 ottobre 2008 al 15 novembre 2008 per un totale di 15 ore.
Contenuti del modulo
| Obiettivi specifici | Metodi e strategie didattiche | Strumenti | Verifiche |
|
|
x Problem solving
x Attività Progettuale
x Esercitazioni di Laboratorio
x Discussione Guidata
x Studio di casi
| x Libro di testo
x Appunti del docente
x ambiente di sviluppo java
x analisi di sorgenti di programmi esistenti
x blog insegnante e studenti
| x Colloquio orale
x Composizione Scritta
x Problem solving
x Esercitazioni pratiche
|