Informa(on Systems & Compu(ng Pedagogical Prac(ces 1° TFA Workshop Classi A042 & A034 Chair: Prof. Daniela Giordano Catania, 4-­‐5 Marzo, 2013 Programma (4 marzo) Opening (27 Febbraio, 2013) Insegnare Basi di da; con un approccio mul;disciplinare Salerno Francesca Session I (4 Marzo, 2013) Dal "just in ;me teaching" al mul;media per le basi di da; Carmeni Andrea e Petralia Giuseppe Strumen; e risorse per un corso di basi di da;: accessibili e u;li? D'Accurso Lorenzo SQL: dall'integrazione alla personalizzazione dei media "intelligen;" Orto Barbara Il fascino del moderno: "MeTube" e database mobili Finocchiaro Carlo e Giudice Oliver Dai design paJerns per DB al Problem Based Learning: closing the loop? Milazzo Vincenzo Discussione e Chiusura della 1° Sessione Programma (5 marzo) Parte I -­‐ i fondamen( Modelli mentali e difficoltà dei programmatori novizi Beninato Angela e Umana Elena Insegnare la programmazione: un survey e nuove fron;ere Faia Irene e Ventura CrisEna Metafore, Analogie e Spiegazioni: insegnare gli algoritmi Buscarino Arturo e Pappalardo Fulvio Livio La programmazione Web: cosa cambia? Abbate Giuseppe Parte 2 -­‐ Giochi e Simulazioni "Games first": un approccio metodologico? Lombardo CrisEan e Re Giovanni Giochi per insegnare struJure da; Nicolosi Giuseppe e Scalisi Paolo Dai Giochi alle Simulazioni per insegnare Sistemi Opera;vi Cacopardo Paolo e Galizia Vincenzo Presentazioni Introducing
multidisciplinary thinking in
Computer Engineering:
A new way of teaching
database system
(Claudia Bauzer Medeiros, Peter Baumann e
Constantin Jucovschi)
Francesca Salerno
Sperimentato presso l'Università di
Campinas in Brasile per:
 Attirare un più ampio numero di studenti nelle Università
Rispondere al crescente bisogno di manodopera
qualificata dell'area
 Mostrare agli studenti come applicare ciò che
apprendono in contesti diversi da quelli in cui si è appreso
 Periodo temporale e utenza
 Primo semestre 2009 (4 mesi):
90 ore divise in 6 ore/settimana di cui 2 di laboratorio
lezioni diurne / serali
65 studenti del secondo anno di Università e studenti
lavoratori che hanno già seguito i corsi di programmazione,
strutture dati e sistemi operativi
 Obiettivo principale
Nuova visione dei database, mostrando agli studenti
come possono combinare ciò che apprendono dal corso
con ciò che hanno visto nelle altre materie
  Piattaforma sperimentale Rasdaman:
sistema DB open-source sulla gestione di dati raster
multidimensionali che offre la possibilità di effettuare
diversi tipi di interrogazione sui dati immagazzinati e
gestiti con un DBMS (PostgreSQL).
rasql
 SQL-like
Estende le capacità di estrazione di SQL per le
immagini, dati statistici, sensori multidimensionali
 Modalità di insegnamento
  Approccio tradizionale (credit-based) basato su:
modeling e design → prevede due corsi separati dedicati
uno alla risoluzione delle richieste dell'utente (userrelated problems) e uno dedicato all'ottimizzazione
interna del DB (implementation issues)
Approccio project-based learning:
insegnare agli studenti il team-work assegnando un
problema da risolvere progettando e implementando un
DB e poi sviluppando al top il sistema informativo
accessibile all'utente finale
Modalità di insegnamento
UNICAMP
Combinare i due punti di vista cosicché gli studenti
possono utilizzare il materiale del corso sui DB come
perfezionamento o punto di partenza di altri corsi
 Ciascun argomento del corso è introdotto da esempi e
motivazioni che evidenzino la relazione che esiste tra ogni
tema affrontato e le altre materie
 Ostacolo
Come combinare due obiettivi che tra loro sono in
conflitto:
 1) Fornire tutte le informazioni base del corso
2) Introdurre problematiche sullo stato dell'arte o nuovi
scenari per preparare gli studenti alla loro vita
professionale
Soluzione della UNICAMP
 L'UNICAMP introduce :
nozioni di grado avanzato nel corso base di DB
 utilizzo di Rasdaman nelle attività pratiche stimolando
l'interesse degli studenti con “use cases” di natura
scientifica
 NON-STANDARD QUERIES
Per eliminare l'associazione mentale degli studenti per
cui DB=SQL, UNICAMP propone:
 Non-classical data
Utilizzo di immagini e altro memorizzati come dati raster di
una certa dimensione e tipo di cella (pixel, voxel)
Dati raster nel contesto radioastronomico nelle simulazioni
cosmologiche, simulazioni oceani, anche nella psicologia
(analisi quantitativa dell'emozione)
 Rasql overview
Si centra su array n-dimensionali che possono essere di
qualsiasi dimensione, estensione spaziale e tipo
 Un DB rasdaman è costituito da un set di tabelle dove
ciascuna tabella contiene un attributo singolo dell'oggetto
array
 Rasql è un linguaggio algebra-based che estende lo
standard SQL92
 Interrogazione DB con Rasql
Estrarre immagine 3-D nell'istante 1020 da una collezione
ClimateCubes che contiene cubi 4-D:
 SELECT cc [1020, *:*,*:*,*:*]
FROM ClimateCubes AS cc
Estrarre un ritaglio da immagine satellitare della collezione
LandsatArchive:
 SELECT img.scene.green [x0:x1, y0:y1]>130
FROM LandsatArchive AS img
WHERE some_cells (img.scene.nir >127)
Storage and Processing
Lo storage:
ciascun tile è memorizzato come BLOB (binary large object)
in un sistema di database relazionale come PostgreSQL
Il processamento:
i nodi leggono i dati tile per tile,
li processano e passano il
risultato al nodo più alto.
Permette il processamento di
array di dimensione illimitata
senza limitazioni di memoria
Opinione dei corsisti
Appreso nuovi concetti
 Compreso che i sistemi DB non sono limitati alle
transazioni tuple-oriented
 Compreso che i DB sono utili anche per la trattazione di
altre materie come la geometria computazionale o
l'algebra lineare
 Pro e Contro
Pro
 Superamento dell'idea
DB =SQL
Utilizzo di esempi visivi
molto suggestivi
 A pproccio orientato al
problema (PBL)
 Contro
 Conoscenza poco
esaustiva dei DB
Esigenza di fornire le basi
di programmazione, sistemi
operativi, strutture dati e
elaborazione immagini
  Trattazione di problemi
riscontrabili in geografia,
biodiversità e fisica
 Istituti tecnici superiori?
Appendice
www.rasdaman.org da cui poter effettuare il download della
piattaforma con una community di supporto
www.rasdaman.com con archivio aggiornato delle ultime
news e ultimi progetti
TFA Classe A042
Didattica e laboratorio dei sistemi informativi
4/3/2013
Docente: Prof.ssa D. Giordano
Dal “Just in Time Teaching” al
multimedia per le basi di dati
Andrea Carmeni e Giuseppe Petralia
Just-In-Time Teaching
Domanda:
Avete mai provato un leggerissimo senso di
frustrazione seguendo una lezione su un argomento
del tutto nuovo?
Page  2
Just-In-Time Teaching - Idea di base
●
●
●
●
Ricerca effettuata presso Universidad de Costa Rica, San José, Costa
Rica
Assegnare agli alunni dei lavori out-of-class sull'argomento (chiamati
“Warm-Ups“) della lezione del giorno successivo.
Il professore può personalizzare l'imminente lezione sulla base
dell'analisi dei risultati ottenuti nei warm-ups.
Lo studente può trarre maggiore beneficio dalla lezione avendo già una
“infarinatura” sull'argomento da trattare.
Page  3
Just-In-Time Teaching – 1° Implementazione
●
Lettura per casa.
●
Test a risposta multipla e a risposta breve.
Infine si chiedono allo studente eventuali dubbi e/o domande
sull'argomento
●
PRO
●
Risposte multiple corrette
automaticamente (lato
Insegnante)
CONTRO
●
●
Page  4
Gli studenti leggevano solo le
parti utili a rispondere al test.
Impossibilità per l'insegnante
di rilevare “illecite
collaborazioni” tra gli studenti.
Just-In-Time Teaching – 2° Implementazione
●
Lettura per casa.
●
Solo domande a risposta aperta.
Infine si chiedono allo studente eventuali dubbi e/o domande
sull'argomento ed in assenza di essi indicare i punti fondamentali
trattati nella lettura.
●
PRO
●
●
Page  5
Si obbliga lo studente a
leggere l'intera lettura.
Non è possibile copiare la
risposta aperta di un altro
studente
CONTRO
●
Molto oneroso il lavoro di
analisi delle risposte da parte
dell'insegnante
Active Learning
●
Il Just-In-Time Teaching viene spesso utilizzato in associazione al Peer
Instruction, formando così una metodologia di insegnamento di tipo
Attivo
Cos'è il Peer Instruction
L'insegnante stimola una discussione attiva tra gli studenti.
1) L'insegnante pone una domanda sulla base delle risposte degli studenti alla lettura pre-class
2) Gli studenti riflettono sulla domanda
3) Gli studenti danno una risposta individuale
4) L'insegnante analizza le risposte
5) Gli studenti ragionano con i pari sulle risposte
6) Gli studenti rispondono nuovamente alla domanda
7) L'insegnante dall'analisi delle ultime risposte decide se la classe necessita di altre spiegazioni o si
può andare avanti
Page  6
Just-In-Time Teaching – Risultati ottenuti
Students' perspective
●
●
La maggior parte degli studenti
(> 90 %) concordano
sull'efficacia dell'approccio
utilizzato.
Commenti negativi:
●
●
Page  7
Alcuni ammettono di aver
letto solo le parti
necessarie a rispondere
al test.
Alcuni lo ritengono valido
solo per argomenti non
eccessivamente
complessi.
Teacher's perspective
●
I risultati ottenuti agli esami
dagli studenti dopo
l'applicazione del JiTT
mostrano un significativo
miglioramento.
Media voti
Senza JiTT
1° Implement.
2° Implement.
8.0
8.5
9.0
Just-In-Time Teaching – Pro e contro
PRO
●
Maggior efficacia della lezione:
–
Lezione personalizzata sulla classe.
–
Studenti maggiormente predisposti all'apprendimento.
●
Accresciuto interesse da parte dello studente.
●
Applicabilità dell'approccio a diverse discipline.
CONTRO
●
Gestione dei “warm-ups”
Page  8
IDLE – Interactive Database Learning Environment
Domanda:
Avete mai desiderato di avere un tutor individuale
sempre a vostra disposizione durante gli studi?
Page  9
IDLE – Interactive Database Learning Environment
●
Idea di base: realizzazione di un tool per l'apprendimento delle abilità
necessarie alla progettazione e allo sviluppo di un Database rivolto a
studenti universitari.
Sviluppato da un
gruppo di ricercatori
della
Dublin City University
School of Computing
Metodo pedagogico utilizzato:
Virtual Apprenticeship Approach
Associato ad un approccio:
Learning-by-do
Page  10
IDLE – Interactive Database Learning Environment
●
Funzionalità:
●
Lectures: per acquisire le conoscenze teoriche anche attraverso il
supporto di contenuti multimediali;
●
Tutorials: per acquisire le conoscenze procedurali sull'utilizzo del tool;
●
Labs: per acquisire le abilità
Page  11
●
Data modelling
ER editor
●
Manipolazione del db
SQL processor
IDLE – Applicabilità dell'approccio
●
Si adatta ad un corso di database perché lo studente deve:
●
Acquisire conoscenze (Data modelling, algebra operator).
ma soprattutto
●
Acquisire Abilità: il corso di db è skills-oriented. Lo studente deve
imparare a progettare ed implementare un db acquisendo
padronanza delle operazioni per la manipolazione del db.
È necessaria una fase di training per testare le
conoscenze acquisite. Il supporto fornito dal tool in questo
caso è molto più adeguato dell'approccio tradizionale.
VS
Page  12
IDLE – Punti di forza
●
Personalizzazione del percorso di apprendimento tramite la presenza di
due livelli:
●
●
Per studente novizio;
Per studente avanzato (Salta la fase iniziale delle Lectures e va
direttamente ai Labs)
●
Integrazione di diversi educational media (audio, video, animations)
●
Utilizzo di una piattaforma web:
●
●
È più accattivante per lo studente;
È più fruibile: lo studente sceglie quando e per quanto tempo
utilizzarla.
Verifica immediata delle conoscenze acquisite: Sql processor con
feedback
e suggerimenti.
Page
 13
