[ΜΟΥΣΙΚΗ ΠΑΙΖΟΝΤΑΣ] 

-Alright! 

-Εδώ CS50. 

-Εδώ CS50. 

-Εδώ CS50. [ΜΟΥΣΙΚΗ - IGGY ΑΖΑΛΕΑ, "FANCY"] 

Αγαπημένο -Το μνήμη από CS50 ήταν όταν πήγα να Puzzle Ημέρα. 

-πιθανόν Μόνο ο χρόνος που εργάστηκε για το πρόβλημα σύνολα με τους φίλους μου και τους ανθρώπους που υφηλίου τελικά να γίνει blockmates μου. 

-Μου Καλύτερη μνήμη από CS50 είναι το Hackathon. -Το CS50 Hackathon. 

-Hackathon. 

-Hackathon. -Hackathon. -Το Hackathon -Rob Bowden. Απλά τα πάντα γι 'αυτόν. 

[ΜΟΥΣΙΚΗ - IGGY ΑΖΑΛΕΑ, "FANCY"] 

Αγαπημένο -Το μνήμη είναι όταν ήμουν στην στάδιο και έπαιξα το διάσημο ρόλο ενός κόμβου [? στο Συνδέεται;] [? Λίστα. ?] 

-Όταν Όλοι πήραμε ελεύθερο χώρο Dropbox και Ο David ήταν όπως, φαίνονται κάτω από τα καθίσματα σας. Και ήταν σαν, χώρο για όλους! 

[ΜΟΥΣΙΚΗ - IGGY ΑΖΑΛΕΑ, "FANCY"] 

-Το Συμβουλές για οποιοδήποτε εισερχόμενο φοιτητή θα είναι πραγματικά να εργαστούν για P-σύνολα με φίλους. 

-Χώρος Ώρες είναι πολύ φίλος σας. 

Κάντε κλικ στο έπακρο την εμπειρία σας και να ανταποκριθεί, όπως πολλοί άνθρωποι όπως μπορείτε. 

-Μην Φοβάστε να ζητήσετε βοήθεια. -Ξεκινήστε Τα P-σύνολα στις αρχές της εβδομάδας. -Νομίζω Το μεγαλύτερο πράγμα είναι να να επωφεληθούν από όλους τους πόρους ότι CS50 έχει. 

-Πηγαίνετε Σε ώρες γραφείου στις αρχές της εβδομάδας. 

-Definitely Παρακολουθήσετε τα σορτς. 

-Μην Χρονοτριβούν για το P-σύνολα. -Βεβαιωθείτε Θα βρείτε μια μεγάλη ομάδα των ανθρώπων να εργαστούν στο P-σύνολα με. Μπορείτε να έχετε πολλή διασκέδαση και να κάνουν τη δουλειά τους μαζί. 

-Μην Φοβάστε να ωθήσει τον εαυτό σας. Πηγαίνετε για την έκδοση χάκερ μερικές φορές. 

-Γράψτε Πράγματα σε χαρτί πριν Έχετε ποτέ αγγίξει τον υπολογιστή σας. 

-CS50 Είναι πραγματικά μεγάλη σε παρέχουν τρόπους για να πάρετε βοήθεια. 

-Μου Ένα κομμάτι των συμβουλών είναι ο ύπνος. Έχει κανείς το είπε αυτό; Sleep, σίγουρα. Είναι εύκολο να μην το κάνετε, αλλά έχετε να το κάνουμε, νομίζω. 

-I Θα πει πραγματικά να είναι ψυχικά προετοιμασμένοι επειδή θα πάμε να το αγαπούν. [ΜΟΥΣΙΚΗ - IGGY ΑΖΑΛΕΑ, "FANCY"] 

-Εδώ CS50. 

-Εδώ CS50. 

-Εδώ CS50. [ΜΟΥΣΙΚΗ - IGGY ΑΖΑΛΕΑ, "FANCY"] 

-Εδώ CS50. 

[Χειροκρότημα] 

DAVID J. MALAN: Έτσι, αυτό είναι CS50 και αυτό είναι το τέλος της εβδομάδας 0. Και αυτό ήταν μόνο μερικά του προσωπικού CS50 ο οποίος σας περιμένουν όχι μόνο σε τμήματα και ώρες γραφείου, αλλά, Επίσης, το ερχόμενο Σαββατοκύριακο σε CS50 παζλ Ημέρα. Η οποία, και πάλι, δεν είναι όλα τα σχετικά με τον προγραμματισμό. Πράγματι, αναμένεται ότι θα Δεν θα χρειαστεί να κάνετε κανένα προγραμματισμό, αλλά μάλλον την επίλυση προβλημάτων με τη χρήση ευστροφία και τους φίλους στο πλευρό σας. 

Θα πρέπει να συνοδεύεται από κάποια από τους φίλους μας στο Facebook-- αν here-- εγγραφή που για τα τελευταία αρκετά χρόνια, έχουν πράγματι τη σύνταξη αυτές οι προκλήσεις με εμάς. Και έτσι, θα είναι εκείνοι τελικά τρέχει παζλ Ημέρα. Και έτσι, θα πρέπει να αμφισβητηθεί με ακριβώς τα είδη των πραγμάτων και τα προβλήματα που οι λαοί σε Facebook αρέσει να σκέφτομαι. Έτσι ώστε να είναι αύριο. Εγγραφή στο cs50.harvard.edu/register. 

Τώρα, μια λέξη για ένα ζευγάρι του προσωπικού, ιδίως. Αυτό εδώ είναι Ansel Duff, που είναι στην πραγματικότητα ένα από τους συν-συγγραφείς αυτών των δυαδικών λαμπτήρες που είδαμε την Τετάρτη, εκτός από την CS50 δική Dan Bradley. Ansel Duff ήταν επίσης ένας πρώην καινούριος advisee μου πριν 3 χρόνια και στην πραγματικότητα, ακόμη και έχτισε αυτό το αναλόγιο. Έφυγε για να κάνει επιστήμες της μηχανικής και περισσότερο. Τώρα, η εικόνα του εδώ είναι στην πραγματικότητα Ansel πριν 3 χρόνια στο CS50 Hackathon όταν δανείστηκε ένα από μας μπαλόνια, κόλλησε στο φορητό υπολογιστή του, και, για την επόμενη 12 κάποιο περίεργο ώρες, επικεντρώθηκε στην τελική του έργου του, με διαλείμματα μόνο για να ανοίξει σακούλες των καραμέλα στο Hackathon. 

Αλλά πήγε για πιο πρόσφατα περάσετε αυτό το καλοκαίρι που μας πέρασε με μας, από CS50 για το προσωπικό της, και Σήμερα οι μαθητές αυτό το εξάμηνο, έχει το δικό του 3D εκτυπωτή του. Και με λίγα λόγια ένα 3D εκτυπωτές είναι μια συσκευή που μοιάζει αρκετά σαν αυτό. Μπορείτε να το γεμίσετε με ένα πλαστικό καρούλι ότι έχει λιώσει κάτω από τη συσκευή και να οικοδομήσουμε τα πράγματα κυριολεκτικά από το τίποτα. Μοιάζει πολύ με έναν εκτυπωτή inkjet, θα ξεκινήσει φτύσιμο λίγο τελείες από πλαστικό ότι η μορφή μαζί με το σχηματισμό ακέραιων αντικείμενα. Και έτσι Ansel για παράδειγμα, νωρίτερα αυτό το καλοκαίρι, έχει ένα iPhone 5 και αποφάσισε ότι ήθελε να το στηρίξουν στο γραφείο του. Αλλά δεν ήθελε να βγείτε έξω και να αγοράσει κάτι από το κατάστημα της Apple ή τα παρόμοια, έτσι κάθισε και άρχισε να σχεδιάζει κάτι. Πήρε μερικές μετρήσεις ως προς το πόσο παχύ και πόσο μεγάλη iPhone του ήταν, έσυρε αυτή την εικόνα εδώ, αποφάσισε ότι ήθελε να έχει μια κλίση 75 μοιρών καθώς κοίταζε τον στο γραφείο του εκεί. Στη συνέχεια στράφηκε αυτό, χρησιμοποιώντας λογισμικού, σε ένα μοντέλο 3D CAD ότι φαινόταν λίγο κάτι σαν αυτό. Και στη συνέχεια προχώρησε, τελικά, να δημιουργήσουν πραγματικά. Έτσι, στην πραγματικότητα, αν κάποιος από εσάς εδώ, ίσως σε μια σειρά που μπορώ να ρίξει, έχουν an-- εκεί έχουμε τους λαούς με το iPhone 5, και εδώ έχουμε δύο περισσότερο. 

Τώρα, δεν πρέπει να πάνε πίσω, CS50 δική Cheng Gong που επίσης αυτό το καλοκαίρι να χτίσει αρκετά πράγματα και, Στην πραγματικότητα, για λόγους που είναι ακόμη ασαφής, έχει σιγά-σιγά εκτύπωση ενός στρατού των ελεφάντων με άρθρωση όπλα και κορμούς. Ένα ζευγάρι από τα οποία είναι πραγματικά εδώ, αν ο καθένας θα like-- τώρα έναν ελέφαντα. Εντάξει,. αλλά τι Cheng έκανε επίσης για μας είναι ότι πολύ ευγενικά συσταθεί μια φωτογραφική μηχανή γιατί αυτό ελέφαντα, είτε το πιστεύετε είτε όχι, διαρκεί περίπου δύο και ένα μισή ώρα για να εκτυπώσετε. Ακόμη και η στάση iPhone πήρε μια ώρα και ένα μισό για να εκτυπώσετε. Και τι Cheng πήγε μπροστά και έκανε συστάθηκε μια ωραία κάμερα στο μπροστινό μέρος από αυτό το 3D εκτυπωτή, γυρίστηκε για μια ώρα και ένα μισό ως το σχεδιασμό Ansel τυπωμένο. Εμείς επικαλύπτονται κάποια σέξι μουσική σε αυτό προκειμένου για να σας δώσει αυτό για να δούμε πώς λειτουργεί 3D εκτύπωση. Και ακόμη και αν αυτό είναι στην πραγματικότητα σε πλαστικό, συνειδητοποιούν ότι, αν αυτό είναι μια περιοχή σας ενδιαφέρουν ακαδημαϊκά, υπάρχουν άνθρωποι, μεταξύ των τους Jennifer Lewis εδώ στη Σχολή Μηχανικών, οι οποίοι είναι στην πραγματικότητα εργάζονται για 3D εκτύπωση των πλαστικών αντικειμένων. Αλλά ακόμα, όλο και περισσότερο, βιολογικά υλικά να λύσει φυσιολογικά προβλήματα για τον άνθρωπο. Αλλά εδώ είναι ένα μικρό κάτι από το CS50. 

[LOUD μηχανικούς θορύβους] DAVID J. MALAN: Δεν ακούγεται κάτι τέτοιο στην πραγματικότητα, αλλά είναι πολύ δροσερό για να το δείτε σε αυτήν την ταχύτητα, και με αυτόν τον ήχο. 

Τώρα, την Τετάρτη, πώς δεν έχουμε πάρει πρώτα εδώ; Αρχίσαμε να μιλάμε για υπολογιστή επιστήμης και ρώτησε τι ήταν. Και πρόκειται για μια σειρά από πράγματα, και υπάρχουν τόσες πολλές διαφορετικές κατευθύνσεις στο οποίο μπορείτε να κατευθυνθείτε μετά από μια πορεία όπως CS50. Στην πραγματικότητα, εάν έχετε πάρει ένα από αυτές τις ανεπίσημες οδηγούς στο CS έξω, το φυλλάδιο ότι έχουμε παράσχει, εάν είστε σκέπτονται να πάρουν μόνο CS50, ή ίσως κάνει μια δευτερεύουσα, ή ίσως ακόμη και τη συγκέντρωση στο CS, δεν ξεφυλλίζουν αυτό. Και θα δείτε ένα διάγραμμα προς το τέλος ότι σας παρουσιάζει τις πολλές διαφορετικές κατευθύνσεις στο CS που μπορείτε να πάτε μακριά σε. 

