CS101 esplora le qualità essenziali dei computer, come funzionano, cosa possono e non possono fare, e non richiede alcuna preparazione informatica: Grazie a Nick Parlante per i suoi materiali. Da Nick: “Grazie a Google per aver sostenuto le mie prime ricerche che hanno contribuito a creare questa classe. Grazie a Mark Guzdial che ha reso popolare l’idea di usare i media digitali per introdurre i computer.”
Equazione fondamentale dei computer
L’equazione fondamentale dei computer è:
Computer = Potente + Stupido
- Potente abbastanza da guardare attraverso masse di dati
-Billioni di “operazioni” al secondo - Stupido perché ogni operazione è semplice e meccanica.
-Niente di simile all'”intuizione” o al “pensiero” (video HAL 9000) - Potente + Stupido … verrà fuori nei nostri esercizi
- Perché i computer sono utili nonostante il loro limite?
- Questo è l’obiettivo di CS101
-Visitare questo divertente mondo del computer, vedere come funziona
-Capire cosa possono fare e come gli umani li sfruttano
-Non essere intimiditi - Ordine del giorno nascosto: aprire gli occhi per alcuni, più corsi di informatica
I computer sono molto potenti nel guardare rapidamente attraverso grandi quantità di dati. I computer possono letteralmente eseguire miliardi di operazioni al secondo. Tuttavia, le singole “operazioni” che i computer possono eseguire sono estremamente semplici e meccaniche, niente a che vedere con un pensiero o un’intuizione umana. Le “operazioni” tipiche includono il confronto di due numeri o l’aggiunta di due numeri insieme.
Quindi, anche se i computer sono veloci in quello che fanno, le operazioni che possono fare sono estremamente rigide, semplici e meccaniche. O detto in un altro modo, i computer non sono come l’HAL 9000 del film 2001: Odissea nello spazio: Il video di HAL 9000.
Un elemento chiave è che un computer non agisce come un cervello umano. Il computer è uno strumento meccanico che può fare cose incredibili, ma richiede un umano che gli dica cosa fare.
Livello alto – Come funziona un computer?
- Il computer segue una serie di istruzioni “codice”
- Ogni istruzione è semplice (es. aggiungere 2 numeri)
- Il computer “esegue” una lunga serie di istruzioni
- Puramente meccanico
I computer sono molto utili
- Pensa a tutte le funzioni utili dei computer (telefono, fotocamera)
-Messaggistica, e-mail
-Audio MP3
-Riduzione occhi rossi - Se i computer sono così stupidi… come fanno ad essere così utili?
- Cosa collega le due parti?
Programmatori
- I programmatori sfruttano la potenza di un computer!
- Il programmatore pensa ad una funzione utile
-Richiede creatività, intuizione sui bisogni umani, e conoscenza dei computer - I programmatori spezzano i passi, scrivendo codice per il computer
– Lo sminuisce per il computer! - Le migliori caratteristiche di entrambe le parti: elaborazione economica/veloce del computer + intuizione creativa del programmatore
- Esplorazioni del CS101: algoritmi e codice
Siccome i computer sono totalmente meccanici e stupidi, perché sono così onnipresenti? Il divario tra il computer e fare qualcosa di utile è dove il programmatore umano crea soluzioni. La programmazione richiede che una persona sia creativa e abbia una visione di un problema, nonché la capacità di scomporre la soluzione in istruzioni che un computer può seguire.
Il codice si riferisce al linguaggio che il computer può capire. Per queste lezioni, scriveremo ed eseguiremo brevi frammenti di codice per capire quali sono le qualità essenziali dei computer, e soprattutto i loro punti di forza e le loro limitazioni.
Sperimentando il codice, la natura dei computer verrà fuori molto chiaramente … potente a modo suo, ma con una qualità limitata, meccanica. IMHO, questa natura mista dei computer è qualcosa che tutti dovrebbero capire per usarli bene e non esserne intimiditi.
Prima di codificare – Pazienza
- Incominceremo con qualche semplice codifica qui sotto
- Il codice è come i mattoncini lego…
- -I singoli pezzi sono super semplici
- -Eventualmente costruiamo grandi combinazioni
- Ma dobbiamo iniziare in piccolo
Foreshadowing
In poche ore di lezione, faremo effetti speciali con immagini come i seguenti:
Ma per ora abbiamo solo print()!
Pazienza Inizieremo imparando alcuni elementi di programmazione e le diverse parti di un computer, e più tardi ricombineremo questi pochi elementi per risolvere molti problemi. Questi primi elementi sono semplici, quindi non sono molto da guardare da soli. Abbiate pazienza, presto metteremo insieme questi elementi — come i mattoncini lego — per fare dei progetti piuttosto ordinati.
Javascript Computer Langauge
- Codice JavaScript più alcune estensioni solo per CS101
- Le nostre frasi di codice sono piccole…
- -Grande abbastanza per sperimentare le idee chiave
- -Non programmi completi e professionali
- -Ma grande abbastanza per mostrare le vere sfide del coding
Per questa classe, useremo una variante del linguaggio conosciuto come Javascript, con alcune caratteristiche aggiunte per questo corso. Il linguaggio Javascript funziona nel browser web, quindi tutti i nostri esperimenti possono vivere direttamente nel browser senza bisogno di altro. Useremo solo le parti di Javascript necessarie per i nostri esperimenti, non il linguaggio completo che si vedrebbe usando Javascript professionalmente. Detto questo, Javascript è un vero linguaggio, e il nostro codice è vero codice. I nostri piccoli programmi mostrano le caratteristiche importanti del codice, mantenendo le cose veloci e piccole.
Primo esempio di codice – Print
Ecco il codice che chiama la funzione “print”. Clicca il bottone Run qui sotto, e il tuo computer eseguirà questo codice, e l’output del codice apparirà sulla destra.
- Run esegue ogni linea una volta, dall’alto verso il basso
- print è una funzione, un verbo che rappresenta un’azione che il computer farà.
- I dati all’interno delle parentesi sono passati alla funzione print (sostantivi)
-questi dati sono l’oggetto del “verbo”
-dati sono chiamati gli argomenti della funzione - I valori multipli sono separati da virgole
- Gli esperimenti cambiano il codice ed eseguono dopo ogni cambiamento vedere il nuovo output:
-Cambiare un numero
-Aggiungere più numeri separati da virgole all’interno del print(…)
-Copia la prima linea, e incollala due volte dopo l’ultima linea
-Prometto che l’output diventerà più interessante! - Sintassi stretta non forma libera
-La sintassi permessa è super rigorosa e stretta
-e.g. non può lasciare fuori la parentesi destra )
-un riflesso della natura interna e meccanica del computer
-Non essere scoraggiato – “Paese che vai…”
-Ci troviamo nel mondo del computer - Nota che questo “print” non è una parte normale di Javascript, l’ho aggiunto per CS101
Print And Strings
- Un commento inizia con // e si estende fino alla fine della linea. Un modo per scrivere note sul codice, ignorato dal computer.
Perché i programmatori potrebbero usare i commenti? - Una stringa è una sequenza di caratteri scritti tra virgolette da usare come dati nel codice
-e.g. “ciao” o “123”
-Le stringhe funzionano con la funzione print, oltre ai numeri
-Le stringhe nel computer memorizzano del testo, come gli url o il testo dei paragrafi, ecc. - Esperimenti:
-Modifica il testo all’interno di una stringa
-Aggiungi più stringhe separate da virgole
-Aggiungi la stringa “print” – difficile!
-Dentro le virgolette ci sono solo dati - Codice = istruzioni che vengono eseguite
- Dati = numeri o stringhe; gestiti dal codice
Nota che print è riconosciuto come una funzione nel codice contro la stringa “hello” che è solo un dato passivo (come verbi e nomi).Il computer ignora i commenti, quindi sono solo un modo per te di scrivere note su cosa sta facendo il codice. I commenti possono essere usati per rimuovere temporaneamente una linea di codice — “commentando” il codice mettendo un “//” alla sua sinistra.
Pensare alla sintassi e agli errori (il messaggio chiave di oggi!)
- Sintassi — il codice è strutturato per il computer
- Errore molto comune — scrivere nel codice, con un leggero problema di sintassi
- I programmatori professionisti fanno questo tipo di “errore” tutto il tempo
- Per fortuna, molto facile da risolvere … non preoccuparti
- Non è un riflesso di qualche difetto nel programmatore
- Solo la natura di scrivere idee nel linguaggio meccanico del computer
- I principianti possono essere deragliati dal passo di sintassi, pensando di fare qualche grosso errore
- Prova a fare un mucchio di errori di sintassi tipici e correggili
- La correzione di questi piccoli errori è un piccolo, normale passo
- Nota: Firefox dà i migliori messaggi di errore
Sintassi La sintassi mostrata sopra deve essere seguita rigidamente o il codice non funzionerà: nome della funzione, parentesi, ogni stringa ha apici di apertura e chiusura, virgole che separano i valori per una chiamata di funzione.
La rigidità della sintassi è un riflesso dei limiti dei computer, poiché il loro linguaggio naturale è fisso e meccanico. Questo è importante da assimilare quando si lavora con i computer, e penso che questo sia il punto in cui molte persone deragliano quando iniziano a lavorare con i computer. Voi scrivete qualcosa che qualsiasi umano potrebbe capire, ma il computer può capire il codice solo dove si adatta alla sintassi meccanica del computer.
Gli errori di sintassi banali e superficiali sono molto comuni quando si scrive codice. I programmatori più esperti sulla terra fanno questo tipo di errori tutto il tempo e non ci pensano. Gli errori di sintassi non riflettono qualche strategia errata da parte dell’autore. È solo un passo naturale nel tradurre i nostri pensieri nel linguaggio più meccanico del computer. Come vedremo più avanti, correggere questi errori è molto veloce.
È importante non farsi deragliare da questi piccoli casi di errore superficiale. Per aiutarvi ad insegnare i modelli, qui sotto abbiamo molti esempi che mostrano errori tipici, così potete vedere come appaiono i messaggi di errore e vedere come risolverli. Per ogni frammento di codice qui sotto, qual è l’errore? A volte il messaggio di errore generato dal computer indica accuratamente il problema, ma a volte il messaggio di errore rivela semplicemente che l’errore ha confuso così profondamente il computer da non poter creare un messaggio di errore preciso. Firefox attualmente produce i messaggi di errore più utili e spesso vi dirà la linea specifica con problemi.
Esempi di errore di sintassi
Questi problemi di sintassi sono veloci da risolvere.