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!