Αλλά για σήμερα, θα επικεντρωθεί, και πάλι, για πραγματικά μία από τις θεμελιώδεις απόψεις, ίσως, όπου έχετε εισόδους σε προβλήματα, έχετε εξόδους από προβλήματα, και έχετε αλγόριθμοι με τους οποίους να δημιουργήσει αυτές οι έξοδοι από τις εισόδους. Και ένα τέτοιο παράδειγμα, ήταν Φυσικά, αυτό το τηλέφωνο το βιβλίο εδώ. Και εμείς που χρησιμοποιείται ως παράδειγμα για να πάει μέσω ενός αλγόριθμου που ήταν σωστή. Και στη συνέχεια, ένα άλλο ήταν σωστή, αλλά λίγο πιο γρήγορα. Και στη συνέχεια, ένα άλλο που ήταν λίγο πιο δραματική, αλλά ουσιαστικά γρηγορότερα. 

Δεξιά, αυτό μπορούμε τηλεφωνικό κατάλογο ισχυρίστηκε είχε περίπου 1.000 σελίδες. Και πόσες φορές έκανα να για να σχίσει το βιβλίο του τηλεφώνου κατά το ήμισυ να βρείτε κάποιον όπως ο Mike Smith, μέγιστα, σε 1.000 σελίδες του βιβλίου; Έτσι, 10 ή να δώσει. Και έτσι μόλις Έσχισα αυτό το πράγμα μισό, ή απλά, πιο ώριμα, χωρίζεται στη μέση, είναι μόνο 10 σελίδες από 1.000. Και αν προεκτείνουν, λίγο εξωπραγματικά για ένα τηλεφωνικό κατάλογο, αλλά αν αυτό το βιβλίο το τηλέφωνο είχε κάποια 4 δισεκατομμύρια σελίδες σε αυτό, έτσι εντελώς δυσκίνητο σωματικά, πόσες φορές δεν μπορείτε να διαιρέσετε ένα 4 δισεκατομμύρια σελίδα τηλεφώνου βιβλίο στη μέση; Έτσι, στην πραγματικότητα είναι 32, ή να δώσει. Και έτσι 32 φορές μόνο, από από 4 δισεκατομμύρια σελίδες, μπορεί να μπορείτε να βρείτε κάποιον σαν τον Mike Smith. Και αυτό είναι αποτελεσματικότητα. Αυτό είναι ένα καλό αλγόριθμο, daresay. 

Αλλά τότε θα μετακινηθεί από ότι να προσπαθήσει να το επισημοποιήσει. Και πρότεινα αυτόν τον κώδικα ψευδοκώδικα. Ψευδοκώδικας κώδικας δεν είναι τίποτα επίσημο. Δεν είναι κάτι που απομνημονεύει. Είναι απλά κάτι που σας εκφράζουν αρκετά διαισθητικά χρησιμοποιώντας αγγλικά, ή οποιαδήποτε γλώσσα πραγματικά, ότι μεταφέρει τις ιδέες σας λακωνικά. Αλλά τι είναι το κλειδί για την Κωδικός ψευδοκώδικα είναι ότι προσπαθήσετε να προβλέψετε όλα τα πιθανές περιπτώσεις που μπορεί να συμβεί. Και πράγματι, σε αυτήν την pseudocode κώδικα, υπήρχαν πραγματικά τρεις περιπτώσεις κάθε φορά που διαιρείται το βιβλίο του τηλεφώνου. Mike θα μπορούσε να είναι προς τα αριστερά. Mike μπορεί να είναι προς τα δεξιά. Ή θα μπορούσε να είναι ακριβώς στην σελίδα που είμαι. Ή μια τέταρτη υπόθεση γωνία, να το πω έτσι. Ένα κακό σενάριο θα μπορούσε να είναι ένα which-- τι συμβαίνει; Mike δεν είναι μόνο σε το τηλεφωνικό καθόλου. 

Και όταν τα προγράμματα crash-- όταν Mac και το λογισμικό PC που τρέχει ρε παιδιά στους υπολογιστές σας μερικές φορές κρέμεται ή κλείνει απροσδόκητα, Αυτό σημαίνει γενικά ότι μερικοί προγραμματιστής, κάποια ανθρώπινα όπως εσείς σύντομα, μόλις σκάτωσε και έκανε κάποιο λάθος. Ίσως δεν είχε προβλέψει ότι ίσως υπάρχει δεν είναι Mike Smith στον τηλεφωνικό κατάλογο. Και αν δεν γράψω πραγματικά κώδικα για να χειριστεί καταστάσεις όπως αυτή, γενικά απρόβλεπτος πράγματα μπορούν να συμβούν. Το μηχάνημά σας μπορεί να παγώσει. Μπορεί να επανεκκινήσει. Το πρόγραμμα μπορεί να σταματήσουν. Και έτσι όλα αυτά ανοησίες που μπορεί να έχουν συναντήσει σε πραγματικές σας η ζωή μόνο με τη χρήση ηλεκτρονικών υπολογιστών, όλο και περισσότερο θα είναι μόνο εξήγησε μακριά από αυτή τη διαίσθηση και αυτή η κατανόηση του τι είναι πραγματικά συμβαίνει κάτω από το καπό. 

Τώρα ας προσπαθήσουμε να ρίξουμε μια ματιά σε ένα πιο γενικό πρόβλημα. Αντί να λάβει συμμετοχή σε ένα μέρος όπως αυτό, η οποία θα είναι αρκετά αργή να κάνουμε ένα, δύο, τρία, τέσσερα. Ή ίσως και δύο, τέσσερα, έξι, οχτώ. Ας εστιάσουμε, αντ 'αυτού, για πώς μπορούμε να επισημοποιήσει ο αλγόριθμος της διαδικασίας με την η οποία θα μπορούσε να λάβει συμμετοχή. Και στην πορεία, ας ξεκινήσουμε να εφαρμόσει κάποια ονοματολογία ότι θα χρησιμοποιούμε σήμερα, όταν στην πραγματικότητα ξεκινήσετε τον προγραμματισμό σε γλώσσα. Έτσι, μπορώ να σας δώσω τώρα, ένα βίντεο τεσσάρων λεπτών ότι βάζουμε μαζί με τους φίλους μας από το TED, την οργάνωση. Όπου έχουμε προμηθεύσει ένα σενάριο και έφεραν εμψυχωτές τους να φέρουν, και στην πραγματικότητα δημιούργησε ένα 2D animation από ό, τι ένας αλγόριθμος είναι. Αν μπορούσαμε να χαμηλώστε τα φώτα. 

[ΜΟΥΣΙΚΗ ΠΑΙΖΟΝΤΑΣ] NARRATOR: Τι είναι ένας αλγόριθμος; Στην επιστήμη των υπολογιστών, ένας αλγόριθμος είναι ένα σύνολο των οδηγιών επίλυση μερικοί βήμα-βήμα πρόβλημα. Τυπικά, οι αλγόριθμοι είναι εκτελούνται από τους υπολογιστές, αλλά εμείς οι άνθρωποι έχουμε αλγόριθμους, καθώς και. Για παράδειγμα, πώς θα πηγαίνετε για την καταμέτρηση ο αριθμός των ατόμων σε ένα δωμάτιο; Λοιπόν, αν είστε σαν εμένα, θα ήθελα ίσως σημείο σε κάθε άτομο, ένα κάθε φορά και μετράνε προς τα πάνω από το μηδέν. Ένα, δύο, τρία, τέσσερα, και ούτω καθεξής. Λοιπόν, αυτό είναι ένας αλγόριθμος. Στην πραγματικότητα, ας προσπαθήσουμε να το εκφράσουν λίγο πιο επίσημα στον κώδικα ψευδοκώδικα. Αγγλικά-όπως η σύνταξη που μοιάζει με μια γλώσσα προγραμματισμού. 

Έστω n ίσα 0. Για κάθε άτομο στο δωμάτιο, οριστεί n ισούται με n συν 1. Πώς να ερμηνεύσει τον ψευδοκώδικα; Λοιπόν μία γραμμή δηλώνει, να το πω έτσι, μια μεταβλητή που ονομάζεται n και αρχικοποιεί την αξία του σε 0 Αυτό ακριβώς σημαίνει ότι κατά τη αρχίζοντας του αλγορίθμου μας, το πράγμα με το οποίο είμαστε καταμέτρηση έχει τιμή από 0. Μετά από όλα, πριν αρχίσουμε να μετράμε δεν έχουν υπολογιστεί ακόμη τίποτα. Καλώντας αυτήν τη μεταβλητή n είναι απλά μια σύμβαση. Θα μπορούσε να λέγεται ότι οι περισσότεροι τίποτα. Τώρα γραμμή δύο demarks η αρχή ενός βρόχου, μια σειρά από βήματα που θα επαναλάβετε κάποιο αριθμό φορών. Έτσι, στο παράδειγμα μας, το βήμα είμαστε ανάληψη μετράει άτομα σε ένα δωμάτιο. Κάτω γραμμή δύο είναι γραμμή τρεις που περιγράφει ακριβώς πώς θα πάει για καταμέτρηση. Η οδόντωση συνεπάγεται ότι Είναι γραμμή τρία που θα επαναληφθεί. Έτσι, με το κωδικό ψευδοκώδικα είναι ρητό είναι ότι μετά την έναρξη σε 0 για κάθε άτομο στο δωμάτιο θα αυξήσει n από 1 Τώρα είναι σωστός αυτός ο αλγόριθμος; Λοιπόν ας κτύπημα σε αυτό το κομμάτι. 

Μήπως αυτό το έργο, αν υπάρχουν δύο άτομα στο δωμάτιο; Ας δούμε. Σε μία γραμμή έχουμε προετοιμαστεί n 0. Για καθένα από αυτά τα δύο άτομα, τότε να αυξήσετε n από 1. Έτσι, στο πρώτο του ταξίδι μέσα από το βρόχο, ενημερώνουμε n 0-1. Στο δεύτερο ταξίδι μέσω αυτού ίδιο βρόχο, ενημερώνουμε n 1 έως 2. Και έτσι, με αυτό αλγορίθμου τέλος, η είναι 2, το οποίο αντιστοιχεί πράγματι τον αριθμό των ανθρώπων στο δωμάτιο. Μέχρι στιγμής, όλα καλά. 

Τι θα λέγατε για μια υπόθεση γωνία όμως; Ας υποθέσουμε ότι υπάρχουν 0 άτομα στην room-- εκτός από εμένα, ο οποίος είναι κάνει καταμέτρηση. Σε μία γραμμή, έχουμε προετοιμαστεί και πάλι n 0. Αυτή τη φορά όμως, η γραμμή τρεις δεν εκτελεί καθόλου δεδομένου ότι δεν υπάρχει ένα άτομο στο δωμάτιο. Και έτσι n παραμένει 0, το οποίο μάλιστα ταιριάζει ο αριθμός των ατόμων στο δωμάτιο. Αρκετά απλό, σωστά; Αλλά μετρώντας τους ανθρώπους, ένα κάθε φορά είναι αρκετά αναποτελεσματική, πάρα πολύ, έτσι δεν είναι; Σίγουρα μπορούμε να κάνουμε κάτι καλύτερο. Γιατί δεν μετράνε δύο άτομα σε ένα χρόνο, αντί της καταμέτρησης ένα, δύο, τρία, τέσσερα, πέντε, έξι, επτά, οκτώ, και ούτω καθεξής. Γιατί δεν μετράνε δύο, τέσσερις, έξι, οκτώ, και ούτω καθεξής; Ακούγεται ακόμα πιο γρήγορα. Και αυτό σίγουρα είναι. 

