Questionario insegnanti 2016

In [1]:
from IPython.display import HTML, Markdown

HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
<input type="button" value="Clicca per vedere/nascondere il codice Python" onclick="code_toggle()">''')
Out[1]:
In [2]:
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')

%matplotlib inline

Domande e tasso di partecipazione al questionario

In [3]:
survey = pd.read_csv("Questionario Bebras 2016 (Responses) - Form Responses 1.csv",
                     dtype='category',
                     parse_dates=['Timestamp'], infer_datetime_format=True)

questions = list(survey.columns[1:][:])
survey.columns = ['time', 'firsttime', 'how', 'others', 'othersdone', 'n', 'cat', 
                  'opinion', 'colleagues', 'teachhints', 'teach', 'activities', 'subject', 'grade',
                  'curriculum', 'currquiz', 'reuse', 'commentsorg', 'commentssw', 'comments', 'again']

survey['subject'] = survey['subject'].str.strip().str.lower().astype('category')
survey['others'] = survey['others'].str.split(',')
survey['othersdone'] = survey['othersdone'].str.split(',')
survey['grade'] = survey['grade'].str.split(',')
survey['reuse'] = survey['reuse'].str.split(',')
In [4]:
participants = survey[survey['n'].str.startswith('Nessuna') == False].copy()
POPULATION = 670
In [5]:
from collections import OrderedDict

SCHOOLS = OrderedDict( [('primary', 'Primaria'), 
                        ('secondary1', 'Secondaria di primo grado'), 
                        ('secondary2', 'Secondaria di secondo grado')])

participants['primary'] = participants['cat'].str.contains('KILO')
participants['secondary1'] = participants['cat'].str.contains('MEGA') | participants['cat'].str.contains('GIGA')
participants['secondary2'] = participants['cat'].str.contains('TERA') | participants['cat'].str.contains('PETA')
In [6]:
def get_question(q):
    return questions[list(participants.columns).index(q)-1].decode('utf8')

s = ''
for i, q in enumerate(questions):
    s += '{}. {} (`{}`)\n'.format(i+1, q, survey.columns[i+1])
Markdown(s)
Out[6]:
  1. È la prima volta che partecipi al Bebras dell'Informatica? (firsttime)
  2. Come sei venuto a sapere dell'iniziativa Bebras dell'Informatica? (how)
  3. Conosci qualcuna delle seguenti iniziative? (others)
  4. Hai partecipato (in passato o quest'anno) a qualcuna delle seguenti iniziative? (othersdone)
  5. Con quante squadre hai partecipato al Bebras? (n)
  6. In quali categorie Bebras hanno partecipato le tue squadre? (cat)
  7. Come giudichi globalmente l'esperienza? (opinion)
  8. Hai coinvolto nell'iniziativa colleghi delle scuole in cui lavori? (colleagues)
  9. Hai suggerimenti su come rendere i quesiti Bebras più facilmente utilizzabili in classe anche al di fuori della gara? (teachhints)
  10. Hai intenzione di utilizzare i quesiti Bebras per organizzare ulteriori attività didattiche nelle tue classi? (teach)
  11. Oltre alla gara e a eventuali sessioni di allenamento, in quali altre attività didattiche hai usato, hai intenzione di usare, o pensi si possano usare i quesiti Bebras? (activities)
  12. In quale materia curricolare pensi si possano usare i quesiti Bebras? (subject)
  13. In quale ordine di scuola pensi si possano usare i quesiti Bebras nell'attività curricolare? (grade)
  14. Descrivi che uso pensi si possa fare dei quesiti Bebras nell'attività curricolare (curriculum)
  15. Puoi citare un esempio di quesito che pensi si possa usare nell'attività curricolare? (currquiz)
  16. Quali di queste possibilità pensi renderebbero i quesiti più facilmente riutilizzabili in classe? (reuse)
  17. Hai suggerimenti su come migliorare l'organizzazione (iscrizioni, gestione delle squadre, ecc.) del Bebras? (commentsorg)
  18. Hai suggerimenti su come migliorare la piattaforma di gara? (commentssw)
  19. Hai altri suggerimenti o commenti sul Bebras? (comments)
  20. Pensi di partecipare al Bebras anche l'anno prossimo? (again)
In [7]:
questions[list(participants.columns).index('opinion')-1] += ' (1=Pessima, 5=Ottima)'
questions[list(participants.columns).index('again')-1] += " (1=Non credo, 5=Senz'altro)"
In [8]:
s = u"Hanno risposto in **{}**, di cui **{}** partecipanti all'edizione 2016 (su {}, **{:.2f}%**):".format(len(survey), 
                                                                                      len(participants),
                                                                                      POPULATION, 
                                                                                      100*len(participants)/float(POPULATION))
for k in SCHOOLS:
    n = participants[participants[k]][k].count()
    s += u" {} con squadre della scuola {},".format(n, SCHOOLS[k])
s = s[:-1] + u". (Alcuni insegnanti hanno squadre in più gradi scolastici.)"
Markdown(s)
Out[8]:

Hanno risposto in 384, di cui 357 partecipanti all'edizione 2016 (su 670, 53.28%): 172 con squadre della scuola Primaria, 126 con squadre della scuola Secondaria di primo grado, 84 con squadre della scuola Secondaria di secondo grado. (Alcuni insegnanti hanno squadre in più gradi scolastici.)

In [9]:
def drawpie(q, size=(8,8), maxcat=5, maxlabel=20):
    plt.figure(figsize=size)
    plt.suptitle(get_question(q))
    colors = ['cyan', 'pink', 'lightgreen', 'yellow', 'orange']
    colors += colors[1:]
    tcolors = ['SteelBlue','Tomato', 'SeaGreen', 'Wheat', 'SandyBrown']
    tcolors += tcolors[1:] 
    
    labels=map(lambda x: x.decode('utf8')[:maxlabel],
               list(participants.groupby([q])[q].count().sort_values(ascending=False).index[:maxcat]))

    for i, t in enumerate(SCHOOLS):
        ax = plt.subplot(2,2,i+1)
        ax.set_aspect('equal')
        ax.set_title(SCHOOLS[t])
        p = ax.pie(participants[participants[t]].groupby([q])[q].count().sort_values(ascending=False)[:maxcat]\
                   / float(participants[participants[t]].groupby([q])[q].count().sum()), 
               labels=labels, autopct='%.1f', colors=colors)

    ax = plt.subplot(2,2,4)
    ax.set_aspect('equal')
    ax.set_title('Totale')
    p = ax.pie(participants.groupby([q])[q].count().sort_values(ascending=False)[:maxcat]\
               / float(participants.groupby([q])[q].count().sum()), 
           labels=labels, autopct='%.1f', colors=tcolors)
In [10]:
def drawpies(qq, school, size=(10,10), maxcat=5, maxlabel=20):
    plt.figure(figsize=size)
    colors = ['cyan', 'pink', 'lightgreen', 'yellow', 'orange']
    colors += colors[1:]
    tcolors = ['SteelBlue','Tomato', 'SeaGreen', 'Wheat', 'SandyBrown']
    tcolors += tcolors[1:] 
    
    for i, q in enumerate(qq):
        labels=map(lambda x: x.decode('utf8')[:maxlabel],
               list(participants.groupby([q])[q].count().sort_values(ascending=False).index[:maxcat]))
        ax = plt.subplot(len(qq),1,i+1)
        ax.set_aspect('equal')
        ax.set_title('Scuola ' + SCHOOLS[school].upper() + ': ' + get_question(q))
        p = ax.pie(participants[participants[school]].groupby([q])[q].count().sort_values(ascending=False)[:maxcat]\
                   / float(participants[participants[school]].groupby([q])[q].count().sum()), 
               labels=labels, autopct='%.1f', colors=colors)
    plt.tight_layout()
In [11]:
from collections import Counter

def drawbar(q, k=None, maxlabel=50):
    count = Counter()
    population = participants[participants[k]][q] if k else participants[q]
    for i in population:
        if type(i) == type([]):
            count += Counter(map(lambda x: x.strip().decode('utf8'), i))
     
    plt.title(get_question(q))
    p = plt.barh(xrange(len(count)), zip(*count.items())[1], tick_label=map(lambda x: x[:maxlabel], zip(*count.items())[0]))
In [12]:
def listlong(q, k):
    count = Counter()
    s = u"\n\n*{}* (Scuola {})".format(get_question(q), SCHOOLS[k].upper())
    for h in participants[participants[k] & participants[q].notnull()][q]:
        count += Counter([h.strip().rstrip('.').decode('utf8').capitalize()])
    for h in count:    
        s += u'\n* ' + h + (' *(risposta data {} volte)*'.format(count[h]) if count[h] > 1 else '')
    return Markdown(s)

Il Bebras e le altre iniziative

In [13]:
drawbar('others')
In [14]:
drawbar('othersdone')

Le risposte degli insegnanti della Scuola PRIMARIA

In [15]:
SECTION='primary'
drawpies(['firsttime','how', 'n', 'opinion', 'colleagues', 'teach', 'activities', 'subject', 'again'], SECTION,
        size=(30,60), maxlabel=50)
In [16]:
listlong('teachhints', SECTION)
Out[16]:

Hai suggerimenti su come rendere i quesiti Bebras più facilmente utilizzabili in classe anche al di fuori della gara? (Scuola PRIMARIA)

  • Fornire materiali scaricabili per sviluppare unità di apprendimento
  • Prevedere periodicamente gare di allenamento di difficoltà crescente da poter utilizzare a supporto delle attività curricolari distinti per classe
  • No (risposta data 5 volte)
  • Realizzandone come materiale didattico disponibile per i docenti
  • Meno domande e più test da poter far fare con risposte già disponibili alla insegnante che può creare tornei interni nella classe
  • Pubblicando dei giochi periodicamente
  • L'utilizzo frequente di bebras facilta l'acquisizione delle conoscenze e in particolar modo quelle informatiche
  • Noi ci siamo allenati in aula di informatica risolvendo i quesiti in piccoli gruppi
  • Dovrebbero essere maggiormente formati i docenti per esempio attraverso seminari in presenza
  • Inserirli nella progettazione annuale
  • Meno lunghe le consegne delle domande
  • Potrebbero essere messi a disposizione nuovi quesiti magari mensilmente, per permettere un allenamento più costante e proficuo
  • I quesiti sono stimolanti anche se abbastanza difficili
  • Fornire una sorta di "palestra" cioè una raccolta di quesiti di allenamento, ed anche percorsi per i docenti da realizzare in classe
  • I libretti hanno troppe pagine di spiegazione, lasciare soltanto i quesiti e semplificare la spiegazione delle soluzioni
  • No, anzi penso che una modalità diversa dalla didattica standard stimoli la logica
  • Proporre un quesito alla settimana da risolvere in classe e pubblicare la soluzione la settimana successiva. in questo modo si creerebbe un appuntamento specifico settimanale
  • Forse i quesiti potrebbero avere una grafica più accattivante e ogni bambino dovrebbe avere la possibilità di iscriversi alla piattaforma ed esercitarsi...un po' sulla falsa riga di "programma il futuro"
  • Creare raccolte dei quesiti degli anni precedenti in formato non pdf ma con le modalità usate per la gara
  • Una maggiore interattività
  • E' utile avere un archivio dei quesiti per poterli proporre agli alunni in vari momenti dell'anno
  • Attraverso delle esperienze e degli esempi concreti che riproducano gli stessi quesiti, lavorando in gruppi o con l'intero gruppo classe; facendo ricreare delle situazioni simili ai quesiti proposti
  • Io non ho ancora visto i risultati, se potete mandarmeli
  • Rendere più chiare le risposte
  • Disponibili off-line
  • Quiz mensile, sfide brevi e periodiche
  • Come allenamento per la logica delle prove invalsi
  • Erano perfetti
  • Mettere a disposizione i quesiti degli anni passati in formato pdf
  • Semplificando alcuni quesiti
  • Più chiarezza grafica nel sito per accedere ai quesiti con facilità
  • Versione pdf dei quesiti disponibile al termine della settimana delle gare
  • Proporre esercizi logici
  • Classificare i quesiti sulla base del tipo di abilità che devono essere messe in atto per la risoluzione
  • Scaricare le domande per usarle offline
  • Alla primaria possono diventare attività di gruppo,
  • Desidererei avere più materiale on line a disposizione sia per esercitare gli alunni, sia per innovare la metodologia di insegnamento/apprendimento. non male sarebbe un'estensione dei laboratori alle prime classi della primaria
  • Analizzando durante l'anno i giochi e i quesiti durante le lezioni di matematica
  • No,per ora bene così
  • Divulgazione alle scuole più capillare della proposta
  • Inserire nella piattaforma altre pagine da utilizzare come attività durante l'anno scolastico
  • Creare un sito con esercitazioni aggiornate da poter utilizzare tutto l'anno
  • Nessuno (risposta data 3 volte)
  • Rendendli interattivi come quelli forniti durante la gara e pre -gara con la conoscenza e spiegazione delle risposte corrette
  • Sarebbe opportuno che i quesiti degli anni passati fossero fruibili come simulazioni online e non come libretti
  • Rendere disponibili maggiori esercitazioni
  • Dovrebbero essere più facilmente stampabili (migliorare l'impaginazione, raggruppandone il numero maggiore per pagina)
  • Scaricabili
  • Cercare di semplificare ulteriormente il linguaggio dei quesiti
  • Creare uno spazio allenamento più ricco
  • Eviterei la parte narrativa negli items soprattutto se ridondante (risposta data 2 volte)
  • Sì. suggerirei di inserirli in attività da svolgere in forma ludica una volta a settimana formando piccoli gruppi, in modo da sviluppare nel bambino la creatività e la logica
  • Chiederei di avere più esercizi di preparazione alla gara magari accompagnandoli a domande guida per la soluzione,almeno per i più complessi
  • Predisporre dei quiz stampabili in versione bianco/nero
  • Preparare più quesiti per esercitarsi da fare online senza dover stampare
  • Renderli disponibili mensilmente
  • Legare contenuti "disciplinari" ai quesiti bebras, in modo più palese per gli alunni
  • Versione compilabile on line
  • I libri di testo dovrebbero essere strutturati con esercizi simili invece risultano anacronistici
  • Per i bambini sarebbe interessante avere più quesiti su cui allenarsi, a mio avviso erano pochi e le spiegazioni per noi docenti dovrebbero essere fornite su una guida/ manuale scaricabile
  • Quesiti facilmente stampabili e comprensibili anche senza colori ( le scuole sono povere, non è possibile stampare a colori!!)
  • Nessun suggerimento
In [17]:
drawbar('grade', SECTION)