●
IDLE – Punti di debolezza
●
Assenza di controllo sulla coerenza dell' ER model con il problema posto.
….suggerimento...
Creazione di un modulo per l'interazione studente-professore
per
●
Page  14
Assegnare un problema allo studente e verificare la correttezza
della soluzione proposta.
Conclusioni
Per superare i punti di debolezza delle due metodologie, IDLE e Just-InTime Teaching potrebbero essere utilizzati insieme.
●
●
L'utilizzo di IDLE sostituisce i warm-up del JITT.
Page  15
Didattica e laboratorio dei sistemi informativi
Prof.ssa Giordano Daniela
Impiego di risorse digitali accessibili
per l’insegnamento della
progettazione di DB
D’Accurso Lorenzo
Introduzione
• Indirizzo della piattaforma di apprendimento di riferimento
– http://www.cesya.es/web_pid/login.php
• Impiego di risorse digitali orientate alla didattica:
– per la formazione a distanza
– a supporto dell’apprendimento
• Accessibilità alle risorse digitali ad ampio raggio di categorie di utenti
Contributi all’accessibilità
• La progettazione di risorse digitali orientate all’insegnamento deve
garantire l’uso diretto ed efficace delle stesse risorse
• La progettazione di risorse digitali didattiche avviene seguendo criteri
standard di accessibilità
• Linee guida per lo sviluppo di applicazioni digitali di apprendimento
accessibili
– IMS
• fornisce direttive sulla formazione a distanza e sull’accesso facilitato di una
piattaforma didattica
• Si prefigge di riparare lo squilibrio tra le risorse di sistema e le esigenze degli utenti
– WC3 (World Wide Web Consortium)
• Tenta di universalizzare tecnicamente le piattaforme digiltali di apprendimento
annullando le barriere di usabilità ( per tecnologia, categorie di utenti, manutenzione
della piattaforma)
– WAI Web Accessibility Initiative
Criticità dell’accesso alle risorse
• Difficoltà di accesso a contenuti Web per utenti con disabilità
• Esigenze di accessibilità dei diversi profili di utenti che utilizzano il sito
web
• Necessità di risoluzione delle problematiche di accessibilità fin dall'inizio
del processo di progettazione e sviluppo di una piattaforma di
apprendimento
Descrizione della piattaforma
• Linguaggi di programma utilizzati:
– eXtensible Hypertext Markup Language (XHTML)
– Cascading Style Sheets (CSS)
• Linee guida di accessibilità adottate:
– WCAG 1,0
• La piattaforma è stata concepita tenendo conto che una parte degli utenti
registrati possa presentare disabilità
• La piattaforma offre la stessa risorsa in diversi formati digitali (Wmv, rm, mov,
mp3, txt, ecc)
• Ogni materiale digitale comprende due unità didattiche (teorica e pratica): ogni
unità è suddivisa in tre video in ordine sequenziale con durata approssimata di
ciascuno di 30 minuti.
• I video sono registrazioni di lezioni di classe tradizionali in cui l'insegnante
spiega la struttura e la progettazione dei database.
Risultati e conclusioni
• I dati relativi all’interazione degli studenti con la piattaforma, tratti dai
questionari di soddisfazione) sono impiegati per migliorare l’usabilità e
accessbilità della piattaforma
• La piattaforma ha raggiunto tra gli studenti una certa popolarità
• Ogni studente registrato nel sistema conclude l’apprendimento in più
accessi
• I formati delle risorse digitali preferiti dagli studenti sono di tipo:
– Wmv (51,83%) streaming
– Txt o Pdf (29,28%) testo
– Mp3 (6,59%) audio
• Oltre il 95% degli studenti della piattaforma supera le prove di valutazione
proposte
Strumenti digitali per
l’insegnamento dei Database
Introduzione
• La piattaforma è stata ideata e resa fruibile a qualsiasi studente dalla “
Open University Milton Keynes”
• Si tratta di una piattaforma di simulazione di tipo interattiva per
l’apprendimento della progettazione e l’uso di DB
– Il simulatore accompagna l’utente attraverso le varie fasi di sviluppo di un
esercizio incentrato su specifi aspetti che rigurdano l’implementazione e
l’impiego di un database relazionale
– Lo sviluppo di buona parte delle attività sulla piattaforma avviene per icone a
prescindere dal potenziale linguaggio di programmazione adottabile per la
realizzazione di una applicazione DB
Attività di apprendimento principali
del simulatore
• Entità-relazioni e tabelle
• SQL
• Dipendenze funzionali
• Normalizzazione
Entità-relazioni e tabelle
• L’interfaccia grafica
– Comprende 3 aree attraverso le quali è possibile selezionare e visualizzare il
database e le singole tabelle di cui si compone
• Gli esercizi proposti
– Selezionare e richiamare un data-base
– analizzare le tabelle di cui si compone un DB in termini delle condizioni di
partecipazioni ammesse
• Conoscenze e abilità apprese dagli studenti
– Utlilità dell’impiego di chiavi primarie per la scrematura delle masse di dati
archiviate in un database
SQL
• L’interfaccia grafica
– È composta da 2 aree di testo usate rispettivamente per la visualizzazione del
contenuto di un data-base interrogato per data query e per l’immissione di una
query
– I database su cui esercitarsi possono essere richiamati da una libreria di
database che la piattaforma rende disponibili o creati
– E’ possibile corredare le query di opportuni comandi o clausole (SELECT,
ORDER,etc.)
– Il simulatore, relativamente allo svolgimento di un esercizio, mostra tutti i
passaggi logici dell’elaborazione per determinata richiesta di query
controllandone il corretto inserimento
• Conoscenze e abilità apprese dagli studenti
– Sperimentazione di query già preparate oppure da strutturare
– Modalità di costruzione di query ammissibili dal punto di vista logico e
sintattico per il database
Dipendenze funzionali
• L’interfaccia grafica
– E’ composta da tre aree che visualizzano i risultati rispettivamente di singoli,
doppi e tripli determinanti (condizioni) di ricerca di dipendenze funzionali
all’interno di una tabella di un DB
– I comandi resi disponibili dalla interfaccia permettono:
– la selezione delle tabelle dei DB su cui operare
– l’inserimento dei determinanti
– l’avvio o la ripresa dello svolgimento di un esercizio
• Gli esercizi proposti
– E’ possibile testare un determinante sulle colonne di una tabella di un DB.
L’eventuale correlazione tra la colonna e il determinante è rilevata dal
simulatore attraverso una notifica
• Conoscenze e abilità apprese dagli studenti
– Comprendere il significato e l’utilità delle chiavi primaria e secondaria
Normalizzazione
• L’interfaccia grafica
– Mostra la mole di dati di un database, i passaggi per lo svolgimento di un
esercizio attraverso opportuna interfaccia, che consistono in una selezione e
ricombinazione di colonne di una tabella.
• Gli esercizi proposti
– Esecuzione della normalizzazione di un DB
• Conoscenze e abilità apprese dagli studenti
– Scomposizione di tabelle in sottotabelle per l’eliminazione delle ridondanze
delle informazioni
Software impiegato
• Sybase per le applicazioni su SQL relativamente al corso in oggetto (Open
University Database relazionali)
• Fonte dati ODBC per le banche dati utilizzate
• Applicazioni su Exel e Access
Conclusioni
• Vantaggi dell’apprendimento
assistito attraverso risorse
digitali
– Valido supporto in fase di
potenziamento dei
fondamenti della discplina da
parte del discente
– Apprendimento a distanza
– Valido sostegno
all’apprendimento degli
studenti diversamente abili
per il carattere multimediale
delle risorse digitali
• Svantaggi dell’apprendimento
assistito attraverso risorse
digitali
– Necessità di adattare in
funzione del livello di
istruzione degli studentiutenti la fruizione delle
risorse digitali
– Assenza del rapporto umano
docente-discente
indispensabile alla crescita
formativa ed educativa dello
studente
Link e bibliografia
• “SimplDB” sistema multi-utente in java per l’insegnamento della
progettazione di Database di Sciore E.
• “SQLator” un workbench in linea per l’apprendimento del linguaggio SQL,
di Orlowska M.
• Materiale didattico sul corso di Database relazionali tenuto alla Open
Universty
• Insegnamento della progettazione di database secondo un approccio
entità-relazioni di Carol Chrisman
Università degli Studi di Catania
TFA – Workshop
Information systems & computing pedagogical
Practices
Session 1 TEACHING DATABASE
Catania, 4/03/2013
SQL: dall'integrazione alla personalizzazione dei
media “intelligenti”
Barbara Orto
Quello che sentiamo lo dimentichiamo …
Quello che vediamo lo ricordiamo …
Ciò che facciamo lo capiamo …
Migrazione da
 “learning - by reading”
Passivo ed inefficiente
?
N _
G”
“learning – by _D O_ _I _
Attivo, interattivo e personalizzato
Strumenti di e-learning
Scenario di riferimento - debolezze
Registrazione ai vari siti;
 Memorizzazione dei risultati delle simulazioni degli alunni;
 Difficoltà tecniche di integrazione dei sistemi di e-learning;
 Scarso supporto per apprendimento interattivo;
 Le attività interattive non possono essere copiate o referenziate a
 differenza di altri contenuti educativi (slide);
Scarsa personalizzazione dei contenuti;
 Difficoltà per il docente di monitorare il lavoro svolto dai ragazzi;
 SQL-Tutor
http://ictg.cosc.canterbury.ac.nz:8000/
Soluzione??????????????
Ci prova l'Università di Pittsburgh ...
Exploratium: piattaforma esistente che fornisce un accesso personalizzato a diverse
attività di apprendimento interattive.
Cerca di risolvere i problemi:
- come permettere agli studenti di accedere alle attività di differenti sistemi con un unico
login;
- come le azioni degli studenti, osservate da un sistema, possono essere memorizzate in
modo tale che un altro sistema li possa utilizzare?
2 scopi:
Integrazione dei diversi sistemi;
 Personalizzare l’attività di apprendimento interattivo;
 http://adapt2.sis.pitt.edu/kt/content/Show
Exploratium: integrazione
Basata su una architettura di integrazione chiamata ADAPT
(Advanced Distributed Architecture for Personalized Teaching
and Training).
Obiettivi:
• Integrazione dei diversi sistemi in un unico portale con una
singola autenticazione;
• I docenti possono strutturare i contenuti secondo necessità del
corso;
• Storicizzare le interazioni dello studente;
“Conceptual integration”
Exploratium: personalizzazione
Approccio
topic-based adaptive navigation support
Vengono visualizzate:
– L’importanza dell’argomento rispetto agli obiettivi del
corso;
– I prerequisiti per ogni argomento;
– I risultati di ogni studente per argomento;
– Livello di preparazione dello studente;
Exploratium
 Fornisce accesso personalizzato a 3 tipi di attività
interattive di apprendimento:
- Annotated examples;
- Self-assessment questions;
- SQL lab;
http://adapt2.sis.pitt.edu/kt/content/Show
Exploratium: personalizzazione
“personalized navigation support icons” :
target-arrows personalized
Il target grigio indica il
progresso e l’uso degli
strumenti didattici.
Il numero di frecce indica il
livello di preparazione:
1 basso
2 medio
3 alto
Exploratium: test
229 ragazzi suddivisi in 6 corsi “graduate” e “undergraduate” sui
database
Almeno il 75% ha provato almeno una volta la piattaforma
Exploratium.
Più di 7 studenti su 10 hanno continuato ad usarlo anche dopo il
corso.
I ragazzi hanno apprezzato l’interfaccia grafica, l’integrazione degli
strumenti, la personalizzazione degli accessi e la qualità degli
esempi.
Exploratium: vantaggi
 Architettura aperta;
 Unico login;
Il docente può scegliere come strutturare gli argomenti;
 Possibilità da parte del docente di monitorare la carriera dello studente: “history click” e
“check marks” e collettivamente valutare l'impegno e la partecipazione degli alunni;
 Permette l'integrazione di diversi sistemi;
  Personalizzazione: topic-based adaptive navigation support
Vantaggi:
- Navigazione non sequenziale: libertà di navigazione anziché un percorso predefinito;
- Facile;
- Efficiente;
- Aumenta la qualità di lavoro, il coinvolgimento e la motivazione dello studente;
- Gli studenti accedono a più sistemi quando ricevono adaptive navigation support;
Exploratium: debolezze
Realizzazione del portale scolastico;
 Nelle question non si hanno suggerimenti o metodi di correzione
errori istantanei;
 L'alunno deve prendere nota e successivamente provare in Sqllab oppure chiedere chiarimenti al docente.
 Favorisce esclusivamente l’attività individuale;
 Scenari a confronto
Senza Exploratium
Con Exploratium
Diversi account
Senza o unico login
Nessuna memorizzazione sullo studente
History click e check marks
Nessun monitoraggio da parte del docente
History click e check marks: supporto visuale
adattativo sia per lo studente che docente
Nessuna integrazione
Integrazione dei sistemi
Scarso supporto per un apprendimento medio supporto per un apprendimento
interattivo o personalizzato dei contenuti;
interattivo o personalizzato dei contenuti;
Assenza di personalizzazione
Personalizzazione dei contenuti
Attività interattive non possono essere copiate o Attività interattive distribuite
referenziate
Come utilizzerei questo strumento nel mio caso
reale scolastico???????????
Programmazione annuale
Classe: V
Unità
Formative
Docente: Barbara Orto
Competenze
Concetti di Comprendere cosa è
base sul un database e
database.
fornirne esempi.
Capire cosa è il
Modello E-R e esser
in grado di modellare
Modellizzazi un db.
one di un db Conoscere e saper
applicare le 3 forme
di normalizzazione.
Materia: Informatica
A.S.
2012/2013
Abilità
Period
o
Metodi
Strumenti
Verifiche
Identificare un
db
SettDic.
Libri integrativi
a quelli in
adozione,
r i v i s t e ,
documentazio
ne in genere,
Test formativi
Strumenti di
laboratorio
Lezione
frontale
Presentazione
di situazioni
problematiche
(problem
solving)
Colloqui
individuali
Modellizzare un
db a partire da
un sistema
informativo
Conoscere e
saper applicare
le 3 forme di
normalizzazion
e
Personal
Computer
Lavori di
gruppo
Esercizio
applicativo
guidato
Quesiti scritti
Componenti
ed
elaborazioni
Esercizi o
problemi
applicativi
Programmazione annuale
Classe: V
Docente: Barbara Orto
Materia: Informatica
A.S.
2012/2013
Unità
Formative
Competenze
Abilità
Period
o
Metodi
Strumenti
Verifiche
Operazioni
su un
database
Comprendere quali
sono le operazioni
principali su un db.
Capire e saper
applicare i comandi
principali: creazione
di una tabella e
query.
Creare,
modificare
eliminare una
tabella.
Genn.
Aprile
Libri integrativi
a quelli in
adozione,
documentazio
ne in genere,
Test formativi
Strumenti di
laboratorio
Lezione
frontale
Presentazione
di situazioni
problematiche
(problem
solving)
Colloqui
individuali
Inserire,
modificare un
campo da una
tabella.
Popolare un db
Selezionare i
valori da una
tabella.
Personal
Computer
Software
specifico
Componenti
ed
elaborazioni
Te s t
di
autovalutazion Esercizi o
e
problemi
applicativi
Lavori di
gruppo
Esercizio
applicativo
guidato
Interazione
con un
database da
web ….
Quesiti scritti
Come utilizzerei questo strumento
nel
mio
caso
reale
scolastico???????????
Integrazione: materiale didattico sul registro on-line e creazione di
un portale;
Personalizzazione:
 documentazione teorica sui comandi principali;
 esercitazioni scritte /prove orali in itinere;
 esercitazioni di recupero per eventuali debiti formativi;
 traccia per le verifiche;
 test di autovalutazione;
