Cosa dovrei fare con un gruppo di ragazzi di 16-17 anni per interessarli all'informatica?


40

Tra qualche settimana sarò coinvolto in una sorta di "giornata aperta" nella mia università. Come parte di questo tempo, io (insieme a un collega) mi viene dato un intero gruppo di studenti delle superiori per due ore, così come un laboratorio informatico abbastanza grande da contenerli tutti, e devo fare una specie di attività o insieme di attività con loro per incoraggiarli a fare informatica (nella mia università, idealmente, ma anche in generale). Sono in perdita assoluta su cosa fare qui e accolgo con favore tutti i suggerimenti.


Non sono un insegnante né un esperto, tuttavia ti consiglio di insegnare loro come programmare un piccolo gioco di puzzle (scegline uno la cui generalizzazione è NP-completa) che copra aspetti come: generazione di livelli, controllo della soluzione, ricerca automatica della soluzione: - )
Vor,

1
Mi sono piaciute le lezioni di Natale del Royal Institution del 2008 . Potresti provare attività / dimostrazioni simili.
melhosseiny,

Risposte:


21
  • Puoi farli disegnare immagini usando la grammatica senza contesto. arte libera dal contesto Funziona anche per persone che non hanno mai programmato prima e si adatta a programmatori esperti. Il linguaggio di base è abbastanza facile da spiegare forse in mezz'ora.
  • Anche imparare qualcosa sulla geometria usando la grafica Turtle dovrebbe essere bello. Il logo è stato progettato per i bambini, quindi gli studenti delle scuole superiori non dovrebbero avere problemi. Ci sono bei video sui bambini che usano il logo su youtube
  • Se riesci a mettere le mani su alcuni robot MindStorms, programmarli è molto divertente.
  • Esistono vari giochi di programmazione in cui si programmano robot per combattere l'un l'altro o programmi di assemblaggio che tentano di sovrascrivere l'un l'altro in una macchina virtuale. Wikipedia sull'argomento , relativa domanda StackOverflow
  • Puoi anche pensare a qualche tipo di progetto hardware. Ad esempio, fare in modo che un microcontrollore faccia lampeggiare un LED a seconda del numero di e-mail non lette nella posta in arrivo.
  • Invitali a implementare diversi algoritmi di generazione di labirinti , cerca di elaborare criteri che rendono i labirinti "difficili per gli umani". Se il tempo lo permette, gli algoritmi si estendono fino a includere non solo corridoi ma anche stanze.
  • Acquista un paio di Arduinos e LED. Lascia che programmino le luci lampeggianti.

1
Potresti voler aggiungere i collegamenti ai tutorial di programmazione per computer di Khan Academy all'elenco: è un'aggiunta davvero interessante / interattiva a quella sopra. Ad esempio: khanacademy.org/cs/intro-to-animation/830742281
PhD

+1 anche per i CFG - un'altra versione della stessa nozione che sarebbe buona da provare e applicare sarebbe quella di provare a disegnare cespugli con un sistema di funzioni iterate; farli iniziare con un rettangolo, impostare molti altri rettangoli, quindi ripetere il 'contenuto' del primo rettangolo (inclusi tutti i sottosgregoli) in ciascuno dei rettangoli. Potresti avere una versione digitale impostata a scopo di confronto.
Steven Stadnicki,

13

Dai un'occhiata a Computer Science Unplugged . Dal loro sito:

CS Unplugged è una raccolta di attività di apprendimento gratuite che insegnano l'informatica attraverso giochi e puzzle avvincenti che utilizzano carte, spaghi, pastelli e tanto divertimento.

Le attività introducono gli studenti a concetti sottostanti come numeri binari , algoritmi e compressione dei dati , separati dalle distrazioni e dai dettagli tecnici che di solito vediamo con i computer.