Ας εκφράσουμε αυτήν την βελτιστοποίηση στον κώδικα ψευδοκώδικα. Έστω n ίσα 0. Για κάθε ζεύγος των ατόμων σε δωμάτιο, που n ισούται με n συν 2. Αρκετά απλή αλλαγή, σωστά; Αντί να μετρούν τους ανθρώπους, ένα κάθε φορά, μετράμε αντί για τους δύο σε έναν χρόνο. Ο αλγόριθμος αυτός, και έτσι, διπλάσια ταχύτητα από το τελευταίο. Αλλά είναι αυτό σωστό; Ας δούμε. Μήπως αυτό το έργο, αν υπάρχουν δύο άτομα στο δωμάτιο; Σε μία γραμμή, έχουμε προετοιμαστεί n 0. Για εκείνο το ένα ζεύγος των ανθρώπων, τότε να αυξήσετε n από 2. Και έτσι με αυτό αλγορίθμου τέλος n είναι 2, το οποίο αντιστοιχεί πράγματι τον αριθμό των ανθρώπων στο δωμάτιο. 

Ας υποθέσουμε ότι το επόμενο ότι υπάρχουν μηδέν άτομα σε ένα δωμάτιο. Σε μία γραμμή έχουμε προετοιμαστεί n 0. Όπως και πριν, η γραμμή τρία δεν είναι όλα εκτελέσει δεδομένου ότι δεν υπάρχουν ζεύγη ατόμων στην αίθουσα, και έτσι n παραμένει 0. Ποια πράγματι ταιριάζει με το αριθμό των ατόμων στο δωμάτιο. Αλλά τι γίνεται αν υπάρχουν τρία άτομα στο δωμάτιο; Πώς το κάνει αυτό ο αλγόριθμος των ναύλων; Ας δούμε, σε μία γραμμή, έχουμε προετοιμαστεί n 0. Για ένα ζεύγος αυτών των ανθρώπων, τότε να αυξήσετε n από 2. Αλλά τότε τι; Δεν υπάρχει άλλο ένα πλήρες ζεύγος των ανθρώπων στο δωμάτιο, έτσι γραμμή δύο δεν ισχύει πλέον. Και έτσι από το τέλος αυτού του αλγορίθμου, το η είναι 2 η οποία ακόμη δεν είναι σωστή. Πράγματι, ο αλγόριθμος αυτός του είπε να να είναι προβληματικός, διότι έχει ένα λάθος. 

Ας προσφυγής με κάποια νέο κωδικό ψευδοκώδικα. Έστω n ίσα 0. Για κάθε ζεύγος των ατόμων σε δωμάτιο, που Ν ίσο με n συν 2. Αν ένα άτομο παραμένει αταίριαστο, οριστεί Ν ισούται με n συν 1. Για να λύσει αυτό το συγκεκριμένο πρόβλημα, έχουμε εισήχθη στην γραμμή τέσσερις προϋπόθεση, αλλιώς γνωστή ως ένα υποκατάστημα, ότι μόνο εκτελεί αν υπάρχει ένα άτομο που δεν μπορούσε να συζευχθεί με ένα άλλο. Και τώρα, αν υπάρχει ένα, ή τρεις, ή οποιοδήποτε περιττό αριθμό ατόμων στο δωμάτιο, Ο αλγόριθμος αυτός θα μετρήσει τους τώρα. Μπορούμε να το κάνουμε ακόμα καλύτερο; Λοιπόν, θα μπορούσαμε να μετράνε σε τριάδες, ή τεσσάρια, πεντάρια ή ακόμα και δεκάδες, αλλά πέρα ​​από αυτό, πρόκειται να πάρει λίγο δύσκολο να το σημείο. 

Στο τέλος της ημέρας, αν εκτελούνται από τους υπολογιστές ή τους ανθρώπους, αλγόριθμοι είναι απλά ένα σύνολο οδηγιών με την οποία για την επίλυση προβλημάτων. Αυτά ήταν μόνο τρεις. Τι πρόβλημα θα σας λύσει με έναν αλγόριθμο; 

DAVID J. MALAN: Έτσι σκόπιμα, ένα πολύ απλό πρόγραμμα, ένας πολύ απλός αλγόριθμος, για την επίτευξη κάτι πολύ απλό, μετρώντας το αριθμό των ατόμων στο δωμάτιο. 

Αλλά ας δώσουμε έμφαση, εκτός μερικά από τα αντιπροσωπευτικά Διαθέτει εδώ που είναι πραγματικά πρόκειται να είναι χρήσιμη ακόμη και όταν για την εφαρμογή της πιο συγκρότημα του λογισμικού. Έτσι, για παράδειγμα, σε αυτή την πρώτη γραμμή, έχουμε αυτό που ονομάζουμε τη μεταβλητή, και από την άλγεβρα, είστε γενικά εξοικειωμένοι με τη χρήση x και y και ζ μερικές φορές, και ούτω καθεξής. Αλλά στον προγραμματισμό, οι μεταβλητές είναι ακόμα, στο τέλος της ημέρας, πολύ παρόμοια με εκείνη. Αλλά είναι ίσως απλούστερο να σκεφτούμε μιας μεταβλητής, όπως ακριβώς ένα δοχείο. Και, στην πραγματικότητα, είναι κάποιο αριθμό από bits υλοποιηθεί με κάποιο τρόπο στο σκληρό σας δίσκο ή στη μνήμη του υπολογιστή σας, αλλά περισσότερο για αυτό στο μέλλον. Είναι απλά ένα δοχείο. Και αν σας πω κάτι όπως ας n ίσα 0, καλά ότι είναι σαν να καλείτε το ποτήρι μπολ εδώ n, μόνο ένα αυθαίρετο όνομα, και βάζοντας τίποτα σε αυτό αρχικά. Έτσι, η αξία αυτή μπολ τώρα είναι μηδέν. Και φυσικά, αν αντιλαμβάνονται σε μια επόμενη γραμμή, να αυξήσετε πραγματικά κάποια γραμμή κωδικός, όπως σε αυτή την τρίτη γραμμή εδώ, από 1, αυτό είναι σαν να λέμε ποια είναι η τρέχουσα τιμή του η, είναι μηδέν, συν 1, βάλει κάτι σαν ένα πινγκ πονγκ μπάλα εδώ. Τώρα η αξία αυτή μεταβλητή είναι πολύ απλά 1. Και θα μπορούσε πολύ γρήγορα προεκτείνουν, αλλά τώρα είναι 2, τώρα είναι 3, και ούτω καθεξής. Έτσι ώστε να είναι όλα μια μεταβλητή είναι. Είναι ένα κομμάτι της αποθήκευσης πραγματικά αποθηκεύσετε κάποια δεδομένα. Προς το παρόν αυτό είναι ένα μπαλάκι του πινγκ-πονγκ. Εκεί είναι ένας αριθμός. Αλλά θα μπορούσε να είναι λέξεις σε ένα λεξικό, όπως η ορθογράφο Αναφέρθηκα την Τετάρτη για ένα από το περσινό πρόβλημα σύνολα. 

Τώρα, μια άλλη βασική ιδέα, ότι ομοίως είναι αρκετά διαισθητικό θα διεκδικήσει, είναι ότι από ένα βρόχο. Και ο βρόχος στη διαδικασία μέτρησης όλους είναι, φυσικά, κάνει το ίδιο πράγμα ξανά και again-- είτε ένα σε μια στιγμή ή δύο κάθε φορά. Και μπορείτε να το εκφράσει στα αγγλικά, ή κωδικός ψευδοκώδικα, σε οποιοδήποτε αριθμό τρόπων, αλλά με τη χρήση αυτής της πρόθεση "για" Είναι ένας πολύ συνηθισμένος τρόπος για να γίνει αυτό. Για κάθε άτομο στο δωμάτιο, να το κάνετε αυτό. Ξανά και ξανά. Και το γεγονός ότι είναι δαντελωτές, γραμμή τρία, απλά σημαίνει ότι ό, τι είστε υποτίθεται για να κάνει Είναι η ουσία που είναι χαραγμένο κάτω από τη γραμμή δύο το ίδιο. Απλά μια ανθρώπινη σύμβαση, αλλά ένας κοινός όπως θα δούμε στην πραγματική υψηλότερη γλώσσες προγραμματισμού επίπεδο. 

Τώρα λίγο πιο ενδιαφέρουσα είναι όταν φτάσετε σε μια υπόθεση γωνία. Για παράδειγμα, μια γωνιά περίπτωση ήταν όταν υπάρχει ήταν τρία άτομα, ή πέντε, ή επτά, ή οποιοδήποτε περιττό αριθμό ατόμων στο δωμάτιο, γιατί το κάνουμε αυτό από δυάρια φρένα τελικά, γιατί θα σας να χάσει κάποιος, είτε κατά τη αρχή ή το τέλος ανάλογα με το πώς το κάνεις. Και έτσι, τώρα, έχω αυτό το υποκατάστημα, ή κατάσταση, αν ένα άτομο παραμένει, στη συνέχεια, να προχωρήσει και να χειριστεί αυτό το ένα μοναχικός πρόσωπο που δεν είχε πάρει σε συνδυασμό με κάποιον άλλο. Έτσι, αυτό είναι αυτό που θα ονομάζαμε μια κατάσταση, ή ένα υποκατάστημα. 

Τώρα pseudocode κώδικα γενικότερα μπορεί να είναι γραμμένο για να λύσει οποιοδήποτε αριθμό των προβλημάτων. Και ό, τι νόμιζα ότι είχαμε κάνουμε εδώ είναι να λάβει μια στιγμή να καλέσει ας πούμε CS50 του κατέχουν Rob Bowden στη σκηνή να συνοδεύεται από δύο εθελοντές, οι οποίοι δεν έχουν καμία ιδέα για το τι περιμένει. Ένα χέρι κατέβηκε μόλις είπα αυτό. Εσύ τι λες για το τελειώνει εδώ, έλα επάνω. Και πώς περίπου από μακρύτερα μακριά, πώς για τον τρόπο στο πίσω μέρος. Πίσω σειρά, έλα με τα χέρια σας επάνω. Εντάξει, και τι είναι το όνομά σας; 

ANITA: Anita. 

DAVID J. MALAN: Anita. Εντάξει, ωραίο να σας γνωρίσουμε. Επιτρέψτε μου να σας παρουσιάσουμε Rob Bowden. Αυτή είναι η Anita. Και ποιο είναι το όνομά σας; 

Kiersten: Kiersten 

DAVID J. MALAN: Kiersten. Kiersten, έλα και πληρούν Rob Bowden και Anita. Χαίρω πολύ. Kiersten: Χαίρω πολύ. DAVID J. MALAN: Εντάξει, Rob. ROB BOWDEN: Χαίρω πολύ. DAVID J. MALAN: Anita. Kiersten: Hi Anita. DAVID J. MALAN: Και σας αρκετές εκατοντάδες συμμαθητές. Έτσι, τώρα επιτρέψτε μου να πάει μπροστά και τραβήξτε up μόνο ένα απλό πρόγραμμα εδώ για Mac OS που θα επιτρέψτε μου να πραγματικά σημειώνω μερικές σημειώσεις κάτω. Και αν εσείς θέλετε να λάβει κάθε ένα θέση σε ένα από αυτά τα σχολεία εκεί, επιτρέψτε μου να πάει μπροστά και ξεκινάει μια λίστα του ψευδοκώδικα κώδικα, αν θέλετε. Και αυτό που θέλω να κάνω εδώ, τελικά είναι είδος για σας μερικές οδηγίες ότι μας μέλη του ακροατηρίου είναι στην πραγματικότητα πρόκειται να απαγγείλει για εμάς. Επιτρέψτε μου να προχωρήσει και απλά αλλάξετε αυτό σε μια αριθμημένη λίστα για να ταιριάζει με ό, τι κάναμε μέχρι εκεί. Και τι Πάω να κάνουμε με βοήθειά σας, είναι να γράψετε ένα πρόγραμμα σε ψευδοκώδικα, με την οποία αυτοί οι τύποι πρόκειται να εφαρμόσει ένα φυστίκι βούτυρο και μαρμελάδα. Έτσι είναι ίσως επίκαιρο να δείχνουν κάτι κάποιοι από εσάς Ίσως έχετε δει στο διαδίκτυο μόνο για μια σύντομη ενοχλητικό στιγμή. 

