Come posso insegnare informatica senza usare i computer?


21

In alcuni luoghi del mondo, le persone di solito non hanno accesso (e quindi poca conoscenza dei) computer, e anche se lo hanno, l'hardware e il software sono obsoleti e l'utilizzo afflitto da interruzioni di corrente e simili. Anche l'accesso a (buoni) libri tende a mancare. Come posso insegnare informatica in tali circostanze?

Sono preoccupato che senza essere in grado di fare esperimenti e applicare ciò che imparano, non impareranno (bene) affatto anche se sono incredibilmente motivati ​​e dedicano la maggior parte del loro tempo a questo hobby. È possibile insegnare CS solo in teoria?


13
Le persone sono state affascinate dalla matematica per migliaia di anni. All'epoca nessuno aveva accesso a un computer digitale. In effetti, in genere nei corsi di teoria non hai assolutamente bisogno di computer.
Juho,

3
Vorrei sottolineare che il primo programma per computer è stato scritto circa 100 anni prima che il primo computer fosse mai costruito.
Gabe,

2
Dai un'occhiata a cstheory . Molto probabilmente quei ragazzi hanno bisogno solo di carta e penna, e potrebbe essere il massimo dell'informatica (non ho idea di cosa parlino la maggior parte del tempo).
Trylks,

1
Probabilmente sarebbe d'aiuto se mettessi in evidenza le aree di CompSci che intendi trattare. Cose come matematica discreta e persino strutture di dati o algoritmi possono essere trattati solo su carta e penna. L'ingegneria del software, d'altra parte, sarà probabilmente problematica.
NotMe,

1
@abhimanyu Fantastico, la domanda è stata "protetta" prima che potessi pubblicare la mia risposta; L'ho messo qui ora: pastebin.com/6tbMtVM8 (Questa è una risposta lunga , poiché le possibilità dovrebbero essere ovvie ma sembrano non esserlo. Ci sono molte idee e spero che troverai qualcosa di utile ...)
nessuno

Risposte:


24

Chiedere come studiare informatica senza computer è un po 'come chiedere come studiare cosmologia senza telescopi. Certo, è bello poter guardare le cose che stai studiando ed è spesso molto utile essere in grado di giocare con le cose. Ma c'è molto che puoi fare senza l'accesso a un computer: in extremis , probabilmente potresti fare quasi tutto un corso di laurea senza computer.

In termini pratici, l'accesso ai computer aiuta a rafforzare molto di ciò che apprendi in un corso di informatica. I corsi di programmazione sono ovviamente molto più naturali con l'accesso a un computer. D'altra parte, essere costretti a scrivere codice su carta incoraggia le persone a pensare al proprio codice e assicurarsi che funzioni davvero, piuttosto che semplicemente eseguirlo ancora e ancora attraverso un compilatore fino a quando non si compila e quindi eseguire banali casi di test ancora e ancora fino a quando gli ovvi bug scompaiono.

Gli argomenti che sarebbero più naturali senza computer sarebbero i più matematici. Tutta la matematica di fondo, come la combinatoria e la probabilità. Computabilità, linguaggi formali, logica, teoria della complessità, progettazione e analisi di algoritmi, teoria dell'informazione e della codifica. Qualunque cosa abbia a che fare con il calcolo quantistico!


11
+1 questa distinzione tra CS e programmazione è la chiave! Il mio corso di laurea in CS aveva requisiti minimi per l'uso di un computer, oltre ad accedere al materiale di lettura online avrei potuto facilmente cercare in una biblioteca in forma di albero morto.
Cosmic Ossifrage,

4
@CosmicOssifrage Sono d'accordo ma, sebbene CS non stia programmando, la programmazione è uno strumento molto utile per gli scienziati informatici di cui dispongono. Ed è per questo che lo insegniamo.
David Richerby,

2
@Abhimanyu Dipende dalla tua qualifica. Se hai le conoscenze e le abilità, sono solo a una lavagna di distanza dalle menti dei tuoi studenti.
Raffaello

2
@vzn No, gran parte della programmazione sta imparando l'arte del debug. È molto importante. Ma non è informatica .
David Richerby,