CS Unplugged è adatto a persone di tutte le età , dalla scuola elementare agli anziani , e da molti paesi e contesti. Unplugged è stato utilizzato in tutto il mondo per oltre quindici anni, in aule, centri scientifici, case e persino per eventi festivi in ​​un parco!


1
Questo è un bel suggerimento, ma sospetto che l'OP voglia qualcosa che effettivamente utilizza il laboratorio informatico che è stato messo da parte.
András Salamon,

Punto valido. Dovrebbe esserci un progetto robocode per persone che non conoscono la programmazione.
Pål GD,

11

La maggior parte degli studenti di informatica che conosco considerano l'apprendimento del programma come la parte più dolorosa e demoralizzante della loro istruzione. Starei quindi lontano da tutto ciò che ha a che fare con la programmazione stessa. Come già indicato da Scphantm , probabilmente non avrai tempo per questo.

Quello che stai cercando è un esercizio di due ore che soddisfi due obiettivi:

  • È abbastanza eccitante tenere i diplomati delle scuole superiori abbastanza interessati per due ore,
  • Darà loro un'idea di ciò che è l'informatica e, si spera, li interesserà.

Il primo obiettivo è abbastanza indipendente da quello che stai per mostrare e ha molto più a che fare con l'essere un buon insegnante / presentatore. Buona pratica didattica, vale a dire tenere il pubblico attento, lasciargli provare piccoli oggetti in gruppo, dare loro un respiro ogni 15 minuti e così via.

Il secondo obiettivo è un po 'complicato, e ciò che penso funzioni meglio qui è quello di prendere un problema che può essere spiegato con le loro attuali conoscenze, mostrare come è possibile descrivere la soluzione in modo algoritmico e quindi mostrare come quella soluzione può essere analizzata e migliorato.

Un buon esempio è il problema del percorso più breve nei grafici, altrimenti noto come sistema di navigazione GPS. Nessuna spiegazione necessaria. Puoi dare loro una piccola mappa con pesi / lunghezza dei bordi disegnati e un mucchio di pastelli per eseguire effettivamente l'algoritmo mentre lo descrivi.

Puoi quindi iniziare una discussione su come troverai un percorso più breve, e così via, far loro provare a formularlo come un algoritmo, ecc ... Quindi descrivi l'algoritmo di Dijkstra , lasciando che colorino i nodi come visitati , tentativi e set non visitati . Bam. Hai un algoritmo!

O

PNP


9

Se hai solo 2 ore, non otterrai molto codice. Solo l'apprendimento della sintassi sarà difficile in quel momento, ma ci sono molte cose che si possono fare invece.

Come suggerimento, prova a insegnare loro il flusso di controllo e l'importanza di essere specifici:

  1. Dividi la classe in 2, "robot" e gli altri "programmatori".
  2. Vieni con una sfida adatta che richiede una logica semplice, un looping ecc. - Di seguito è riportato un esempio.
  3. Chiedi ai "programmatori" di scrivere un elenco di istruzioni fornite ai "robot"
  4. Chiedi ai "robot" di eseguire le istruzioni, ma fai sapere ai "robot" che se le istruzioni sono confuse, possono fermarsi, sbagliare o agire in altro modo fino a quando il "programmatore" non si ferma e le esegue il debug. Garantito, se gli viene data la possibilità di giocare, lo farà un liceale.

Ad esempio, imposta alcune vasche di palline di colore diverso, con corrispondenti strisce di carta colorate altrove e abbastanza piccoli secchi per ogni coppia robot / programmatore. Il compito è di far riempire il secchio di palline con il robot, tuttavia per farlo possono prendere solo palline che corrispondono a una specifica striscia di carta. Se non ci sono più palline di quel colore in una vasca, il robot deve restituire la sua striscia di carta e raccoglierne una nuova.

Questa attività richiede diramazione condizionale, ciclo continuo, gestione degli errori e pensiero procedurale. Tutto ciò di cui un programmatore deve essere bravo, indipendentemente dalla lingua o dall'attività.