[ΜΟΥΣΙΚΗ BUCKEWHEAT BOYS, "Φυστικοβούτυρο  JELLY TIME "] DAVID J. MALAN: OK. Αυτό είναι αρκετό από αυτό. Έτσι, εδώ Εν τω μεταξύ, έχω μια ζεύγος των Google Glasses που θα θέσει σε CS50 δική Rob Bowden για να δείτε τον κόσμο μέσα από τα μάτια του. Και εμείς θα κάνουμε το καλύτερο μας σε μήνυμα παραγωγή να υφάνει πραγματικότητα το βίντεο του τι Rob βλέπει τώρα, σε αυτή την πραγματική διάλεξη βίντεο με δύο μας εθελοντές δίπλα του. Λοιπόν, τι Πάω να κάνουμε είναι, θα είμαι ο δακτυλογράφος. Έχουμε τον στόχο εδώ από στην πραγματικότητα γράφοντας ένα πρόγραμμα με το οποίο να κάνει, τελικά, μια φυστικοβούτυρο και μαρμελάδα, αλλά αυτά τα τρία πρόκειται να συμπεριφέρονται σαν να είναι υπολογιστές. Και οι υπολογιστές, στο τέλος της ημέρας, είναι στην πραγματικότητα αρκετά χαζός συσκευές. Είναι σούπερ γρήγορο, αλλά μπορούν μόνο κάνει, κυριολεκτικά, ό, τι τους λένε. Δεν μπορούμε απλά να λέμε κάνουν ένα φυστίκι βούτυρο και μαρμελάδα. Θα πρέπει να τις προγραμματίσετε να το κάνουμε αυτό. Θα πρέπει να τους πω με ακρίβεια τι πρέπει να κάνουμε, λιγότερα πράγματα πάνε άσχημα και, ελπίζουμε, διασκεδαστικά στραβά. 

Έτσι, με ότι είπε, χρειαζόμαστε μία κλήση-έξω από το ακροατήριο για το τι θα πρέπει να εντείνει ένα είναι, αν ο στόχος εδώ είναι να κάνει ένα φυστίκι βούτυρο και μαρμελάδα. Ναι; 

ΚΟΙΝΟ: [δεν ακούγεται] η τσάντα του ψωμιού. DAVID J. MALAN: Ανοίξτε την τσάντα του ψωμιού. Έτσι, αν οι τρεις διαγωνιζόμενοι θα ήθελε να προχωρήσει να κάνει ότι κυριολεκτικά. Ανοίξτε την τσάντα του ψωμιού. 

[Γέλια στο ακροατήριο] DAVID J. MALAN: Ας εργαστούμε για αυτό. Εντάξει. Έτσι βήμα δύο, how-- ας ρίξουμε αυτό περαιτέρω. Ναι, στο μπροστινό μέρος. 

ΚΟΙΝΟ: [δεν ακούγεται] το ψωμί. 

DAVID J. MALAN: Τι είναι αυτό; 

ΚΟΙΝΟ: Αφαιρέστε το ψωμί. DAVID J. MALAN: Αφαιρέστε το ψωμί. Ομοίως σύντομη. Σας ευχαριστώ. 

[Χειροκρότημα] DAVID J. MALAN: Αυτό είναι; Εντάξει, έτσι το βήμα δύο θα για να αφαιρέσετε το ψωμί. Εντάξει, κάποιος θέλει να γράψτε μας μια μεγαλύτερη ποινή; Κάποιος άλλος; Λίγο περισσότερα [δεν ακούγεται]. Όχι, τίποτα τώρα. Ναι; 

ΚΟΙΝΟ: Τοποθετήστε δύο φέτες δίπλα στο άλλο. 

DAVID J. MALAN: Τοποθετήστε δύο φέτες δίπλα στο άλλο. 

[Γέλια στο ακροατήριο] 

DAVID J. MALAN: Τοποθετήστε δύο φέτες δίπλα στο άλλο. Βήμα τέσσερα. Ναι; 

ΚΟΙΝΟ: Πάρτε σας το χέρι και που ελαφρά τη καρδία στην κορυφή του καπακιού φυστικοβούτυρο. 

[Γέλια στο ακροατήριο] ΚΟΙΝΟ: [δεν ακούγεται] δίπλα στο φυστικοβούτυρο. DAVID J. MALAN: Τι; Ας πούμε ότι και πάλι. 

ΚΟΙΝΟ: Ξεβιδώστε το καπάκι και βάλτε απαλά δίπλα στο φυστικοβούτυρο. 

DAVID J. MALAN: Βάλτε απαλά δίπλα στο φυστικοβούτυρο. OK, η πρόοδος. Βήμα πέντε. Εξαιρετική. Ναι; 

Σήκωσε το μαχαίρι. DAVID J. MALAN: Σήκωσε το μαχαίρι. OK, βήμα έξι. Ναι; 

ΚΟΙΝΟ: Κρατήστε το μαχαίρι από τη λαβή. DAVID J. MALAN: Κρατήστε μαχαίρι από τη λαβή. Κρατήστε το μαχαίρι από τη λαβή. Βήμα επτά. Ναι; 

ΚΟΙΝΟ: [δεν ακούγεται] μαχαίρι στο φυστίκι το βούτυρο και το λίγο έξω [δεν ακούγεται]. 

DAVID J. MALAN: Βάλτε μαχαίρι in-- I ακούσει "βάλει το μαχαίρι στο φυστικοβούτυρο και λαμβάνει ως λίγο έξω όσο το δυνατόν. " Με τον τρόπο αυτό, αφαιρέστε το χαρτί πρώτα. Εντάξει, βήμα εννέα. Βήμα εννέα. Βήμα εννέα. Δεν έχουμε πραγματικά ένα σάντουιτς ακόμα. Ναι; ΚΟΙΝΟ: Χρησιμοποιώντας το μαχαίρι στο φυστικοβούτυρο, ισχύουν φυστικοβούτυρο σε ψωμί, δήλωσε. 

DAVID J. MALAN: Χρησιμοποιώντας το μαχαίρι στο φυστικοβούτυρο, ισχύουν φυστικοβούτυρο είπε ψωμί. 

[Γέλια στο ακροατήριο] DAVID J. MALAN: Εντάξει βήμα 10. Βήμα 10. Ναι; 

ΚΟΙΝΟ: Γεύση φυστίκι βούτυρο για τη διασφάλιση της ποιότητας. 

[Γέλια στο ακροατήριο] DAVID J. MALAN: Βήμα 11. Βήμα 11. Βήμα 11. Έλα. Ναι; Ακριβώς εκεί. 

ΚΟΙΝΟ: Προσεκτικά σηκώστε ζελέ. 

DAVID J. MALAN: Προσεκτικά σηκώστε ζελέ. OK, και στη συνέχεια ένα άλλο χέρι ήταν. Ακριβώς πίσω σας. Ναι, σε μπλε χρώμα. 

ΚΟΙΝΟ: Εντάξει, αφαιρέστε καπάκι από [δεν ακούγεται], ναι, αφαιρέστε το καπάκι από το ζελέ. 

[Γέλια στο ακροατήριο] 

DAVID J. MALAN: Από ζελέ. Χα χα. 

[Γέλια στο ακροατήριο] DAVID J. MALAN: Και; ΚΟΙΝΟ: Και μόλις σαρώνουν κάθε [δεν ακούγεται]. [Γέλια στο ακροατήριο] ΚΟΙΝΟ: Φυσικά, πριν από [δεν ακούγεται], αφαιρέστε το χαρτί από το ζελέ. DAVID J. MALAN: Αφαιρέστε το χαρτί από το ζελέ. Βήμα 14. Είμαστε σχεδόν εκεί. Ναι; 

ΚΟΙΝΟ: Αντιστροφή μπουκάλι ζελέ πριν από ό, τι πέφτει έξω. 

DAVID J. MALAN: Αντιστροφή ζελέ μπουκάλι πριν ζελέ πέφτει έξω. Βήμα 15. 

ΚΟΙΝΟ: Αντικαταστήστε το καπάκι. 

DAVID J. MALAN: Αντικαταστήστε το καπάκι. Βήμα 16. Ναι; 

ΚΟΙΝΟ: [δεν ακούγεται] DAVID J. MALAN: Ας πούμε ότι και πάλι. ΚΟΙΝΟ: Πάρτε το καπάκι του ζελέ σας. DAVID J. MALAN: Off ζελέ σας. Έτσι really-- Ωχ. Έλα. Αντικαταστήστε το καπάκι. Βάλτε cap-- Είπατε αφαιρέστε το καπάκι από το ζελέ. Νιώστε σαν να είστε σε ένα κομμάτι από ένα βρόχο. Βήμα 17. Ναι; 

ΚΟΙΝΟ: [δεν ακούγεται] DAVID J. MALAN: Ας πούμε ότι και πάλι. ΚΟΙΝΟ: [δεν ακούγεται] DAVID J. MALAN: Πηγαίνετε πίσω στο step-- ΚΟΙΝΟ: [δεν ακούγεται] DAVID J. MALAN: Κατάργηση καπάκι από φυστικοβούτυρο. Ναι; 

ΚΟΙΝΟ: Πέτα όλα τα ζελέ για το ψωμί. 

DAVID J. MALAN: Πέτα όλα το ζελέ στο ψωμί. DAVID J. MALAN: Είμαστε σχεδόν εκεί. Βήμα 19. 

ΚΟΙΝΟ: Αφαιρέστε την περίσσεια ζελέ. 

DAVID J. MALAN: Haha, ζελέ. 

[Χειροκρότημα] DAVID J. MALAN: Γιατί δεν we-- ένα ακόμη βήμα για να πάρει αυτό το σπίτι. Ένα ακόμα βήμα και, στη συνέχεια, θα εξυπηρετούν σάντουιτς. Ναι; 

ΚΟΙΝΟ: [δεν ακούγεται] 

DAVID J. MALAN: Αν και κάθε σάντουιτς περίπτωση remains-- ας αυτό-- φάει. 

[Γέλια] 

DAVID J. MALAN: Εντάξει, ευχαριστώ μπορείτε να τους εθελοντές μας εδώ. 

[Χειροκρότημα} 

DAVID J. MALAN: Έχουμε μερικά ωραία χωρίστρα δώρα για τον καθένα από εσάς. Το δικό σας φυστικοβούτυρο, ζελέ, και το ψωμί για να φέρει πίσω στο σπίτι. Σας ευχαριστώ. 

Kiersten: Σας ευχαριστώ. DAVID J. MALAN: [δεν ακούγεται] καλωσορίζουμε. [Χειροκρότημα] DAVID J. MALAN: Λοιπόν, αυτό είναι, Φυσικά, ένα γελοίο παράδειγμα. Σωστά; Αλλά δεν το είδος του αποκαλύπτουν πώς μπορούμε οι άνθρωποι απλά να πάρουν σαφήνεια δεδομένο. Και το γεγονός έχω πάει μιλάμε για έναν άλλο άνθρωπο, αυτός ή αυτή απλά δεν ξέρει τι σημαίνει. 