Take - away message
• “learning by doing”;
• integrazione e personalizzazione;
• semplificare l’ accesso allo strumento di apprendimento
allo studente;
• monitorare lo studente e favorire l’autovalutazione;
• approccio topic-based adaptive navigation support;
Riflettiamoci insieme …
Nello scenario scolastico reale, ogni ragazzo ha difficoltà su argomenti
diversi.
Pensate sia utile integrare e personalizzare gli strumenti di e-learning?
Come integrare e personalizzare, per ogni alunno, i contenuti
didattici?
Pensate che questa soluzione sia valida e sufficiente?
Come utilizzereste questo strumento nel Vostro caso reale
scolastico???????????
Sitografia
SQL-Tutor:
http://ictg.cosc.canterbury.ac.nz:8000/
Exploratium
http://adapt2.sis.pitt.edu/kt/content/Show
Paper
Pdf
BRUSILOVSKY, P. 2004. KnowledgeTree: A distributed architecture for adaptive e-learning In
Proceedings of the 13th International World Wide Web Conference (WWW’04). 104–113.
SOSNOVSKY, S., BRUSILOVSKY, P., LEE, D. H., ZADOROZHNY, V., AND ZHOU, X. 2008.
Reassessing the value of adaptive navigation support in e-learning. In Proceedings of the
5th International Conference on Adaptive Hypermedia and Adaptive Web-Based Systems
(AH’08). 193–203.
Il fascino del moderno:
«MeTube» e
Database Mobili
Laboratorio di didattica nei sistemi informativi
Carlo Finocchiaro
Oliver Giudice
• Insegnamento dei DB: quali sono le difficoltà?
• Importanza dell’attenzione: come catturare l’interesse
degli studenti di più giovane età?
• L’approccio progettuale: aiuta?
Le 3 domande…
Due approcci:
• Database instruction by MeTube, James Wang, Timothy
Davis, School of Computing, Clemson University, USA
• On Teaching Mobile Databases and Information
Systems, Hagen Hopfner, Keiichi Nakata, School of Information
Technology, Bruchsal, Germany
• Discussione…
Menù del giorno
MeTube
•
•
•
•
•
•
•
Destinatari: studenti universitari di primo livello
Durata: semestrale
Prerequisiti: conoscenze di programmazione
Modalità: aula/laboratorio
Metodo didattico: lezioni frontali e laboratorio
Organizzazione delle attività: lavoro di gruppo
Metodo di valutazione: esami individuali in itinere e
valutazione finale sul lavoro di gruppo
Informazioni sul corso
1.
Capire la modellizzazione concettuale nell’ambito dei database (modello
ER)
2.
Familiarizzare con il modello fisico (relazionale)
3.
Imparare un linguaggio comune di manipolazione dati (SQL)
4.
Applicare tecniche di ottimizzazione (es. normalizzazione)
5.
Presentare i dati attraverso una ’interfaccia web
6.
Migliorare l’esposizione scritta e orale sul lavoro svolto in classe
7.
Familiarizzare con i sistemi LAMP (Linux, Apache, MySQL,
PHP/Perl/Python) che sono alla base dei sistemi web open source
Obiettivi
•
Fase 1:
•
•
•
Fase 2:
•
•
•
Lezione frontale: web servers, protocollo HTTP, HTML, PHP (4 h)
Laboratorio: Disegnare l’interfaccia web
Fase 5:
•
•
•
Lezione frontale: dal modello relazionale al modello fisico (2 h)
Laboratorio: produrre delle istruzioni in SQL per estrarre/manipolare i dati nel database
Fase 4:
•
•
•
Lezione frontale: modello concettuale e modello relazionale (2 h)
Laboratorio: produrre il modello concettuale (ER) e il modello relazionale
Fase 3:
•
•
•
Lezione frontale: concetti generali sui database (1 h)
Laboratorio: raccolta dei requisiti attraverso l’osservazione di youTube
Lezione frontale: definire i casi di test e misurare le performance di un sistema (3 h)
Laboratorio: Definire i test case e testare il sistema
Fase 6: Presentare il progetto alla classe
Come raggiungere gli obiettivi?
Pro
Contro
Cenni sui processi di software engineering.
Non è facile affrontare tutte le problematiche inerenti
ciascuna fase usando un unico problema di
riferimento.
Le valutazioni in itinere sulla fasi del progetto,
permettono al docente di consolidare le nozioni
apprese, prima aggiungere livelli di complessità.
In funzione della soluzione pensata, ogni
gruppo/individuo potrebbe affrontare problematiche
eterogenee. Senza una condivisione dei risultati, ogni
gruppo potrà esercitarsi solo su una parte del
programma.
A fine progetto, la valutazioni verrà elaborata dagli
stessi studenti attraverso una condivisione del lavoro
via web.
Mancano riferimenti sui parametri da valutare:
similitudine con YouTube? Originalità?
Pro & Contro MeTube
Database Mobili
(mDBIS)
• Materiale: è un argomento nuovo di ricerca, pochi articoli
scientifici a sostegno della preparazione della lezione.
• Difficoltà: mancanza di definizioni nell’ambito dei mDBIS
•
•
•
•
Cos’è un mobile database?
È un database su dispositivo mobile?
È un dispositivo mobile con un’interfaccia per l’accesso al DB?
È un database contenente informazioni sul movimento di dispositivi?
Preparazione del corso
• È un corso per studenti MSc e richiede numerosi prerequisiti
per comprendere le tematiche e le problematiche dei mDBIS:
•
•
•
•
•
•
•
Limiti dell’hardware mobile
Limiti delle connessioni wireless
Conoscenza di base della programmazione
Conoscenza dell’architettura dei Web Service
Conoscenza base dei DBMS e dei linguaggi di interrogazione
Conoscenza dell’implementazione dei DB
Conoscenza dei sistemi di sincronizzazione e trasferimento dati (ACID)
• È comunque prevista tra le prime lezioni un «ripasso» dei
concetti più importanti relativi ai limiti hardware, delle reti e
alle problematiche generiche dei DB.
Prerequisiti al corso
• Il corso ha durata semestrale
• Il corso consiste in:
• Lezioni frontali
• Progetto in itinere in parallelo alle lezioni frontali
• Le lezioni sono organizzate secondo un approccio bottom-up:
1.
2.
3.
Si parte con un problema pratico: la ricerca da parte di Peter del
più vicino ristorante
Si comincia a definire l’architettura del sistema
Si analizzano le singole problematiche in maniera sempre più
specifica
• Ogni lezione spinge gli studenti a porsi delle domande che
verranno risposte alla lezione successiva.
Organizzazione Corso
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Introduzione
Basi e motivazioni tecnologiche
Location Management
Service Discovery
Processing di query per mobile user
Transazioni in ambiente mobile
Data Roaming
Replicazione e sincronizzazione
Summary
Final Exam
Organizzazione Corso
• L’applicazione mobile si connette a un webservice
• Il web service manda informazioni in XML sullo scheduling
dei treni della più vicina stazione
• Lo studente deve risolvere i problemi di:
• Sincronizzazione del DB locale con quello del webservice
• Localizzazione dell’utente
• Dimensionamento dei dati
• Il progetto viene realizzato in parallelo alle lezioni frontali
andando ad aggiungere le tematiche di volta in volta affrontate
Progetto in itinere
Pro
Contro
Organizzazione degli argomenti
Unico esame finale
affrontati nel corso guidata dagli
studenti attraverso le domande sui
problemi progettuali
Affrontare lo studio dei mDBIS in un
corso a parte anziché integrato a DB
Non è prevista una collaborazione
tra studenti
Poche motivazioni (progetto finale
poco applicabile nella realtà sebbene
accattivante)
Troppi prerequisiti
Pro & Contro mDBIS
Quali sono le differenze?
Quali sono le differenze?
• Entrambi: project oriented
• MeTube: dalla teoria al problema: TOP-DOWN
• mDBIS: dal problema alla teoria: BOTTOM-UP
• Insegnamento dei DB: quali sono le difficoltà?
• La teoria dei DB è un argomento molto vasto e complesso
che va trattato in ogni singolo aspetto con esempi
facilmente comprensibili. Perciò un approccio classico
potrebbe essere più efficace se supportato da più esempi
pratici semplici e non un progetto complesso.
3 Possibili Risposte (1)
• Importanza dell’attenzione: come catturare l’interesse
degli studenti di più giovane età?
• La prospettiva di utilizzare delle conoscenze teoriche per
realizzare un progetto «accattivante» potrebbe catturare
l’interesse dell’allievo e inoltre spingerlo a porsi domande
verso argomenti di alto livello.
3 Possibili Risposte (2)
• L’approccio progettuale: aiuta?
• La realizzazione in gruppo di un progetto e la sua
presentazione alla classe introduce l’allievo a un metodo di
lavoro orientato a un contesto lavorativo
3 Possibili Risposte (3)
Fine….
…Domande ???
DESIGN PATTERN FOR DATABASE PEDAGOGY
AND
PROBLEM-BASED-LEARNING
Vincenzo Milazzo
4 marzo 2013
The key message of abstract
• La potenza dei design pattern, argomento multi curriculare,
nell’uso della progettazione dei DB relazionali, rispetto al classico
modello E-R, facente parte di un approccio domain-specific.
• Far leva sulla pregressa esperienza di design che lo studente si
ritrova in varie altre materie (più di una) proiettandoci su un
domino di tipo OOP, più «famoso del domino DB»
• Tutto parte dalla potenza dei design pattern e dalla loro capacità
comunicativa
Perché usare questa metodologia?
Pro
•
Velocizzare il tempo di apprendimento
•
I pattern sono una soluzione comune a problemi ricorrenti
•
Aiutano studenti con esperienze sui design pattern.
•
Vista l’espansione della tematica di design pattern e la loro importanza anche a
livello di business, gli approfondimenti e il continuo uso in questa direzione
potrebbe essere un bene
•
Una vasta gamma di problemi sui DB vengono illustrati e capiti con i design
pattern
•
Infine studi recenti dimostrano che il lavoro con i pattern, anche per i novizi,
comporta una più veloce e migliore progettazione.
Perché usare questa metodologia?
Contro
• The cost of their introduction is recovered when a pattern
simplifies or clarifies an explanation, facilitates comunication… ???
• Con quale probabilità recupero effettivamente questo tempo? Gli
altri docenti come hanno lavorato?
• Se si dovesse introdurre da zero i design pattern, di certo non si
recupera tempo rispetto a spiegare i classi modelli per progettare
DB
Design pattern in DB: dove li troviamo
•
«view sql»  observer sulle varie tabelle fisiche che la compongono.
•
DWH  observer
•
Ma il concetto di view non è più semplice del concetto di Observer?
•
Ammesso che uno conosca il pattern impiega di più a mappare il concetto di view
su quello esistente di Observer che non a creare un nuovo concetto di view.
•
Forse nel caso di DWH potrebbe sembrare il viceversa, ma li ci sarebbero cosi
tante altri concetti nuovi da spiegare che forse l’ultima cosa che passa è la
similitudine con l’observer.
Design pattern in DB: dove li troviamo
• Il memento, che permette di conservare gli stati vecchi, può
essere usato per modellare le transizioni…
• Ma server questo paragone?
• Dobbiamo implementare un DBMS o dobbiamo semplicemente
capire cosa è una transazione?
• È’ vero che se ti dico memento ti dico che puoi tornare indietro ad
uno stato precedente… e fin qui ci siamo… ma ti dico anche tante
altre cose che non mi servono e potrebbero far nascere altri
dubbi.
Posso Applicare questo modello
all’attuale scenario scolastico italiano?
• Attualmente lo studio dei Design Pattern e previsto soltanto a
livello universitario. Questo tipo di approccio in un istituto di
scuola superiore risulterebbe troppo pensante in quanto nessun
concetto di design viene affrontato a livello curriculare.
Closing the Loop: Problem-Based-Learnig
in design pattern for database pedagogy
• PBL è imparare risolvendo un grosso problema reale… del
resto nella vita ogni volta che superiamo un ostacolo
impariamo qualcosa
• Si possono unire questi due approcci? Cosa ne
pensate?
Closing the Loop: Problem-Based-Learnig
in design pattern for database pedagogy
• Il design pattern pedagogy potrebbe essere utile per acquisire maggiore
dimestichezza sui Design Pattern piuttosto che per un corso di DB di
primo impatto, utilizzando quindi un approccio multidisciplinare (tra ing.
Del SW e Data Base).
• Visto che la pedagogia sui pattern non è altro che una forma della
pedagogia multidisciplinare, si potrebbe pensare ad un corso ad hoc, che
richiede la propedeuticità del corso ing. del sw, E NEL CONTEMPO
assegnando un problema di progettazione di un DB System che comporti
la risoluzione attraverso i design pattern:
– Si ha l’approccio appena visto in quando ci spostiamo sul dominio dei DB ma partendo
da una buona conoscenza dei Pattern che vengono nel contempo approfonditi
– Si combina cosi un’altra metodologia pedagogica: Problem-Based-Learning
Problem-Based-Learnig
•
Il problem based learning è una strategia usata per sviluppare il modo di pensare
dell’allievo (learner).
•
Il docente viene considerato un “facilitatore”, un tipo di tutor che riesce a capire
il problema relativo al processo di apprendimento dell’allievo e, in seguito,
facilita la comprensione e l’acquisizione delle conoscenze.
•
Anche il docente impara nell'ambiente collaborativo di apprendimento,
diventando a sua volta learner. In questo modo, il learner acquisisce non solo le
conoscenze target, ma anche più consapevolezza, più sicurezza e più
responsabilità, “tools” (strumenti) che servono anche nella vita.
•
Vi è un processo di revisione che assicura allo studente lo sviluppo si selfmanagement e self-monitoring skill.
Problem-Based-Learnig: L’importanza
in un corso base.
• L’articolo espone un’esperienza di tre anni in cui si sviluppa l’approccio
pedagogico del PBL su degli studenti universitari di primo anno,
valutandone gli effetti. Esso consiste nel basare un intero corso sulla
risoluzione di un problema in modo da migliorare diversi punti critici
quali:
– Il primo impatto
– Mapping con la realtà
– Problem solving VS technical Skill (donne)
– Aiutare i ragazzi in difficolta
Pro: La prospettiva di chi impara
• Un primo impatto negativo può scoraggiare lo studente, specialmente su
materie propedeutiche a corsi futuri.
• I corsi sono tipicamente basati su percorsi individuali mentre nella realtà
si lavora in team
• In larga scala le problematiche informatiche richiedono problem solving
piuttosto che skill tecnici. Un corso centrato esclusivamente su skill
tecnici può scoraggiare gli studenti, specialmente le donne
• Questo approccio comunicativo e collaborativo nella risoluzione di un
problema aiuta i ragazzi che inizialmente sono fragili e devono
ambientarsi
Altro…
• I corsi convenzionali non enfatizzano le seguenti capacità
degli studenti:
– Generic skill
– Problem solving
Esempio: importanza della corretta documentazione
– in un tipico corso scrivono poco codice
– Lo si fa apprezzare facendogli soffrire l’effetto della poca
documentazione… Spiegami il codice del tuo compagno… 
Contro
• Fondamentalmente non ne vedo… se non un lavoro più
pesante per il docente!!! 
• trovare un buon esempio, ampio da coprire tutti i contenuti
pensati per il corso, ma non rendendolo complesso da
affrontare per chi si approccia per la prima volta alle
tematiche oggetto del corso.
Ci sono riuscito?
• Durante la lezione sono nate tante domande
e interventi? … probabilmente non sono
cosa… :P
DOMANDE FINALI? NON DOVREBBERO ESSERCI…
ALTRIMENTI VORREBBE DIRE AVER LASCIATO DELLE
ANALISI INCOMPLETE… QUINDI CI SARANNO
SICURAMENTE!!!
CURIOSITÀ E APPROFONDIMENTI
UNIVERSITÀ DEGLI STUDI DI CATANIA
Modelli mentali e difficoltà
nell’apprendimento dei
linguaggi di programmazione
Angela Beninato
Elena Umana
Difficoltà nell’apprendimento dei linguaggi di programmazione
A Study of the Difficulties of Novice Programmers
Essi Lahtinen, Kirsti AlaMutka, Hannu Matti Järvinen
Tampere University of Technology, Institute of Software Systems
Tampere, Finland
OBIETTIVI:
- Stabilire quali siano le principali difficoltà degli studenti
- Rilevare i metodi di insegnamento più efficaci
- Definire la tipologia di materiale didattico più utile
PROBLEMATICHE connesse all’insegnamento della programmazione di base:
- Numero elevato di studenti in ogni classe
- Diversità tra gli studenti
- Conoscenze di base differenti per ogni studente
Difficoltà nell’identificazione di un modello unico valido per ogni studente
Obiettivo: stabilire quali siano le principali difficoltà degli studenti
C++
Java
Pascal
Altri
STUDENTI
INSEGNANTI
Riuscire a trovare gli errori nel proprio
programma
1
3
Riuscire a elaborare un programma che risolva
un dato problema
2
2
Assegnare ogni singola problematica ad una
procedura
3
1
Comprendere la programmazione strutturata
4
4
Riferimenti e puntatori
1
1
Gestione dell’errore
2
2
Utilizzo delle librerie
3
3
Loop, tipi di strutture dati e variabili
4
4
Costruzione del
programma
Elementi di
programmazione
Gli insegnanti reputano che gli studenti sovrastimino le loro competenze
Obiettivo: rilevare i metodi di insegnamento più efficaci
STUDENTI
INSEGNANTI
Lavorare\studiare da soli
1
4
Sessioni pratiche
2
1
Esercitazioni in gruppo
3
2
Lezioni
4
3
Obiettivo: definire la tipologia di materiale didattico più utile
STUDENTI INSEGNANTI
Esempi di programmazione
1
1
Appunti\slide
2
4
Libri di testo
3
5
Esercizi con soluzioni
4
3
Visualizzazione interattive
5
2
Considerazioni
Confronti tra i linguaggi
 I
differenti
linguaggi
di
programmazione
non
sembrano
avere
effetti
sull’apprendimento
 L’appartenenza a differenti Università può influenzare le conoscenze acquisite
 In generale, gli studenti reputano il linguaggio C++ più difficile degli altri linguaggi
 L’uso delle librerie è risultato più semplice da comprendere nel linguaggio Java rispetto
al Pascal
Considerazioni generali
 Gli studenti considerano complicato combinare tra loro e rielaborare concetti base al
fine di elaborare un programma completo
 Gli studenti reputano che l’utilizzo di piccoli esempi focalizzati su pochi concetti serva
a chiarire meglio gli argomenti
 Sia gli studenti che gli insegnanti reputano che le esercitazioni siano molto utili