Esegui due volte qualcosa del genere in modo che i "robot" e i "programmatori" possano scambiarsi. Nel frattempo, dai una piccola lezione sugli schemi mentali sopra indicati e, nel secondo, si esibiranno molto meglio, chiudendo con un piccolo discorso sui grandi eventi della programmazione: sconfiggere i nazisti, andare sulla luna, Internet e avrai una stanza di programmatori potenziali e impegnati!


1
Perché non posso dare questo a +10? Questa è una grande idea.
Xynariz,

@Xynariz grazie! L'ho fatto un paio di volte con gruppi davvero piccoli, e in genere finisce per essere ugualmente divertente e frustrante, tuttavia la frustrazione è nei "robot" che si comportano male e non nei computer che i bambini non capiscono ancora.

A volte le persone non sembrano capire che i computer sono molto, molto bravi a fare esattamente quello che dici loro ... niente di più, niente di meno. C'è persino un episodio di CyberChase su questo ... (nasconde)
Xynariz,

7

Ho addestrato molti programmatori. Se hai solo 2 ore, non preoccuparti di insegnare loro come programmare. Anche il laboratorio informatico non è necessario. Per passare da zero a ciao mondo, perderai metà della classe e trascorrerai 45 ore delle tue 2 ore a gestire i glitch e non farai nulla.

Potresti avere più fortuna mostrando loro cosa vuol dire pensare come un programmatore. Dai a ciascuno di loro un blocco di carta e una penna e dì loro di scrivere un programma nella loro lingua su come sollevare il cellulare dalla scrivania e fare una telefonata. Cammina attraverso le loro risposte. Se sei un appassionato di codice di qualsiasi sale, puoi passare attraverso i loro programmi e dire loro come migliorarli e come accogliere i dettagli che devi avere. Quindi chiedi loro di scrivere un programma con parole proprie per fare qualcos'altro di banale. mettiti i pantaloni, lavati i denti, apri una porta, qualunque cosa. Fai lo stesso con quel programma.

Dai loro un assaggio di cosa significhi PENSARE come un programmatore. Sicuramente ne trarranno di più di quanto tu cerchi di insegnare loro Python in 2 ore.


6

Potresti provare Alice . È un IDE e un'API per l'animazione 3D. Ha tutti i tipi di oggetti incorporati (conigli, alieni, alberi, edifici, ...) che puoi posizionare in una scena iniziale, con metodi di altissimo livello: come walk(north)(che anima le braccia e le gambe mentre il personaggio si muove) e say("my name is Winky")che potrebbe far uscire una bolla di cartone animato dalla bocca del personaggio.

Ti consente di agganciare eventi di tastiera e mouse in modo da poter fare cose interattive.

Il linguaggio di programmazione sottostante è Java, ma l'IDE offre una variante grafica in cui si trascinano parti di espressioni in una finestra dell'editor. (Non ti permetterà di creare un errore di sintassi.)

Penso che potresti preimpostare tutto con una scena in modo che qualcuno senza esperienza di programmazione possa fare qualcosa di interessante in un paio d'ore.


1
Sarei titubante ad usare questo approccio; potrebbe funzionare per gli studenti più giovani, ma gli studenti delle scuole superiori hanno maggiori probabilità di vederlo come un bambino. Detto questo, questo è un modo veloce per completare qualcosa nel tempo limite di 2 ore ...
Izkata

6

La codifica, anche in un giocattolo o in un linguaggio grafico, sembra inverosimile nel corso di un'ora. Cavolo, non sono sicuro di poter ritirare Alice di nuovo e fare qualcosa di utile in 2 ore. Forse un fine settimana, ma non 2 ore.