Οι υπολογιστές δεν πρόκειται για να ξέρετε τι σημαίνει, ακόμη και κατά τη χρήση, καθώς είμαστε έτοιμοι να κάνουμε σήμερα, προγραμματισμού κάτι το Scratch, μια έλξη και την πτώση, τη γλώσσα παζλ στυλ κομμάτι. Ακόμα σχεδιασμένο για νέους παιδιά, έχετε να είναι τόσο σαφή και τόσο κυριολεκτική με ό, τι θέλετε το πρόγραμμά σας να κάνετε. Τώρα, τελικά, είμαστε πρόκειται να είναι προγραμματισμό όχι στον κώδικα ψευδοκώδικα, Αγγλικά σαν σύνταξη, αλλά ο κώδικας ή, πιο σωστά, τον πηγαίο κώδικα. Ο πηγαίος κώδικας είναι απλά το φανταχτερό τρόπο για την περιγραφή σου κωδικό στην πραγματικότητα Αποστολή με ένα πληκτρολόγιο που είναι όχι στα αγγλικά per se. Είναι σε C ή Java ή C ++ ή κάτι όπως ότι, όπως θα δούμε σύντομα. 

Και στην πραγματικότητα, απλά για να τρομάξει ένα λίγοι από εσάς, με την πρώτη ματιά, Αυτό είναι ένα πρόγραμμα γραμμένο σε μια γλώσσα ονομάζεται C. Αλλά για να μη τρομάξει μερικοί από εσάς, θα είστε εντελώς καταλάβουμε τι συμβαίνει στις έρθουν την ερχόμενη Δευτέρα, όταν πρόκειται για κάτι τέτοιο. Ειλικρινά, αυτό είναι μια παλαιότερη γλώσσα. Είναι αρκετά απόκρυφες, αλλά είναι αντιπροσωπευτικό από πολλές γλώσσες αυτές τις μέρες ότι έχουν πολλές παρενθέσεις και σγουρά τιράντες και εισαγωγικά και ερωτηματικά. Και πολλά από αυτά συντακτική πράγματα που δεν είναι σε όλα τα πνευματικά ενδιαφέροντα. Πράγματι, πρόκειται για μια απόλυτη απόσπαση της προσοχής από τις πολύ απλές ιδέες που μας κοιτάζει επίμονα στο πρόσωπο. Το πρόγραμμα αυτό, όπως μπορείτε να μαντέψετε απλά, εκτυπώνει στην οθόνη του υπολογιστή κάποιου οι λέξεις "Hello κόμμα κόσμο." Αυτό είναι. Έτσι, προφανώς, δεν υπάρχει πολλά πράγματα που είναι να πάρει με τον τρόπο του κάποια κατάφωρο εκεί, αλλά πρόκειται να γλιστρήσει πολύ γρήγορα μακριά και είναι εντελώς διαισθητικά. 

Πράγματι, ό, τι θα πάμε να κάνουμε σήμερα απόσταξη αυτό αρκετά περίπλοκο κοιτάζοντας το πρόγραμμα, η οποία και πάλι θα έρθει να καταλάβουν γρήγορα, αλλά σε κάτι πολύ απλούστερη. Ας πούμε τι εννοούμε. Ας συντάξει μια εικόνα του τι εννοούμε, μέσω αυτών των κομματιών του παζλ εδώ. 

Έτσι, αυτό είναι ένας προγραμματισμός γλώσσας, γνωστό ως Scratch. Αναπτύχθηκε από το Media Lab του ΜΙΤ. Και αυτό που θα δείτε στο πρόβλημα που το μηδέν, το οποίο θα κυκλοφορήσει αργότερα απόψε, θα πρέπει να πάτε σε αυτό URL εδώ scratch.mit.edu. Και έχουν ένα web based interface μέσω του οποίου θα γράψει το πρώτο πρόγραμμα σας. Ή όσοι από εσάς με την προηγούμενη εμπειρία, δεύτερο προγραμμάτων σας, αλλά σε ένα περιβάλλον που είναι ίσως λίγο εξοικειωμένοι και ότι θα σας ωθήσει να δημιουργήσετε κάτι χρησιμοποιώντας αυτό το πολύ οπτικό περιβάλλον. 

Τώρα, τι Πάω να κάνουμε εδώ είναι να ανοίξει το ίδιο το πρόγραμμα. Υπάρχει όχι μόνο ως ένα πρόγραμμα περιήγησης στο web, αλλά και ως ένα downloadable πρόγραμμα έτσι ώστε να μπορείτε να το χρησιμοποιήσετε στην πραγματικότητα εάν δεν έχετε πρόσβαση στο διαδίκτυο. Και Πάω να το κάνουμε αυτό εδώ, σε Sanders, μόνο σε περίπτωση που δεν το Wi-Fi συνεργάζονται σούπερ καλά. Και τι Πάω να κάνουμε είναι το σημείο από μερικά χαρακτηριστικά αυτού του προγράμματος. Έτσι, για να είναι σαφής, έχω απλά κάντε διπλό κλικ στο εικονίδιο στην επιφάνεια εργασίας μου, ή ισοδύναμα πάει να scratch.mit.edu, και αυτό είναι που τράβηξε μέχρι αυτό το παράθυρο. Αυτό είναι ένα περιβάλλον προγραμματισμού. Είναι ένα κομμάτι του λογισμικού που ορισμένοι από τους φίλους μας στο MIT έγραψε ότι ας μας και να γράψετε προγράμματα σε μια γλώσσα που ονομάζεται Scratch. 

Τώρα αυτό που συμβαίνει να είναι ένα γάτα που είναι επίσης ονομάζεται Scratch και αυτός είναι ο κόσμος του, στην οποία ζει. Αυτή είναι η φάση, να το πω έτσι, ότι ορθογώνιο στην επάνω αριστερή γωνία. Και δεν πρέπει να μοιάζουν με μια γάτα. Μπορείτε να τον κάνει να δούμε όπως και οτιδήποτε και να σας μπορεί να έχει πολλά τέτοια ξωτικά, ή χαρακτήρες, σε ένα πρόγραμμα. Εν τω μεταξύ, εδώ στη μακρινή Εντάξει, είναι ένα μεγάλο μηδέν. Και αυτό είναι όπου, σε μια στιγμή, πρόκειται να ξεκινήσει τον προγραμματισμό με μεταφορά και απόθεση αυτά τα γραφικά παζλ κομμάτια που είναι σωστό εδώ στη μέση. Και δεν υπάρχει τρόπος περισσότερο από αυτούς από ό, τι θα περνούν το χρόνο τους εδώ στην τάξη γιατί θα διαπιστώσετε ότι γιατί όλα αυτά είναι αρκετά έξυπνο. Και πάλι, αυτό είναι σχεδιασμένο για τα παιδιά, αλλά εμείς χρησιμοποιήστε το για να δώσουμε έμφαση, εκτός μερικά από αυτά θεμελιώδεις ιδέες των μεταβλητών, βρόχους, συνθήκες, και, σύντομα, τα πράγματα όπως λειτουργίες και εκδηλώσεις και κλωστές και άλλα φανταχτερά πράγματα που θα φτάσετε στο πριν από καιρό για να δημιουργήσετε πραγματικά κάτι από την αρχή. Λογοπαίγνιο. 

Τώρα, τι Πάω να κάνουμε εδώ είναι κάντε κλικ για να μην κίνηση, αλλά ο έλεγχος. Και αυτό είναι μόνο ένα κατηγοριοποίηση των here-- και βλέπω μια διαφορετική χρώμα που του μπλοκ. Αλλά παρατηρήσετε μερικές βασικές λέξεις. "Εάν" και "αλλιώς αν" και "επανάληψη". Και μπορείτε να μαντέψετε ότι είναι θυμίζει το υποκατάστημα, ή οι όροι που είδαμε, και ακόμη και η δομή επανάληψης. Έτσι έχουμε παρόμοια μπλοκ εδώ. Αλλά το πιο ενδιαφέρον ένα είναι αυτό εδώ. Όταν αυτή η πράσινη σημαία πατηθεί, Αυτό, για εκείνους με την προηγούμενη προγραμματισμός εμπειρία, είναι ισοδύναμο σε μια κύρια λειτουργία. Αλλά για όσους δεν είναι εξοικειωμένοι, Αυτό είναι το κομμάτι του παζλ ότι θα δώσει το έναυσμα για ολόκληρο το πρόγραμμα μας. Είναι κυριολεκτικά σημαίνει όταν πάω, σε αυτό το πρόγραμμα, και κάντε κλικ σε ένα πράσινο flag-- το οποίο μπορείτε να δείτε εδώ στο επάνω αριστερή γωνία του UI, ώστε να δούμε την πράσινη σημαία δίπλα από το κόκκινο σήμα στοπ; Όταν κάνω κλικ σε αυτό, μου πρόγραμμα πρόκειται να τρέξει. Τώρα, είμαι πρόκειται να κάνει κάτι εξαιρετικά απλό με το Scratch. Πάω να πάει μπροστά και πηγαίνετε στον πίνακα εμφάνιση εδώ, όπου έχω ένα σωρό μωβ κομμάτια του παζλ, και είμαι πρόκειται να πάει μπροστά και να κάνουμε κάτι εξαιρετικά απλό, όπως, ας πούμε. Και then-- ανακοίνωση αυτή κείμενο στο λευκό κουτί είναι editable-- Πάω να πω "Γεια σας κόσμο," όπως ακριβώς εμείς έκανε στο εν λόγω κειμένου έκδοση πριν από λίγο. Και τώρα, αν πάω και να κάνετε κλικ σε αυτό πράσινη σημαία, έχω τώρα προγραμματιστεί. Δεν είναι ένα ιδιαίτερα ενδιαφέρον πρόγραμμα, αλλά έκανα τον υπολογιστή να κάνει κάτι. Ξεκίνησα ένα πρόγραμμα και έκανε ό, τι είπα να κάνω. Τώρα, μπορώ να συνεχίσω να drag and drop όλο και περισσότερα από αυτά τα κομμάτια του παζλ και πρόκειται να αλληλοσυνδέονται, αλλά ας χαστούκι κάποια ορολογία εδώ ότι θα δούμε επαναλαμβανόμενες καθ 'όλη τη διάρκεια, και πραγματικά όλη την επιστήμη των υπολογιστών και τον προγραμματισμό γενικότερα. 

Αυτό το "λένε" μπλοκ, σε μωβ, ας μόλις αρχίσει να ζητούν μια δήλωση. Είναι σαν μια δήλωση του γεγονότος. Κάντε το αυτό. Έτσι, αυτό είναι μια κατηγορία οδηγίες που σας μπορεί να τροφοδοτήσει έναν υπολογιστή ως μέρος ενός προγράμματος ή ενός αλγορίθμου. Και για να είμαι σαφής, έχετε μάλλον αυτονόητο ότι έχετε τα προγράμματα στον υπολογιστή σας. Και είναι το είδος των αλγορίθμων, αλλά ένα πρόγραμμα είναι πραγματικά ένα μάτσο αλγορίθμων ότι μερικοί άνθρωποι έγραψαν. Το συσκευασμένο και που πούλησε έτσι, ή που δημοσιεύτηκε σε μια ιστοσελίδα για να κατεβάσετε. Έτσι, το πρόγραμμα είναι μόνο ένα σωρό από μηδενικά και μονάδες ότι, κατά κάποιο τρόπο, οι άνθρωποι δημιούργησαν. Και αυτά τα πρότυπα των μηδενικών και αυτά αντιπροσωπεύουν τα πράγματα, τελικά, όπως "πω γεια στον κόσμο" ή "παιχνίδι αυτή η μουσική "ή" παίξει αυτό το βίντεο " ή "στείλετε ένα email." Αλλά θα επανέλθουμε σε τρόπο πιο αναλυτικά τι ένα πρόγραμμα είναι όταν, τον εαυτό σας, να γράφετε. 