Aspetti positivi
I risultati ottenuti da questo studio possono essere uno spunto per gli insegnanti:
- attenzionare maggiormente gli aspetti ritenuti più ostici dagli studenti
- utilizzare gli strumenti che si sono dimostrati più validi
Lo studio considera:
- diverse Università
- differenti Paesi
- diversi linguaggi di programmazione
Diverso
Background
Aspetti negativi
I risultati, in termini di valore medio e deviazione standard, sono molto vicini tra loro e
non rilevano una prevalenza di alcuni concetti/ metodi /strumenti rispetto ad altri.
Modelli mentali nell’apprendimento dei linguaggi di programmazione
Improving the Mental Models Held by Novice Programmers Using Cognitive Conflict
and Jeliot Visualisations
Linxiao Ma, John Ferguson, Marc Roper, Isla Ross, Murray Wood
Carente conoscenza
dei concetti chiave
di programmazione
Mancanza di abilità
nel problem-solving
Difficoltà nello sviluppare
appropriate capacità di
programmazione
Metodo di apprendimento
Conflitti cognitivi
Visualizzazione
interattiva
Metodo di apprendimento
Il metodo di apprendimento proposto consta di quattro stadi:
Preliminary stage: esamina il modello mentale preesistente e ne identifica la validità
Cognitive conflict stage: innesca un evento discrepante per indurre lo studente in uno
stato di conflitto cognitivo
Model construction stage: aiuta lo studente a sviluppare un nuovo modello mentale
utilizzando la visualizzazione interattiva
Application stage: verifica se il nuovo modello mentale consente allo studente di
risolvere correttamente un problema di programmazione
Per supportare questo metodo è stato sviluppato un ambiente web-based.
roadmap
Visualizzazione
interattiva
JELIOT
 Jeliot 3 è un'applicazione di visualizzazione di un programma Java che permette di
verificare come esso viene interpretato.
 Jeliot 3 comprende la maggior parte dei costrutti Java ed è in grado di visualizzarli.
 Le chiamate a metodi, le variabili e in
generale il funzionamento vengono
visualizzati su uno schermo con
un'animazione continua, consentendo
allo studente di seguire passo passo
l'esecuzione di un programma.
 I programmi possono essere creati da
zero, oppure possono essere modificati
da esempi di codice precedentemente
memorizzati.
http://www.youtube.com/watch?v=jIMNyyeyRrI
1. Conditionals and Loops
In un loop
Condizione
+
Incremento di stato
Loop interno
+
Loop esterno
Loop interno
+
Loop esterno
indipendenti
dipendenti
 (pre-test): lo studente deve risolvere mentalmente una parte di un programma,
determinare il valore di una variabile intera e riferire tutto ad un intervistatore
(puntualizzando anche la propria reazione)
 Lo studente utilizza il software Jeliot per visualizzare l’esecuzione del programma
 (post-test): lo studente deve risolvere mentalmente un programma simile al
precedente per determinare se la sua comprensione del problema è migliorata
Risultati: il 77% dei partecipanti ha fallito il pre-test. Successivamente il 65% di essi
ha superato il post-test.
2. Scope and Parameter Passing
Due esercizi sulla
visibilità
Due esercizi sul
passaggio dei
parametri
 (pre-test): lo studente deve risolvere mentalmente una parte di un programma,
determinare il valore di una variabile intera e riferire tutto ad un
intervistatore(puntualizzando anche la propria reazione)
 Lo studente utilizza il software Jeliot per visualizzare l’esecuzione del programma
 (post-test): lo studente deve risolvere mentalmente un programma simile al
precedente per determinare se la sua comprensione del problema è migliorata
Risultati: 81% dei partecipanti ha fallito il pre-test. Successivamente il 85% di essi ha
superato il post-test.
3. Object reference assignment
Esercizio sull’assegnazione dei riferimenti ad oggetti
Questo studio prevede l’utilizzo di due differenti ambienti di visualizzazione: Jeliot e
un ambiente di visualizzazione sviluppato dagli autori (VA) (include anche una
spiegazione testuale). Gli studenti sono separati in due gruppi
Gruppo1
1)
2)
3)
4)
5)
pre-test
Jeliot
post-test1
VA
post-test2
Gruppo2
1)
2)
3)
4)
5)
pre-test
VA
post-test1
Jeliot
post-test 2
Risultati: il 91% dei partecipanti ha fallito il pre-test. Successivamente il 60% di essi
ha superato il post-test dopo aver visualizzato l’esercizio con il VA: il 30% appartiene
al gruppo 1 e il restante 30% appartiene al gruppo2
Jeliot:
VA:
- Tool con un ampio range di
funzionalità
Supporta un’ampia varietà di
concetti di programmazione
 supporta codici personalizzati
 si può controllare la velocità
di visualizzazione
Visualizzazione semplice e
intuitiva
 visualizzazione focalizzata sui
concetti chiave
 fornisce una spiegazione
testuale
visualizzazione complicata
(specialmente sui concetti più
complicati della
programmazione, quali
l’assegnazione dei riferimenti)
richiede una spiegazione
verbale
non supporta codici
personalizzati
non supporta un’ampia varietà
di concetti di programmazione
Aspetti positivi
Aumenta l’interesse dello studente nei confronti della programmazione
L’utilizzo combinato di conflitti cognitivi e strumenti di visualizzazione interattiva
aiuta lo studente a costruire dei validi modelli mentali per comprendere alcuni aspetti
della programmazione
Aspetti negativi
Il numero di partecipanti a questa indagine non è sufficientemente ampio perché i
risultati abbiamo validità generale. A tal proposito gli autori si propongono di validare
ulteriormente il loro modello.
RISORSE
 www.codewitz.net
Consente alle istituzioni scolastiche di usufruire di materiale didattico sui concetti base
della programmazione
 www.merlot.org
Fornisce sia tutorials su differenti argomenti di carattere generale sia tools interattivi
riguardo ai diversi linguaggi di programmazione
 E. Soloway and J. Spohrer. Studying the novice programmer. Lawrence Erlbaum
Associates, Hillsdale, New Jersey, 1989
J. Pane and B. Myers. Usability issues in the design of novice programming
systems. School of Computer science Technical Report, Carnegie Mellon University,
CMU-CS-96-132, 1996
Forniscono diversi punti di vista sulle conoscenze errate e\o superficiali dei
programmatori novizi
 http://cs.joensuu.fi/jeliot/index.php
Permette di scaricare diverse versioni del tool di visualizzazione Jeliot
 Dehnadi, S., and Bornat, R. 2006. The camel has two humps. Middlesex University
Working Paper.
http://www.cs.mdx.ac.uk/research/PhDArea/saeed
TFA: Didattica e laboratorio di sistemi informatici
Faia Irene e Ventura Cristina
Arnold Pears, Stephen Seidman, Lauri Malmi, Linda Mannila, Elizabeth Adams,
Jens Bennedsen, Marie Devlin and James Paterson
A Survey of Literature on the Teaching of
Introductory Programming
Orni Meerbaum-Salant, Michal Armoni and Mordechai Ben-Ari
Habits of Programming in Scratch
Catania, 5 Marzo 2013
Introduzione dei concetti di programmazione ai programmatori alle
prime armi
Pratiche di insegnamento
Centrate sull’insegnante
Centrate sullo studente
Categorie
Curricula
Pedagogia
Scelta del linguaggio
Strumenti
TFA
Faia Irene e Ventura Cristina
Curricula
Cosa deve essere insegnato?
Un corso di programmazione dovrebbe sempre tenere in
considerazione il contesto e la struttura di un curriculum basato sulle
conoscenze informatiche
Sottolineare le metafore computazionali ed i paradigmi di
programmazione
Aspetti
fondamentali
• Paradigmi di programmazione orientata agli oggetti
• Paradigmi di programmazione funzionale
Considerare il target del corso
Considerare il background degli studenti
TFA
Faia Irene e Ventura Cristina
Pedagogia
Si focalizza sul modo in cui l’insegnamento e l’apprendimento sono gestiti in
modo da facilitare il raggiungimento degli obiettivi desiderati
Libri di testo
 Focalizzati sulla sintassi di un determinato linguaggio di programmazione e sulle
caratteristiche di tale linguaggio
 Focalizzati sulle abilità associate alla formulazione di un problema, analisi dei requisiti
e problem solving
Un corso di programmazione dovrebbe essere orientato allo sviluppo delle
abilità nella risoluzione dei problemi (problem solving)
TFA
Specific transfer
Competenze
Generalized transfer
Abilità
Faia Irene e Ventura Cristina
Pedagogia
Qualunque sia l’approccio che si sceglie di adottare è
importante capire cosa noi pensiamo sia la
programmazione prima di iniziare ad insegnarla
Cosa significa insegnare / imparare
la programmazione?
Schneider [1] and Gries [2] concordano sull’idea che il target di un corso introduttivo di
programmazione sia il problem solving e lo sviluppo di algoritmi
[1] G. M. Schneider. The introductory programming course in computer science: ten principles. In Papers of the 9th SIGCSE/CSA
Technical Symposium on Computer Science Education, pages 107–114. ACM Press, 1978.
[2] D. Gries. What should we teach in an introductory programming course? In Proceedings of the 4th SIGCSE Technical Symposium on
Computer Science Education, pages 81–89. ACM Press, 1974.
TFA
Faia Irene e Ventura Cristina
Scelta del linguaggio di programmazione
C
C++
Java
Più utilizzati sia a livello scolastico sia a livello industriale
Un linguaggio di programmazione dovrebbe essere basato su due criteri
apparentemente opposti: ricchezza e semplicità
• Ricchi in quei costrutti necessari per l’introduzione dei
concetti fondamentali della programmazione
tradeoffs
• Semplici abbastanza per essere compresi e assimilati
TFA
Faia Irene e Ventura Cristina
Scelta del linguaggio di programmazione
Criteri che caratterizzano un linguaggio di programmazione
• Intrinseci  sono direttamente correlati al linguaggio di programmazione stesso.
Includono: aspetti tecnici (compilati vs interpretati, dinamici vs testuali, ecc.), aspetti
relativi allo scopo del corso (pedagogici vs generali) e paradigmi
Potrebbero essere supportati dai ricercatori nei campi della pedagogia e della psicologia
•
Estrinseci  sono relativi a fattori esterni (esigenze aziendali, trends, esigenze degli
studenti)
Semplicità sintattica
C
C++
Java
Spesso criticati per la loro eccessiva verbosità, rinforzando un
sovraccarico di simboli che ha poco a che fare con l’insegnare
algoritmicamente e scrivere programmi strutturati
Palumbo [70] cita l’approccio proposto da Linn e Dalbey:
Un «novizio»:
• inizia imparando i costrutti di un determinato linguaggio di programmazione
• successivamente impara a combinare tra loro tali costrutti per la risoluzione di specifici
problemi, alla fine impara a trasferire le abilità acquisite ad altri domini non relativi
alla programmazione
[70] D. Palumbo. Programming language/problem-solving research: a review of relevant issues. Review of Educational Research,
60(1):65–89, 1990.
TFA
Faia Irene e Ventura Cristina
Scelta del linguaggio di programmazione
Diversi studi hanno dimostrato una stretta dipendenza tra i linguaggi utilizzati
nell’educazione e nelle industrie
Richieste del mercato
Richieste delle industre
Necessità degli studenti
Fattori che influenzano la scelta del
linguaggio di programmazione
Attenzione  la popolarità di un linguaggio di programmazione non sempre coincide con
una buona funzione educativa dello stesso
La scelta del linguaggio di programmazione dovrebbe essere basata sulla
sua compatibilità con l’obiettivo che si vuole raggiungere
Dovrebbe essere scelto solo dopo aver definito gli obiettivi
del corso e i risultati previsti
TFA
Faia Irene e Ventura Cristina
Tools
Di solito i tools di programmazione sono progettati per rispondere alle esigenze dei
professionisti.
Sono caratterizzati da un ampio set di concetti e funzioni che possono risultare problematici
per i «novizi»
Ci dovrebbe essere un impegno continuo per sviluppare tools progettati specificatamente
per le esigenze dei programmatori alle prime armi
Progetti relativi allo sviluppo di tools
Target
Tools che hanno avuto un
considerevole riscontro nelle
pratiche di insegnamento
•Valutazione automatica
•Individuazione di plagi (copie)
•Gestione dei corsi
• Ambiente di programmazione BlueJ (Java) [59]
• Karel the Robot (C e C++) [72]
• CourseMarker: tool per la valutazione
automatica [49]
[59] M. K¨olling, B. Quig, A. Patterson, and J. Rosenberg. The BlueJ system and its pedagogy. Computer Science Education, 13, Dec
2003.
[72] R. E. Pattis. Karel the Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons, Inc., New York, NY, USA, 1981.
[49] C. A. Higgins, G. Gray, P. Symeonidis, and A. Tsintsifas. Automated assessment and experiences of teaching programming. ACM
Journal on Educational Resources in Computing, 5(3):5, 2005.
TFA
Faia Irene e Ventura Cristina
Software didattico: Karel the Robot
Micromondo in cui un robot (Karel) deve eseguire alcuni
compiti e risolvere un problema.
Obiettivo  fornire i primi rudimenti del linguaggio di
programmazione C e del C++
Ambiente di programmazione nel quale l'utente scrive un
programma per animare il robot
Il robot vive in un mondo bidimensionale (una griglia) piena
di strade, dentro il quale deve evitare di andare contro le
pareti e prendere piccoli oggetti per poi portarli in altri posti
L'utente crea un programma che Karel esegue, usando un
menu dinamico che contiene sempre la lista delle possibili
opzioni per costruire il codice del programma di uno
specifico contesto
L'utente evita il problema di scrivere o ricordare i nomi dei comandi
Offre una panoramica sui problemi che riguardano i processi di progettazione
Migliora la comprensione di alcuni concetti fondamentali della programmazione
TFA
Faia Irene e Ventura Cristina
Tools visivi
Gli esseri umani sono molto bravi a memorizzare informazioni visive
D’altra parte molti concetti di programmazione, algoritmi e strutture dati, sono concetti
astratti che spesso non hanno una forma grafica non così ovvia
Programmi ed algoritmi sono artefatti dinamici catturare i loro tratti essenziali è una
prima sfida per i «novizi»
Molti ricercatori hanno dimostrato che una semplice visualizzazione potrebbe non
essere sufficiente per garantire il successo nell’insegnamento
Gli studenti potrebbero individuare solo la visualizzazione dinamica
senza capire il problema in maniera più approfondita
Gli studenti per apprendere più velocemente dovrebbero essere in qualche
modo coinvolti in prima persona
TFA
Faia Irene e Ventura Cristina
Tools visivi
Jeliot e jGRASP (Java)
[67, 54]
JHAVÈ (Java) e MatrixPro
(Visual Algorithm Simulation)
[68, 56]
Visualizzano
la
struttura
l’esecuzione del codice
o
Animazione del concetto o dell’algoritmo
Possono omettere il codice o renderlo
disponibile sotto forma di pseudo codice
Tango e Polka [87, 89]
Chiamate a librerie
Animal, Samba e JHAVÈ
[88, 68]
Linguaggi script
[67] A. Moreno, N. Myller, E. Sutinen, and M. Ben-Ari. Visualizing programs with Jeliot 3. In Proceedings of the Working Conference on
Advanced Visual Interfaces, pages 373–376. ACM Press, 2004.
[54] J. Jain, I. James H. Cross, T. D. Hendrix, and L. A. Barowski. Experimental evaluation of animated-verifying object viewers for Java. In
Proceedings of the 2006 ACM Symposium on Software Visualization, pages 27–36. ACM Press, 2006.
[68] T. L. Naps. JHAVÈ – Supporting Algorithm Visualization. IEEE Computer Graphics and Applications, 25(5):49–55, 2005.
[56] V. Karavirta, A. Korhonen, L. Malmi, and K. St°alnacke. MatrixPro - A tool for on-the-fly demonstration of data structures and
algorithms. In Proceedings of the 3rd Program Visualization Workshop, pages 26–33, The University of Warwick, UK, July 2004.
[87] J. T. Stasko. TANGO: A framework and system for algorithm animation. IEEE Computer, 23(9):27–39, 1990.
[89] J. T. Stasko and E. Kraemer. A methodology for building application-specific visualizations of parallel programs. Journal of Parallel and
Distributed Computing, 18(2):258–264, 1993.
[88] J. T. Stasko. Using student-built algorithm animations as learning aids. In The Proceedings of the 28th SIGCSE Technical Symposium
on Computer Science Education, pages 25–29. ACM Press, 1997.
TFA
Faia Irene e Ventura Cristina
Visualization
tools
Scratch
HABITS OF PROGRAMMING IN SCRATCH
Orni Meerbaum-Salant Michal Armoni Mordechai Ben-Ari
Department of Science Teaching
Weizmann Institute of Science
TFA
Faia Irene e Ventura Cristina
Scratch
Ambiente di sviluppo visuale
-E’ molto conosciuto ed utilizzato dai giovani
-Non bisogna avere conoscenze di programmazione per creare file multimediali.
L’abolizione degli errori di sintassi tipici di un linguaggio di programmazione ne
incoraggia l’utilizzo.
-La selezione dei comandi per aggiungere al progetto particolari funzioni, effettuata
con una operazione di ‘Drag and Drop’ di differenti blocchi funzionali, è una
operazione simile all’assemblaggio di una costruzione lego.
-Scratch incoraggia l’auto- apprendimento o meglio l’apprendimento personalmente
orientato
TFA
Faia Irene e Ventura Cristina
Scratch
TFA
Faia Irene e Ventura Cristina
Scratch
TFA
Faia Irene e Ventura Cristina
Scratch
Scratch è basato sul concetto di Learning by exploration (….Learning by doing )
In questo contesto è stato utilizzato come strumento per introdurre i giovani studenti
alla Programmazione.
Scratch è visto come un tool per l’acquisizione di concetti legati alla programmazione,
ma anche come strumento per lo sviluppo dei personali « approcci di
programmazione»
che ciascun giovane sviluppa quando viene accostato a questo insegnamento.
 Approccio di tipo Buttom-up (basate sulla conoscenza di tutte le variabili in
grado di condizionare gli elementi del sistema per poi arrivare ad analizzare il
sistema completo.)
 Approccio di tipo EFGP (extremely fine-grained Programming)