Suggerirei di far bollire CS fino all'essenziale: risoluzione dei problemi e analisi. Dividi il gruppo in squadre. Prenditi 10 minuti per descrivere alcuni problemi computazionali di alto livello. Questi dovrebbero essere problemi facili che possono essere facilmente spiegati a persone con scarse conoscenze matematiche o CS. Esempi inclusi:

  1. Elenchi di ordinamento
  2. Trovare alberi spanning minimi
  3. Calcolo (approssimativo) delle radici di numeri interi
  4. eccetera.

Prenditi altri 10 minuti per ulteriori discussioni e per spiegare il compito. A ciascun gruppo viene assegnato un problema, per il quale devono fare brainstorming sulle soluzioni. Il team avrà mezz'ora per capire in modo collaborativo una o più soluzioni al problema assegnato. Quindi, prenditi un'ora per esaminare le soluzioni nell'intero gruppo e lascia che i bambini capiscano se funzionano o meno, se c'è un modo più veloce / migliore per risolvere il problema, ecc.

Se i bambini non arrivano su una soluzione corretta / ottimale, va bene. Non limitarti a dare le risposte, però, questo è assolutamente fondamentale. Il motivo per cui i bambini non fanno più STEM è perché gli educatori danno ai bambini l'impressione che tutto sia già stato capito. Ci vorranno consulenti molto maturi per consentire ai bambini di cercare di risolvere questi problemi e di riuscire o fallire da soli. Ottenere la risposta giusta non è il punto. Il punto è dare ai bambini problemi interessanti e mostrare ai bambini di cosa tratta l'informatica: risolvere i problemi e valutare soluzioni per correttezza ed efficienza. Lasciare che i bambini presentino le proprie risposte darà loro un senso di appartenenza e li aiuterà a sentirsi fidanzati.

Naturalmente, se i bambini chiedono se hanno ottenuto una risposta corretta / buona / la più conosciuta, dì loro la verità. Ma non dare solo le risposte, a meno che non vengano organicamente a seguito della discussione delle soluzioni degli studenti. Riassumere:

  1. Dai ai bambini facili da capire ma ricchi problemi da esplorare.
  2. Lascia che i bambini trovino le proprie soluzioni, fornendo solo un aiuto sufficiente per assicurarsi che i bambini capiscano il problema a portata di mano.
  3. Discutere della correttezza / efficienza in un contesto di gruppo, dando ai gruppi la possibilità di spiegare le loro soluzioni. Come consulenti, sei libero di prendere la discussione sulla correttezza / efficienza per quanto pensi che possa andare proficuamente.
  4. In nessun caso dovresti presentare le tue soluzioni al problema, o ben note, a meno che non siano sostanzialmente identiche a quelle fornite dagli studenti. Non far sembrare che CS sia un campo in cui le persone hanno già capito tutte le risposte.
  5. Se possibile, lascia che i bambini si sentano come se avessero imparato qualcosa, ma in modo che abbiano ancora domande: hanno trovato le risposte migliori? Le loro altre domande possono risolvere in modo simile? Potresti anche fornire loro alcuni problemi indecidibili in un formato facile da digerire per dare loro qualcosa su cui lavorare in seguito.

Puoi anche considerare di mettere le squadre l'una contro l'altra in una competizione amichevole. Dai a coppie di squadre lo stesso problema e vedi chi trova la soluzione migliore.
Patrick87,

1
Competizioni di questo tipo scoraggiano fortemente le persone timide e rafforzano solo l'ego di coloro che già conoscono le cose. Questo non fa che rafforzare l'immagine di CS come "solo per i secchioni".
adrianN,

6