Εδώ είναι ένα άλλο statement-- "Περιμένετε για ένα δευτερόλεπτο." Δεν είχα χρησιμοποιήσει αυτό ακόμα, αλλά αν θέλω το πρόγραμμά μου για να σταματήσουμε για μια στιγμή να κάνουμε κάτι, μπορώ να το πω για να το πράξουν. Περιμένετε ένα δευτερόλεπτο. Τώρα, ένα άλλο θα μπορούσε να "παίξει ήχο." Έτσι, αυτό είναι το μοναδικό στο Scratch, το έχει τη δυνατότητα να παίξει ήχους. Έτσι, μια δήλωση που θα μπορούσε χρήση είναι, εδώ, "παίζουν ήχο." Εν τω μεταξύ, Boolean έκφραση, έτσι αυτό είναι ένα φανταχτερό λέξη το όνομά του μετά από μόλις έναν τύπο που ονομάζεται κ Bool, και αυτό είναι όλα σχετικά με ένα θέμα. Σωστό ή false-- είναι το ποντίκι προς τα κάτω; Μια λογική έκφραση είναι απλά κάποια έκφραση στα αγγλικά ότι είναι είτε αληθείς ή ψευδείς. Είτε εντός είτε εκτός. Είτε το ένα ή μηδέν. Μπορείτε να σκεφτείτε από το σε οποιοδήποτε αριθμό τρόπων, αλλά είναι είτε αλήθεια ή αυτή η ψευδής, τελικά. Έτσι, «ερωτηματικό του ποντικιού," ότι θα είναι μια Boolean έκφραση. Και μπορείτε να σκεφτείτε άλλους, ίσως. Για παράδειγμα, "είναι ο αριθμός αριστερά λιγότερο από τον σωστό αριθμό; " Αυτό, επίσης, θα είναι μια Boolean έκφραση. "Λιγότερο από ό, τι" είναι μια Boolean έκφραση. 

Αυτός, επίσης, "αγγίζοντας το δείκτη του ποντικιού." Δεν είμαι σίγουρος γιατί ονομάζεται το δείκτη του ποντικιού. Σημαίνει απλώς, είναι ο δρομέας, είναι η βέλος στην οθόνη, αγγίζοντας τη γάτα, για παράδειγμα. Ή κάποια άλλη πτυχή της οθόνης. Και αυτό είναι ένα ερώτημα, και πάλι, και που υποδηλώνει μια Boolean έκφραση. Κάτι που μπορεί να θέλετε να χρησιμοποιήσετε σε μια κατάσταση. Γι 'αυτό και θα επανέλθω σε αυτό σε λίγο. Μπορείτε να "και" πράγματα μαζί. Έτσι, αν θέλετε να ελέγξετε αν αυτό είναι η περίπτωση και ότι είναι η περίπτωση, μπορείτε να χρησιμοποιήσετε ένα "και" μπλοκ σαν αυτό. Και εδώ είναι η προϋπόθεση. Παρατηρήστε το σχήμα του μικρού ανοίγματος στην κορυφή του αυτό το κίτρινο κομμάτι του παζλ, Είναι θυμίζει το σχήμα ότι μόλις είδαμε πριν από λίγο. Κάθε μία από αυτές τις εκφράσεις Boolean έχουν αυτές τις αιχμηρές ακμές στην αριστερή και δεξιά. Και αυτό γιατί MIT λαοί αποφάσισαν ότι από την οπτική μεταφορά σχήματα, μπορείτε να το είδος του να βοηθήσει τους ανθρώπους, φοιτητές και παιδιά, για το είδος των συμπληρώσετε τα κενά στην κυριολεξία. 

Τώρα που puzzle-- ότι το άνοιγμα είναι λίγο μικρό, και όπως θα δείτε στο πρόγραμμα, στο Scratch, θα αυξηθεί για να χωρέσει. Θα διατηρήσει το σχήμα του, τελικά. Έτσι, μια κατάσταση, ας αποφασίσετε "Πρέπει να κάνω κάτι ή όχι;" Μια Boolean έκφραση είναι το πραγματικό ερώτημα που χρησιμοποιείτε για να αποφασίσει να πάω να η αριστερά Ή μπορώ να πάω προς τα δεξιά όταν έχω συναντήσει αυτό λεγόμενη διακλάδωση του δρόμου; Μπορείτε να έχετε δύο κλάδους. ΑΝ κάτι είναι αλήθεια, κάνει αυτό, αλλιώς πάμε με αυτόν τον τρόπο, ή μπορείτε να κάνετε ακριβώς τίποτα όλα, όπως υπονοείται αυτό το μπλοκ. Ομοίως, μπορούμε φωλιά αυτά τα πράγματα. Έτσι, εάν θέλετε να τριπλασιαστεί πιρούνι στο δρόμο, είτε να το κάνετε αυτό ή αυτό ή εκείνο, μπορείτε απλά φωλιά αυτά τα πράγματα μαζί. Και αυτό αρχίζει να παίρνει λίγο άσχημο, τελικά, στα σίγουρα, αλλά η λογική παραμένει η ίδια. Μπορείτε κυριολεκτικά να διαβάσετε αυτό πάνω προς τα κάτω και λέει ό, τι means-- αν αυτό Είναι αλήθεια, το κάνετε αυτό, αλλιώς αν άλλος. 

Ένας βρόχος δεν παίρνει απλούστερη σε Scratch. Πάντα κάνουμε το εξής. Τώρα ίσως να μην νομίζετε μπορεί να κάνει πολλά, διότι δεν υπάρχει πολύ χώρο μεταξύ του άνω και ο κάτω από αυτό το άνοιγμα κομμάτι του παζλ. Αλλά θα δείτε Scratch πρόκειται να αυξηθεί για να χωρέσει ως πολλά κομμάτια του παζλ όπως θέλετε να χώνω εκεί. Μια άλλη διαδρομή μπορεί να είναι εκφράζονται με επαναλήψεις. Εάν γνωρίζετε εκ των προτέρων, "I θέλουν να κάνουν κάτι 10 φορές, " μπορείτε να πείτε απλά Scratch να κάνει κάτι 10 φορές. Και, εν τω μεταξύ, μπορούμε να έχουμε μεταβλητές. Έτσι, εδώ είναι μια αυθαίρετη, Είναι πορτοκάλι σε αυτήν την περίπτωση, και αυτό είναι ένα ταξίδι-αστραπή. Και πάλι, θα βρείτε αυτό το πολύ προσιτό τη στιγμή που θα αρχίσετε δείχνοντας και κάνοντας κλικ. Έχω ονομάζεται μεταβλητή n μου, αλλά εγώ θα μπορούσαν να την έχουν ονομάσει ό, τι θέλω, και εγώ την ρύθμιση εδώ, σε αυτή η αυθαίρετη παράδειγμα, στο μηδέν. 

Τώρα βλέπουμε ένα πρόγραμμα όπως γειά σου κόσμος δεν είναι όλα αυτά συναρπαστικό, οπότε ας πραγματικά να ανοίξει κάτι ότι ένας πρώην μαθητής έκανε. Επιτρέψτε μου να πάει μπροστά και να ανοίξει, για παράδειγμα, αυτό εδώ, για το οποίο θα ήθελα να έχουν έναν εθελοντή. Εντάξει, πώς about-- ας πάει μακρύτερα. Ναι, έλα πάνω. Ποιο είναι το όνομά σου; 

ABBY: Abby. DAVID J. MALAN: Abby, έλα επάνω. Έτσι, έχετε παίξει ποτέ αυτό το παιχνίδι πριν; ABBY: Όχι DAVID J. MALAN: Εντάξει. David, χαίρομαι που σε γνωρίζω. Έλα πάνω. Και τι είναι ο προγραμματισμός σας φόντο, αν υπάρχουν. 

ABBY: Έχω μάθει κάποια C ++. DAVID J. MALAN: Έχετε μάθει κάποια C ++. Και αυτό είναι το παιχνίδι σας παίζοντας φόντο; 

ABBY: Όχι πολλά. DAVID J. MALAN: Εντάξει, έτσι θα πάρει αυτό. Έτσι, εδώ είναι το πώς το παιχνίδι πρόκειται να λειτουργήσει. Πάω να προχωρήσει και κλικ στην πράσινη σημαία, η οποία είναι εδώ στην πάνω δεξιά. Τώρα ο προκάτοχός σας στην τάξη σας έχει δώσει κάποιες οδηγίες εδώ. Και ακριβώς σε μια στιγμή, λέει "χώρο για να ξεκινήσει." Έτσι προχωρήστε και να χτυπήσει το spacebar. 

COMPUTER GAME: Pikachu. DAVID J. MALAN: Και ο στόχος είναι να πιάσει το φαγητό, όπως απεικονίζεται εκεί στα αριστερά. Και σε [δεν ακούγεται] 

[GAME MUSIC ΠΑΙΖΟΝΤΑΣ] 

DAVID J. MALAN: Aww, επίσης, Σας ευχαριστώ για το παιχνίδι. Έχουμε εδώ μια μικρή χωρίστρα δώρο για εσάς. Έχουμε CS50 μπάλα για το άγχος, αν θέλετε να επιλέξετε. Εντάξει, καλό να σας γνωρίσουμε. Σας ευχαριστώ για την παρουσία και την αμφισβήτηση. Έτσι, έχουμε περισσότερες μπάλες άγχος, έτσι ας κάνουμε ένα ακόμα παράδειγμα για να παρακινήσει. Ένας εθελοντής; Εντάξει, σχετικά με το πώς εδώ μπροστά. Ποιο είναι το όνομά σου; 

PHILLIP: Phillip. 

DAVID J. MALAN: Phillip. Έλα πάνω, Phillip. Έτσι, Phillip πρόκειται να αμφισβητηθεί με ένα άλλο παιχνίδι ότι ένας από τους προκατόχους σας έγραψε ως μέρος του προβλήματος που το μηδέν, ονομάζεται το πιο δύσκολο παιχνίδι του κισσού. Και θα δούμε σε μόνο ένα στιγμή τι σημαίνει αυτό. Phillip, Χαίρω πολύ. Ποιο είναι το ιστορικό σας; PHILLIP: Έγινε πολλή κωδικοποίησης. Έγινε λίγο gaming, πάρα πολύ. 

DAVID J. MALAN: OK. Πήρε πολλά παιχνίδια, πάρα πολύ. Και έχετε παίξει αυτό το παιχνίδι πριν; 

PHILLIP: Όχι DAVID J. MALAN: Όλα Εντάξει, τόσο εδώ πηγαίνουμε. Πάω να πάει μπροστά και κάντε κλικ στην πράσινη σημαία. 

[GAME MUSIC] 

[ΜΟΥΣΙΚΗ MC HAMMER, "U ΔΕΝ ΜΠΟΡΕΙ αγγίξεις αυτό το"] 

PHILLIP: [δεν ακούγεται] DAVID J. MALAN: [δεν ακούγεται] PHILLIP: [δεν ακούγεται] [Γέλια] [ΜΟΥΣΙΚΗ MC HAMMER, "U ΔΕΝ ΜΠΟΡΕΙ αγγίξεις αυτό το"] DAVID J. MALAN: [δεν ακούγεται] Άροτρο μέσα από αυτό. PHILLIP: [δεν ακούγεται] DAVID J. MALAN: Προχωρήστε. [ΜΟΥΣΙΚΗ MC HAMMER, "U ΔΕΝ ΜΠΟΡΕΙ αγγίξεις αυτό το"] DAVID J. MALAN: Εντάξει. Συγχαρητήρια. 

[Χειροκρότημα] 

DAVID J. MALAN: Εμείς θα μήνυμα ότι σε απευθείας σύνδεση αργότερα έτσι ότι μπορείτε να χρονοτριβούν με αυτό, καθώς και. Princeton έρχεται μέχρι την επόμενη, μετά από αυτό. 

