Chi non ha ancora guardato le lezioni di Harvard sulle basi della programmazione, vada qui: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
Introduzione. Struttura del corso CS50
Amici! Nell'introduzione vi ricorderemo (o chi vi racconterà) la struttura del CS50. Il corso dura 12 settimane. Ogni settimana ci sono due conferenze, oltre a tutti i tipi di seminari e spiegazioni. Pubblicheremo articoli come questo non appena le lezioni saranno pronte. Conterrà una breve descrizione delle lezioni, note sui “corti” e informazioni aggiuntive, nonché traduzioni dei compiti pratici. Le lezioni della settimana zero hanno trattato i seguenti temi:- Sistema di numeri binari.
- ASCII
- Algoritmi e pensiero algoritmico
- Compilatori
- Linguaggio zero
- Espressioni booleane
- Condizioni
- Cicli
- Variabili
- Funzioni
- Array
- Flussi
- Eventi
- Comprendere come le informazioni possono essere rappresentate digitalmente.
- Apprendi i costrutti e i concetti di base del software.
- Crea la tua animazione, gioco o attività interattiva utilizzando Scratch.
- Stupisci i tuoi amici =).
CS50 Settimana 0 (Lezione 1-2): note
Algoritmi
Ci auguriamo che tu abbia già guardato le lezioni e capito che l'algoritmo suddivide la soluzione dei problemi (vari problemi, matematici o “come arrivare alla stazione della metropolitana N”) in passaggi. Inoltre, ogni passaggio deve essere completato in un periodo di tempo finito e deve esserci un certo numero di passaggi stessi. Inoltre, il passaggio successivo dipende da quello precedente. Puoi leggere ulteriori informazioni sugli algoritmi, ad esempio, qui . Se conosci l'inglese, ecco una meravigliosa animazione TED di David Malan: https://youtu.be/6hfOvs8pY1k Anche se in generale le informazioni nel video ripetono quelle della lezione =).Sistema di numeri binari
Abbiamo 10 dita e il sistema è decimale. Cioè, possiamo rappresentare qualsiasi numero, non importa quanto grande, utilizzando i numeri 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. A seconda di dove si trova il numero nel numero, può significare cose diverse: se questa cifra è l'ultima, allora si trova nella posizione delle unità, la penultima è nella posizione delle decine, ancora più a sinistra è nella posizione delle centinaia, e così via. In sostanza, qualsiasi numero può essere scritto come somma di cifre, ciascuna delle quali viene moltiplicata per dieci fino a una certa potenza. Nel caso delle unità - zero. Ad esempio, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Il numero per il quale vengono moltiplicate le cifre è chiamato base del sistema numerico. Per il sistema decimale la base logicamente è dieci. Il computer non ha dita, ma ci sono due stati: condizionatamente “la corrente scorre” e “la corrente non scorre”, zero e uno. Di conseguenza, tutti i numeri (e le informazioni in generale) nella memoria del computer sono costituiti da solo due cifre: 0 e 1. La loro posizione, come nel caso del sistema numerico decimale, indica la cifra. Solo ora il numero può essere scomposto nella somma delle cifre moltiplicate non per potenze di dieci, ma per potenze di due. 0 in binario = 0 1 in binario = 1 2 in binario = 10 7 10 =111 2 Impara a convertire da binario a decimale. Probabilmente hai già capito come si fa: prendiamo semplicemente la cifra del numero partendo da quella più a destra e la moltiplichiamo per la base alla potenza corrispondente alla sua cifra, e sommiamo tutto con ciascuna cifra. Esempio: Troviamo l'analogo decimale del numero binario 101101 2 Quello più a destra = 1*2 0 Lo zero successivo = 0*2 1 Il terzo da destra = 1*2 2 Il quarto = 1*2 3 .. .e così via 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Immagina otto lampadine disposte in fila. Ognuno di loro ha il proprio interruttore. Ognuna delle lampadine è una scarica. Cosa puoi immaginare, ricorda la primissima lezione (c'è un dispositivo del genere lì) o ecco un widget per te: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Gioca con esso, esercitati a “sentire” il suo sistema binario. Conversione da decimale a binario. Anche qui tutto è molto semplice, se ne capisci l'essenza. Qui abbiamo il numero 57 10 . Per convertirlo nel sistema binario, è necessario determinare quale potenza massima di due non supera questo numero. 2 6 = 64. Questo è chiaramente troppo. Ma 2 5 = 32. Ora abbiamo determinato la cifra più significativa. 3210 _= 100000 2 . Ora stiamo cercando la cifra successiva. 57-32 = 25. Ora per 25 cerchiamo una potenza di due che non superi 25. 2 4 = 16. Ciò significa che anche la nostra cifra successiva è uguale a 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, questo è inferiore a 9. Ciò significa che anche la cifra successiva sarà uno. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, cioè rimane solo una potenza, 2 0 . Quindi 57 10 = 111001 2 . Se all'improvviso qualcosa rimane poco chiaro, puoi leggere di più nel Wikibook e, se parli bene l'inglese, ecco una piccola aggiunta alla lezione.ASCII
Il computer capisce solo zeri e uno e la sua memoria può essere rappresentata come una lunghissima stringa di lampadine con interruttori, come hai visto sopra. Sappiamo già come rappresentare i numeri in un computer. E il resto delle informazioni? Lettere, immagini? Diciamo che ci sono 26 lettere nell'alfabeto inglese. Cioè, in teoria, possiamo rappresentare le lettere con i numeri da 0 a 25, solo nel sistema binario. Sorge la domanda seguente: come possiamo capire se abbiamo una lettera minuscola o maiuscola? E i segni di punteggiatura? Segni invisibili come spazi? Insomma, serve un sistema di codifica, Cap! Negli anni '60 esistevano molti schemi diversi per codificare i caratteri. La mancanza di uniformità si rivelò un problema e nel 1963 l'American Standards Institute, ANSI, sviluppò e introdusse lo schema di codifica ASCII (American Standard Code for Information Interchange). Ogni carattere ASCII è composto da sette bit, o sette bit, ognuno dei quali può assumere il valore 0 o 1. 7 bit possono contenere numeri da 0 a 127 in binario, il che significa che abbiamo 128 numeri per codificare i caratteri. Sembrerebbe che questo sia sufficiente per codificare il discorso inglese scritto? Contiamo: az - 26 opzioni AZ - altre 26 0-9 - 10 ,;:~& e altri segni di punteggiatura - 32 E un altro spazio. Totale: 95 caratteri. Le restanti 33 opzioni libere vengono utilizzate per i cosiddetti caratteri di controllo, come avanzamento riga o ritorno a capo: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg È importante distinguere tra caratteri 0-9 e valori numerici 0 -9. I caratteri 0-9 sono rappresentati dai valori ASCII 48-57. È interessante notare che i quattro bit più a destra di questi valori ASCII sono rappresentazioni binarie dei valori numerici 0-9. Ciò semplifica in qualche modo il modo di convertire tra i valori ASCII e i loro valori numerici effettivi. Iniziamo a programmare?Graffio
Allora, Gratta. Durante la lezione ti è stato parlato di questo linguaggio di programmazione visiva e dei suoi comandi di base. Per provare Scratch di persona, segui il collegamento e fai clic su "Iscriviti". Una volta registrato, puoi iniziare a programmare online. Sì, a proposito, oggi Scratch è in parte russificato. La guida, tuttavia, è ancora in inglese. Se lo desideri, puoi giocare e anche guardare il codice dei progetti degli studenti che sono stati dimostrati durante la lezione. Ecco Pikachu Pastry Catch . Oppure un progetto con la raccolta differenziata dei rifiuti in diversi contenitori: https://scratch.mit.edu/projects/71161586/ David e l'azienda ti chiedono di non preoccuparti se pensi di non poter realizzare progetti così complessi: questo livello richiede già una certa abilità .Esercizio
-
Per comprendere meglio i processi che avvengono in Scratch, puoi scaricare il codice sorgente per diversi progetti da qui . Gioca e guarda. Imparare il codice di qualcun altro è molto utile. Questo è uno dei modi migliori per scoprire cosa c'è dentro quei programmi in cui tu stesso non sei ancora maturato. Una volta che inizi a capire come funzionano queste applicazioni, puoi andare avanti in tutta sicurezza.
-
Ora è il momento di fare qualcosa da solo. La sfida è divertirsi realizzando anche un piccolo progetto da zero. Potrebbe essere animazione, gioco, azione interattiva.
- Il programma deve contenere almeno due sprite (personaggi, immagini) e uno di questi non deve assolutamente essere un gatto =).
- Devono essere presenti almeno tre script (azioni).
- È necessario eseguire almeno una condizione, un ciclo e una variabile.
- Almeno un suono deve essere incluso nel programma.
GO TO FULL VERSION