Ho 17 anni e ho iniziato a programmare intorno a quando ho compiuto 16 anni. Sto per raccontare la mia storia e poi dare alcuni suggerimenti: il mio interesse per la programmazione è iniziato mentre guardavo un ragazzo di tecnologia informatica che ho chiamato pasticciare con i miei registri e il prompt dei comandi ( anche se voleva 500 $ per correggere i miei BSOD e non li ho pagati, li ho risolti da solo) Quindi ho cercato su google il "linguaggio del prompt dei comandi" e ho scoperto che c'era qualcosa chiamato "codice sorgente" e ti permetteva di programmare . All'epoca non avevo idea di cosa fosse il c ++, non penso nemmeno di averne mai sentito parlare. Quindi sono andato su cpp.com (tutorial pessimi, imparerai pratiche sbagliate e obsolete) e ho iniziato a imparare le basi. La mia mente impazzì e in realtà imparai che il virus con cui ero infetto causando i miei problemi era scritto in c ++, il che mi interessava ulteriormente. In seguito ho iniziato a leggere, apprendere l'assemblea e altre lingue di alto livello. Ho iniziato a voler conoscere il malware e la programmazione grafica e l'ho fatto.

  1. Questo può sembrare negativo, ma molte persone della mia età sono effettivamente interessate al lato distruttivo della programmazione. La prima domanda che ricevo dai miei amici quando dico che sono abbastanza bravo con il c ++ è "Riesci a creare virus, cambiare voti o hackerare giochi" Non sono proprio a quel livello ... ma ho studiato iniezione di dll recentemente, quindi sto ottenendo Là. Forse potresti inventare qualcosa sulla falsariga di un malware che non è pericoloso o illegale ma comunque interessante. (Forse ottenere le informazioni di accesso di uno studente dal server della scuola) Potresti parlare con loro di come funzionano anche virus e software dannoso.
  2. Sviluppa un piccolo gioco sulla falsariga di pokemon e descrivi loro come funzionano i giochi e i motori di gioco. Molte persone sarebbero probabilmente sorprese di sapere che in molti giochi 2D come questo il personaggio non si sta effettivamente muovendo, lo sfondo è e il personaggio sta solo usando un'animazione, parla di numeri casuali ecc. Vieni anche con alcune dimostrazioni 3D.
  3. Cerca di stare lontano dallo spiegare cosa fa il codice , prova a dire loro qual è il programmastesso fa senza parlare troppo del codice. Nella mia esperienza questo è un modo semplice per perdere l'attenzione della gente soprattutto se non capiscono le basi della lingua. In effetti, proverei a non mettere davvero tutto il codice sorgente là fuori perché potrebbe essere abbastanza scoraggiante per qualcuno guardare 500 righe di codice e non capirne nulla. Inoltre, se hai qualcuno a cui stai dimostrando che è come me, probabilmente faranno una serie di domande perché hanno una mente curiosa. vale a dire: stai parlando di numeri casuali, ti chiedono a cosa servono i numeri casuali e da dove provengono ... di quanto tu debba spiegare loro il rumore elettronico e come sia casuale e tutto ciò, che probabilmente ti troverai in una situazione in cui sei proprio come "Non lo so".
  4. Lego Mindstorms è un'ottima idea. Se non vuoi prendere la lunga strada e usare un linguaggio principale, viene fornito con un linguaggio di programmazione a blocchi che puoi usare. Ho capito la lingua in circa 30-40 minuti, tutto si allinea quando ci pensi

  5. Potresti sviluppare rapidamente un'app e mostrarla, parlare con loro del $$ che può derivare dallo sviluppo di app.


4