Έτσι τώρα ας πραγματικά να προχωρήσει να ξεκινήσει από το μηδέν, να το πω έτσι, και στην πραγματικότητα χτίσει μέχρι μπορούμε να δώσουμε έμφαση, εκτός κάποιες από αυτές τις ιδέες και να πάρετε κάτι ακόμα πιο πολύπλοκο από το τέλος. Πάω να πάει πέρα ​​από εδώ και πάω να προχωρήσει και να δημιουργήσετε ένα νέο αρχείο. Έτσι, και πάλι, το σύνολο πρόβλημα θα περπατήσει σας σε μερικά από αυτά τα βήματα. Όμως, το μόνο που έκανα ήταν να πάει στο μενού Αρχείο και είπε "νέα," τόσο πολύ όπως η Microsoft Word, ή κάποιο πρόγραμμα σαν αυτό. 

Και ας προχωρήσουμε now-- και εμείς εφαρμοστεί "Hello world" πριν από λίγο, αλλά ας κάνουμε κάτι λίγο πιο νόστιμος. Πάω να πάει μέχρι τα γεγονότα. Και Πάω να κάνω », όταν πράσινη σημαία κλικ. " Και στη συνέχεια, Πάω να χρησιμοποιήσει, ας πούμε, ένα υποκατάστημα. Έτσι, Πάω να χρησιμοποιήσετε ένα "αν" κατάσταση. Και παρατηρήστε πώς το συντομότερο παίρνω κοντά σε αυτό, θέλει να σπάσει απότομα μαζί. Γι 'αυτό ας πάμε και να ασφαλίσει μαζί. Και τώρα μπορώ να κάνω κάτι ενδιαφέρον. Αν μετακινηθείτε μέσα από εδώ, θα πάω για να δείτε ένα σωρό μπλοκ. Αν πάω να "δεδομένα" - επιτρέψτε μου να zoom in-- υπάρχει κάτι σχετικά με τις μεταβλητές. Αν πάω να "κίνηση", μπορείτε να προφανώς γυρίσει τα πράγματα γύρω. Αν πάω να "φορείς" - Ω, αυτό είναι ενδιαφέρον, Μπορώ να πάρει έναν τυχαίο αριθμό. Έτσι, επιτρέψτε μου να κάνω κάτι με μόνο κάποια πιθανότητα, μόνο και μόνο επειδή. Πάω να προχωρήσει και σύρετε το κομμάτι του παζλ, αυτό είναι ότι λιγότερο από το μπλοκ, γι 'αυτό ακριβώς "Είναι αυτός ο αριθμός λιγότερο από αυτό;" Αλλά δεν θέλω ένα σκληρό κωδικό αριθμό γιατί αυτό είναι λίγο πολύ άχρηστο. Έτσι, Πάω να μεταφέρετε αυτό το κομμάτι εδώ, και παρατηρήστε πώς να ασφαλίσει σε, και τώρα επιτρέψτε μου να πάει μπροστά και να πει "αν ο αριθμός που επιλέγεται τυχαία είναι λιγότερο από έξι, κάντε τα εξής. " Τώρα γιατί λιγότερο από έξι; Τι πιθανότητα είναι αυτό αποτελεσματικά πρόκειται να μου δώσει, μόνο διαισθητικά; Περίπου το 50%, σωστά; Εάν ο αριθμός που είναι υποθέτω τυχαία μεταξύ 1 και 10 είναι μικρότερη των έξι, σαφώς είναι ένα, δύο, τρία, τέσσερα, ή πέντε. Και έτσι αυτό πρόκειται να μου δώσει μια 50% πιθανότητα για το τι συμβαίνει; 

Λοιπόν ας κάνουμε κάτι σαν αυτό, «αναπαραγωγή ήχου νιαούρισμα." Και προειδοποίηση, και πάλι, το κομμάτι του παζλ μεγαλώνει για να χωρέσει, εφ 'όσον τα σχήματα ταιριάζουν. Γι 'αυτό είναι σημαντικό. Επιτρέψτε μου να πάω πάνω στο Scratch εδώ και πατήστε "play". Τίποτα δεν θα συμβεί. Είναι αυτό ένα bug; Όχι, δεν είναι απαραίτητο. Θα μπορούσε απλώς να είναι ότι ένα μεγαλύτερο αριθμό επιλέχθηκε. Οπότε ας το κάνουμε και πάλι. Τίποτα. 

[MEOW] DAVID J. MALAN: Εκεί είναι. [MEOW] DAVID J. MALAN: Ξανά. Όχι 

[Meowing] DAVID J. MALAN: Έτσι, αν έχετε παίξει ποτέ ένα παιχνίδι, φυσικά, όπου τα πράγματα συμβαίνουν τυχαία, σαν τους κακούς έρχονται ή όχι εισέρχονται στην οθόνη, ή τα πράγματα που είτε δεν εμπίπτουν, αυτό είναι μόνο και μόνο επειδή κάτι super απλό, όπως αυτό συμβαίνει. Διαλέξτε έναν τυχαίο αριθμό, και αν είναι μικρότερη από κάποια τιμή, ίσως το κάνετε αυτό ή ίσως το κάνει αυτό. Μπορούμε να ενσωματώσει ότι σε μια κατάσταση. Ας κάνουμε κάτι διαφορετικό. 

Επιτρέψτε μου να ρίξει αυτό μακριά. Μπορείτε να απαλλαγείτε από τα πράγματα από απλά σύροντας προς τα αριστερά και να αφήσει να πάει. Επιτρέψτε μου να πάει μπροστά και να κάνουμε μια για πάντα μπλοκ και πολύ γρήγορα να κάνει κάτι ενοχλητικό. Επιτρέψτε μου να προχωρήσει και λένε "αναπαραγωγή ήχου νιαούρισμα." Αλλά δεν θέλω αυτό να είναι πάρα πολύ ενοχλητικό, οπότε επιτρέψτε μου να αρπάξει αυτό το μπλοκ, "Περιμένετε ένα δευτερόλεπτο" και προειδοποίηση δεν υπάρχει περισσότερος χώρος για αυτό. Αλλά αν πας αρκετά κοντά, θέλει να πάει εκεί. Γι 'αυτό ας πάμε και θα μεγαλώνουν για να γεμίσει το μπλοκ. Μέχρι τώρα, αυτό είναι ένας βρόχος. [Meowing] DAVID J. MALAN: Είμαι κυριολεκτικά κάνει αυτό για πάντα. Ξανά και ξανά. Αυτό δεν είναι μόνο φυσικό ήχο. Επιτρέψτε μου να προχωρήσει και να αλλάξει αυτή όχι ένα δευτερόλεπτο έως δύο δευτερόλεπτα και πατήστε Enter. Και τι είναι καλό για το Ξυστό ότι θα μπορούσε να προγραμματίσετε διαδραστικά. Κάντε μια αλλαγή, ίσως και πατήστε Enter ή Play και πάλι, και θα κρατήσει ακριβώς πρόκειται. Λοιπόν, τώρα γιατί δεν κάνουμε κάτι λίγο πιο νόστιμος; Αντί να κάνουν τα πάντα από το μηδέν, επιτρέψτε μου να πάει μπροστά και να ανοίξει μια εκ των προτέρων έκανε ένα, ότι προ-ψημένο, που ονομάζεται "Pet τη γάτα." Και θα σας δείξω όλα αυτά τα αρχεία σε απευθείας σύνδεση, και το πρόβλημα που το μηδέν θα σας πω πώς να έχουν πρόσβαση σε αυτά και να ανοίξει τα επάνω. Και προειδοποίηση, αυτό είναι αρκετά απλή. Αλλά εκ των προτέρων, μου φαίνεται να έχουν αρπάξει ένα "για πάντα" μπλοκ, έτσι έχω μια θηλιά. Και στη συνέχεια, έχω ένα "αν" κατάσταση. Έχω μια Boolean έκφραση. 

Έτσι, στα αγγλικά, απλά ρίχνοντας μια ματιά αυτό, ειδικά αν έχετε ποτέ προγραμματιστεί πριν, μόνο διαισθητικά, τι είναι αυτό πρόκειται να κάνουμε, αυτό το πρόγραμμα; 

[ΚΟΙΝΟ CHATTER] 

DAVID J. MALAN: Εάν το κατοικίδιο ζώο η γάτα, η γάτα πρόκειται να νιαούρισμα, σωστά; Επειδή «πάντα unchecking" είναι το δείκτη του ποντικιού αγγίζοντας τη γάτα. Έτσι, για να είναι σαφής, και δεν είπα αυτό πριν, όλα αυτά τα παζλ κομμάτια και το σενάριο ότι Τους έχουμε σε συνδυασμό, να το πω έτσι, ένα σενάριο είναι συνώνυμη με πρόγραμμα, πραγματικά, ανήκει σε αυτήν την γάτα. Και ο λόγος is-- επειδή ειδοποίηση πώς αυτή η ίδια γάτα εδώ τονίζεται, κάτω εδώ μπορείτε να δημιουργήσετε ένα δεύτερη γάτα ή σκύλο ή πραγματικά ό, τι θέλετε γραφικά. Μπορείτε να εισάγετε κάτι από το Photoshop, ή τα παρόμοια, και να ενσωματώσει κάτι αν θέλουν να το κάνουν για ένα έργο. Και τι θα βρείτε, τελικά, είναι ότι να προσθέσετε scripts, προσθέστε παζλ κομμάτια, σε μεμονωμένους χαρακτήρες. Έτσι, όλα αυτά ανήκουν στο η συγκεκριμένη γάτα. Έτσι τώρα, αν πάω μπροστά και να παίξετε αυτό το πρόγραμμα, δεν γίνεται τίποτα. Αλλά τρέχει. Το πρόγραμμα είναι σε αυτό για πάντα βρόχο, το είδος της αναμονής για το τι θα συμβεί; 

[ΚΟΙΝΟ CHATTER] 

DAVID J. MALAN: Για το κατοικίδιο ζώο η γάτα. Έτσι, αν μετακινήσετε το ποντίκι μου προς him-- 

[Meowing] 

DAVID J. MALAN: Έτσι τώρα Είμαι χάιδεμα της γάτας. Εν τω μεταξύ, μπορούμε να έχουμε μια διπλού κλάδου. Επιτρέψτε μου να πάει μπροστά και να ανοίξει up δεν κατοικίδιο τη γάτα. Θα δημοσιεύσετε αυτό σε απευθείας σύνδεση, καθώς και. Αυτό είναι λίγο πιο συγκρότημα, αλλά χωρίς να πει μπορείτε να μαντέψετε ίσως τι πρόκειται να συμβεί. 

[Meowing] 

DAVID J. MALAN: Cat είναι meowing, μεγάλο παλιό χρόνο. Όμως αυτό το πρόγραμμα είναι φυσικά που ονομάζεται "Μην Pet τη γάτα," τόσο ξεκάθαρα, θέλω να το κατοικίδιο ζώο της γάτας. 

[ROARING] 

DAVID J. MALAN: Μη χαϊδεύετε τη γάτα. Τώρα, ας ρίξουμε μια ματιά σε ένα άλλο παράδειγμα εδώ. Αυτός θα ονομάζεται "Γεια σου, Γεια σου, Γεια σου," για λόγους ότι θα είναι σαφής, διότι μόλις τρέξω αυτό το πράγμα-- 

