JavaRush /Java Blog /Random-IT /Materiali aggiuntivi per le lezioni CS50: Settimana 0 (Le...
Bender
Livello 1
Маунтин-Вью

Materiali aggiuntivi per le lezioni CS50: Settimana 0 (Lezioni 1 e 2)

Pubblicato nel gruppo Random-IT
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

Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 1Amici! 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
Obiettivi della settimana 0:
  • 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

Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 2Ci 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

Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 3Abbiamo 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

Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 4Il 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

Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 5Allora, 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

  1. 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.

  2. Ora è il momento di fare qualcosa da solo. La sfida è divertirsi realizzando anche un piccolo progetto da zero. Potrebbe essere animazione, gioco, azione interattiva.

Requisiti del progetto:
  • 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.
Cioè, in sostanza, il tuo progetto sarà più complesso di quelli scritti nella lezione, ma più semplice dei giocattoli dimostrati su Pikachu e sulla raccolta dei rifiuti. Quindi il tuo progetto probabilmente utilizzerà diverse dozzine di puzzle che compongono il codice Scratch. Se qualcosa non funziona, potrebbe essere necessario cambiare il tuo approccio alla risoluzione del problema. L'importante è andare senza paura! Ti invitiamo a porre domande e a condividere i tuoi progetti nei commenti.

Scratch: una guida rapida all'azione

Lo sprite è l'oggetto centrale del progetto. Qualsiasi personaggio - un gatto, un aereo, una palla - è uno sprite. Se hai aggiunto due gatti diversi, si tratta di due sprite diversi. Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 6Ogni sprite ha degli script che ne descrivono il comportamento. Questi sono blocchi di azione. I costumi sono l'aspetto degli oggetti. Gli sprite stessi sono essenzialmente solo disegni. Ogni sprite può avere più costumi. Per creare uno sprite, devi selezionare il suo costume originale dalla libreria Scratch, disegnarne uno tuo nell'editor integrato, caricare qualsiasi immagine o anche scattare una foto utilizzando la tua webcam e caricarla. Tutti gli sprite vengono posizionati sul cosiddetto palco. Il palco è essenzialmente la nostra tela, l'ambientazione del programma. Puoi anche allegare suoni dalla libreria a uno sprite o a una scena, oppure puoi caricarli o registrarli tu stesso utilizzando un microfono. Per avviare l'esecuzione del programma, è necessario fare clic sulla bandiera verde nell'angolo in alto a destra della finestra della scena. Ma prima di fare ciò, devi inserire il seguente blocco nel programma: Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 7E allegarvi alcuni blocchi, come se fosse una parte del designer. Ad esempio: Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 8in questo caso, quando si clicca sulla bandiera, lo sprite a cui sono attaccate le azioni fa 50 passi e miagola. Abbiamo molti blocchi. Sono divisi in tre schede: sceneggiature, costumi e suoni. Creiamo un semplice programma con una condizione. Se si realizza, il gatto miagola; se non si realizza, resta in silenzio. Gli operatori sono indicati in verde. Quelli che verificano se una condizione è vera o falsa hanno angoli acuti sui lati. Le strutture e i cicli di testing delle condizioni sono mostrati in arancione. Hanno dei fori speciali dove puoi posizionare altri blocchi.

Cicli:

Ripeti un numero infinito di volte: Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 9Ripeti qualcosa un certo numero di volte: Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 10Ripeti un'azione se la condizione è soddisfatta: Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 11Puoi creare variabili nel Blocco dati. Nell'esempio seguente, abbiamo creato una variabile x e immediatamente sono state eseguite delle azioni con essa. Puoi impostare l'ambito delle variabili: per tutti gli sprite o per uno. Materiali aggiuntivi per le lezioni CS50: Settimana 0 (lezioni 1 e 2) - 12La bandiera verde non è l’unica azione. Inoltre nella sezione Eventi puoi trovare una serie di altre condizioni di controllo. Ad esempio, puoi scegliere cosa fare quando clicchi su un pulsante o sullo sprite stesso con il mouse. Se hai bisogno di ulteriori informazioni, puoi trovarle, ad esempio, qui .

Cos'altro

Se il tuo accesso a Internet lascia molto a desiderare, ti consigliamo di scaricare l'editor Scratch offline su https://scratch.mit.edu/scratch2download/ . Quindi non dimenticare di inviare il tuo progetto a http://scratch.mit.edu/ utilizzando File > Carica da computer.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION