= Digito Ergo Sum - Pensare e lavorare come un informatico [[PageOutline]] ''Le attività di Digito Ergo Sum, progetto di Alternanza Scuola-Lavoro, si svolgono nell'aula Sigma del Dipartimento di Informatica dell'Università degli studi di Milano, in Via Comelico 39.'' [http://www.cosp.unimi.it/documenti/Scuole/AlternanzaprogettoInformatica-2017.pdf Descrizione del progetto] '''Orari:''' * Lunedì 18 giugno 2018: 9.30 -14.30 * Martedì 19 giugno 2018: 9.30 -13.30 * Mercoledì 20 giugno 2018: 9.30 -13.30 * Giovedì 21 giugno 2018: 9.30 -13.30 * Venerdì 22 giugno 2018: 9.30 -14.30 '''Tutor:''' * Prof.ssa Violetta Lonati (responsabile) * prof. Carlo Bellettini * Prof.ssa Anna Morpurgo * Annalisa Calcagni * Andrea Formica * Sabrina Patania == Lunedì === Informatica, una sfida concettuale [http://lonati.di.unimi.it/asl-racconto.pdf Un racconto] === Algoritmi? 1. '''a coppie''' - Vi verrà consegnato un foglio con la descrizione di alcune procedure. Decidete, per ognuna delle procedure, se la si può definire algoritmo oppure no, ragionando sulle motivazioni alla base della scelta. 1. '''a gruppi di quattro''' - Discutete le risposte fornite dalle due coppie; per ognuna delle procedure, concordate un risposta comune. Date una definizione di algoritmo ed elencate le proprietà fondamentali che deve avere per definirsi tale. 1. '''a gruppi di otto''' - Confrontate le definizioni di algoritmo date dai due gruppi, concordate una definizione e le proprietà fondamentali e scrivetele su cartellone (scrivete sul cartellone anche i nomi dei componenti del gruppo). [http://lonati.di.unimi.it/definizioneKnuth.pdf Definizione di algoritmo secondo Donald Knuth] === La scacchiera Una partita con gli scacchi può durare parecchio, quindi a volte è necessario interromperla e registrare in qualche modo la posizione dei pezzi. Per registrare le posizioni sono in uso due codifiche alquanto diverse: la TEX e la MAX. A voi scoprirne i dettagli sperimentando col programma [http://aladdin.unimi.it/sw/scacchiera/Cadet/Cadet.html Software]. Le indicazioni e le domande di questa [http://lonati.di.unimi.it/SchedaScacchieraDaCompilare.pdf scheda] potranno guidarvi nel lavoro. Quando riterrete di aver compreso bene le codifiche, inserite la vostra risposta alle domande. [https://homes.di.unimi.it/bellettini/asldown.php?FILENAME=1.2-rapprinfo.pdf Informazione, dati, codifica] === Qualche quesito Bebras su dati e codifiche Col browser aprite la pagina delle gare [http://bebras.it/students Bebras dell'Informatica], cliccate su "Prova i quesiti Bebras" e selezionate "ASL1" == Martedì === Qualche quesito Bebras Risolvete a coppie i seguenti quesiti delle gare ''Bebras dell'Informatica'' e segnatevi su un foglio le vostre risposte 1. [https://bebras.it/explorer/embed/470 Beaverball] 2. [https://bebras.it/explorer/embed/259 Ape robotica] 3. [https://bebras.it/explorer/embed/681 Pulizie] 4. [https://bebras.it/explorer/embed/477 Fai uscire il robot] 5. [https://bebras.it/explorer/embed/484 Una tartaruga sistematica] 6. [https://bebras.it/explorer/embed/486 Artiglieria programmabile] 7. [https://bebras.it/explorer/embed/688 Robot] === Automatizzare un compito [http://morpurgo.di.unimi.it/ASL/slidesIntroProgrammazione.pdf Introduzione alla programmazione] === Labirinti Lavorando a coppie, scaricate i file * [http://morpurgo.di.unimi.it/ASL/labirinti/maze0.xml maze0] * [http://morpurgo.di.unimi.it/ASL/labirinti/maze1.xml maze1] * [http://morpurgo.di.unimi.it/ASL/labirinti/maze3.xml maze3] * [http://morpurgo.di.unimi.it/ASL/labirinti/maze5a.xml maze5a] * [http://morpurgo.di.unimi.it/ASL/labirinti/maze5.xml maze5] Accedete poi al sito di [https://snap.berkeley.edu/snapsource/snap.html Snap], un ambiente di programmazione visuale. Cliccate nella barra in alto sull'icona con la pagina bianca, scegliete dal menu la voce ''importa'' e, per ogni labirinto, caricate il file maze relativo e create un programma per far arrivare la lampada di Aladino alla meta (quadrato colorato). Cercate di farlo utilizzando il minor numero possibile di blocchi blu (Motion) e sfruttando i blocchi ocra (Control). Prima di passare al labirinto successivo, salvate il programma, cliccando sull'icona con la pagina bianca e scegliendo dal menu la voce ''esporta il progetto''. In questa [http://morpurgo.di.unimi.it/ASL/slidesSnapBlockly.pdf Introduzione a Snap! e Blockly] troverete qualche indicazione per questa attività e la prossima. === Messaggi segreti Vi verrà consegnato un documento (intitolato [http://morpurgo.di.unimi.it/ASL/ASL_MissioneSegreta_scheda.pdf Missione segreta]) con la descrizione di un ambiente di programmazione visuale (Blockly) che mette a disposizione istruzioni di base (primitive) per estrarre informazioni da un testo. Lavorando a coppie, leggete le istruzioni, poi accedete all'[https://aladdin-pipes.herokuapp.com/apps/pipe applicazione Blockly] e per ogni richiesta della scheda scrivete il programma che avete creato e l'output del programma stesso. === Un programma fitto di eventi Leggete con cura la [http://morpurgo.di.unimi.it/ASL/SchedaProgrammaEventi.pdf scheda] che vi è stata consegnata ed esaminate l'interfaccia del [http://aladdin.unimi.it/sw/scheduling/scheduling.html software]. Lavorando in gruppo, per ciascuno dei ''criteri di ordinamento'', stabilite se è un criterio '''adatto''', nel senso che garantisce di selezionare il maggior numero di eventi possibili cui assistere; per ciascuno dei criteri di ordinamento che considerate non adatti, fornite un esempio (il più semplice che riuscite a trovare) che mostra perché il criterio non è adatto; per ciascuno dei criteri di ordinamento che considerati adatti, spiegate il ragionamento che vi ha portato a questa conclusione. == Mercoledì === Una dimostrazione Un programma fitto di eventi: [http://morpurgo.di.unimi.it/ASL/eventi_dimostrazioneOrarioDiFineCrescente.png dimostrazione] della bontà del criterio "in base all'ora di fine, per primo quello che finisce prima" [http://morpurgo.di.unimi.it/ASL/SchedaProgrammaEventiSoluzioni.pdf Soluzioni di "Un programma fitto di eventi" (controesempi e dimostrazione)] === Come lavora un informatico? Un informatico si occupa principalmente di formulare problemi ed esprimere soluzioni in un modo che un esecutore - umano o macchina - possa realmente eseguire (J. Wing 2014). Si parla di ''pensiero computazionale'' per riferirsi ai processi mentali coinvolti in questa attività. [http://morpurgo.di.unimi.it/ASL/CompThinkingFlyerHighltd.pdf Definizione operazionale di ''pensiero computazionale''] === Quesiti Bebras su vari aspetti del pensiero computazionale 1. [https://bebras.it/explorer/embed/430 Agenzia di viaggio] 2. [https://bebras.it/explorer/embed/390 Noci e animali] 3. [https://bebras.it/explorer/embed/248 Gli oblò] [https://bebras.it/explorer/embed/657 Pozioni magiche] [https://bebras.it/explorer/embed/400 Popolarità] 4. [https://bebras.it/explorer/question/145 Tronchi da riordinare] 5. [https://bebras.it/explorer/embed/492 Caccia al ladro] [https://bebras.it/explorer/embed/689 Rompere il codice] 6. [https://bebras.it/explorer/embed/398 Labirinti intricati] [https://bebras.it/explorer/embed/667 Un mondo di blocchi] 7. [https://bebras.it/explorer/embed/393 Meteo] [https://bebras.it/explorer/embed/672 Tutti a casa] === Missione Segreta Proseguimento dell'attività di ieri [http://morpurgo.di.unimi.it/ASL/ASL_MissioneSegreta_soluzioni.pdf Soluzioni di "Missione Segreta"] === Pensiero computazionale [http://morpurgo.di.unimi.it/ASL/slidesBebras-e-pensiero-computazionale.pdf Il pensiero computazionale: definizione ed esempi] === Introduzione a Javascript e a Raphael [https://mameli.docenti.di.unimi.it/asl/attachment/wiki/WikiStart/IntroOOeJS.pdf slides] [https://dmitrybaranovskiy.github.io/raphael/reference.html Manuale di Raphael] ==== Esercizio 0 [https://jsbin.com/fexukun/1/edit JSBIN] Disegnare un rettangolo blu in alto a destra, disegnare un cerchio rosso in alto a sinistra, Disegnare una ellissi con un gradiente dal colore del cerchio al colore del rettangolo == Giovedì [https://mameli.docenti.di.unimi.it/asl/attachment/wiki/WikiStart/Raphael%26Quality.pdf slides] Esercizio 0bis [https://jsbin.com/gamadew/1/edit JSBIN E0bis] [https://jsbin.com/gamadew/2/edit possibile soluzione] Esercizio 1 [https://jsbin.com/zihacaz/1/edit JSBIN E1] [https://jsbin.com/zihacaz/edit possibile soluzione] Esercizio 2 [https://jsbin.com/bokuhif/1/edit JSBIN E2] [https://jsbin.com/bokuhif/edit possibile soluzione] Esercizio 3 [https://jsbin.com/jeriqup/1/edit JSBIN E3] [https://jsbin.com/bokuhif/5/edit possibile soluzione] Esercizio 4 [https://jsbin.com/ligite/1/edit JSBIN E4] [https://jsbin.com/ligite/ possibile soluzione ] [http://scacchi.qnet.it/manuale/partite.htm Partita Famosa da riprodurre]