[SEAL BARKING] DAVID J. MALAN: Πολύ εύκολο να γράφετε ενοχλητικά προγράμματα Scratch. [SEAL BARKING] DAVID J. MALAN: Τώρα εμείς δεν θα πάμε σε μεγάλη λεπτομέρεια με όλα αυτά, αλλά παρατηρήσετε ότι υπάρχει μια δυο νέα χαρακτηριστικά εδώ. Υπάρχει μια μεταβλητή, που ονομάζεται "υποτονική" και, στη συνέχεια, υπάρχει μια δέσμη των συνθηκών. Και για τώρα, επιτρέψτε μου να απλά σας πειράζει λέγοντας ότι αν αυτός ο τύπος παίρνει πάρα πολύ ενοχλητικό, Μπορώ να χτυπήσει το spacebar και σταματά. Επειδή ο ρόλος που διαδραματίζει η Αυτά τα δύο σενάρια είναι ως ακολούθως. Ένας από αυτούς είναι να κάνει το γαβγίζει κάθε λίγα δευτερόλεπτα. Το άλλο είναι απλά περιμένουν για μένα να χτυπήσει το spacebar. Και αν το κάνω χτυπήσει το πλήκτρο διαστήματος, πρόκειται να αλλάξει η κατάσταση αυτής της μεταβλητής, η τιμή αυτής της μεταβλητής, που είναι προφανώς που ονομάζεται "υποτονική", δεν είχα καλέσει κάτι βαρετό, όπως n, Κάλεσα μια αγγλική λέξη, "σίγαση". Από 1-0 ή 0-1. Από την αλήθεια για ψευδείς ή ψευδή σε αληθή. Και έτσι μπορείτε πραγματικά δείτε τώρα, ώστε να θα μπορούσε να έχει δύο σενάρια, δύο προγράμματα που τρέχουν ταυτόχρονα, και οι δύο από αυτούς θα μπορούσε να κάθεται σε ένα βρόχο να κάνει κάτι. Αναμονή για το ανθρώπινο να κάνουμε κάτι σαν χτύπημα spacebar. [SEAL BARKING] DAVID J. MALAN: Και τώρα που είναι στο δρόμο του και πάλι. [SEAL BARKING] DAVID J. MALAN: Λοιπόν, τι άλλο θα μπορούσαμε να κάνουμε με αυτά τα παραδείγματα; Λοιπόν, ας προχωρήσουμε και να κάνουμε μια παράδειγμα με την καταμέτρηση των προβάτων. Θα συνεχίσουμε αυτή κατά μήκος των γραμμών εδώ of-- ας ανοίξουμε το παράδειγμα των προβάτων. Και προειδοποίηση, σαν πριν, αυτό το ένα, ευτυχώς, είναι λίγο λιγότερο ενοχλητικό. Μόλις χτύπησα παίξει here-- Ω, όχι, αυτό είναι ενοχλητικό. Αυτός πρόκειται να baa με κάποια πιθανότητα. Ας παίξουμε πάλι. 

[ΠΡΟΒΑΤΟ BLEETING] David J. MALAN: Η μόνη διαφορά είναι αλλάξαμε το κοστούμι, να το πω έτσι, και είμαστε μείωση κατά το ήμισυ και να πω τι πραγματικός αριθμός είναι. Λοιπόν ας πάμε μπροστά και να λαμβάνουν αυτό το ένα βήμα παραπέρα. Και επιτρέψτε μου να σας πειράζω με ένα άλλο χαρακτηριστικό εδώ. Ας πάμε μπροστά και να ανοίξει ένα πρόγραμμα που ονομάζεται Θεμάτων. Τόσο πολύ, όπως μπορείτε να έχετε ένα sprite, με πολλαπλές σενάρια, μπορείτε να έχετε δύο ξωτικά, ένα πουλί σε μια γάτα, το καθένα με το δικό τους σενάριο. Και καθένα από αυτά μπορεί να λειτουργούν ταυτόχρονα. Εάν έχετε ακούσει ποτέ το λέξη "multithreading" ένας υπολογιστής είναι "πολυνηματική" μέσα μπορεί να κάνει πολλαπλές πράγματα ταυτόχρονα, και, πράγματι, έτσι ώστε να Scratch. 

Και τώρα παρατηρήσετε το πουλί είναι το είδος των χαζή. Είναι απλά κάνει τα πράγματα τυχαία, αναπηδούν από την οθόνη. Είναι σαφές ότι η γάτα έχει προγραμματιστεί με το είδος του έχουν αναζητούν δυνατότητες στο σπίτι για το πουλί, διότι αυτός που δείχνει πάντα σε αυτόν. Μέχρι το τέλος, ο πιάνει το πραγματικό πουλί. Γι 'αυτό και δεν θα σταθώ στις λεπτομέρειες εδώ, αλλά μπορείτε να το είδος της διαβλέψει τα ίδια σχήματα, μερικά "Αν" συνθήκες, κάποιες μεταβλητές, ίσως κάποια βρόχους, είναι τελικά να κάνει το ίδιο πράγμα. 

Τώρα, επιτρέψτε μου να πάει μπροστά και να ανοίξει κάτι άλλο εντελώς, να πειράζουν κάποιοι από εσάς, ιδιαίτερα εκείνοι πιο άνετα, τι μπορείτε να κάνετε πραγματικά με αυτό. Πάω να πάει μπροστά και να ανοίξει το κουμπί εδώ. Και αυτό είναι ένα σούπερ απλό πρόγραμμα-φαινομενική, αλλά προσέξτε τι συμβαίνει όταν I-- Δείτε τι συμβαίνει όταν ανοίγω αυτήν την έκδοση του, εδώ στο πρόγραμμα περιήγησης, scratch.mit.edu. Και όταν κλικ σε αυτό το μεγάλο κόκκινο κουμπί, παρατηρήστε τι συμβαίνει. Λοιπόν, τι συμβαίνει εδώ; Υπάρχει πραγματικά μια πολύ μεγαλύτερη πολυπλοκότητα συμβαίνει κάτω από το καπό, ακόμα κι αν έχω υλοποιούνται αυτό, ή ειλικρινά, Dan Bradley έχει εφαρμοστεί αυτή η τόσο απλά. Έχει σχεδιαστεί ένα παζλ έθιμο Scratch κομμάτι, που είναι γνωστή ως μια επέκταση Scratch, αποκάλεσε Εναλλαγή. 

Και τι Εναλλαγή κάνει είναι να στέλνει ένα μήνυμα μέσω του διαδικτύου. Και ότι η ίδια μηνύματος μοιάζει λίγο αινιγματικό. Αλλά αυτό, επίσης, θα κατανοήσει μέχρι το τέλος του όρου. Το μήνυμα που είναι στην πραγματικότητα αποστολή μοιάζει λίγο κάτι σαν αυτό. Είναι μόνο κείμενο. Αινιγματικές. Θα το καταλάβετε από το χρόνο έχουμε το πρόβλημα που επτά. Είναι απλά στέλνοντας ένα μήνυμα κειμένου μέσω του διαδικτύου σε ένα διακομιστή. Και ότι ο διακομιστής είναι, σε τελική ανάλυση, μιλάμε για αυτή την λάμπα, η οποία Έχει ένα από αυτά τα φανταχτερά λαμπτήρες σε αυτό ότι, η ίδια, μιλάει στο Wi-Fi στο δίκτυο εδώ, όπου μια τοπική συσκευή κάτω here-- και, τελικά, στην πραγματικότητα μετατρέποντας ότι το φως και να σβήνουν. Αλλά μπορούμε να κάνουμε περισσότερα ενδιαφέροντα πράγματα ακόμα. Παρατηρήστε τι Dan έκανε επίσης για εμάς. Έκανε πολλούς ξωτικά, καθένα από τα η οποία έχει ένα χειρόγραφο να περιμένει για ένα κλικ. Και αν κάνω κλικ κόκκινο, θα πάει το κόκκινο. Αν πάρω μπλε, πηγαίνει blueish. Πράσινο, κίτρινο, πορτοκαλί. Και όλα αυτά συμβαίνουν με Θα διέξοδο στο διαδίκτυο, υποχωρήσουν εδώ για να το λάμπα, on και off. 

Και αν μπορείτε να it-- πιστεύουν και αυτό είναι ίσως ένα από τα πιο πολύπλοκα Scratch έργα κάποιος έχει implemented-- το έκανε, για να είμαστε δίκαιοι, σε μια μέρα. Και αυτή ήταν η πρόκληση που έριξε κάτω στο Dan όταν είδαμε δυαδικό λαμπτήρες, έχουμε Scratch, πώς μπορούμε να τα συνδυάσουμε; Και, πράγματι, αυτό είναι απολύτως κάτι που ο καθένας σε αυτό το δωμάτιο θα μπορούσε να κάνει με end-- εξαμήνου Είναι αυτός επαναυλοποιηθεί δυαδικό λαμπτήρες που χρησιμοποιούν Η ίδια διασύνδεση που ήταν στο iPad μας την Τετάρτη. Έτσι ώστε τώρα, αν πραγματικά κάντε κλικ στο σύμβολο συν πάνω από εδώ, έχουμε ένα, δύο, τρία. Μπορώ να χτυπήσει το 16 και να μετατρέψει το ένα επάνω. 128, και ούτω καθεξής. 

Τώρα, αν αυτό από μόνο του έχει και καεί το μυαλό σας, θα μπορούσε να κάνει τα πράγματα πολύ πιο προσιτή, δεν περιλαμβάνει οποιοδήποτε υλικό σίγουρα. Απλά τα πράγματα για την ίδια την οθόνη. Και, πράγματι, αυτό που οι περισσότεροι μαθητές καταλήγουν να κάνουν είναι κάποιο είδος του παιχνιδιού, κάποια κομμάτι του καλλιτεχνικού έργου, ή κάποιο είδος διαδραστικό animation. Και θα σας πω ένα από μας αγαπημένα υπήρξε αυτό. Και σκέφτηκα αν θα μπορούσε να χαμηλώστε τα φώτα, θα ρίξουμε μια ματιά σε αυτό το τελικό Έργο Scratch σε συμπέρασμα. Αλλά τι θα πρέπει να έχετε κατά νου, όπως Μπορώ να σας πειράζω με μια τελευταία λεπτομέρεια, πος θα ξεκινήσουν την επόμενη εβδομάδα. Οι ώρες λειτουργίας θα ξεκινήσουν την επόμενη εβδομάδα. Πρόβλημα που το μηδέν θα αναρτηθεί CS50.harvard.edu αργότερα σήμερα. Και θα σας υποδεχτεί στο πρόβλημα που το μηδέν να CS50 δική Zamyla Chan, ο οποίος καθοδηγεί το μεγαλύτερο μέρος της walkthroughs μας. Αυτά είναι ενσωματωμένα βίντεο στις προβληματικές ομάδες ότι θα κρατήσει το χέρι σας μέσα από πολλά από την αρχική ρύθμιση και μέσα από πολλές των πιθανών αποφάσεων σχεδιασμού. Έτσι, αν έχετε ποτέ αυτό το συναίσθημα όταν πάρει μια εργασία για το σπίτι και αναρωτιούνται, όπου μπορώ να ξεκινήσω; Θα έχουμε την απάντηση για εσάς. Και τώρα, ένα τελικό πρόγραμμα από έναν από τους προκατόχους σας σε απάντηση στην ερώτηση "Τι κάνει η αλεπού λένε;" [ΜΟΥΣΙΚΗ YLVIS, "ΤΙ ΣΗΜΑΙΝΕΙ ΤΟ FOX SAY?] 

YLVIS: (ΤΡΑΓΟΥΔΙ) Σκύλος πηγαίνει υφάδι. Cat πηγαίνει νιαούρισμα. Bird πηγαίνει τιτίβισμα και το ποντίκι πηγαίνει τρίξιμο. Αγελάδα πηγαίνει moo. Frog πηγαίνει γκρινιάζω. Και ο ελέφαντας πηγαίνει κορνάρω. Πάπιες λένε κομπογιαννίτης και ψάρια πάνε blub. Και η σφραγίδα πηγαίνει ow ow ow, αλλά υπάρχει ένα ήχο που κανείς δεν ξέρει, τι η αλεπού λένε; Και 

DAVID J. MALAN: Αυτό είναι για το CS50. Θα σας δούμε στο Puzzle Ημέρα και τη Δευτέρα. 

[Χειροκρότημα] 

[MUSIC YLVIS, "ΤΙ ΚΑΝΕΙ ΤΟ FOX SAY;"] 

NARRATOR: Και τώρα βαθιά σκέψεις, από Daven Farnham. Σήμερα χτύπησε στο πρόσωπο με ένα τηλεφωνικό κατάλογο. Μπερδεμένη, όπως είμαι σε σπίτι βλέποντας σε απευθείας σύνδεση.