alcuni dei miei preferiti

  • generare frattali . hanno un forte legame con la matematica profonda e la computer grafica e sono naturalmente adatti al parallelismo. illustra la complessità e il comportamento emergente , specialmente quando si esegue lo zoom su scale arbitrarie e ha forti legami con la scienza e i fenomeni naturali. non è difficile scrivere un codice frattale parallelo che gira su più macchine. un esperimento consiste nel fare in modo che ciascuna macchina mostri le linee casuali che ha elaborato (ad es. macchine "slave" che elaborano le linee da una coda) e quindi una macchina centrale visualizzi i risultati combinati.

  • Lego Robotica (o altri kit di robotica, ad es. timbro ). mindstorms è un giocattolo, ma può essere molto avanzato come dimostrazione tangibile di concetti astratti. il software che può essere eseguito su di essi può essere molto complesso e possono avere loop / algoritmi complicati di senso-atto-atto. ci sono molti buoni libri di costruzioni. altrettanto impressionanti sono i solutori del cubo di Rubik , che recentemente hanno battuto il record mondiale.

  • raspberry pi è una nuova piattaforma economica che sta riscuotendo molto interesse e utilizzo. può essere usato per dimostrare la programmazione Linux, la robotica ecc. e ha output HD, ecc. vedi ad esempio il supercomputer raspberry pi Southhampton con un rack Lego.

  • Il logo come menzionato nell'altra risposta è un vecchio classico. un'altra prospettiva più recente è la programmazione del gioco, ad esempio con un nuovo linguaggio popolare emergente chiamato Scratch (inventato al MIT ). può insegnare molti argomenti CS naturali / avanzati.


2

ecco un altro angolo. ci sono così tanti interessanti problemi aperti o tecnologie emergenti nell'informatica ai confini della comprensione scientifica che possono suscitare curiosità / meraviglia, vale a dire l'esplorazione della vicina terra incognita . se sollevi i problemi e poi fai partecipare la classe a una discussione sulle ramificazioni delle soluzioni, ciò può suscitare un notevole interesse / ispirazione. [dal momento che menzioni la disponibilità del laboratorio informatico, sarebbe anche possibile escogitare in modo creativo alcuni esercizi pratici di computer relativi a queste aree.]

questo può assumere una sensazione di fantascienza ma in CS come nessun altro campo, trasforma ciò che una volta era scifi in realtà in un breve lasso di tempo. possono anche essere controverse e tempestive, in collegamento con i titoli di oggi, e gli studenti possono iniziare a capire quanto sia onnipresente la CS nel nostro mondo / società e quanto sia significativa, se interpretata in senso lato. eccone alcuni grandi:

  • Problema di ripiegamento del DNA alle proteine . esiste un algoritmo per calcolarlo accuratamente?

  • intelligenza artificiale in generale. È possibile? ci sono etici coinvolti?

  • la robotica ha diverse aree emergenti chiave. ad esempio auto / guida autonomi . è nell'orizzonte di breve termine. che impatto avrà sulla società? il video del concorso DARPA di non molto tempo fa è impressionante. La scrittura di Kurzweil ha molte cose da approfondire. i droni sono un argomento complicato raramente discusso apertamente e saranno sempre più utilizzati a livello nazionale. i rover Mars sono una tecnologia straordinaria e ci sono storie sorprendenti dietro, come il modo in cui i sistemi dovevano essere sottoposti a debug in remoto, interplanetariamente quando fallivano.

  • Ultimamente i sistemi di sorveglianza basati sull'IT per rilevare il crimine / il terrorismo sono fortemente nelle notizie.

  • il bosone di Higgs non avrebbe potuto essere scoperto e il supercollider non può funzionare affatto senza grandi sistemi basati su CS per l'analisi dei "big data".

  • Legge di Moore . quanto lontano continuerà? quanto ha già influenzato la società / l'umanità?

  • Computer quantistici . sono possibili? saranno più veloci? saranno a basso costo o sempre ostili? Dwave è un caso di studio colorato, c'è un ottimo articolo di SciAm di Aaronson, ecc

  • L'algoritmo di pagerank di Google è una delle meraviglie multi-bilione dell'informatica moderna. sarà esteso? come funziona il filtro antispam? la società sembra muoversi verso l'analisi delle immagini, ecc.

  • il trading algoritmico / ad alta frequenza ora sposta enormi quantità di volume / valore di trading. è buono / cattivo? sta aumentando / diminuendo? sarà regolato in futuro? che tipo di corsa agli armamenti computazionale è coinvolta?

  • i supercomputer sono enormi, risolvono problemi sorprendenti e diventano più grandi. ci sono limiti? cosa calcolano e cosa calcoleranno in futuro? in qualche modo correlati, Big Data e datamining .

  • i siti di social network hanno avuto enormi implicazioni in meno di un decennio di crescita. sono coinvolti nel alimentare sollevazioni popolari come la primavera araba e Occupy wall st . qual è il loro futuro?