2
@vzn Se citi l'uomo, fallo bene. Sta parlando di runtime esperimenti di allo scopo di verificare / confutare ipotesi (scientifiche), non di debug. Non credo che Sedgewick abbia mai sostenuto che testare / eseguire il debug delle implementazioni sperimentali fosse scienza .
Raffaello

10

C'è l'ovvio uso di carta e matita. Quando mi è stato insegnato l'elaborazione del segnale, il processore di segnale speciale non era direttamente disponibile per noi e abbiamo appena consegnato rapporti cartacei.

Nota che il grande scienziato informatico Dijkstra apparentemente non usava molto i computer:

Quasi tutti gli articoli di questa serie che appaiono dopo il 1972 sono scritti a mano. Avendo inventato gran parte della tecnologia del software, Dijkstra ha evitato l'uso dei computer nel proprio lavoro per molti decenni. Anche dopo aver ceduto all'incoraggiamento dei suoi colleghi UT e aver acquisito un computer Macintosh, lo usò solo per la posta elettronica e per navigare nel World Wide Web.

Citato dal memoriale di Disjkstra

Questo dimostra che puoi fare un'ottima informatica senza un computer!

Oltre alla carta e alla matita, i problemi informatici possono anche essere risolti "nel mondo reale", ad esempio dimostrazione di algoritmi di smistamento con le carte o - più insolito - con la danza come fatto dalla Sapientia University .


Qualche consiglio su come farlo efficacemente? L'insegnante potrebbe non aver avuto i benefici di una lezione sulla lavagna in una grande università.
Raffaello

3
Molta matematica viene insegnata con la lavagna. Suppongo che tu faccia qualcosa di simile con l'informatica.
Finn Årup Nielsen,

A titolo di esempio, ecco una bella lezione di lavagna sugli alberi splay: youtube.com/watch?v=So8szqIvIFs
Finn Årup Nielsen

2
Personalmente, ho applicato la mia conoscenza delle strutture dati e degli algoritmi al lavoro d'ufficio in un lavoro estivo. Ho usato una specie di radix su scatole di mozziconi di controllo e sono andato da uno a due ordini di grandezza più velocemente di chiunque altro abbia fatto quel lavoro, fino al punto di incredulità. Ho usato un tipo di unione naturale su carte stampate che dovevano essere archiviate. le strutture e il calcolo dei dati esistono nel mondo reale .
JDługosz,

8

Molte teorie dell'informatica sono puramente teoriche e possono essere risolte usando la penna (cil) e la carta. Ottenere informazioni su di loro e comunicarle al mondo esterno richiede un computer.


5
Questo mi sembra di essere più di un commento.
Raffaello

7

Vedi http://csunplugged.org/ per alcune grandi idee. Google è uno degli sponsor.

Dal 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 usato in tutto il mondo per oltre venti anni, in aule, centri scientifici, case e persino per eventi festivi in ​​un parco!


Le condizioni sono complesse, ma vale la pena provare quando le risorse lo consentono.
Abhimanyu,

Sono d'accordo che questo sembra buono, ma per renderlo una risposta adeguata è necessario affrontare le questioni specifiche esposte nella domanda: quali risorse sono necessarie? Possiamo aspettarci di averli ad esempio in Africa (rurale?)?
Raffaello

3

Puoi, è abbastanza ovvio come lo faresti. Non sono sicuro di quanto sarebbe utile per le persone, ma puoi farlo.

Ma non so nemmeno come sarebbe un insegnante di informatica, posso chiedere come puoi insegnare informatica senza un computer.

Perché se sai insegnare informatica, allora sapresti come fare.

Se lo sai che-

-Algorithms can be written on pen and paper, and traced on pen and paper.
-Flow charts are written on paper.