…..il successivo apprendimento di principi di programmazione viene influenzato..
TFA
Faia Irene e Ventura Cristina
Scratch
A tal proposito è interessante visualizzare il seguente link, dove vengono elencate
quali dovrebbero essere le attitudini (ne sono menzionate 7) di un programmatore
informatico:
http://drupal.technicat.com/writing/programming.html
Obiettivo: Insegnare uno strumento di programmazione per far sviluppare personali
attitudini alla programmazione. Non si vuole insegnare a programmare!
- E’ stato applicato a studenti di 14-15 anni di età di entrambi i sessi e di due classi
differenti nella stessa scuola, durante un corso di Computer science.
- Si sono osservati gli studenti mentre risolvono il problema dato
- I lavori prodotti sono stati analizzati
- Alla fine del lavoro sono stati intervistati studenti ed insegnanti
TFA
Faia Irene e Ventura Cristina
Habits of Scratch
Habits inteso come tendenza a comportarsi in un determinato modo
 Gli studenti acquisiscono un metodo di programmazione assolutamente istintivo.
 Non riescono a giustificare il motivo della loro scelta e non riescono a considerare
un alternativa ad essa.
 Due principali metodi di programmazione (approcci):
• Bottom-up (si individuano i vari componenti del programma che poi dovranno
essere legati insieme, parte dall’elemento base della programmazione in scratch, si
trascinano i diversi blocchi che svolgono diverse azioni/funzioni
• EFGP -extremely fine grained programming- (in questo approccio si procede in
modo top-down, decomponendo il problema in tanti piccoli problemi che
richiedono uno sviluppo più semplice. La frammentazione va avanti fino ad
ottenere unità molto piccole, talvolta anche poco coerenti tra loro.
TFA
Faia Irene e Ventura Cristina
Habits of Scratch
Soprattutto negli alunni che hanno mostrato un approccio di tipo EFGP scomposizione del problema in tante piccole unità- manca l’uso delle
strutture di controllo o sono molto scarse. Praticamente si incontra più
spesso una costruzione del tipo:
if<condizione 1>
do <operazione 1>
if <condizione 2 >
do< operazione2>
Piuttosto che
if <condizione 1>
do <operazione1>
else do <operazione2>
TFA
Faia Irene e Ventura Cristina
Habits of Scratch
Anche altri tipi di istruzioni sono privilegiate nell’elaborazione del
programma, e sebbene nessun alunno abbia nozioni di programmazione
alcune istruzioni risultano intuitive e scontate, mentre altre mancano
totalmente nell’elaborazione del programma. Inoltre alcune strutture di
controllo sono utilizzate in maniera diversa da come dovrebbero essere usate.
La scomposizione in tanti sottoproblemi (fine-grained) induce gli studenti
ad elaborare un programma in cui le varie operazioni non sono ordinate
temporalmente - Tutte le istruzioni sono eseguite parallelamenteA causa di ciò può essere difficile il debug.
TFA
Faia Irene e Ventura Cristina
Pro e contro di Scratch
Vantaggi
 L’ambiente si presenta come un gioco, semplice da usare e con una interfaccia
divertente.
 Questo migliora l’approccio che gli studenti hanno nell’utilizzarlo ed
impararlo, la lezione cambia aspetto con uno strumento di questo tipo
Svantaggi
 Gli studenti, in modo istintivo, utilizzano in maniera errata le strutture più
importanti come i cicli finiti ed le esecuzioni condizionali questo fa si che lo
studente non è in grado di scrivere in maniera ben strutturata un programma.
 Questo approccio alla programmazione viene poi trasferito
informatici dello studente, con cattivi risultati.
negli studi
 Successivamente dovrà essere l’insegnante a dare maggiore enfasi alle migliori
strutture di programmazione, cercando di orientare lo studente all’utilizzo di
queste
TFA
Faia Irene e Ventura Cristina
Questions
Domanda……
Dovremmo proporre strumenti semplici per il primo approccio degli studenti a
realtà nuove o si dovrebbero subito trasmettere le basi corrette per iniziare un
nuovo percorso?
Ovvero iniziare a conoscere una nuova nozione nel modo giusto o imparare
questo solo dopo quando si ha più esperienza e probabilmente si è più capaci di
comprenderne il significato.
TFA
Faia Irene e Ventura Cristina
Osservazioni su Scratch
 Il metodo proposto sembra accattivante per una classe di studenti di un istituto
tecnico, in considerazione della fascia di età dei soggetti interessati e dell’interesse
che loro sviluppano nei confronti di strumenti tecnologici di questo tipo.
 Si potrebbe intendere come strumento (compensativo) utile per l’insegnamento a
studenti con DSA
 Fa parte del learning by doing e metodologie innovative per un apprendimento
significativo (non fornisce nozioni ma insegna un metodo o meglio induce
attitudini)
 L’insegnante ha un ruolo differente in questo caso, diverso dal tipico ruolo di chi
insegna qualcosa, ma è chi aiuta lo sviluppo di abilità ( scaffolding)
TFA
Faia Irene e Ventura Cristina
Strumenti di valutazione automatica
Forniscono una varietà di tecniche per analizzare le
caratteristiche di un programma
Punto di vista
dell’insegnante
• Molti si basano sulla correttezza dell’esecuzione di
un programma
• Altri approcci prendono in considerazione anche la
rappresentazione interna dei dati o fatto test più
dettagliati sul programma
Un programma automatico di valutazione dovrebbe
anche analizzare l’efficienza e/o la complessità (utilizzo
di particolari funzioni del linguaggio, stile del codice ed
altri aspetti della progettazione del programma)
Due diverse modalità di utilizzo:
1. Processo di valutazione completamente automatico
2. Utilizzare tale strumento per una valutazione iniziale che possa evidenziare i problemi
dei programmi sviluppati da uno studente
Possono ridurre la soggettività del giudizio di un solo insegnante
TFA
Faia Irene e Ventura Cristina
Strumenti di valutazione automatica
Punto di vista
dello studente
Forniscono un prezioso strumento
di valutazione formativa
Può permettere di imparare dagli errori e
migliorare il proprio lavoro prima della
sottomissione finale
Problema
La disponibilità di un feedback istantaneo può portare ad
incoraggiare gli studenti a risolvere i problemi procedendo per
tentativi
Possibili
soluzioni
• Limitare il numero di possibili sottomissioni
• Specificare un intervallo di tempo minimo
sottomissioni successive
WebCAT [35]
Strumento innovativo
Richiede agli studenti di sottomettere dati di test per ogni
programma ed una stima di come questi dati passano i test
tra
due
[35] S. H. Edwards. Improving student performance by evaluating how well students test their own programs. ACM Journal of Educational
Resources in Computing, 3(3):1, 2003.
TFA
Faia Irene e Ventura Cristina
Ambienti di programmazione
IDE
Integrated
Developement
Environment
Molti programmatori esperti preferiscono lavorare in un
ambiente di programmazione sofisticato che migliora la
produttività in quanto fornisce:
• Organizzazione dei componenti e delle risorse dei
programmi in progetti
• Funzioni avanzate di editing (completamento del codice,
etc)
• Integrazione di strumenti di supporto addizionali
Potrebbe non essere adatta per programmatori alle prime armi  complessità
Diversi ambienti integrati sono stati progettati per la programmazione dei novelli
Categorie
TFA
 Strumenti di supporto per la programmazione
Incoraggiano i programmatori nella creazione di programmi
all’interno dell’ambiente standard dell’esecuzione del programma
 Microworlds
Forniscono un ambiente basato su metafore fisiche, l’esecuzione del
programma è riflesso nello stato visivo di oggetti concreti all’interno
dell’ambiente di programmazione
Faia Irene e Ventura Cristina
Strumenti di supporto per la programmazione
Offrono un set limitato di capacità di un IDE professionale
GILD [93],
Net-Beans BlueJ Edition
(http://edu.netbeans.org/bluej)
BlueJ [59], jGRASP
[54], Dr Java [4] e
JPie [42]
IDE è modificato per nascondere le funzioni più
avanzate
Progettati
specificatamente
per
supportare
l’apprendimento di particolari aspetti della
programmazione
[93] M.-A. Storey, D. Damian, J. Michaud, D. Myers, M. Mindel, D. German, M. Sanseverino, and E. Hargreaves. Improving the usability
of Eclipse for novice programmers. In Proceedings of the 2003 OOPSLA Workshop on Eclipse Technology Exchange, pages 35–39. ACM
Press, 2003.
[59] M. K¨olling, B. Quig, A. Patterson, and J. Rosenberg. The BlueJ system and its pedagogy. Computer Science Education, 13,
Dec 2003.
[54] J. Jain, I. James H. Cross, T. D. Hendrix, and L. A. Barowski. Experimental evaluation of animated-verifying object viewers for
Java. In Proceedings of the 2006 ACM Symposium on Software Visualization, pages 27–36. ACM Press, 2006.
[4] E. Allen, R. Cartwright, and B. Stoler. DrJava: a lightweight pedagogic environment for Java. SIGCSE Bulletin, 34(1):137–141,
2002.
[42] K. J. Goldman. A concepts-first introduction to computer science. In Proceedings of the 35th SIGCSE Technical Symposium
on Computer Science Education, pages 432–436. ACM Press, 2004.
TFA
Faia Irene e Ventura Cristina
Microworlds
Scopo di una metafora fisica in
un ambiente microworld
Diminuire la distanza tra i modelli mentali degli
studenti ed il linguaggio di programmazione
Il “world” può essere una visualizzazione sullo
schermo di un computer o un ambiente fisico reale
Prima caratteristica  linguaggio proprio
Karel the Robot
Alice [25]
Utilizza il proprio linguaggio di programmazione, Karel [72]
Di recente, il framework concettuale di Karel è stato esteso ad un
linguaggio orientato agli oggetti [11, 7, 19]
Linguaggio ed ambiente di programmazione
[72] R. E. Pattis. Karel the Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons, Inc., New York, NY, USA, 1981.
[11] J. Bergin, J. Roberts, R. Pattis, and M. Stehlik. Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. John
Wiley & Sons, Inc., New York, NY, USA, 1996.
[7] B. W. Becker. Teaching CS1 with Karel the Robot in Java. In Proceedings of the 32nd SIGCSE Technical Symposium on Computer
Science Education, pages 50–54. ACM Press, 2001.
[19] D. Buck and D. J. Stucki. JKarelRobot: a case study in supporting levels of cognitive development in the computer science
curriculum. In Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education, pages 16–20, 2001.
[25] S. Cooper, W. Dann, and R. Pausch. Using animated 3d graphics to prepare novices for CS1. Computer Science Education, 13(1):3–
30, 2003.
TFA
Faia Irene e Ventura Cristina
Microworlds
Seconda caratteristica  sottolinea le metafore
Karel, Jeroo [84] e
Robocode
Le framework sono costruite su specifiche metafore
(http://robocode.sourceforge.net)
Alice e Greenfoot [48]
Forniscono frameworks in cui differenti microworlds
possono essere creati
Il livello di supporto del codice varia ampiamente
 Alice  fornisce un ambiente integrato con funzioniDMPE features:
 Varianti di Karel  sono implementate come librerie di programmi che permettono la
scelta dell’ambiente di sviluppo del codice
 ObjectKarel [100]  approccio alternatico del concetto di Karel. Fornisce uno ambiente
di sviluppo didattico con diverse funzioni di tutoring
[84] D. Sanders and B. Dorn. Jeroo: a tool for introducing object-oriented programming. In Proceedings of the 34th SIGCSE Technical
Symposium on Computer Science Education, pages 201–204. ACM Press, 2003.
[48] P. Henriksen and M. K¨olling. Greenfoot: combining object visualisation with interaction. In Companion to the 19th annual ACM
SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 73–82. ACM Press, 2004.
[100] S. Xinogalos, M. Satratzemi, and V. Dagdilelis. An introduction to object-oriented programming with a didactic microworld:
objectKarel. Computers and Education, 47(2):148–171, 2006.
TFA
Faia Irene e Ventura Cristina
Conclusioni
Anche se esiste un’ampia letteratura che riguarda lo studio dei metodi di insegnamento da
applicare in un corso di programmazione per studenti alle prime armi, non è stato messo in
evidenza un metodo di approccio sistematico
Non esiste una risposta canonica alla domanda:
Come insegnare in un corso introduttivo alla programmazione?
Esiste però una larga varietà di approcci che possono aiutare gli insegnanti nella
programmazione di un corso di programmazione che si basa su:
• contesto di insegnamento
• approccio istituzionale
• selezione del linguaggio
• uso di strumenti e di tecnologie
TFA
Faia Irene e Ventura Cristina
Bibliografia e Sitografia
•
•
•
•
•
•
•
Ambiente di programmazione BlueJ (Java) [59]
Karel the Robot (C e C++) [72]
CourseMarker: tool per la valutazione automatica [49]
Jeliot e jGRASP (Java) [67, 54]
JHAVÈ (Java) e MatrixPro (Visual Algorithm Simulation) [68, 56]
Tango e Polka [87, 89]
Animal e Samba [88, 68]
[59] M. K¨olling, B. Quig, A. Patterson, and J. Rosenberg. The BlueJ system and its pedagogy. Computer Science Education, 13, Dec
2003.
[72] R. E. Pattis. Karel the Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons, Inc., New York, NY, USA, 1981.
[49] C. A. Higgins, G. Gray, P. Symeonidis, and A. Tsintsifas. Automated assessment and experiences of teaching programming. ACM
Journal on Educational Resources in Computing, 5(3):5, 2005.
67] A. Moreno, N. Myller, E. Sutinen, and M. Ben-Ari. Visualizing programs with Jeliot 3. In Proceedings of the Working Conference on
Advanced Visual Interfaces, pages 373–376. ACM Press, 2004.
[54] J. Jain, I. James H. Cross, T. D. Hendrix, and L. A. Barowski. Experimental evaluation of animated-verifying object viewers for Java.
In Proceedings of the 2006 ACM Symposium on Software Visualization, pages 27–36. ACM Press, 2006.
[68] T. L. Naps. JHAVÈ – Supporting Algorithm Visualization. IEEE Computer Graphics and Applications, 25(5):49–55, 2005.
[56] V. Karavirta, A. Korhonen, L. Malmi, and K. St°alnacke. MatrixPro - A tool for on-the-fly demonstration of data structures and
algorithms. In Proceedings of the 3rd Program Visualization Workshop, pages 26–33, The University of Warwick, UK, July 2004.
[87] J. T. Stasko. TANGO: A framework and system for algorithm animation. IEEE Computer, 23(9):27–39, 1990.
[89] J. T. Stasko and E. Kraemer. A methodology for building application-specific visualizations of parallel programs. Journal of Parallel
and Distributed Computing, 18(2):258–264, 1993.
[88] J. T. Stasko. Using student-built algorithm animations as learning aids. In The Proceedings of the 28th SIGCSE Technical Symposium
on Computer Science Education, pages 25–29. ACM Press, 1997.
TFA
Faia Irene e Ventura Cristina
Bibliografia e Sitografia
• Karel, Jeroo [84] e Robocode (http://robocode.sourceforge.net)
• Alice e Greenfoot [48]
• ObjectKarel [100]
• GILD [93], Net-Beans BlueJ Edition (http://edu.netbeans.org/bluej)
• Dr Java [4] e JPie [42]
• Scratch:
http://drupal.technicat.com/writing/programming.html
http://web.mit.edu/-axch/www/programming_habits.html
[84] D. Sanders and B. Dorn. Jeroo: a tool for introducing object-oriented programming. In Proceedings of the 34th SIGCSE Technical
Symposium on Computer Science Education, pages 201–204. ACM Press, 2003.
[48] P. Henriksen and M. K¨olling. Greenfoot: combining object visualisation with interaction. In Companion to the 19th annual ACM
SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 73–82. ACM Press, 2004.
[100] S. Xinogalos, M. Satratzemi, and V. Dagdilelis. An introduction to object-oriented programming with a didactic microworld:
objectKarel. Computers and Education, 47(2):148–171, 2006.
[93] M.-A. Storey, D. Damian, J. Michaud, D. Myers, M. Mindel, D. German, M. Sanseverino, and E. Hargreaves. Improving the usability
of Eclipse for novice programmers. In Proceedings of the 2003 OOPSLA Workshop on Eclipse Technology Exchange, pages 35–39. ACM
Press, 2003.
[4] E. Allen, R. Cartwright, and B. Stoler. DrJava: a lightweight pedagogic environment for Java. SIGCSE Bulletin, 34(1):137–141,
2002.
[42] K. J. Goldman. A concepts-first introduction to computer science. In Proceedings of the 35th SIGCSE Technical Symposium on
Computer Science Education, pages 432–436. ACM Press, 2004.
TFA
Faia Irene e Ventura Cristina
Information systems & computing pedagogical Practices
1° TFA Workshop – Catania, 4-5 Marzo, 2013
Metafore, analogie e spiegazioni:
insegnare gli algoritmi
Arturo Buscarino , Fulvio Pappalardo
Testi di riferimento:
Forisek M, Steinova M "Metaphors and analogies for Teaching Algorithms”, proc of 43°
ACM technical symposium on Computer Science Education, ACM, 2012
Kerren A, Muldner T and Shakshiki E “Novel Algorithm Explanation techniques for
Improving Algorithm Teaching”, proc of
the 2006 ACM symposium on Software
visualization, ACM, 2006
OUTLINE
•Uso di metafore e analogie nell’insegnamento
•Esempi classici in Computer Science (CS)
•Misleading Metaphors
•Metodologia alternativa: Metafore Visuali
•Valutazione critica degli approcci nella scuola secondaria
•Come superare i limiti?
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
STACK
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
STACK
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
STACK
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
QUEUE
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
QUEUE
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
SORTING
Uso di metafore e analogie nell’insegnamento
METAFORE e ANALOGIE ≈ SEMPLICITÀ ed EFFICACIA
SORTING
Algoritmo di Dijkstra
Calcolo delle distanze minime tra un nodo s e gli altri nodi di
un grafo orientato
•Fissiamo v come generico vertice
•D[v] = distanza tra s e v (inizialmente infinita)
•Un vertice v può essere Visited (se D[v] è quella definitiva) o Unvisited
L’algoritmo di Dijkstra itera i seguenti passi:
1) Sia u il vertice Unvisited più vicino a s
2) Il vertice u diventa Visited
3) Per ogni arco uv si aggiorni D[v] se la distanza tra u e v è minore (la sua
distanza è D[u]+lunghezza di uv)
4) Se ci sono ulteriori vertici Unvisited si iteri dallo step 1.
Algoritmo di Dijkstra
S
S
3
12
B
B
2
A
A
5
C
C
La distanza fra A e B cambia drasticamente la distanza fra S e C!
Individuazione di un inviluppo convesso
In matematica si definisce inviluppo convesso di un qualsiasi insieme I
l'intersezione di tutti gli insiemi convessi che contengono I.
Poiché l'intersezione di insieme convessi è a sua volta convessa, una
definizione alternativa di inviluppo convesso è "il più piccolo insieme
convesso contenente I".
Individuazione di un inviluppo convesso
In matematica si definisce inviluppo convesso di un qualsiasi insieme I
l'intersezione di tutti gli insiemi convessi che contengono I.
Poiché l'intersezione di insieme convessi è a sua volta convessa, una
definizione alternativa di inviluppo convesso è "il più piccolo insieme
convesso contenente I".
Intuitivamente, l'inviluppo convesso di un insieme di punti è la forma che
assumerebbe un elastico allargato in modo da contenere tutti i punti e poi
lasciato libero di restringersi
Esperienze pratiche
Test effettuato su diversi gruppi
di studenti tra i 15 e i 19 anni
nell’arco di 10 anni
Spiegazione
con
Metafore
Apprendimento più veloce
e approfondito
Spiegazione
tradizionale
Apprendimento più
complesso e meno
radicato
Esperienze pratiche
Test effettuato su diversi gruppi
di studenti tra i 15 e i 19 anni
nell’arco di 10 anni
Spiegazione
con
Metafore
Apprendimento più veloce
e approfondito
Spiegazione
tradizionale
Apprendimento più
complesso e meno
radicato
È tutto oro quello che
luccica???
Misleading Metaphors
“The analogies become too shallow, and the metaphors become more
misleading than illuminating” (Dijkstra “On the cruelty of really teaching
Computer Science” 1989)
Metafore antropomorfe
Impossibilità di un’astrazione
Misleading Metaphors
“The analogies become too shallow, and the metaphors become more
misleading than illuminating” (Dijkstra “On the cruelty of really teaching
Computer Science” 1989)
Metafore antropomorfe
Impossibilità di un’astrazione
Misleading Metaphors
“The analogies become too shallow, and the metaphors become more
misleading than illuminating” (Dijkstra “On the cruelty of really teaching
Computer Science” 1989)
Metafore antropomorfe
Impossibilità di un’astrazione
Misleading Metaphors
“The analogies become too shallow, and the metaphors become more
misleading than illuminating” (Dijkstra “On the cruelty of really teaching
Computer Science” 1989)
Strutture dati innestate
Misleading Metaphors
“The analogies become too shallow, and the metaphors become more
misleading than illuminating” (Dijkstra “On the cruelty of really teaching
Computer Science” 1989)
Strutture dati innestate
Non tutte le strutture innestate
devono essere dello stesso tipo
Metodi alternativi: Metafore visuali
AA – Traditional Algorithm Animation: insegnare il flusso degli algoritmi
mediante animazioni
Nessuna interazione con il discente
Mancanza di stimoli nell’apprendimento
Metodi alternativi: Metafore visuali
SHALEX – Structured Hypermedia ALgorithm EXplanation
Definisce un modello astratto
dell’algoritmo (AAM):
•Nodi = Astrazione dei concetti
•Link = Dipendenze tra i concetti
•Foglie = Spiegazioni
ADT = Abstract Data Type (visione globale della
generica struttura dati e delle operazioni)
REP. = Contiene rappresentazioni visuali, testi
aggiuntivi e implementazioni concrete
Metodi alternativi: Metafore visuali
SHALEX – Structured Hypermedia ALgorithm EXplanation
Definisce un modello astratto
dell’algoritmo (AAM):
•Nodi = Astrazione dei concetti
•Link = Dipendenze tra i concetti
•Foglie = Spiegazioni
ADT = Abstract Data Type (visione globale della
generica struttura dati e delle operazioni)
REP. = Contiene rappresentazioni visuali, testi
aggiuntivi e implementazioni concrete
L’utente può svolgere 4 ruoli:
1. Learners: chi studia
2. Authors: chi fornisce le spiegazioni dell’algoritmo
3. Administrators
4. Algorithm administrators
Metodi alternativi: Metafore visuali
SHALEX – Structured Hypermedia ALgorithm EXplanation
Sistema interattivo che lascia al discente l’opzione di scegliere di
studiare uno degli algoritmi disponibili registrandone le attività di
apprendimento
L’interazione è “vitale” per
l’apprendimento attivo
Metodi alternativi: Metafore visuali
SHALEX – Structured Hypermedia ALgorithm EXplanation
Sistema interattivo che lascia al discente l’opzione di scegliere di
studiare uno degli algoritmi disponibili registrandone le attività di
apprendimento
L’interazione è “vitale” per
l’apprendimento attivo
SHALEX aiuta il discente a
comprendere
COSA fa
COME lo fa
PERCHÉ funziona in quel modo
Valutazione critica nella scuola
Metafore e Analogie
Metafore Visuali
PRO
CONTRO
PRO
CONTRO
Velocità e semplicità
Perdita di astrazione e
stretto legame con il
contesto sociale
Maggiore interazione
Necessità di
conoscenze di
background
Fissaggio profondo
dei concetti
Misleading e
soggettività di
interpretazione
Migliore
comprensione data
dalle immagini
Eccessiva astrazione
dei concetti
Come superare i limiti?
Metafore pratiche: Serie di attività pratiche basate
su analogie per stimolare l’apprendimento di
concetti informatici
http://csunplugged.org/activities
Conclusioni
Come applichereste questi metodi
alla scuola italiana?
Web programming Cosa cambia? Abbate Giuseppe UNICT -­‐ TFA A042 -­‐ 2013 Corso di Web Programming • L’ar;colo mostra i risulta; di un corso sperimentale di web programming tenuto all’università di Washington. • Livello del corso CS1.5 a metà tra CS1 e CS2 : adaLo a studen; con basi di programmazione non necessariamente studen; informa;ci. • Risulta; soddisfacen; , entusiasmo tra gli studen; , grande interesse per il web programming. Perché web programming • SoQware dentro il browser : facilità di deployment, accesso globale, e disponibilità di da; e servizi. • Oggi tecnologie mature e standard come Ajax hanno faLo evolvere il WEB verso il WEB dinamico (Web 2.0) dove vi è migliore interazione tra utente e sito (creazione e condivisione di contenu;). • Forte richiesta di programmatori esper; in applicazioni web (Google). Il corso di Web Programming • Requisi' : Il corso richiedeva conoscenze di base di programmazione (loops, selec;on, variables, arrays, func;ons) • Contenu' Protocollo HTTP Client side : Html, CSS, Javascript Server side : PHP , è free, open source, il più usato, facile il deploy. (ASP.NET, Java Servelet, etc.) • Database : MySql (MS Sql Server, Oracle, etc.) • Organizzazione : 3 lezioni di 50 min. e una sessione di lab. di 50-­‐min. a sebmana; Assignment Topic Assignment HTML/CSS Granny’s Pies Page Web page layout CSS IMDb Movie Review Javascript event-­‐driven ASCIIma;on JS DOM FiQeen Puzzle Asynchronous Javascript/XML (Ajax) Baby Name Surfer PHP server side programming To-­‐Do List HTML forms and server side data NerdLuv da;ng site Database and SQL Kevin Bacon problem Laboratorio • Gli studen; hanno riferito che le sessioni di laboratorio sono state u;lissime; • 77% degli studen; ha seguito tub i laboratori (anche se non obbliga;) • Importanza del Teaching Assistant undergraduate. Tool utilizzati • TextPad o TextMate (Mac) • Firefox Browser • Firebug debugging plugin • JsLint Javascript syntax checker • LAMP server (Linux, Apache, MySql, PHP) Dif@icoltà • Pochi tool per il debugging, i pochi che esistono non sono adab ai principian;. • Il tool più frustrante è il Browser => Firefox. • Mancanza di buone risorse per imparare web programming , sopraLuLo a livello di base => il materiale è stato preparato dagli insegnan;. • Molte cose da imparare : nuovi linguaggi, sintassi, paradigmi client-­‐server , event-­‐driven , ecc => u;lizzo di appun; e libri agli esami. Risultati questionario • Conceb più difficili : Javascript DOM e AJAX Web 2.0 => PHP e HTML sono sta; sposta; nella parte iniziale del corso; • Quale parte risulta interessante : la possibilità di essere crea;vi. • Studen; entusias; che in poche sebmane riescono a fare si; di buona qualità. • Risultato : nonostante le difficoltà , gli studen; hanno trovato interessante e u;le il corso. Pro & Contro PRO Contro Pochi requisi; richies; Lezioni tradizionali (perché non un approccio case-­‐based?) U;lizzo del TA in laboratorio Poco laboratorio (50-­‐min a sebmana) Studen; mo;va; grazie all’esperienza mul;mediale della programmazione web. Argomen; traLa; singolarmente (integrare subito non dopo) Mancanza di un IDE References -­‐ Books • Paper : A “CS 1.5” Introduc;on to Web Programming (Marty Stepp, Jessica Miller, Victoria Kirst – University of Washington , SeaLle, WA) • Paper : INTEGRATION EARLY : A NEW APPROACH TO TEACHING WEB APPLICATION DEVELOPMENT (D. Robert Adams -­‐ School of compu;ng and informa;on Systems – Grand Vally State University – Allendale , MI , USA) • Book : Programming the World Wide Web 7° ed. (Robert W. Sebesta) Università degli Studi di Catania
a.a. 2012 - 2013
Corsisti: C.Lombardo
G. Re
Da dove si inizia?
 Insegnare la programmazione elementare è un
processo difficile.
 Molti studenti non riescono ad afferrare i
concetti di base e abbandonano i loro
programmi di studio.
F(Interesse, motivazione)
Existing Systems
 Diverse soluzioni sono state proposte per contribuire ad
insegnare la programmazione proponendo soluzioni
per accrescere l’interesse e la motivazione.
Tipicamente queste comportano l'uso di un linguaggio
di alto livello che nasconde la maggior parte dei dettagli
di un programma.
 Ci sono dei giochi che forniscono una prospettiva
interessante per imparare a programmare:
motivazione
Il linguaggio di programmazione Logo è stato
creato, nella sua prima versione, al MIT
(Laboratorio di Intelligenza Artificiale) di Boston
nel 1967 da un gruppo di ricercatori in cui operava
anche il matematico Seymour Papert collaboratore
dello psicologo svizzero Jean Piaget .
La filosofia in cui rientra il linguaggio Logo è il
Costruttivismo che concepisce l'apprendimento
come un processo di esplorazione, di creazione e
di costruzione e lo sviluppo della conoscenza
come interazione con le altre persone e col
mondo circostante.
 Greenfoot è un ambiente di sviluppo che permette di
realizzare
facilmente
applicazioni
grafiche
e interattive in linguaggio Java (framework).
 si tratta di un live object world framework che mette a
disposizione una manciata di utili scenari predefiniti da
utilizzare in sede di sviluppo e di compilazione.
 Si può facilmente editare direttamente il codice per
avere più flessibilità e fare cose più complesse.
Un metodo è una singola azione che può essere eseguita da un
oggetto.
Anche il mondo è un oggetto con dei
propri metodi che possono essere
richiamati.
…nessuna soddisfazione
www.greenfoot.org
Scratch è un nuovo linguaggio di programmazione che rende
la programmazione più coinvolgente e accessibile a bambini,
ragazzi e a tutti colori che stanno imparando a programmare.
Permette di creare storie interattive, animazioni, giochi e
musica
Caratteristiche:
 Programmazione a blocchi
 Manipolazione dei media
 Condividere e collaborare
Programmazione a blocchi:
• Per creare programmi con Scratch devi soltanto assemblare dei blocchi
colorati.
• I blocchi sono disegnati per incastrarsi solo se formano delle sequenze
corrette, quindi non esistono gli errori sintattici.
• Tipi di dati diversi hanno forme diverse, eliminando gli errori di tipo.
http://scratch.mit.edu
screenshot
Denver University Experience
Dr. Jeffrey Edgington
Lecturer
Faculty
E-mail: [email protected]
Dr. Scott Leutenegger
Professor
Faculty
E-mail: [email protected]
WHY?
La necessità è stata contrastare il crollo delle
iscrizioni in informatica. Tra il 2000 e il 2005 c'è
stato un 60 - 70% di riduzione delle
immatricolazioni per le lauree informatiche
WHAT?
L’approccio diretto alla programmazione
classicamente impostato sul confronto tra la
programmazione procedurale e quella Object
Oriented ha creato nel tempo disaffezione
all’apprendimento dell’informatica
HOW?
IDEA: APPROCCIO BASATO SULLA PROGRAMMAZIONE
APPLICATA ALLA CREAZIONE DI GIOCHI
- Il primo approccio che i ragazzi hanno
con il pc è attraverso il gioco
- L’approccio al gioco avvicina
all’informatica sia gli uomini che
le donne (45% delle persone che giocano al pc sono donne)
- L’Università di Denver ha
attivato un corso di laurea
in ‘’Game Development’’.
L’Università di Denver ha attivato un corso introduttivo
sviluppato in TRE trimestri.
- PRIMO TRIMESTRE: Approccio alla programmazione
in ambiente Flash con linguaggio ActionScript
- SECONDO TRIMESTRE: linguaggi di programmazione
C + + e il sistema operativo Unix
- TERZO TRIMESTRE: si prosegue con C + +. Gli
studenti vengono introdotti alla semplice
programmazione grafica utilizzando l'API OpenGL.
Progetti orientati al gioco ed alla simulazione.
PRIMO TRIMESTRE: Approccio alla programmazione in
ambiente Flash con linguaggio ActionScript
Creare e spostare un oggetto grafico all’interno dello schermo
utilizzando la funzione onEnterFrame di ActionScript.
var xIncrement:Number = 6 ;
onEnterFrame = function() {
theBall._x += xIncrement ; // move the ball
if (theBall._x > Stage.width) xIncrement *= -1 ;
if (theBall._x < 0) xIncrement *= -1 ;
}
LA LOGICA DI PROGRAMMAZIONE E LA CORRETTEZZA POSSONO ESSERE
VERIFICATE DALLA VERIFICA VISUALE DELL'ANIMAZIONE RISULTANTE.
Nel corso del trimestre vengono assegnati, tre differenti progetti di
gioco di difficoltà crescente.
•
Flash è divertente e semplice
per iniziare a scrivere giochi in
ActionScript
•
A differenza di Java, ActionScript
richiede pochissime e semplici
linee di codice
DRAWBACK
ActionScript non necessita di dichiarazione di variabili. Errori di scrittura del
Immediato
feedback
codice
possono
crearegrafico.
problemi che a volte sono difficili da trovare.
L’ errore
puòpossono
essere determinato
Gli
studenti
incorrere in difficoltà legate al fatto che un errore di
‘’visivamente’’
l'animazione
scrittura
di unaosservando
lettera passa
inosservato ma rende il programma non
funzionante.
La sintassi elementare di ActionScript è quasi identica al C++.
Questo fornisce una facile transizione dal primo trimestre al
secondo trimestre.
•
•
•
Flash e ActionScript sono utilizzati nel "mondo reale".
Agli studenti piace il fatto che stanno imparando una lingua che ha
applicazioni immediate.
SECONDO TRIMESTRE: linguaggi di programmazione C + + e
il sistema operativo Unix
-
Puntatori (non disponibili in ActionScript)
Allocazione dinamica della memoria
Ricorsione
Eredità dei dati
Strutture dinamiche (liste ed alberi).
PROBLEMATICHE INDIVIDUATE
• PROGRAMMAZIONE PURA,
• APPROCCIO DIFFERENTE RISPETTO AL PRIMO TRIMESTRE
SOLUZIONI POSSIBILI (forse applicate ma non documentate):
• Proporre agli studenti di utilizzare le nuove nozioni, applicandole nella
realizzazione di giochi simili a quelli visti nel primo trimestre.
• Evidenziare che alcune operazioni complesse che non era possibile fare con
l’ambiente più chiuso (flash) possono essere fatte con una programmazione più
a basso livello.
AUMENTO DELL’INTERESSE DELLE STUDENTESSE NEI
CONFRONTI DELLE TECNOLOGIE INFORMATICHE.
- L’ approccio si è rivelato vincente.
- L’ ambiente 2D Flash si presta bene per lo sviluppo di giochi
semplici.
- Le donne sono altrettanto motivate
dall’approccio Game Oriented allo stesso
modo degli uomini.
AUMENTO DELL’INTERESSE E DELLE ISCRIZIONI NEGLI ANNI
SUCCESSIVI.
2005
2006
36 studenti iscritti
all’anno
Introduttivo
(Università di
Denver)
60 studenti iscritti
all’anno
Introduttivo
(Università di
Denver)
TENDENZA
NAZIONALE
- 45%
l'approccio alla programmazione attraverso la
realizzazione di giochi è qualcosa che dovrebbe essere
seriamente presa in considerazione dalle altre scuole.
Teaching
data structures
and
algorithms
Nicolosi Giuseppe
Scalisi Paolo
Classe A034
È possibile apprendere
divertendosi?
Data structures
& algorithms
Card
games
Visualizers
Testers
Data structures
& algorithms
Card
games
Visualizers
Testers
• Aalto University (Finlandia): giochi di carte per
l’apprendimento dei concetti didattici di algoritmi di
ordinamento e strutture dati.
1. SORTINGGAME
2. SORTINGCASINO
Card games
• Due tipi di carte:
1. Algorithm cards
2. Special cards
carte corrispondenti al
meccanismo di ordinamento
dell’algoritmo (heapsort,
mergesort)
carte corrispondenti al criterio
con cui si classifica una carta
algoritmo (stable algorithm,
recursive algorithm)
Sortinggame: regole del gioco
Fase 1: special cards
Fase 2: algorithm cards
Sortinggame: regole del gioco
• Il vincitore è colui il cui algoritmo ha un tempo
computazionale minimo
• Ogni giocatore può contestare uno specifico
abbinamento special card-algorithm card
• Esempio: heapsort, non stabile, non può essere
giocato con la special card stable
Sortinggame: regole del gioco
Strenghts:
• richiesta capacità di valutazione della complessità
degli algoritmi
Weakness:
• giocatori inesperti possono non essere in grado di
riconoscere abbinamenti sbagliati special cardsalgorithm cards
Sortinggame: strenghts &
weakness
In mano
Ogni giocatore può prendere
uno o più carte dal tavolo
usando una delle carte in suo
possesso secondo la
corrispondenza special cardalgorithm card
Sul tavolo
Sortingcasino: regole del gioco
• Il vincitore è colui che riesce a collezionare più
carte
• Se un giocatore non è in accordo con la validità
di una giocata può contestarla: chi ha ragione
prenderà una carta dall’avversario
• In casi di controversia si può consultare il
materiale relativo al corso
Sortingcasino: regole del gioco
Strenghts:
• Richiesta capacità di classificazione degli algoritmi
in base alle loro caratteristiche
• Approfondimento degli argomenti del corso in fase
di risoluzione delle controversie
Weakness:
• Giocatori inesperti possono non essere in grado di
riconoscere abbinamenti sbagliati special cardsalgorithm cards e viceversa.
Sortingcasino: strenghts &
weakness
Data structures
& algorithms
Card
games
Visualizers
Testers
Strumenti per la visualizzazione di strutture dati realizzati
dagli studenti.
Gruppo 1: Visualizzatori per
l’animazione e la comparazione di
algoritmi differenti molto utili per
l’insegnamento delle strutture dati
(BALSA, TANGO, JAWAA, GAIGS);
Strenghts: vista concettuale ad
alto livello del funzionamento
delle strutture dati
Weakness: vista non interattiva
che permette di sfruttare in
modo limitato le potenzialità
della struttura dati
Visualizers
Strumenti per la visualizzazione di strutture dati realizzati
dagli studenti.
Gruppo 2: Visualizzatori interattivi per
mostrare la locazione delle strutture dati in
memoria.
Strenghts: vista molto chiara della
struttura dati così com’è
implementata fisicamente in
memoria
Weakness: vista non concettuale
della struttura dati
Visualizers
1. Assenza di interferenza tra visualizzazione e
l’implementazione;
2. Possibilità di interazione in tempo reale con tutte le
operazioni sui dati;
Visualizers: goals
Strumento per visualizzazione strutture dati in Java.
Esiste un ambiente interattivo che effettua interscambi tra
strutture dati su richiesta dell’utente.
JDSL Visualizer
Data structures
& algorithms
Card
games
Visualizers
Testers
Strumenti per il debugging automatico del programma.
Gruppo 1: ASSYST Testers
Strenghts: accuratezza nei risultati
del test; misurazione del tempo di
esecuzione; controllo del corretto
stile di programmazione e
commenting.
Weakness: evoluzione ridotta
Gruppo 2: TRY Testers
Strenghts: semplicità di
applicazione
Weakness: sicurezza
Testers
Strumento per la verifica della correttezza degli algoritmi mediante 2
implementazioni simultanee (una dello studente e una di riferimento)
Costituito da 4 componenti: parser, generic tester, generic factory, comparator
interface.
Generic
Factory
Algoritmo
studente
Parser
Generic
Tester
JDSL Tester
Struttura
dati
Comparator
Interface
Struttura
dati
• Strutture dati e algoritmi hanno molti concetti e regole
sfruttabili per sviluppare educational games.
• Animazioni molto efficaci se accompagnate da
spiegazione letterale o auditiva
• Concetto base: imparare giocando!
• La maggior parte degli studenti ha trovato utili visualizer
e tester ma non essendo molto user-friendly sono usati in
modo poco efficace
CONCLUSIONI
Università degli Studi di Catania
Tirocinio Formativo Attivo
Anno 2013
Dai giochi alle Simulazioni per
insegnare Sistemi Operativi
Classe A034 – Elettronica
Modulo – Didattica e laboratorio di Sistemi Informatici
Prof. Daniela Giordano
Paolo Cacopardo
Vincenzo Galizia
«La teoria è quando si sa tutto ma non
funziona niente.
La pratica è quando funziona tutto ma non si
sa il perché.
In ogni caso si finisce sempre con il coniugare
la teoria con la pratica:
non funziona niente e non si sa il perché.»
(Albert Einstein)
Puzzles and Games
Un modo diverso per studiare i
Sistemi Operativi
John M. D. Hill, Clark K. Ray, Jean R. S. Blair, and Curtis A. Carver, Jr.
Department of Electrical Engineering and Computer Science
United States Military Academy
West Point, NY 10996
Il Grande Gioco Del TFA
Il Grande Gioco delle Parole Nascoste
PAROLE NASCOSTE
N
•Segui attentamente la presentazione.
1
2
•Trova le parole nascoste.
3
4
5
•Scrivile nelle opportune caselle.
6
7
•Alla fine ti verrà data la chiave per
8
9
riordinare la prima colonna di lettere.
10
11
12
•Nella riga in basso potrai leggere la parola
13
14
"misteriosa" di oggi.
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
•Buon Divertimento
Di cosa parliamo?
• Diversi studenti, diverse tecniche di
apprendimento.
• Diversi argomenti dell’Informatica possono
essere compresi mediante puzzle e giochi.
• Cruciverba, Jeopardy! , BattleThreads e
Process State Transition games.
• Effettiva efficacia dei giochi e possibili sviluppi.
Presupposti?
• Non è un segreto ormai che ogni Studente ha
un proprio metodo di apprendimento.
– Usare diversi stili di Insegnamento può migliorare il
rendimento complessivo
• Il modello di Felder prevede diversi caratteri
base:
–
–
–
–
Sensoriale/Intuitivo
Attivo/Riflessivo
Visuale/Verbale
Sequenziale/Globale
Presupposti?
• Oltre a Testi, Letture, Compiti e risorse online è diffuso
l’utilizzo di attività in classe.
– Su questo si basano importanti teorie per il miglioramento
dell’apprendimento delle materie ingegneristiche.
• Un’idea consiste nell’utilizzare giochi in classe come
strategia di insegnamento.
– L’utilizzo dei giochi non è una novità in assoluto.
– Si usano in economia e nelle scienze sociali, in matematica
e nei corsi di scienze.
– Esistono diversi lavori sull’argomento.
Giochi per i corsi di Informatica:
Cruciverba?
• Possono servire per rinforzare conoscenze già
acquisite o per introdurre nuovi argomenti.
Giochi per i corsi di Informatica:
Cruciverba?
– Si tratta di un gioco individuale che difficilmente si presta alla
competizione.
– Ogni studente può disporre di tempi diversi per completare la
tavola.
– Può essere consentito di completare a casa il cruciverba.
Tuttavia è preferibile completare a scuola
-per avere a disposizione l’insegnante.
-per avere un feedback immediato.
-(per non consentire l’uso di strumenti impropri).
Giochi per i corsi di Informatica:
Jeopardy! ?
• Si tratta del format originale da cui fu ricavato il famoso Rischiatutto
di Mike Bongiorno.
• Si prevede un tabellone con gli argomenti relativi alla materia da
trattare. (Chi non salta bianco è - White Men Can't Jump)
• Il gioco è implementato in HTML e si può anche giocare da casa.
Tuttavia è preferibile giocare a scuola
-per avere a disposizione l’insegnante.
-per avere un feedback immediato.
-Per rendere il gioco più interessante.
Giochi per i corsi di Informatica:
Jeopardy! ?
• Per ogni argomento si prevede un certo numero di domande di diversa
difficoltà.
• In base alla difficoltà della domanda si guadagna un diverso punteggio.
Programmazione
Database
Sistemi Operativi
Linguaggi
Architettura
200
200
200
200
200
400
400
400
400
400
600
600
600
600
600
800
800
800
800
800
1000
1000
1000
1000
1000
• La correttezza delle risposte può essere verificata in modo automatico o
dall’insegnante.
• L’insegnante può completare la risposta fornendo ulteriori commenti o
informazioni.
Cosa pensano gli studenti?
• Il cruciverba è stato apprezzato da tutti gli studenti interpellati.
• Jeopardy! è un quiz show molto famoso ed apprezzato negli Stati Uniti
così come lo è stato Rischiatutto in Italia.
•Per questo probabilmente il
gioco è stato sostanzialmente
bene accolto.
•Qualche studente pensa che
sarebbe meglio giocarlo in
piccoli gruppi anche tra classi
diverse per evitare l’inattività
di alcuni.
E per i Sistemi Operativi?
• Partendo da questi presupposti si è tentato di creare
dei giochi che meglio si adattassero all’insegnamento
dei Sistemi Operativi.
– Ci si è basati sulle indicazioni di Studenti (e Professori) di
un corso di Algoritmi second-semester juniors.
– Gli Studenti avrebbero preferito esercitazioni in classe e
che avrebbero investito tempo solo se costretti a farlo.
– Gli stessi Studenti il semestre successivo si trovavano ad
affrontare un corso di Sistemi Operativi.
E per i Sistemi Operativi?
• The BattleThreads Game
• The Process State Transition Game
The BattleThreads Game?
• Una variante del famoso gioco BattleShip 
• Una iterazione di questo gioco è stata utilizzata per dimostrare
le differenze tra Processi e Thread, e i vantaggi della
comunicazione tra Thread negli stessi Processi attraverso lo
spazio di indirizzi condiviso.
The BattleThreads Game?
Lo scopo del gioco è:
– Far capire cosa è un Thread
– Far capire la differenza fra Thread e Processo
– Far capire i vantaggi di un’organizzazione Multithread
nell’ottimizzazione delle applicazioni e delle prestazioni.
The BattleThreads Game?
• La classe è suddivisa in squadre formate da un
controller e da un certo numero di giocatori.
• Le dimensioni del tabellone di gioco e le dimensioni
delle navi devono essere adattate al numero di
giocatori/studenti.
• Una regola opzionale è che le navi non possono
essere adiacenti l'una all'altra.
The BattleThreads Game?
• Ogni giocatore piazza una nave sul tabellone e a ogni turno
spara un colpo finché la sua nave non viene affondata.
• Il controllore conosce la disposizione delle navi degli avversari.
• Alla fine del turno il controllore informa la sua squadra sugli
effetti del colpo se ha colpito, affondato o se ha mancato
l’obiettivo.
The BattleThreads Game?
A
B
C
D
E
F
G
1
1
2
2
3
3
4
4
5
5
6
6
7
7
A
B
C
D
E
F
G
• Supponiamo di avere 12
giocatori suddivisi in 2
squadre da 5 giocatori più
un controllore.
• Basta una griglia 7x7 e ogni
nave è composta da 3
quadratini.
The BattleThreads Game?
Thread5
Thread4
Thread3
Thread2
Thread1
• La prima squadra costituisce un solo Processo suddiviso in
cinque Thread.
– Tutti hanno accesso alla griglia nemica che rappresenta uno stesso
spazio di memoria.
– Qualsiasi modifica alla griglia nemica è nota a tutti i Thread
immediatamente.
– Non sono consentite altre forme di comunicazione tra Thread.
The BattleThreads Game?
• La seconda squadra è costituita da cinque Processi distinti.
Processo1
Processo2
Processo3
Processo4
Processo5
– I Processi possono usare solo meccanismi di comunicazione stabiliti.
– Solo chi è in gioco conosce l’effetto del suo colpo.
– Per comunicarlo agli altri processi bisogna scegliere di non sparare per
un turno.
Chi vince?
• Naturalmente il singolo Processo è
avvantaggiato.
– Appena una nave viene colpita da un Thread gli
altri concentrano i loro colpi successivi sulla zona
del colpo andato a segno.
– Per la squadra costituita da cinque Processi distinti
questa possibilità è subordinata alla decisione di
saltare un turno.
Cambiamo le regole?
• Per familiarizzare col gioco inizialmente non si
danno le regole che distinguono le due
squadre.
– In un secondo momento si introducono le regole.
– Si può pensare di decidere le regole in modo
interattivo con i giocatori stessi con la guida del
Docente.
The Process State Transition Game?
• In un corso di Sistemi Operativi che utilizza il libro di testo di
William Stallings un tema importante che coinvolge la
gestione dei processi è stato supportato dalla creazione di un
gioco The Process State Transition Game .
• Secondo Stallings, uno dei risultati più importanti
della storia della progettazione dei sistemi operativi è il
concetto di processo.
• Una delle funzioni più importanti del sistema operativo è la
gestione dei processi.
• Può essere rappresentata proprio come un modello di stato.
The Process State Transition Game?
• Si costituiscono gruppi di 4 - 6 Studenti.
– Uno Studente è il S.O.
– Uno Studente è il “cronometrista”.
– Gli altri Studenti sono i Processi.
The Process State Transition Game?
• Ogni Processo ha a disposizione un piano di gioco
con i sette stati di transizione di un Processo.
The Process State Transition Game?
• Ogni Processo è rappresentato dall’alternarsi
tra esecuzione e blocco.
– Ad esempio il Processo A1 è attivo per 3 unità di
tempo, è bloccato per 4 unità di tempo …
Processo A1: P3, B4, P2, B5, P3.
Processo A2: P2, B3, P3, B2, P1.
Processo B1: P3, B5, P1, B3, P2.
ecc …
The Process State Transition Game?
• Ogni Processo richiede una certa quantità di
memoria che gli viene assegnata quando va in
esecuzione e dei marcatori vengono posti su una
griglia che rappresenta la main memory.
• Quando il Processo è sospeso i marcatori vengono
sollevati dalla griglia per indicare che ha lasciato il
posto ad un altro Processo.
The Process State Transition Game?
• I Giocatori/Studenti apprendono la difficoltà
della gestione dei Processi
– Come decidere quale Processo attivare o
sospendere.
– Come gestire le code.
– Come gestire le priorità.
The Process State Transition Game?
• Importante ai fini del gioco è assegnare la
giusta quantità di processi.
Troppi processi
Il gioco si impantana
Pochi processi
Nessun Processo
da sospendere
Cambiamo le regole?
• Si può giocare alla lavagna.
– Un gruppo va alla lavagna
– Gestisce il funzionamento del S.O.
– Spiega il suo risultato.
– Tutti guardano e verificano i loro risultati.
– Si confrontano i risultati.
Cosa pensano gli Studenti?
• Sono stati invitati ad esprimere una valutazione
anonima della loro esperienza.
• La scala delle risposte andava da “per niente
d’accordo” a “molto d’accordo” rispetto a delle
affermazioni.
Cosa pensano gli Studenti?
• Entrambi i giochi hanno ottenuto consensi.
• The BattleThreads Game
– Più familiare.
– Netta differenza fra i due set di regole.
– Peggiori risultati se si decidono le regole in modo
interattivo e guidato.
• The Process State Transition Game
– Sempre meglio … di una lezione!
– Alcuni studenti non l’hanno gradito.
Cosa pensano gli Studenti?
• Probabilmente non era adatto al loro stile di
apprendimento.
• Questo ci dimostra ulteriormente che ci sono stili di
apprendimento diversi.
• Non tutti gli approcci vanno bene per tutti.
Cosa pensano gli Studenti?
• Alla lavagna i gruppi hanno più spazio.
• Il banco è però più familiare e consente forse una migliore
concentrazione.
• Gli altri però possono prendere appunti.
• Mentre se ognuno gioca dal banco non lo fanno.
Cosa ne viene fuori?
• Troppo semplice il passaggio di stato e le operazioni
di memoria.
• Era una semplificazione per non rendere complicato
il gioco.
• In particolare Battaglia navale era inizialmente
troppo semplice.
• Questo indica però che gli studenti stavano
comprendendo la difficoltà degli argomenti.
Cosa ne viene fuori?
• Sarebbe meglio fornire le regole con un po’ di
tempo a disposizione prima dell’inizio del
gioco per evitare di perdere tempo ad
impararlo.
• Specialmente The Process State Transition
Game.
Si ma … i risultati?
• Gli studenti hanno dovuto rispondere ad un
questionario di apprendimento.
• I risultati non sono stati del tutto
soddisfacenti.
• Specialmente gli Studenti che hanno
affrontato The Process State Transition Game
sono andati sotto media nella risposta.
E allora che si fa?
•
•
•
•
•
•
•
•
Implementazioni semplici.
Oggetti familiari (Carte, Dadi, Marcatori)
Bisogna migliorare i giochi.
Scegliere gli argomenti che si prestano meglio
Stabilire regole chiare e semplici.
Fornire anticipatamente le regole.
Testare i giochi
Non sovraccaricare il Docente.
Cosa va bene?
• Partecipazione.
• Interesse.
• Si rende l’idea concreta di concetti spesso
troppo astratti.
• Si coinvolgono diversi stili di apprendimento.
• Si favorisce l’apprendimento socializzato.
• Si approfondiscono concetti non chiari.
• Si forniscono ulteriori informazioni.
Cosa non va (bene)?
• Si rischia di perder tempo ad imparare il gioco.
• Si rischia di non capire chi realmente conosce
l’argomento.
• Potrebbe non piacere.
– Sarebbe meglio usare giochi già testati
In Italia?
•
•
•
•
•
•
Grande fratello.
Eredità (La ghigliottina).
Money drop.
Ruzzle.
La prova del cuoco.
Quiz anni ’60, ’70, ‘80 e ’90 …
Mike Bongiorno
Quale prendereste in considerazione?
Risorse disponibili
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
http://www.passatempi.brianzaest.it/contiene/ENIGMD.HTM
http://www.operasanfrancesco.it/OSF/
http://www.gametime.it/gioco/creare_cruciverba.html
http://www.crossword-compiler.com/it/
http://crossword-forge.softonic.it/
http://www.nac.unina.it/eutopia/ NON FUNZIONA
http://www.istc.cnr.it/it/question/i-giochi-al-computer-possono-insegnare-relazionarsi
http://www.mangahigh.com/en/?localeset=en
http://www.ibs.it/code/9788867090006/emer-fabrizio/docente-multimediale-insegnare.html
http://www2.ub.edu/euelearning/proactive/documents/ProActive_guidelines_ITA.pdf
http://www.mediamente.rai.it/mediamentetv/learning/corsi/0002c4_1.asp
http://scuola.linux.it/docs/elementare/linuxinclasse1/sommario.html
http://www.matematicamente.it/giochi_e_gare/
http://www.itespresso.it/lezioni-di-informatica-a-scuola-senza-pc-nella-filosofia-open-source-75156.html
http://www.scuolaedidattica.com/informatica/informatica.pdf
http://www.impariamoascrivere.it/giochi.php
http://www.vbscuola.it/pagine/glandi.htm
http://it.wikipedia.org/wiki/Istruzione_negli_Stati_Uniti_d%27America
http://it.wikipedia.org/wiki/Chi_non_salta_bianco_%C3%A8 Time: 01:23:00
APPROCCIO BASATO SUL
MODELLO COSTRUTTIVISTA:





Processo di apprendimento interessante, gli studenti vanno
stimolati
Il centro del processo di apprendimento è lo studente
Insegnamento individualizzato
Enfasi sulla relazione insegnante-studente
Formazione di gruppi di lavoro per apprendimento cooperativo
UTILIZZO DI UN SIMULATORE PER TRATTARE L’ARGOMENTO DEI SISTEMI OPERATIVI,
IN QUANTO:



L’argomento non ha per sua natura una struttura lineare
Libri di testo e slides lasciano l’argomento su un piano troppo astratto
Necessario utilizzare strumenti in grado di tradurre la teoria in una realtà più pratica
IL SIMULATORE UTILIZZATO: SOsim
 Simulatore visuale
 semplice in quanto a interfaccia e utilizzo
 implementa alcuni degli algoritmi che si trovano in sistemi operativi
commerciali
 emula i principali sottosistemi di un sistema operativo multiprogrammato:
 gestore dei processi
 Scheduler
 paginazione della memoria virtuale.

Small practice projects


Lavoro in laboratorio supervisionato, su sistemi Unix-based, dove gli studenti interagiscono col
linguaggio di comando della shell e sviluppano programmi per mezzo di chiamate di sistema
documentate, i quali possono includere alcuni servizi di sistema.
Modification in the OS code

Vengono usati a questo scopo sistemi open source oppure software fatti per la didattica.
VANTAGGI DELL’APPROCCIO COL
SIMULATORE
Rispetto all’approccio della modifica del codice non è richiesta:
 conoscenza approfondita dell’architettura dei calcolatori
 conoscenza approfondita dei sistemi Unix
 conoscenza approfondita di C/C++
Inoltre il tempo necessario ad installare, modificare e fare il debug del sistema è
non indifferente.
Rispetto all’approccio small practice projects non è richiesta buona conoscenza
di programmazione in C, pascal o java.
In ogni singolo studente devono essere stimolate le capacità di problem solving in
modo tale che sia in grado di generare ipotesi, trovare soluzioni alternative, fare
proposte ed essere in grado di discutere le Problematiche inerenti la disciplina con
i compagni.
In questo contesto il simulatore consente di:

verificare la conoscenza acquisita

di avere una visione della disciplina coerente con la realtà

permettere agli studenti di verificare le proprie ipotesi imparando dai propri
sbagli.
Punti di forza dell’approccio:
 Adatto per corsi di base sui sistemi operativi
 Non richiede conoscenze approfondite
Punti di debolezza dell’approccio:
 Non adatto a corsi avanzati sull’argomento
Questo modello pedagogico sperimentale è
stato messo in pratica alla «Pontifical Catholic
University» di Rio de Janeiro (PUC-Rio),
generando i seguenti feedback tra gli studenti:
 DOWNLOAD
DEL SIMULATORE SOsim:
www.training.com.br/sosim
non richiede installazione
 DOWNLOAD E GUIDA DEL SIMULATORE CPU-OS
SIMULATOR:
http://www.teach-sim.com/
richiede installazione
APPROCCIO BASATO SU:

Kernel della famiglia Windows di Microsoft (accessibile dal 2006)

Uno schema in tre fasi

Lezioni

Seminario

Modifica ed esecuzione del codice sorgente

Prima fase:
Due semestri di lezioni
 Sperimentazioni in classe
 laboratori (consistenti in monitoraggio di prestazioni)
 Compiti da fare a casa


Seconda fase:
Seminario sull’amministrazione e i servizi dei sistemi operativi
 Settaggio e valutazione sperimentale sui sistemi in laboratorio (analisi)


Terza fase:

Modifica, costruzione, installazione ed esecuzione della propria
versione del sistema operativo
Alla fine del percorso gli studenti devono sottoporsi a quiz ed
esercizi e fare un resoconto sulle sperimentazioni effettuate;
devono anche dimostrare padronanza dell’argomento spiegando
l’implementazione di certe funzionalità del sistema operativo.
L’approccio «Windows» è stato sperimentato in
due differenti contesti:
1) Come estensione del classico curriculum
Unix-based

Acquisisce consensi da parte degli studenti e ne aumenta la
motivazione dovuta alla comparazione Windows-like/Unixlike; agli studenti sono necessarie in media un’ora di studio
individuale per ogni ora di lezione.
Come unico argomento del corso
2)

Difficoltà da parte degli studenti nel connettere i concetti
alle implementazioni e nella programmazione; agli studenti
sono necessarie in media due ore o più di studio individuale
per ogni ora di lezione.
 Vantaggi:
 comparazione
diretta tra sistemi Windows/Unix
 Adatto a corsi avanzati
 Svantaggi:
 Richiede
tempo
 Necessita di laboratori ben attrezzati
 Non adatto a corsi di base
 Richiede un background di conoscenze
approfondito
5
6
8
3 11 10 1 16 9 12 14 4
Buona Fortuna
7
2 13 15
Grazie!