Programmare algoritmi intelligenti
Da settembre 2017, offriamo un corso settimanale per studenti dai 15 anni in su, che tratta le basi dell'informatica e la loro implementazione in Python. L'attenzione è rivolta a combinare le basi teoriche degli algoritmi con l'implementazione concreta sul computer. Gli obiettivi del corso includono, ad esempio, la preparazione per una laurea in informatica e le idee entusiasmanti e creative che vi stanno dietro; tuttavia, il corso è aperto a tutti gli interessati.
Parole chiave
Descrizione del corso
Descrizione del progetto
Il corso "Programmazione di algoritmi intelligenti" è una manifestazione rivolta agli studenti a partire dai 15 anni di età interessati all'informatica in generale e agli studi in informatica presso l'ETH in particolare. Il corso serve anche come preparazione a competizioni di programmazione come le Olimpiadi svizzere dell'informatica (https://www.soi.ch).
Il progetto è stato lanciato nel 2017 da tre informatici: Dennis Komm insegna e fa ricerca sull'algoritmica e sulla didattica dell'informatica, è uno scienziato senior che si concentra sull'insegnamento presso il Dipartimento di informatica all'ETH di Zurigo e dirige il settore Scuola e tecnologia al PH Graubünden. Jakub Závodn? lavora in Google da quando ha completato il dottorato all'Università di Oxford e da 15 anni è coinvolto in varie manifestazioni come le Olimpiadi di Informatica. Tobias Kohn ha dieci anni di esperienza come insegnante di scuola secondaria in Svizzera ed è lo sviluppatore dell'ambiente di programmazione TigerJython (http://www.tigerjython.ch). Attualmente sta conducendo una ricerca presso l'Università di Cambridge ed è quindi docente ospite.
Stretta integrazione tra teoria e pratica
La maggior parte del corso si svolge presso l'ETH, ma una parte si svolge anche presso Google, il che è sempre un punto di forza per gli studenti. Da un lato, cerchiamo di incontrarli dove sono ora; dall'altro, vogliamo anche mostrare loro dove il viaggio potrebbe portarli dopo gli studi e che i concetti teorici insegnati nel corso e all'università hanno innumerevoli applicazioni pratiche nel "mondo reale".
Il corso copre uno spettro molto ampio grazie ai diversi orientamenti dei docenti con specializzazioni in didattica, teoria e pratica dell'informatica. I concetti di informatica sono preparati didatticamente (nel senso di un approccio costruttivista), sostenuti teoricamente e implementati praticamente in Python. Sono previste sessioni parallele per studenti avanzati su argomenti più complessi. L'attenzione si concentra sull'apprendimento autonomo e sul fatto che le persone in formazione sviluppino soluzioni in modo indipendente (in parte individualmente, in parte in gruppo).
Le soluzioni vengono elaborate con gli studenti, discusse, controllate per individuare eventuali errori, analizzate e, se necessario, migliorate. Questo processo è sostenuto, ad esempio, da giochi NIM, dall'esecuzione manuale di algoritmi (ad esempio l'ordinamento parallelo) o da giochi di teoria dell'informazione.
Rete di contatti
Il corso è aperto a tutti gli interessati. La frequenza non è obbligatoria. I compiti sono mantenuti il più possibile in apertura. Tuttavia, ci sono obiettivi specifici per quanto riguarda la direzione del corso.
1 Il contenuto è in parte allineato con le Olimpiadi svizzere di informatica, con i cui organizzatori la manifestazione mantiene uno stretto contatto.
2 Sebbene il corso non sia esplicitamente rivolto esclusivamente a chi è interessato a studiare informatica, uno dei suoi obiettivi principali è quello di preparare gli studenti agli studi universitari, in particolare all'ETH; alcuni alumni che hanno partecipato al corso hanno deciso di studiare informatica all'ETH, anche grazie alle loro esperienze positive con gli "algoritmi intelligenti". Un aspetto importante di questa manifestazione è quello di permettere agli studenti di "assaggiare l'aria dell'ETH". A questo punto va detto che una buona parte degli studenti (circa la metà) non proviene da ETH di Zurigo e alcuni di loro percorrono lunghe distanze per venire all'ETH il mercoledì sera.
Ricerca e sviluppo di concetti e strumenti didattici
Una delle maggiori sfide dell'insegnamento dell'informatica è quella di introdurre i concetti essenziali in età precoce. Un'introduzione iniziale spesso si blocca sulla programmazione e i concetti fondamentali vengono tralasciati per motivi di tempo. Iniziative come la neozelandese CS Unplugged (https://csunplugged.org/de/) o la tedesca Abenteuer Informatik (http://www.abenteuer-informatik.de) affrontano il problema insegnando i concetti fondamentali dell'informatica interamente senza computer. Nell'ambito del nostro corso, stiamo costruendo un'alternativa in cui colleghiamo gli inizi delle lezioni di programmazione con gli argomenti fondamentali, creando così lezioni sostenibili e significative. Il nostro approccio si basa sul costruttivismo di Piaget e sulle idee ulteriormente sviluppate di Papert con il paradigma "imparare facendo funzionare le cose".
Lo sviluppo del software TigerJython incorpora molte delle esperienze acquisite durante il corso. D'altro canto, nell'ambito del corso si sperimentano anche nuove funzionalità. Le persone in formazione ne traggono un beneficio che va ben oltre il corso.
Informazioni di contatto
Altri link
chevron_right Sito web del progettoPubblicazioni:
D. Komm, T. Kohn: Un'introduzione all'analisi dei tempi di esecuzione per un workshop SOI. Olimpiadi di informatica11:77-86, 2017.
D. Komm, T. Kohn: Perché non sanno cosa stanno programmando. Spettro dell'informatica, 2019.