2

Ho una proposta che

  • si concentra sull'informatica (non sulla programmazione o ausiliaria),
  • inizia con una premessa che molti bambini conoscono e
  • è stato effettivamente provato e funziona.

Abbiamo tenuto piccoli seminari con studenti delle scuole superiori su Minesweeper . Il seminario sarebbe andato più o meno così:

  1. Facciamo un po 'il gioco (molti lo sanno).

  2. Cosa abbiamo appena fatto? Qual è il problema che proviamo a risolvere? Possiamo formulare regole generali?

    Questo richiederà di solito un po 'di tempo. I bambini non sono abituati a formulare problemi in termini di input e output per non avere regole generali per risolverli. Coloro che hanno programmato prima apprezzeranno lo sforzo; fare riferimento a "spaghetti code" può essere d'aiuto. Tuttavia, le regole saranno semplici per la maggior parte del tempo, considerando solo una cella alla volta.

  3. Mostra problemi con le regole.

    A questo punto, vuoi introdurre un simulatore di dragamine . Quello di Bayer, Snyder e Chouiery non è perfetto, ma consente di esporre scenari attentamente progettati.

  4. Migliora il set di regole per includere più scenari.

    Questo in genere porterà gli studenti a studiare sempre più celle insieme. Puoi anche spingerli verso "risolvere tutti" gli approcci come esprimere le informazioni a portata di mano come un sistema di equazioni lineari - questo si presenta se provi ad esprimere le informazioni disponibili in termini matematici. Gli studenti sanno già come risolvere tali sistemi!

  5. Limitazioni delle note.

    Innanzitutto, ci sono scenari che non hanno una soluzione (deterministica). Inoltre, possiamo contrastare la forza bruta con le nostre strategie sviluppate. Possiamo scambiare la velocità contro la potenza? Se l'approccio del sistema di equazioni si presenta, nota che possiamo risolverlo in modo efficiente solo sui reali, ma abbiamo bisogno di risposte binarie. Non è troppo difficile costruire scenari che portino a enormi runtime (abbiamo usato l'algebra del computer per illustrare).

A seconda del gruppo, questo approccio consente di coprire molteplici principi dell'informatica in modo naturale: la definizione dei problemi, la descrizione di algoritmi generali, la risoluzione iterativa dei problemi, nonché i problemi di calcolabilità e complessità possono essere tutti toccati.

Il feedback degli studenti è stato complessivamente positivo; si sentono impegnati ed esprimono interesse per i concetti. È importante che facciano la maggior parte del lavoro, spingendoli con cautela nella direzione desiderata facendo domande mirate.


1

hai un sacco di cose da fare ... ma una cosa che sembrerebbe così eccitante "soldi", quindi presenta la domanda "P ≠ NP" e il premio del sette millennio, quando ero alle scuole medie l'ho letto sebbene io non conoscevo le notazioni l'unica cosa che capisco: c'è un grande premio e una domanda! altre cose sarebbero presentare la connessione di matematica e informatica come: risolvere equazioni, controllare soluzioni usando i computer.

altre cose che suggerirei è presentare Alan Turing "il padre dell'informatica" e raccontare la sua storia. l'ultima cosa che suggerisco è zero prove di conoscenza e il gioco "dov'è waldo?" e giocare senza barare, crittografia e attacchi informatici.


-2

Fare qualsiasi cosa con Facebook, lo adorano. Forse questo è troppo difficile per i principianti, ma potresti lasciarli disegnare grafici di connessioni, che mostrano come i loro profili sono collegati tra loro. Consiglierei Javascript come linguaggio di programmazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.