Lo studio della normalizzazione, la struttura delle tabelle di dati per i database, può essere fatta su carta e penna. (L'ho fatto solo su carta e penna quando ho studiato database relazionali)

I libri di testo di informatica non richiedono un computer.

Se avessi mai preso in mano un libro di testo di informatica e lo avessi studiato in una biblioteca, sapresti di non aver bisogno di un computer per capirlo.

Ma dovresti essere consapevole che chiunque abbia partecipato a una lezione di informatica può vedere che la maggior parte delle persone non è in grado di programmare, è appena al di là di loro. Troppo astratto per le persone. Questo è vero anche a livello universitario.

http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

Una sostanziale minoranza di studenti fallisce in ogni corso introduttivo di programmazione in ogni università del Regno Unito. Nonostante l'eroico sforzo accademico, la percentuale è aumentata anziché diminuita nel corso degli anni. Nonostante molta ricerca sui metodi di insegnamento e sulle risposte degli studenti, non abbiamo idea della causa.

Aggiungo che chiamarla una minoranza sostanziale, è un eufemismo. È una piccola minoranza che -può programmare.

Vorrei notare, tuttavia, la causa del declino a cui ha assistito. Dato che i computer sono diventati più popolari, ad esempio tra il 2000 e il 2010 (ha scritto che a metà di quel decennio), più wollies erano interessati a studiare "informatica". Prima di allora, erano interessate solo le persone più fanatiche. E prima, l'uso dei computer era più tecnico, ma poiché i computer diventavano più facili da usare per la persona media e più potenti nelle applicazioni che potevano eseguire, allora più wollies li usavano e più persone che erano interessate solo a ciò che potevano fare piuttosto che come lo fanno e come farlo.


2
Cosa diavolo sono i "lupi"?
Nate Eldredge,

1
@NateEldredge Dizionario urbano : «Termine gioviale per qualcuno che dice o fa qualcosa di stupido / Qualcuno che aggiunge 2 e 2 e ottiene 5." Che saggio "»
Paul A. Clayton,

@NateEldredge Normalmente scritto "wally".
David Richerby,

2
Il rimprovero dell'OP non è una risposta.
Raffaello

2

Sarebbe possibile insegnare i concetti di Informatica senza un computer. Ovviamente senza accesso a un computer, a cosa serve davvero l'apprendimento di Informatica?

Quando stavo imparando l'informatica al liceo, le nostre prime diverse lezioni non riguardavano affatto i computer. Invece, abbiamo lavorato da un libro chiamato Karel ++ , che insegnava concetti orientati agli oggetti. Il linguaggio inventato può essere "eseguito" abbastanza facilmente su una lavagna o lavagna perché tutto il codice esegue azioni su un grafico. I nostri primi compiti erano tutti scritti a mano e il professore avrebbe dimostrato la soluzione corretta alla lavagna all'inizio della lezione successiva.

Quando abbiamo iniziato a discutere di algoritmi, il nostro professore ci ha chiamati tutti in cima alla stanza e ci ha detto di metterci in fila. Ha continuato a dimostrare alcuni algoritmi di ordinamento diversi - iniziando con qualcosa di stupido che ha chiamato "ordinamento scimmia" dove avrebbe scambiato casualmente due di noi e poi avrebbe verificato se fossimo ordinati ogni iterazione, ma poi eseguendo ordinamento a bolle e ordinamento di shell - da "eseguendoli" su di noi.

Tracciò diagrammi alla lavagna, spiegando le basi di come funzionano la memoria del computer e lo stack. Ha dimostrato variabili e puntatori (era una classe C ++) e da lì a liste e alberi collegati ...

Probabilmente potrei aggiungere a questo se ho esaminato le note che ho tenuto da quella classe, ma questo è tutto ciò che ricordo ora. Se questi suggerimenti sono interessanti, posso ampliare questa risposta.


1
Ti sembra di programmazione confondere (mestiere) con il computer science .
Raffaello

@Raphael Capisco che la meccanica della programmazione in un particolare linguaggio potrebbe non essere importante per la parte scientifica , ma quanto puoi veramente separare l'informatica dalla programmazione prima che diventi così teorico da essere incomprensibile per gli studenti che forse non hanno familiarità con come far funzionare un computer? Potrei modificare la mia risposta per separare i due, ma l'immagine che mi viene in mente sulla base delle domande del PO non è che gli adulti stiano cercando di conoscere la base matematica della teoria della complessità, ma gli studenti delle scuole elementari hanno bisogno di un'introduzione alle applicazioni del CS.
Blackhawk,

@DavidRicherby Ho chiesto all'OP chiarimenti su chi (età / esperienza con i computer) sarà il gruppo target di studenti e quale materiale intende insegnare. Adatterò la mia risposta di conseguenza. Se potessi, suggerirei che un'analogia più diretta sarebbe la scrittura creativa rispetto al saper usare alfabeti e vocabolari. Tranne anche che l'analogia non è all'altezza perché lo studio dei linguaggi di programmazione è effettivamente compreso nell'informatica.
Blackhawk,

@Blackhawk Naturalmente, nessuna analogia è perfetta (quasi per definizione). Ma, mentre la progettazione dei linguaggi di programmazione è CS, il semplice utilizzo di questi non lo è.
David Richerby,

1
@DavidRicherby Ho appena letto la pagina del tour per CS e in particolare il "chiedi informazioni ..." e "NON chiedi informazioni ..." e ho l'impressione che troppe persone facciano / rispondano a domande su questo sito che sarebbe molto meglio su SO ... quindi mi scuso se ho contribuito a questo. Puoi indicarmi le cose specifiche che potrei cambiare su questa risposta per renderla in linea con gli obiettivi del sito? Sospetto che dovrei almeno rimuovere i riferimenti a "punto e virgola" e "C ++", ma che dire dell'uso di Karel ++ come strumento di insegnamento per il concetto di linguaggi orientati agli oggetti? O memoria del computer?
Blackhawk,

2

Ho conseguito una laurea in informatica e ho pensato che ci fosse stata insegnata molta programmazione (in varie lingue) e che ci fossero stati insegnati anche molti aspetti matematici (e anche alcuni hardware).

Le parti matematiche erano più importanti per il primo anno: pensate alla matematica matriciale che è essenziale per la grafica 3D (come si fa a calcolare una superficie normale per illuminare un vertice? ). Abbiamo fatto molte statistiche: pensi all'analisi della produttività, quale tasso di lavori puoi trasferire in un sistema prima che si blocchi? Questo è abbastanza importante per molti sistemi centralizzati e reti.

Puoi insegnare molti algoritmi, un poster qui citato che dà agli studenti un numero ciascuno e poi li fa ordinare da soli usando vari algoritmi (che sono attivi e informativi). In effetti, qualsiasi algoritmo che può essere descritto in un'immagine animata su Internet può essere insegnato in questo modo. Allo stesso modo i fondamenti dell'informatica - contatore di programmi, accumulatore e registripuò essere insegnato allo stesso modo o sulla carta. Che ne dici del multithreading basato sugli studenti - imposta un gruppo di studenti un gioco di carte con una pila tra ciascuno di essi in un classico esercizio multi-thread (o il problema con 1 cucchiaio condiviso). O modelli di progettazione, posso pensare che l'architettura della lavagna sia perfetta per gli studenti per imparare come può essere implementata la comunicazione multi-processo, o un'architettura di livello n descritta come una sorta di gioco a sussurri cinesi o macchine a stati finiti si adatterebbe agli studenti che agiscono come moduli in un "computer vivente". Potresti insegnare matematica binaria o esecuzione basata su stack (ovvero inversione di lucidatura).

Naturalmente se si ha accesso all'elettronica è possibile costruire un computer analogico senza amplificatori operazionali. Sono fantastici.

Sfortunatamente tutto ciò sembrerà più come la matematica che l'informatica, ma gran parte di esso si attaccherà e un giorno capiranno perché gli è stato insegnato (supponendo che entrino nel settore informatico). Ricorda che qualsiasi cosa un computer può fare, una persona può fare - ci vorrà solo molto più tempo e noia per ottenere lo stesso risultato. Devi solo fare dei semplici esempi per dimostrare cosa farebbe il computer, e l'immaginazione per descrivere i fondamenti dell'informatica in un modo meno secco che mi è stato insegnato, molto tempo fa :)


1

Chiedere come studiare informatica senza computer è un po 'come chiedere come studiare cosmologia senza telescopi.

In gran parte rispondo solo per reagire a questa affermazione e perché non sono assolutamente d'accordo con altre risposte. A mio avviso, il confronto corretto sarebbe

Chiedere come studiare informatica senza computer è un po 'come chiedere come studiare cosmologia senza un cosmo .

L'informatica riguarda i computer, non solo il loro utilizzo. È vero, molta Informatica si basa sulla matematica, quindi le parti matematiche possono essere studiate senza computer (quindi stai insegnando matematica allora) proprio come al posto della cosmologia puoi studiare fisica che sarà utile una volta che c'è un cosmo (o avere accesso ai telescopi), ma alla fine quello che stai studiando è ancora fisica.

Ora, quello che tutti stanno facendo nelle risposte qui è notare come l'informatica a livello di laurea sia principalmente teorica e non richieda computer, la cosa che quelle persone stanno dimenticando l'IMHO è che le stesse persone hanno usato ampiamente i computer fino a quel punto. Senza una comprensione naturale approfondire direttamente le cose teoriche farà sì che molti studenti si arrendano o abbiano una visione terribilmente non corrispondente dell'informatica. Quindi insegnare un po 'di programmazione, capire quali sono i computer per primi e solo dopo entrare nelle cose teoriche.

Come se insegnassi a studenti in Africa che non hanno una conoscenza di un computer oltre al know-how di livello generale ma che aspirano a imparare l'informatica avanzata e dedicare la maggior parte del loro tempo a questo hobby?

Dipende dal budget:

  • Quasi nessun budget Se hai i soldi per viaggiare in Africa, prendi un mucchio di cloni di Arduino (ci sono cloni di Arduino funzionali per $ 13, controlla questo elenco per esempio ), alcuni componenti di output (come i LED) e un laptop. Inizia con una programmazione di base, insegnagli su carta e immettilo sul laptop. Non è il modo più efficiente, ma insegnerà loro almeno una comprensione di base di base di ciò che i computer sono praticamente.
  • Basso budget Acquista $ 750 dollari di smartphone e tastiere Android da $ 50 (tastiere microusb o tastiere bluetooth, controlla ebay.com o aliexpress.com sia per gli smartphone che per le tastiere). Sì, sono pessimi in milioni di modi, non parlarmene nemmeno. Tuttavia, puoi inserire dati su di essi (anche se non prendere in considerazione l'utilizzo delle tastiere su schermo) e ci sono semplici app di codifica per Android. Avere più studenti per smartphone e questo può funzionare abbastanza bene.

Quindi, vorrei essere chiaro, non sto dicendo che l'Informatica non può essere insegnata senza computer, solo che devi essere abituato ai computer e conoscerli abbastanza bene prima di iniziare a considerare una cosa del genere.


O ho frainteso il tuo disaccordo con la mia risposta o non sono d'accordo con esso. Se sapessimo che non esisteva il cosmo, la cosmologia sarebbe una fabbricazione totale. Se credessimo sinceramente all'esistenza del cosmo, la cosmologia sarebbe nel peggiore dei casi uno spreco di risorse ben intenzionato. Ma, in realtà, sappiamo che esiste. La cosmologia senza telescopi sta dicendo "Ehi, non posso osservare il cosmo questa settimana ma è sicuramente lì. Posso impararlo ora e guardarlo la prossima settimana." CS senza computer sta dicendo: "Ehi, i computer sicuramente esistono, così posso studiarli ora e sperimentarli fisicamente in seguito".
David Richerby,

E insegnare a qualcuno l'informatica senza che non abbiano mai usato o capito praticamente cosa sia un computer è altrettanto una tale fabbricazione. Non interagisci direttamente con il cosmo attraverso un telescopio, è solo uno dei molti modi per osservarlo. Di notte può ancora essere visto e può essere facilmente compreso a un livello base. Lo stesso non si applica ai computer.
David Mulder,

Sono completamente in disaccordo sul fatto che è un modo per insegnare a qualcuno qualcosa che esiste veramente ma che non ha sperimentato.
David Richerby,

2
@DavidRicherby: Tu e altri qui siete così radicati nell'essere abituati ai computer, è difficile capire cosa significhi veramente provare e insegnare a qualcuno l'informatica senza una base con i computer in primo luogo ... Conosco qualcuno che ha davvero tenuto dei corsi ai giovani che non hanno mai usato computer con computer reali ... non ha nemmeno tentato di insegnare la programmazione o l'informatica e arrivare al livello base di comprensione di cosa sia un computer è un compito a sé stante se non sei cresciuto con i computer. (continua)
David Mulder,

2
Al giorno d'oggi è relativamente più facile poiché più giovani hanno almeno qualche esperienza, ma la domanda era su quei casi in cui non hanno alcuna esperienza. Lo stesso individuo mi disse come nel paese in cui insegnava ci fosse un periodo in cui gli studenti della scuola secondaria sarebbero arrivati ​​ai corsi di informatica all'università senza aver mai toccato un computer prima ... avendo imparato solo un po 'di teoria nella scuola secondaria e come in la maggior parte dei casi (di gran lunga non tutti) che si concludono male. Il problema / idea è che i lavori al computer pagano bene, quindi vogliono solo ottenerli, non importa quale ...
David Mulder,

1

L'informatica riguarda gli algoritmi e non (rigorosamente) i computer (e l'elettronica).

Pertanto, lo studio degli algoritmi (anche dell'aritmetica elementare) può portare alla comprensione dell'informatica e della programmazione. Ricorda che anche il termine "algoritmo" è una parafrasi dell'autore di un libro aritmetico ( al-Khwārizmī , circa IX sec. CE).

Lo studio degli algoritmi può essere fatto usando mezzi elementari, ma dovrebbe fornire una spiegazione del perché l'algoritmo funziona, come è nato e come si può effettivamente dimostrare che funziona correttamente.

La storia alla base dell'evoluzione dell'informatica e degli algoritmi e della programmazione non è da sottovalutare. Ad esempio, calcolatrice di Babbage / Ada, macchina Enigma, plankalkul di Konrad Zuse , ENIAC ecc.

Quindi si può introdurre la programmazione (e i linguaggi di programmazione) come un modo per formalizzare gli algoritmi. Questo può anche essere fatto (in larga misura) usando mezzi elementari.

Si noti che alcuni studi hanno dimostrato che la programmazione di apprendimento peole presenta due principali difficoltà di comprensione (legate al sovraccarico di simboli, ad esempio il test di assegnazione vs uguaglianza e il funzionamento di una macchina RAM).

  1. I costrutti di loop (ad esempio per, mentre ecc.) Sembrano difficili
  2. Anche i test di assegnazione vs uguaglianza sembrano difficili.

Quindi uno può assicurarsi che questi siano chiaramente afferrati e compresi dalle persone.

Inoltre, se è possibile accedere a qualsiasi computer (anche una calcolatrice che può essere programmata), questo può essere utilizzato per fornire esempi applicativi ed esperienza pratica. Altrimenti si può usare un computer simulato. Questo può essere fatto in vari modi, ad esempio un gruppo di persone può simulare parti di un computer e la classe può progettare algoritmi per risolvere vari problemi per questo computer simulato e vedere come va. Questo può essere visto anche come un gioco, essere creativi e truccati.

Quindi alcuni modelli di calcolo (astratti) (ad esempio le macchine di Turing ) possono essere introdotti e correlati al materiale precedente sugli algoritmi e la formalizzazione in un linguaggio (di programmazione).

Se si desidera introdurre l'elettronica di un computer reale, ciò può essere fatto anche in due parti.

Ricorda che anche nelle università alcuni corsi di elettronica e architettura del computer sono teorici (non si entra effettivamente in contatto con una CPU o ne progetta uno).

Quindi alcuni principi di funzionamento dell'elettronica (e della fisica sottostante) relativi all'architettura del computer possono essere introdotti ( semiconduttori , zone energetiche a stato solido, porte p-np, ecc.).

Quindi si può sfruttare il materiale precedente sulla programmazione e sugli algoritmi e introdurre (moderne) tecniche di progettazione (e descrizione) della CPU che vengono utilizzate nel settore ( porte logiche , flip-flop , FPGA , VHDL , circuiti CMOS ecc.).

Ciò può essere ulteriormente approfondito, problemi relativi all'architettura di progettazione della CPU come parallelismo, pipeline, memoria cache, indirizzamento vettoriale, micro-programmazione, DMA, ecc.

Bene, ok forse questo può essere troppo, ma aggiunto per rendere la risposta autonoma.


-1

Stai cercando di insegnare la programmazione?

Quando ero piccola, andavamo in vacanza in campeggio e portavo con me il manuale del computer. Sono stato in grado di scrivere un semplice gioco usando carta e penna.

Questo è stato il mio primo vero programma, immagino, quindi è stato coinvolto molto apprendimento. Sapevo cosa volevo fare, ma ci sono state molte false partenze mentre l'ho capito. Ma alla fine sono stato in grado di scrivere l'intero codice.

Immagino che ciò che sto dicendo sia iniziare con pseudo codice e \ o diagrammi di flusso per pianificare il progetto e poi tradurre in codice. Sono stato in grado di eseguire il debug di molto del mio codice semplicemente leggendolo. Puoi anche utilizzare le revisioni tra pari qui.


Andrei sicuramente con lo pseudocodice piuttosto che con i diagrammi di flusso.
David Richerby,

Questa domanda merita più di un punto dati esperienza per risposta.
Raffaello

-2

Per fare eco alle risposte precedenti: c'è molto da imparare solo leggendo e facendo esercizi con carta e penna. Se riesci a risolvere il problema su carta, hai la pat più dura. Tuttavia, vorrei anche menzionare l'esistenza di modi abbastanza economici per esporre gli studenti a CS. Sei familiarità con il progetto Raspberry Pi ? Anche se più persone devono condividere o puoi permetterti solo di ottenere 1 o 2 unità, potrebbe valere la pena considerare come un modo per esporre i tuoi studenti alla tecnologia.


Questo non aggiunge nulla rispetto alle risposte esistenti.
Raffaello

1
@Raphael Vero, sebbene si noti che le altre risposte che menzionano dispositivi di elaborazione economici sono state postate dopo questa.
David Richerby,

-3

proverò a destreggiarmi un po 'e "pensare fuori dagli schemi". i computer in piena regola sono davvero costosi, a volte richiedono risorse e sono difficili da mantenere. ma ci sono molti sistemi elettronici economici che imitano computer completi, ad esempio con schermi LCD, ecc. e che possono essere applicati molti principi di programmazione di base, molti alimentati a batteria. esiste anche una stretta connessione dei principi EE con l'elaborazione come la costruzione di circuiti logici binari ecc .; anche oggi alcuni giocattoli hanno capacità di programmabilità.

  • calcolatrici programmabili . alcuni hanno interi linguaggi di programmazione (non così di alto livello ma più simili ai linguaggi di assemblaggio) incorporati in essi. alcuni sosterrebbero programmi avanzati.

  • Raspberry pi minicomputer / microcontroller è stato sviluppato per questo scopo e funziona su Linux. meno di $ 40 in molti casi.

  • Il microcontrollore kit STAMP parallax richiede una connessione USB ma forse un Raspberry pi sarebbe sufficiente. vedi anche microcontrollore PIC

  • sistemi di robotica. ce ne sono molti economici che hanno una logica programmabile. Lego robotics mindstorms / nxt è uno dei migliori e ci sono modelli meno costosi.

  • alcuni giochi per console hanno principi di programmazione integrati. per esempio Little Big Planet ha incredibili funzionalità di programmazione integrate. ci sono alcune versioni portatili di giochi programmabili. ci sono molti video di YouTube di costruzioni complesse per l'ispirazione.

  • smartphone sono il nuovo mondo di programmazione. hanno browser che eseguono javascript e ci sono molte app relative alla programmazione, e si potrebbe persino navigare in siti di programmazione con una connessione a Internet (wifi incluso).

suggerisce anche come nei commenti la creazione di programmi TM, ad esempio per l'aggiunta, ecc. e il tentativo di seguirli manualmente.


2
Sospetto che anche le persone che non hanno accesso ai computer non abbiano accesso a Lego Mindstorms, ai sistemi di gioco per console, agli smartphone o al wifi.
David Richerby,

un punto giusto / ovvio / anticipato ma nulla di menzionato è stato esplicitamente escluso nei criteri della domanda. non è noto dalla domanda se gli studenti non hanno roba perché è costosa, e tutto quanto elencato sopra è più economico dei computer desktop come riferimento. gli studenti o le scuole che possono permettersi libri di testo possono permettersi quanto sopra (magari condividendolo). e se i libri di testo non sono convenienti, cos'altro rimane?
vzn,

(A proposito della portata della domanda è stata modificata in modo significativo dalla mod da quando questa risposta è stata scritta, per me quella modifica della domanda rende le ipotesi principali non nec intese dallo scrittore originale e preferisce l'ambiguità originale come una caratteristica non un bug)
vzn
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.