[ΜΟΥΣΙΚΗ Playing] Αυτό είναι CS50-- Χάρβαρντ εισαγωγή Πανεπιστημίου στην πνευματική επιχειρήσεις της επιστήμης των υπολογιστών και η τέχνη του προγραμματισμού. Και το όνομά μου είναι ο David Malan, και Σκεφτόμουν σήμερα το πρωί, αυτό είναι εκπληκτικά 20 χρόνια και σήμερα από την τελευταία φορά κάθισε όπου εσείς κάνετε τώρα. Ήταν το 1996. Ήμουν ένας δευτεροετής φοιτητής, και έπαιρνα CS50 για πρώτη φορά. Και δεν είχα πάρει ακόμη και μέχρι το νεύρο για να πάρει τον εαυτό μου το καινούριο έτος, εν μέρει λόγω του χρόνου. επιστήμη των υπολογιστών για μένα ήταν κάτι σαν, meh. Ήμουν ένα κομμάτι από ένα geek αυξανόμενη up, αλλά δεν το έκανα πραγματικά έχουν καμία πνευματική ενδιαφέρον σε ό, τι εμφανίστηκε να είναι απλώς ένα σωρό οι άνθρωποι τον προγραμματισμό όλη την ώρα. Και ήμουν φοβισμένος για να είμαι ειλικρινής. Η πορεία και η επιστήμη των υπολογιστών περισσότερα γενικά έπρεπε και σε κάποιο βαθμό, εξακολουθεί να έχει αυτή τη φήμη ενός πεδίου σε Προσοχή, έστω και μόνο επειδή τόσοι πολλοί από εμάς είναι εξοικειωμένοι με αυτό και σίγουροι για αυτό. Και πραγματικά δεν ήταν μέχρι να ψωνίσει Αυτή η τάξη που δευτεροετών φοιτητών fall-- και ακόμα και τότε, το μόνο που είναι εγγεγραμμένοι επειδή το professor-- ένα από τα πρώτα τους συμβούλους μου, Brian Kernighan τώρα στο Princeton-- μου επέτρεψε να πάρει το πέρασμα τάξη αποτύχει. Και πράγματι, γι ' σήμερα επιτρέπει και να ενθαρρύνει μαθητές να εκμεταλλευτώ αυτή την κατηγορία κάθισε / ακόρεστα. Και μόνο τότε, από το τέλος του εξαμήνου κατάλαβα όπως, wow, αυτό Δεν ήταν μια τέτοια άγνωστο πεδίο. Πράγματι, αυτό ήταν ένα πολύ ενδυνάμωση τομέα, και πιο συναρπαστικά, ειδικά αργότερα, όπως πήρα μαθήματα Δραματικές Τέχνες 101 και τη Λατινική Α και στη συνέχεια, τελικά grad αρχαιολογία σχολείο, δεν μπορώ πραγματικά να αρχίσουμε να βλέπουμε το διασταυρώσεις αυτού του πεδίου, ο υπολογιστής επιστήμη, με τις ανθρωπιστικές επιστήμες, φυσικές επιστήμες, τις τέχνες, την ιατρική, και τα παρόμοια. Και έτσι αυτό είναι ακριβώς τόσο τακτοποιημένο σχετικά με την επιστήμη υπολογιστών τελικά, όπως ελπίζουμε ότι θα see-- είναι εφαρμοσιμότητα της σε αυτούς τους άλλους τομείς, και πώς μπορείτε να να λάβει μερικές από τις σημερινές και το εξάμηνο του ιδέες και πρακτικές δεξιότητες πίσω στο δικό σας domain, και πραγματικά εξερευνήσετε αυτό το σημείο τομής από τις φιλελεύθερες τέχνες και τις επιστήμες. Έτσι, το 73% από εσάς, αν το τελευταίο έτος είναι οποιαδήποτε ένδειξη, Ποτέ δεν έχω λάβει ένα μάθημα CS πριν. Έτσι, αν, όπως εγώ, είσαι αίσθημα λίγο φοβάται, ή ειλικρινά δεν είστε πραγματικά βέβαιος γιατί είστε ακόμη εδώ. Ίσως το μόνο που ακολούθησαν μερικά φίλους για να Sanders τώρα. Αυτό είναι εντελώς καλά. Ο στόχος εδώ είναι να συνδέσετε σας και να σας διαβεβαιώσω ότι αν φαίνονται να η αριστερά και προς τα δεξιά, θα πάμε να δούμε τους συμμαθητές με ως μικρή ή μεγάλη εμπειρία ότι εσείς ο ίδιος θα μπορούσε να έχει. Και πράγματι, θα μοιραστούμε Μερικά στατιστικά στοιχεία αργότερα σήμερα ως προς το τι τα δημογραφικά στοιχεία του η τάξη συνήθως μοιάζουν. Και όπως πρόσθεσε reassurance-- και αυτό μας εννοώ από τότε που ανέλαβε τη διάρκεια Μερικά χρόνια ago-- στην εξεταστέα ύλη του μαθήματος είναι this-- ότι αυτό που τελικά θέματα σε αυτό το μάθημα δεν είναι τόσο πολύ, όπου θα καταλήξουμε up σε σχέση με τους συμμαθητές σας, αλλά όπου την 11η εβδομάδα, το τέλος του εξάμηνο, καταλήγουν σε σχέση με τον εαυτό σας σε εβδομάδα 0, η οποία είναι όπου είμαστε σήμερα εδώ. Και αυτό είναι ό, τι κατάλαβα όλα αυτά τα χρόνια. Και ξέρω πολλά τάξεις πω αυτό, αλλά είναι ισχύει ιδιαίτερα στην επιστήμη των υπολογιστών. Στο τέλος της ημέρας, αυτό το πεδίο είναι άγνωστη όπως ήταν για μένα και θα μπορούσε να είναι για σας, είναι πραγματικά ακριβώς για την επίλυση προβλημάτων. Και ως τέτοια, δεν έχει αυτό εφαρμογής για να πάρει άλλους τομείς. Και στην πραγματικότητα, αν προσπαθήσαμε για την απόσταξη τι σημαίνει αυτό, Αυτή είναι η επίλυση προβλημάτων στην ουσία του, τολμώ να πω. Υπάρχει input-- έτσι ό, τι είναι ότι προσπαθείτε να λύσετε. Υπάρχει εξόδου, η οποία είναι αισίως η λύση σε αυτό το πρόβλημα. Και τότε, όπως θα κάναμε λένε στην επιστήμη των υπολογιστών, υπάρχει αυτό το μαύρο κουτί στο μέση που δεν κάνουν απαραίτητα Πρέπει να νοιάζονται για το πώς λειτουργεί. Εσείς ο ίδιος τελικά θα μπορούσε εφαρμόσουν ό, τι είναι μέσα σε αυτό το κουτί. Αλλά για τη σημερινή σκοπούς και περισσότερα γενικά στη ζωή, το μόνο που νοιάζονται για είναι ότι αυτά τα προβλήματα λύνονται. Και τι είναι αυτό το μάθημα είναι τελικά περίπου διερευνά η τομή του Αυτές οι εισροές και εκροές, και αυτά τα λεγόμενα αλγορίθμους, όπως θα δούμε σύντομα, ότι η εφαρμογή ό, τι είναι κάτω από εκεί, η κουκούλα. Αλλά αυτές οι είσοδοι και οι outputs-- τι ότι πραγματικά σημαίνει; Λοιπόν, στο τέλος της ημέρας, χρειαζόμαστε κατά κάποιο τρόπο αναπαράστασης πληροφοριών. Αυτό ισχύει ιδιαίτερα σε έναν υπολογιστή, που τόσο φανταχτερό και πολύπλοκη, δεδομένου ότι μπορεί να φαίνεται, είναι μια πολύ χαζή συσκευή. Παίρνει electricity-- είτε από ένα καλώδιο ή μια μπαταρία ως input-- και στη συνέχεια να παράγει μερικά preprogramed απαντήσεις στην οθόνη. Αλλά πώς θα πάρετε από αρχίσει να τελειώσει εκεί; Λοιπόν, τι είναι ένα πρόβλημα που πρέπει να λυθεί; Καλά, ίσως θα μπορούσαμε, σε η έναρξη του κάθε εξαμήνου, προσπαθήστε να πάρετε τη συμμετοχή σε ένα δωμάτιο σαν αυτό. Γι 'αυτό και θα μπορούσε να κάνει σαν ένα, δύο, τρία. Ή ίσως, αν το έκανα σε είδος παρακολουθείτε της myself-- να παρακολουθείτε things-- Θα μπορούσα να τρέξει γρήγορα έξω από τα δάχτυλα. Γι 'αυτό και μπορεί να κάνει μόνο hash marks-- ένα πρόσωπο, δύο, τρία, τέσσερα, πέντε, έξι, επτά, οκτώ. Και όλοι μας έχουμε κατά πάσα πιθανότητα κάνει αυτό, είτε στα χέρια σας ή σε ένα κομμάτι χαρτί. Και αυτό είναι πραγματικά ακριβώς κάτι που ονομάζεται μοναδιαίος notation-- όπου αν έχετε μόνο ένα γράμμα το αλφάβητο σας, ένα ή κατακερματισμού σήμα σε αυτή την περίπτωση, για κάθε εισόδου που θέλετε να μετρήσετε, θα πρέπει να βάλει κάτω ένα από αυτά letters-- ένα από αυτά τα σήματα. Εντάξει. Αυτό είναι όλα ωραία και καλά και δεν είναι όλα αυτά περίπλοκα. Αλλά οι υπολογιστές δεν είναι όλα ότι πολύ πιο περίπλοκο. Πράγματι, οι περισσότεροι από εσάς ίσως ξέρω ακόμη και αν δεν έχετε πραγματικά θεωρείται τι σημαίνει αυτό, ότι υπολογιστές καταλαβαίνουν μόνο μηδενικά και ones-- τη λεγόμενη δυαδικό σύστημα. Εμείς οι άνθρωποι, αντιθέτως, είναι τόσο πολύ πιο εξελιγμένο βαθμό όπως καταλαβαίνουμε μηδενικά μέσα από εννιάρια. Αλλά ακόμη και αν δυαδικό είναι, σε πρώτη ματιά, δεν είναι όλα αυτά γνωστά, αποδεικνύεται ότι είναι ακριβώς όπως τα συστήματα και οι ιδέες που ήδη γνωρίζουμε. Έτσι, για παράδειγμα, σκεφτείτε το εξής. Αυτή είναι μόνο μια ακολουθία συμβόλων. Και όλοι σας, όταν Ματιές σε αυτό, πιθανώς σκεφτείτε 123-- τίποτα πραγματικά ενδιαφέρον εκεί. Αλλά γιατί είναι αυτός ο αριθμός, 123; Αυτά είναι μόνο γλύφων για η screen-- απλά μοτίβα ότι κάποιος μπορεί να έχουν καταρτίσει ή πληκτρολογήσει. Αλλά αν είστε σαν κι εμένα, σας ίσως θυμάστε από το σχολείο βαθμού ότι υπάρχουν είδους στήλες ή θέσεις εδώ. Υπάρχει θέση του ατόμου και η μέρος δέκα και ο τόπος της εκατό του. Και ο λόγος ότι αυτό είναι 123 και δεν είναι απλώς ένα σχέδιο τριών συμβόλων είναι επειδή, φυσικά, αν έχουμε έχουν ένα ένα στο μέρος εκατοντάδες, κάνετε τα μαθηματικά του 100 φορές μία, και, στη συνέχεια, δύο στη θέση του δέκα του. Έτσι ώστε να είναι 10 φορές 2, και στη συνέχεια, τρεις σε η θέση του καθενός και αυτό είναι 1 φορές 3. Και όταν προσθέτετε όλα αυτά μέχρι, της Φυσικά, μπορείτε να πάρετε 100 συν 20 συν 3. Έτσι ξεκινήσαμε με ένα απλό μοτίβο της symbols-- μια alphabet-- αλλά τότε θα χαρτογραφηθεί έννοια επάνω ότι μέσω αυτών των στηλών. Λοιπόν, αποδεικνύεται ότι υπολογιστές δεν είναι πραγματικά διαφέρει καθόλου από εσάς και εμένα. Αλλά αντί να χρησιμοποιούν τις εξουσίες του 10, έτσι ώστε να speak-- 1, 10, 100, 1.000, 10.000 τόπο και έτσι forth-- πράγματι μόλις χρησιμοποιήσει τις εξουσίες της 2-- έτσι ένα, 2, 4, και στη συνέχεια αν βάλουμε περισσότερα ψηφία, 8, 16, 32, 64, 128, και ούτω καθεξής. Και έτσι αυτό είναι το πώς ένας υπολογιστής θα αντιπροσωπεύουν τον αριθμό 0, ακριβώς όπως εμείς οι άνθρωποι. 0, 0, 0-- και μπορείτε να μαντέψετε τι μοτίβο μηδενικά και μονάδες, αν ένας υπολογιστής μπορεί μόνο μιλήσουν 0 ή 1-- τι μοτίβο πρόκειται να αντιπροσωπεύουν ο αριθμός εμείς οι άνθρωποι γνωρίζουμε ως 1; Yeah-- 0, 0, 1. Εντάξει. Έτσι, 0, 0, 1, είναι το πώς εμείς εκπροσωπούμε 1, έτσι ώστε να μπορεί να έχει κλίση στη συνέχεια να αντιπροσωπεύουν τον αριθμό 2, αν έχετε του τέσσερις του τόπου και τη θέση του δύο του ως ένα σημείο, μπορείτε να πείτε, καλά, αν είχαμε ένα 1 στη θέση του ατόμου, και τώρα θέλουμε να μετρήσει μέχρι και 2, ίσως το κάνετε αυτό και να αφήσει αυτό να είναι ένα μηδενικό. Αλλά φυσικά αυτό δεν είναι το πώς είναι το δεκαδικό σύστημα λειτουργεί είτε. Αν βάλετε ένα ψηφίο τόσο από τις στήλες αυτές, έχετε να κάνετε την αριθμητική. Έτσι, ποιος είναι ο αριθμός έκανα τυχαία ακριβώς αντιπροσωπεύουν; Έτσι είναι 3, γιατί 2 φορές 1 συν 1 φορές 1, βέβαια, μας δίνει τρία. Έτσι, αυτό θα είναι δύο. Το bit είδος flips, να το πω έτσι, ως 0 γίνεται ένα, σαν ένα 9 ρόλους πάνω και γίνεται 0 όταν φέρουν το 1. Στη συνέχεια, αυτό θα είναι τρεις, φυσικά. Four-- άλλο ενδιαφέρον πράγμα συμβαίνει, όταν αυτοί κυλήσει και θα φέρουν το 1, να το πω έτσι. Έτσι, αυτό, φυσικά, είναι 4. Αλλά αν fast forward τώρα, τι είναι ο μεγαλύτερος αριθμός θα να είναι ότι ένας υπολογιστής μπορεί να αντιπροσωπεύει; Έτσι είναι μόλις επτά στην περίπτωση αυτή, σωστά; Επειδή έχετε μία στις τέσσερις, μία στις δύο, ένα ένα στο ένα. Έτσι ώστε να είναι 4 συν 2 συν 1. Έτσι ώστε να δίνει επτά. Και πράγματι, θα ήταν φαίνεται με την πρώτη ματιά ότι οι υπολογιστές μπορούν να υπολογίζουν όχι μεγαλύτερο από αυτό. Αλλά αυτό βέβαια δεν είναι αλήθεια. Τι κάνουν οι άνθρωποι όταν θέλουμε να μετρήσει υψηλότερες από ό, τι σαν 999; Απλά συνεχίστε το ένα και μόνο προσθέσετε ένα τέταρτο ψηφίο προς τα αριστερά. Και έτσι πράγματι θα μπορούσαμε. Θα μπορούσαμε να έχουμε μια οκτώ του τοποθετήστε και τοποθετήστε ένα 16ο του, και 32 του θέση, 64, 128-- και μπορεί απλά να κρατήσει σε εξέλιξη μέχρι το άπειρο. Έτσι, αυτά τα μηδενικά και ones-- το λεγόμενο δυαδικό system-- είναι ό, τι ένας επιστήμονας υπολογιστών θα γενικά αποκαλούν λίγο, ή δυαδικό ψηφίο. Αλλά τώρα, πώς παίρνουμε από το ιδέα ή τα γραφικά αυτά τα πράγματα σε ένα πραγματικό υπολογιστή; Σας φαίνεται να παρακάμπτοντας ένα βήμα εδώ. Λοιπόν, η μόνη είσοδος στο τέλος της ημέρας, για το laptop μου εδώ Είναι αυτή η ροή του ηλεκτρικού ρεύματος. Ακόμα κι αν έχουν περάσει μια μακρά φορά από το σκεφτεί ή ποτέ σκεφτεί πώς ηλεκτρικής ενέργειας λειτουργεί, υπάρχει ηλεκτρόνια ρέουν μέσα ή έξω, και αυτό είναι το είδος μου εισόδου. Έτσι, αν αυτό είναι το μόνο που είμαστε να πάρει ως είσοδο εδώ, τι μπορούμε να κάνουμε με αυτές τις πληροφορίες; Λοιπόν, θα μπορούσαμε να σκεφτούμε ένα μηδέν μόλις μια απουσία ηλεκτρικού ρεύματος. Τίποτα δεν είναι flowinw, τίποτα δεν είναι μετακίνηση, τίποτα δεν συμβαίνει. Αυτό είναι μόνο η προεπιλεγμένη state-- μηδέν. Αλλά αν υπάρχει ηλεκτρικό ρεύμα ρέει, γιατί Δεν κάνουμε εμείς απλά αυθαίρετα, αλλά και παγκοσμίως συνέπεια, καλέστε ότι ένα ένα. Έτσι, απλά με έχει καμία δύναμη, έχουμε ένα μηδέν, ναι δύναμη, έχουμε ένα ένα-- καμία δύναμη, ναι εξουσία. Και με αυτόν τον τρόπο, χρησιμοποιώντας κάτι πιο φυσική ή ηλεκτρονική αρχίζουμε να εφαρμόσουν αυτήν την έννοια της κάτι είτε είναι ένα ή μηδέν. Πράγματι, θα μπορούσαμε να το κάνουμε αυτό ακριβώς εδώ. Μέχρι εδώ, δεν έχω τρεις, αλλά οκτώ λαμπτήρες, καθένα από τα οποία έχει το δικό του διακόπτη. Και έτσι αν ήθελα να εκπροσωπεί ο αριθμός επτά εδώ, Θα ήθελα να ενεργοποιήσετε αυτές τις τρεις λαμπτήρες. Και πράγματι, στο εσωτερικό του ο υπολογιστής μου είναι τα εκατομμύρια, δισεκατομμύρια πράγματα που είναι απλά μικρότερη από εκείνη, που ονομάζεται τρανζίστορ, διακόπτες, ότι μόλις ενεργοποιήσετε και να σβήνουν. Έτσι, αυτά big-- σχετικά big-- διακόπτες στο εσωτερικό laptop-- μου είναι πολλά, πολλά, πολλά, πολλοί περισσότεροι διακόπτες. Αλλά το μόνο που κάνουν είναι ακριβώς ερμήνευα-- ενεργοποιήστε κάτι, γυρίστε κάτι μακριά. Και ως τέτοια, ένας υπολογιστής μπορεί να αντιπροσωπεύει, με αυτά τα εκατομμύρια ή δισεκατομμύρια των τρανζίστορ, τα μέρη και πολλά μηδενικά και μονάδες. Και δεν υπάρχει άλλο υλικό ακόμα ότι σας επιτρέπει να αποθηκεύετε πληροφορίες μακροπρόθεσμα, έτσι ώστε όταν τραβάτε το βύσμα, να μην το χάσετε. Αλλά αυτό είναι μια ιστορία για μια άλλη ημέρα. Τι μπορούμε λοιπόν να κάνουμε με αυτά τα κομμάτια; Θα μπορούσε απλά να λάβει η πίεση μακριά από me-- θα μπορούσε κάποιος θέλει να έρθει εδώ και προσφέρουν ένα demo; Είδα για πρώτη φορά αυτό το χέρι. Ποιο είναι το όνομά σου? MADAY: Maday. DAVID Malan: Maday, έλα επάνω. Χάρηκα για τη γνωριμία. MADAY: Χαίρω πολύ. DAVID Malan: Ελάτε με αυτόν τον τρόπο. Δεν θα πρέπει να σας τα χείλη επάνω. Εντάξει. Έτσι, εδώ, έχουμε, notice-- ένα, two-- θα επεξεργαστείτε ότι out-- ένα, δύο, τέσσερις, οκτώ, 16, 32, 64, 128. Αυτό είναι σκόπιμη. Υπάρχει οκτώ bits here-- δυαδικό digits-- μηδενικά και μονάδες. Και λίγο είναι μια χρήσιμη μονάδα measure-- όχι ως χρήσιμη μια μονάδα μέτρησης στον εαυτό του. Συνήθως θέλετε τουλάχιστον οκτώ από αυτά τα πράγματα, γνωστός και ως ένα byte. Έτσι έχουμε ένα byte των bits εδώ. Έτσι, αν θέλαμε να σας πρόκληση με, για παράδειγμα, υπαγόρευση, σε δυαδική, Αυτή η τιμή here-- 42. Θέλετε να πάρετε μια μαχαιριά σε αυτό; MADAY: [δεν ακούγεται]. DAVID Malan: Ναι, απλά πιέστε το μικρό λευκό διακόπτες μπροστά. Και θέλετε να σημάνει από 42, και επάνω για τις αρπαγές Είναι αυτό το CS50 το άγχος μπάλα, αν έχετε αυτό. Εντάξει. Έτσι έχετε 32. Εμείς πάμε να χρειάζονται 42. Έτσι ώστε να είναι οκτώ, έτσι ώστε να είναι 40. Και excellent-- πολύ όμορφα γίνεται. Ευχαριστώ. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Εντάξει. Έτσι έχουμε ένα πιο μπάλα για το άγχος. Ας κάνουμε αυτό για μια ακόμη φορά, αν μπορεί. Ένας άλλος εθελοντής; Δωρεάν μπάλα για το άγχος, χωρίς μπάλα για το άγχος. ΕΝΤΆΞΕΙ. Πάνω από εδώ στη μέση, θέλετε να κατέβει; Εντάξει. Ξέρω. Εκεί πάμε. Έτσι, οι αριθμοί here-- έλα κάτω. Πως σε λένε? DAVEY: Davey. DAVID Malan: Davey. ΕΝΤΆΞΕΙ. Ελάτε επάνω, Davey. Χάρηκα για τη γνωριμία. Και τι θα πάμε να έχετε spell-- αν θα μπορούσε να σταθώ εκεί για μία μόνο moment-- είναι ο αριθμός 50. Αλλά αλλά, αλλά, αλλά αλλά, αυτές είναι δημοτικό σχολείο μαγνήτες για έναν λόγο. Μόλις έγινε λίγο πιο δύσκολο, εντάξει; Υπάρχει ακόμη οκτώ. Εντάξει. Έτσι, αυτό που έχουμε εκεί; Έχουμε 32. Όμορφη. 32 συν 16 μας δίνει 48-- τόσο κοντά. Και υπέροχη. Συγχαρητήρια στον Davey, καθώς και. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Εντάξει. Έτσι, μπορούμε να το κάνουμε αυτό όλη την ημέρα, και δεν παίρνει όλα αυτά πολύ πιο ενδιαφέρουσα και πιο προκλητική. Αλλά αυτό είναι πραγματικά το point-- είναι πώς σχετικά απλές είναι, στο τέλος της ημέρας, τι υπολογιστής κάνει για την αποθήκευση πληροφοριών, για την αποθήκευση των εισροών και, τελικά, αποθηκεύσετε ή να εκπροσωπούν αυτές τις εξόδους. Αλλά οι αριθμοί από μόνοι τους δεν όλα αυτά ενδιαφέροντα. Έτσι οι άνθρωποι, πριν από μερικά χρόνια, αποφάσισε, ξέρετε τι; Θα ήταν ωραίο αν υπολογιστές δεν ήταν μόνο αριθμομηχανές για αριθμητική επιχειρήσεις, αλλά στην πραγματικότητα θα μπορούσε να κάνουμε τα πράγματα όπως επεξεργασία κειμένου, ή e-mail, ή πιο μοντέρνα ενσαρκώσεις από αυτά τα είδη των τεχνολογιών. Και έτσι ο κόσμος αποφάσισε αυθαίρετα, αλλά καθολικά, ότι αν θέλετε να αποθηκεύσετε το κεφάλαιο Μια επιστολή σε έναν υπολογιστή, ξέρετε τι; Ας συμφωνήσουμε όλοι να αποθηκεύσετε μερικά μοτίβο μηδενικά και ones-- bits-- που τελικά αντιπροσωπεύει το δεκαδικό αριθμό 65. Εμείς απλώς θα συμφωνούμε όλοι σε αυτό. 66 θα αντιπροσωπεύουν Β, 67 θα αντιπροσωπεύει C, και υπάρχει τσαμπιά από άλλα πρότυπα της μηδενικά και μονάδες, ή υποκείμενη αριθμούς, ότι θα αντιπροσωπεύουν άλλα γράμματα ακόμα. Έτσι, αν το είδος των ψυχικά απορροφούν αυτό για μια στιγμή, Σκοπίμως θέσει ένα μέσα Ι, όπου H a 72 και είναι 73. Εάν ένας υπολογιστής τότε, στο πλαίσιο της ένα πρόγραμμα επεξεργασίας κειμένου ή ένα e-mail, αποκάλυψε κάτω από την κουκούλα για να έχουν αυτά τα πρότυπα της bits-- μοτίβο του bit που αντιπροσωπεύουν 72, τότε 73, τότε 33-- τι μπορεί αυτό να σημάνει στο εν λόγω πρόγραμμα; Έτσι γεια, και στη συνέχεια κάτι. Δεν απαραίτητα ξέρω, αλλά πράγματι 33-- όχι στο διάγραμμα earlier-- ήταν απλά ένα θαυμαστικό. Έτσι, 72 ήταν Η, 73 είναι Ι, 33 συμβαίνει να είναι ένα θαυμαστικό ακόμα. Αλλά αυτό είναι όλα ωραία και καλά, και στην πραγματικότητα σήμερα, παρά απλά χρησιμοποιήστε επτά ή οκτώ bits, χάρη σε κάτι ονομάζεται Unicode, σε αντίθεση σε ASCII πίσω στην ημέρα, μπορούμε πραγματικά να εκπροσωπεί ακόμη περισσότερο ενδιαφέροντες χαρακτήρες από ό, τι ακριβώς αυτά πρωτότυπο αγγλικό προκατειλημμένη γράμματα. Αλλά μπορούμε επίσης να αντιπροσωπεύουν ακόμα τακτοποιημένο πράγματα όπως τα χρώματα. Αν έχετε ακούσει ποτέ το ακρωνύμιο RGB, κόκκινο, πράσινο, μπλε, ότι Σημαίνει απλώς ότι έναν υπολογιστή τυπικά χρησιμοποιεί τρεις σειρές bits-- μερικοί αριθμός των bit που αντιπροσωπεύουν ένας αριθμός για το πόσο κόκκινο θέλετε, Ένα άλλο σύνολο των bits για πόσο πράσινο θέλετε, και ένα άλλο σετ αριθμό για πόσο μπλε θέλετε. Έτσι, ένας μεγάλος αριθμός σημαίνει πολλά κόκκινο, μικρός αριθμός σημαίνει ότι δεν υπάρχει κόκκινη. Και έτσι αυτά είναι το είδος της μεσαίας τιμές εδώ. Έτσι μου δώσει κάποιες κόκκινο, να μου δώσει κάποιες πράσινο, και να μου δώσει ένα μικρό κομμάτι του μπλε. Και εάν αναμίξετε αυτές τις τρεις αποχρώσεις του χρώματος μαζί, σε αυτήν την περίπτωση, μπορείτε να πάρετε αυτό το σκοτεινό σκιά του κίτρινου ή καφέ. Αλλά αυτό το μοτίβο των οκτώ συν οκτώ συν eight-- έτσι 24 bits-- αριστερά προς τα δεξιά, είναι το πώς ένας υπολογιστής θα αντιπροσωπεύουν το συγκεκριμένο χρώμα. Τώρα αυτό είναι απλά μια τελεία σε μια οθόνη. Αν κοιτάξετε πολύ κοντά στην τηλεόρασή σας σας υπολογιστή, θα δείτε τελείες ή εικονοστοιχεία. Και αν έχετε ένα ολόκληρο πλέγμα pixels, οριζοντίως και καθέτως, έχετε εικόνες. Και στη συνέχεια, αν παίρνετε μια εικόνα και στη συνέχεια πλύσιμο δείξει τον εαυτό σας μια άλλη εικόνα, μια άλλη εικόνα, μια άλλη εικόνα, μια άλλη εικόνα, πολύ γρήγορα, θα έχουν ασφαλώς ταινίες. Και έτσι παρατηρήσετε όπου ξεκινήσαμε. Ξεκινήσαμε με αυτά τα μηδενικά και μονάδες. Δουλέψαμε από εκεί σε δεκαδική αριθμούς, πώς θα τους εκπροσωπήσει. Τώρα έχουμε τα γράμματα του αλφαβήτου. Αλλά και σε άλλα πλαίσια περιμένουμε, μπορούμε να χρησιμοποιήσουμε λίγα περισσότερα bits και αναπαράσταση των χρωμάτων. Από τη στιγμή που έχετε το την ικανότητα να εκπροσωπεί τα χρώματα, έχετε τη δυνατότητα να εκπροσωπεί φωτογραφίες και κινούμενα gifs και άλλες τέτοιες χαρακτήρες στην οθόνη. Και όταν έχεις ένα σωρό εικόνες που φέρουν από το ανθρώπινο ταυτόχρονα, μοιάζει με κινηματογραφικές ταινίες, και έτσι μπορείτε να πάρετε τα βίντεο, καθώς και. Έτσι, χρησιμοποιώντας αυτά τα πολύ απλή πρωτόγονων εμείς έχουν τον τρόπο που εκπροσωπούν τελικά, όλες αυτές οι μορφές των μέσων ενημέρωσης. Και έχουμε αντλείται και πάλι και ξανά και ξανά, μέχρι να πάρετε από το χαμηλότερο επίπεδο σε αυτό το υψηλότερο επίπεδο. Έτσι ώστε να μας δίνει αυτό γενική ιδέα της αφαίρεσης. Αλλά αρχίσαμε εδώ. Εδώ τώρα, θα μπορούσαμε αντιπροσωπεύουν σε έναν υπολογιστή είσοδοι μας με μηδενικά και μονάδες, εξόδους μας σε μηδενικά και μονάδες, αλλά τι συμβαίνει μέσα στο κουτί; Αυτός είναι όπου ο υπολογιστής επιστήμη παίρνει ενδιαφέρον. Αυτό είναι όπου μπορείτε πραγματικά να σας δική μυαλά για να φέρουν στην επίλυση των προβλημάτων. Μπορούμε τώρα να ορίζουν, για το υπόλοιπο του εξαμήνου, ναι. Ξέρω πώς δυαδικό έργων. Θυμάμαι πώς ASCII ή Unicode-- η χαρτογράφηση να letters-- έργα. Και σίγουρα ξεχωρίζει για το λόγο που θα μπορούσε να αποτελέσει κόκκινο και πράσινο και μπλε, και αντιπροσωπεύουν πολυμέσων, καθώς και. Αλλά αυτή είναι η ενδιαφέροντα πράγματα. Αυτό είναι που κάνει κάποιος ικανή για την επίλυση των προβλημάτων. Και ένα τέτοιο πρόβλημα μας αρέσει να κάνουμε, πράγματι, λαμβάνει συμμετοχή, ή κάνει αυτό αλγοριθμικά. Και πάλι, θα μπορούσα να το κάνουμε αυτό. Θα ήθελα να κάνω μία, δύο, τρεις, τέσσερις πέντε, έξι, επτά, οκτώ εννέα. Και θα μπορούσα να γράψω προς τα κάτω για να παρακολουθείτε αυτό. Αλλά αυτό είναι μόνο το πώς θα αντιπροσωπεύουν την πληροφορία. Ή θα μπορούσα να κάνω αυτό faster-- δύο, τέσσερις, έξι, οκτώ, δέκα, 12, 14, 16, 18, 20, 22-- αισθάνεται σαν δύο φορές τόσο γρήγορα, αλλά είναι ακόμα πρόκειται να πάρει πάρα πολύ χρόνο. Αλλά αποδεικνύεται, αν έχουμε αξιοποιήσει ακόμη άλλα resource-- και μάλιστα υπολογιστές αυτές τις μέρες έχουν πολλαπλούς επεξεργαστές ή μυαλά. Αποδεικνύεται υπολογιστές μπορούν να κάνει πολλά πράγματα ταυτόχρονα, και μάλιστα εμείς, σε αυτό το δωμάτιο, μπορεί να αντιπροσωπεύει ακριβώς αυτό. Έτσι είναι λίγο κοινωνικά δύσκολη, αλλά αν θα το χιούμορ μου μόνο για μια διαδικασία τριών βημάτων, ας Θέλω να ζητήσω από όλους στη θέση τους εκεί ακριβώς να σταθεί για μια στιγμή. Σήκω πάνω. Έτσι, σκεφτείτε τον εαυτό σας, τον αριθμό ένα-- έτσι ώστε όλοι σε αυτή την αίθουσα, εκτός από τους ανθρώπους που δεν έκαναν υποχρεώνουν, σκέφτεστε νούμερο ένα. Έτσι ώστε να είναι ο αριθμός σας τώρα. Αυτό είναι το πρώτο βήμα, ή ως επιστήμονας υπολογιστών ή προγραμματιστής συνήθως θα κάνουμε, θα πάμε να αρχίσουμε να μετράμε από το μηδέν. Αν ο μικρότερος αριθμός που μπορούμε αντιπροσωπεύουν με αυτούς τους λαμπτήρες πυράκτωσης είναι μηδέν, από απλά αφήνοντας τους όλα off, θα μπορούσε κάλλιστα ακριβώς αρχίζουν να μετρούν από μηδέν είναι αντί για μία. Και έτσι αυτό είναι που επιστήμονες υπολογιστών κάνει. Έτσι, βήμα το μηδέν, να σηκώνεται και σκεφτείτε το νούμερο ένα. Το επόμενο βήμα είναι this-- ζεύγος off με κάποιον στέκεται και προσθέστε τους αριθμούς μαζί σας. Θαυμάσιος. Έτσι, σε αυτή τη χρονική στιγμή, κυριολεκτικά ο καθένας που συμμετέχει σκέφτεται τον αριθμό 2, με εξαίρεση για ένα περίεργο πρόσωπο, αν έχουμε μονός αριθμός των ανθρώπων σε ένα δωμάτιο. Και τώρα το τρίτο βήμα εδώ θα να this-- ένας από σας πρέπει να καθίσει. Κάποιος από εσάς θα πρέπει να καθίσουν, και εάν είστε ακόμα όρθια, επιστρέψτε στο βήμα ένα. Εντάξει. Εντάξει. Έτσι, όλο και περισσότεροι άνθρωποι Θα πρέπει να καθίσουμε. Παρατηρήστε ότι αυτό προκαλείται από ένα loop-- κάποιο είδος του κύκλου. Κάποιοι από εσάς θα πρέπει να είναι αδέξια κολλήσει, πηγαινοέρχονται μεταξύ το πρώτο βήμα και δύο, ένα και δύο, ένα και δύο. Εντάξει. Η πρώτη μας σφάλμα. Θα ασχοληθεί με αυτό. Εντάξει. Επιτρέψτε μου να προσπαθήσω να ωθήσει τα πράγματα μαζί. Θεωρητικά, μόνο ένα άτομο που στέκεται όπως ο καθένας συνεχίζει να ζεύγος μακριά. Αλλά επιτρέψτε μου να επιταχυνθούν τα πράγματα με τους ανθρώπους στέκεται ακόμα. Τι αριθμό σκέφτεστε; 46. ΕΝΤΆΞΕΙ. Προχωρήστε και να καθίσει. Εσείς είναι ακόμα όρθια. Ποιος στέκεται ακόμα; Τι αριθμό σκέφτεστε; ΕΝΤΆΞΕΙ. Γι 'αυτό και θα έρθει πίσω σε σας. Στην πλάτη? Τι είναι αυτό? 22. OK κάποιον άλλο μέχρι top-- ναι; 34. ΕΝΤΆΞΕΙ. Εδώ για right-- μου εδώ; 132, πολύ ωραία. 22; ΕΝΤΆΞΕΙ. Και ποιος στέκεται ακόμα; Εδώ? 46, πολύ ωραίο. 72. Δεν μπορώ να καθυστερήσει πολύ περισσότερο. Ναι; 30, ωραία. Εδώ? 23; 23. Και νομίζω ότι αυτό είναι ο καθένας εκτός από σας παιδιά, χωρίς πίεση. Αα περίμενε. 28; Μόλις οκτώ. ΕΝΤΆΞΕΙ. Μόλις οκτώ. Εδώ κάτω? 30. 23. 24. 18. Αυτή είναι η χειρότερη εκτέλεση αυτού του αλγορίθμου ποτέ. ΕΝΤΆΞΕΙ. Έτσι, κανείς άλλος; Κανένας άλλος? ΕΝΤΆΞΕΙ. Ένα ακόμα. 16; ΕΝΤΆΞΕΙ. 16. Εντάξει. Έτσι, αν δεν έχω χάσει κανέναν στην η αντηλιά εδώ, όταν χτύπησα Enter, θα δούμε, αλγοριθμικά, η συνολικός αριθμός των ανθρώπων σε Sanders. Επειδή και πάλι, είναι σαν όλους καθώς κάθισε, πέρασε τον αριθμό σας μακριά σε κάποιον άλλο, σε κάποιον άλλο, σε κάποιον άλλο, έτσι ώστε στη θεωρία, στο τέλος, μόνο ένας αδέξιος πρόσωπο πρέπει να μείνει όρθια. Αλλά αυτό είναι μια χαρά. Εμείς επιτάχυνε τα πράγματα με το χέρι. Είναι ιδιαίτερα δύσκολο να δούμε σε αυτή τη συγκεκριμένη θέση. Και ο συνολικός αριθμός των ατόμων πιστεύουμε ότι υπάρχουν εδώ είναι 546. Ο συνολικός αριθμός ήμουν χέρια από το διδακτικό υποτρόφων, ο οποίος έκανε το παλιό σχολείο αργό τρόπο, ήταν 820. [ΓΈΛΙΟ] [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Εντάξει. Έτσι, σίγουρα τότε, υπάρχουν αυτά τα σφάλματα. Και αυτό είναι μια χαρά. Και έτσι ότι πίσω σε αυτό η πρώτη φορά που κάτι μπορείτε να γράψετε δεν λειτουργεί απαραίτητα. Αυτό έχει συμβεί σε μένα ως εδώ καλά. Αλλά ας εξετάσουμε τώρα πώς μπορούμε να εφαρμόζουν την ίδια ιδέα σε κάτι μπορεί να έχετε δει πριν, πράγμα που Είναι αυτή η παλιά τεχνολογία σχολείο here-- ένα πραγματικά μεγάλο τηλεφωνικό κατάλογο. Και ας υποθέσουμε ότι αυτό το τηλέφωνο το βιβλίο έχει 1.000 σελίδες και 1.000 ονόματα και τους αριθμούς αλφαβητικά στο εσωτερικό του. Λοιπόν, θα μπορούσαμε είδος εφαρμόσει μια παρόμοια ιδέα σε αυτό το πολύ πρόβλημα, χρησιμοποιώντας μόνο εμένα. Έχω ακριβώς το είδος της εξαπατημένοι με τη μόχλευση όλους εσάς με πολλές πολλές διαφορετικές CPUs ή εγκέφαλοι εκτέλεση κάποιου αλγορίθμου. Αλλά αν είναι μόνο λίγο παλιά μου, μπορώ ακόμα αξιοποιήσουν την ίδια την ουσία της ιδέας της διαίρεσης και κατακτά αυτό το πρόβλημα ξανά και ξανά, σύμφωνα με την οποία τα μισά από εσάς, μισό από εσάς, τα μισά από εσάς, τα μισά από εσάς, θεωρητικά διατηρούνται κάθεται κάτω, μέχρι που έμειναν, θεωρητικά, με ένα μόνο άτομο. Έτσι, σε αυτό το παλιό σχολείο τεχνολογικές εξελίξεις, εμείς δεν κάνουμε Πρέπει αυτό map-- αυτό παλαιάς τεχνολογίας σχολείο, θα μπορούσαμε να αρχίσει να ψάχνει για κάποιον όπως ο Mike Smith, μία σελίδα τη φορά. Και βλέπω ότι δεν υπάρχει, ο Mike δεν είναι εδώ. Είμαι ακόμα στο τμήμα Α. Τελικά, θεωρώ τον εαυτό μου στο τμήμα Β. Και αυτό είναι ένα algorithm-- βήμα-βήμα οδηγίες. Ξεκινήστε από την σελίδα αρχή και ένα σε έναν χρόνο, ψάξτε για τον Mike Smith. Είναι αυτό correct-- αυτό αλγορίθμου ή προσέγγιση; Ναι, αυτό είναι σωστό. Αν ο Mike είναι εδώ, τελικά Θα πάρω σε αυτόν. Αλλά δεν είναι αποτελεσματική. Είναι προφανώς πολύ αργή. Γι 'αυτό και μπορούν να αξιοποιήσουν το ίδια twosies πλησιάσει. Μπορώ να κάνω το είδος των δύο, τέσσερις, έξι, οκτώ, 10, 12. Είναι δύο φορές πιο γρήγορα. Πάω να φτάσετε στο Mike γρηγορότερα αν υπάρχει. Είναι σωστό? Ναι, αλλά έχω ακούσει little-- όχι. Τώρα άκουσα ένα όχι. Ναι. Υπάρχει ένα bug δυνητικά. Ίσως ο Mike παίρνει απλά λάθος ανάμεσα σε δύο σελίδες, επειδή είμαι πετούν μέσα αυτό δύο σε έναν χρόνο. Έτσι τουλάχιστον χρειαζόμαστε μερικά είδος λύση υπό όρους. Θέλω να πω, hey, αν χτύπησα κάποιον του οποίου η όνομα ξεκινά με ένα Τ αντί μιας S, Καλύτερα να διπλασιάσει πίσω τουλάχιστον μία σελίδα. Έτσι, με λάθη στην αρχή, αλλά επιδιορθώνεται. Αλλά κανένας από εμάς δεν πρόκειται να ψάξουν για Mike Smith μέσω τηλεφώνου 1,000 σελίδα να κλείσετε μια σελίδα τη φορά. Τι είναι ένα φυσιολογικό άτομο πρόκειται να κάνει; Θα πάμε για να πάει με τα S, το εάν ξέρατε όπου τα S του. Μπορείτε να πάτε περίπου στη μέση ή ελαφρώς λοξή προς το τέλος. Και βλέπω εδώ κάτω και Είμαι στο τμήμα Μ. Αλλά τι ξέρετε σχετικά με αυτό το πρόβλημα τώρα, ότι δεν ξέραμε απαραιτήτως πριν με όλους μας απλά μετρώντας τους εαυτούς μας ισοδύναμα; Λοιπόν, ο Mike είναι προφανές ότι θα να είναι σε αυτό το μισό του βιβλίου αν αυτός είναι καθόλου εδώ επειδή είναι ταξινομημένο. Και έτσι μπορείτε πολύ dramatically-- [Λαχανιάσει] Ξέρω. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Είναι πραγματικά πολύ εύκολο, αν μπορείτε να κάνετε κάτω από τη σπονδυλική στήλη εκεί. Αλλά μπορείτε στη συνέχεια να ρίξει το ήμισυ του προβλήματος μακριά. Τώρα, είμαι αριστερά με την ίδια problem-- βρείτε Mike Smith σε ένα τηλέφωνο book-- αλλά τώρα το βιβλίο του τηλεφώνου ξεκινά στις Μ και πηγαίνει ως το Ω, αλλά είναι το ήμισυ τόσο μεγάλη. Αλλά αυτό είναι αυτό που είναι εντυπωσιακό. Ακριβώς όπως και στη θεωρία, σας παιδιά, όταν όλοι κάθισε μόνο κατά το ήμισυ σε μια στιγμή, το πρόβλημα πήρε το μισό τόσο μεγάλη, το ήμισυ τόσο μεγάλη, ξανά και ξανά. Έτσι έχει γίνει αυτό το πρόβλημα η ίδιο πρόβλημα, αλλά το μισό τόσο μεγάλη. Τώρα είναι ένα πρόβλημα 250 σελίδα. Από τη στιγμή που συνειδητοποιώ, OH, είμαι στο τμήμα Τ κατά λάθος. Έχω πάει πάρα πολύ μακριά. Μπορώ να ρίξει ότι το ήμισυ του τηλεφωνικού καταλόγου μακριά. Τώρα, είμαι κάτω σε ένα τρίμηνο του προβλήματος. Και μπορείτε να επαναλάβετε, επαναλαμβάνω, επαναλάβετε μέχρι, στη θεωρία, είστε άφησε με μόνο μία σελίδα. Και αν ο Mike είναι σε αυτή τη σελίδα, Μπορώ τώρα να λύσει αυτό το πρόβλημα. Αλλά το πόσο γρήγορα το έκανα λύσει; Στην πρώτη περίπτωση, μου πήρε σαν ίσως 1.000 βήματα για να βρείτε τον Mike Smith. Θα μπορούσε να λάβει me-- Πήρα τον τηλεφωνικό κατάλογο και άρχισα να ψάχνω μία σελίδα τη φορά, και ο Mike θα μπορούσε να είναι 1.000 σελίδες αργότερα. Δεύτερη προσέγγιση ίσως μου παίρνει 500 βήματα, γιατί Πετάω μέσω δύο κάθε φορά. Και η τρίτη προσέγγιση όμως, είναι ιδιαίτερα ισχυρό. Αλλά ας εξετάσουμε τι πραγματικά έκανε με αυτή την τρίτη προσέγγιση. Θα έχω αυτό που θα καλέσω ακριβώς αυτά δηλώσεις εδώ, ένα κάθε φορά. Σήκωσε ένα τηλεφωνικό κατάλογο. Ανοίξτε στη μέση του τηλεφωνικού καταλόγου. Κοιτάξτε τα ονόματα. Και τότε τα πράγματα παίρνουν μια μικρή πιο διανοητικά ενδιαφέροντα, αν εξακολουθεί να είναι απλό. Αν Smith είναι μεταξύ των ονόματα στον εν λόγω τρέχουσα σελίδα, Στη συνέχεια κάνουμε κάτι υπό όρους. Είναι σαν μια διακλάδωση του δρόμου. Καλέστε Mike. Αν ο Mike είναι μεταξύ των ονομάτων σε αυτή τη σελίδα, που ονομάζεται Μάικ. Αλλά κάνουμε μόνο γραμμή τέσσερα, αν γραμμής δέντρο, αν θέλετε, είναι αλήθεια. Η απάντηση στο ερώτημα αυτό είναι ναι. Άλλο αν Smith είναι νωρίτερα στο book-- Με άλλα λόγια, αν είμαι στο τμήμα Μ και ψάχνω για κάποιον να η αριστερά, τότε τι πρέπει να κάνω Είναι κάτι πολύ παρόμοιο. Τότε θα πρέπει να ανοίξει στη μέση του αριστερού μισού του βιβλίου. Έτσι πάει αριστερά, και στη συνέχεια, επιστρέψτε στο βήμα δύο. Κοιτάξτε τα ονόματα εκεί. Έτσι με άλλα λόγια, κάνουν το ίδιο πράγμα, αλλά σε ένα πρόβλημα που είναι κατά το ήμισυ. Ξέρεις τι άλλο; Αν Smith είναι αργότερα στο βιβλίο με βάση τη σελίδα κοιτάζω, ανοικτή για τη μέση του δεξί μισό του βιβλίου και στη συνέχεια να επιστρέψετε και πάλι στο βήμα δύο, else-- υπάρχει μια τέταρτη δυνατότητα εδώ. Του Mike είτε εδώ είτε προς τα αριστερά ή προς τα δεξιά ή όχι εκεί. Και εδώ έχουμε καλύτερη θεωρούν αυτό. Και στην πραγματικότητα, αν είχατε ποτέ υπολογιστή σας, απλά συντριβή σε σας, ότι είναι μερικές φορές, αλλά όχι πάντα, το αποτέλεσμα μόνο ενός ανθρώπου προγραμματιστής δεν συνειδητοποιώντας, ω διάολε, υπάρχει στην πραγματικότητα αυτό το τέταρτο σενάριο. Και αν δεν γράφουν κώδικα για να χειριστεί αυτό το σενάριο, Μερικές φορές δεν ξέρεις τι μπορεί να κάνει ο υπολογιστής. Και πράγματι ένα πρόγραμμα θα μπορούσε να συντριβή. Αλλά στην περίπτωση αυτή, σκέφτηκα γι 'αυτό και είπα, άλλο σταματήσουν το κάπνισμα, γιατί αυτό είναι το τέταρτο λογική πιθανό σενάριο. Τώρα, ας προσθέσουμε μερικά λεξιλόγιο έτσι μπορεί να αρχίσει να πετάξει γύρω από τους όρους ότι είναι κατά τα άλλα αρκετά διαισθητική. Όλα τα πράγματα που έχω μόνο επισημαίνονται με κίτρινο χρώμα εδώ, Είμαι ακριβώς πρόκειται να το λειτουργίες ή διαδικασίες. Είναι ακριβώς το είδος των δράσεων. Έτσι pick up, ανοιχτή σε, κοίτα σε, κλήση, ανοικτή, ανοικτή, quit-- αυτά είναι μόνο ενέργειες, ή εμείς θα καλέστε τους πιο επίσημα, λειτουργίες. Εν τω μεταξύ, τώρα σε κίτρινο, Έχω επισημαίνονται τα πράγματα ερμήνευα-- ας αρχίσει καλώντας τους όρους ή υποκαταστήματα. Αυτά είναι τα σημεία λήψης αποφάσεων όπου μπορείτε να πάτε με αυτόν τον τρόπο, με τον τρόπο αυτό, ή κάποια άλλη κατεύθυνση ακόμα. Έτσι, αυτές θα είναι συνθήκες. Και τώρα αυτό είναι λίγο περίπλοκη. Ας το ονομάσουμε αυτές τις ερωτήσεις Boolean εκφράσεις, μετά από κάποιον με το επίθετο Bool. Και μια Boolean έκφραση Είναι απλά κάτι που είναι είτε αληθής ή ψευδής, ναι ή όχι. Έτσι είναι το ερώτημα του οποίου η απάντηση που νοιάζονται για, έτσι ώστε να σε μια κατάσταση κάνει μια decision-- πάρει πίσω μια απάντηση, και στη συνέχεια να πάει αριστερά ή δεξιά, ή κάτι άλλο συνολικά. Και, στη συνέχεια, τέλος, αυτά γραμμές here-- πάει πίσω στο βήμα δύο, πάει πίσω στο βήμα two-- θα μπορούσαμε να υλοποίηση αυτής της ιδέας με διαφορετικούς τρόπους. Και στη συνέχεια, όσοι από εσάς με εμπειρία προγραμματισμού θα μπορούσε να γίνει ή μπορώ να φανταστώ να κάνει αυτό με διαφορετικό τρόπο. Αλλά για τη σημερινή σκοπούς, είναι μόνο η ιδέα που έχει σημασία. Αυτό που προκαλεί ό, τι θα γενικά ονομάζουμε ένα loop-- κάποιο είδος του κύκλου, επειδή αυτό είναι κάνοντας μου να κάνω κάτι και πάλι. Έτσι τώρα, ας εξετάσουμε πόσο καλό είναι αυτό αλγόριθμος είναι. Είναι σωστό. Αν του Mike στο βιβλίο, είναι ένα από τα εκείνους τέσσερις scenarios-- ξανά και ξανά και πάλι, εμείς θα τον βρούμε. Αλλά πόσο καλό είναι αυτό; Λοιπόν, δεν έχουμε να είναι πολύ τυπική εδώ. Αλλά ας οικόπεδο κάτι, x και y, για να πάρει μια αίσθηση του σχήματος αυτού του προβλήματος. Στον άξονα χ είναι εδώ το μέγεθος του προβλήματος μου. Και ένα άξονα y εδώ θα είναι η ώρα να λύσουμε. Έτσι, ίσως αυτό είναι ο αριθμός των σελίδων. Ίσως αυτή να είναι δευτερόλεπτα ή σελίδα turns-- οτιδήποτε. Ωστόσο, θέλετε να μετρήσετε είναι τι αυτή η εικόνα θα εκπροσωπήσει. Και ότι το πρώτο αλγόριθμο, Πάω για να περιγράψει ως απλά μια ευθεία γραμμή. Αν υπάρχει n σελίδες ο τηλεφωνικός κατάλογος, τότε θα μπορούσε να μου πάρει όσες όπως n βήματα για να βρείτε τον Mike. Αν Verizon ή η τηλεφωνική εταιρεία προσθέτει μία ακόμη σελίδα επόμενο έτος, θα μπορούσε να μου πάρει ένα ακόμη step-- μία μονάδα του χρόνου να βρει τον Mike. Έτσι, υπάρχει μόνο αυτή αναλογία ένα προς ένα. Είναι μια ευθεία κλίση της γραμμής. Εν τω μεταξύ, η δεύτερη algorithm-- αν είμαι πηγαίνει δύο σε δύο time--, τέσσερις, έξι, οκτώ, ή double-- πηγαίνει μέσα από τις σελίδες δύο φορές κάθε φορά, δύο κάθε φορά, εξακολουθούν να είναι ευθεία γραμμή. Υπάρχει τώρα μια δύο παρα ένα αναλογία, αλλά ακριβώς λίγο πιο κάτω. Έτσι, αν υπάρχει αυτό πολλές σελίδες στο διάγραμμα εδώ σε κίτρινο, ότι θα μπορούσε να μου πάρει αυτό πολλά βήματα ή δευτερόλεπτα, Αλλιώς πρόκειται να με πάρει διπλάσια από την κόκκινη γραμμή. Αλλά η πράσινη γραμμή είναι το πραγματικό πακέτο. Αυτό είναι ό, τι συνήθως καλέσετε έναν logorithm-- καταγραφής του n, όπου n είναι ο αριθμός των σελίδων. Αλλά είναι το σχήμα που έχει σημασία σήμερα, γιατί δεν έχουμε ακόμη και να σκεφτεί για τη χάραξη σημεία. Σκεφτείτε ένα ακραίο σενάριο. Ας υποθέσουμε ότι η Verizon αύριο διπλασιάζει το αριθμό των σελίδων στο εν λόγω τηλεφωνικό κατάλογο, από 1.000 έως 2.000. Στο πρώτο αλγόριθμο, Ι μπορεί να σπαταλήσει ένα επιπλέον 1.000 βήματα που αναζητούν Mike, μόνο και μόνο επειδή Verizon διπλασίασε το μέγεθος του βιβλίου. Η δεύτερη algorithm-- ότι θα μπορούσε πάρε με επιπλέον 500 βήματα. 1.000 περισσότερες σελίδες, θα πάω δύο σε ένα time-- 500 περισσότερα βήματα για να βρείτε τον Mike. Αλλά αυτό τρίτο αλγόριθμο είναι το είδος των μαγικών. Verizon διπλασιάζει τον αριθμό σελίδες από 1.000 έως 2.000, αλλά πόσα περισσότερα βήματα κάνει μου πάρει να ψάξουν για τον Mike; Είναι μόνο ένα, γιατί δεν μπορώ απλά σχίσει το βιβλίο του τηλεφώνου για μια ακόμη φορά από ένα πρόβλημα 2,000 σελίδα σε ένα 1.000 πρόβλημα της σελίδας, και voila. Έχω πάρει ένα τεράστιο δάγκωμα από αυτό. Και αν πάτε πραγματικά ακραία, ας υποθέσουμε ότι στον τηλεφωνικό κατάλογο Η εταιρεία είχε κάτι τρελό σαν μια 4000000000 σελίδα τηλεφωνικό κατάλογο. Λοιπόν πόσα βήματα μπορεί να το πάρει να βρείτε Mike Smith σε μια 4000000000 σελίδα τηλεφωνικό κατάλογο; Είναι ένα μεγάλο αριθμό, αλλά μόλις 4 δισεκατομμύρια 2.000.000.000 - 1000000000 για να τα 500 εκατομμύρια, 250 million-- ακόμα Ακούγεται σαν μεγάλους αριθμούς, αλλά είμαι πολύ γρήγορα να πάρει σε μικρότερες τιμές. Και στην πραγματικότητα, αν το κάνω τα μαθηματικά δεξιά, μπορώ μόνο να διαιρέσει 4000000000 κατά περίπου 32 φορές πριν Θα πιάσουμε μόνο ένα. Έτσι, αν το βιβλίο του τηλεφώνου ήταν 4 μακρά δισεκατομμύρια σελίδες, δεν είναι μεγάλη υπόθεση. Μέσα σε λίγα δευτερόλεπτα, ίσως 32 δευτερόλεπτα, θα μπορούσα να το διαιρέσει σε μισό και τελικά να βρει Mike ή καταλήγουν στο συμπέρασμα ότι δεν υπάρχει. Και αυτή είναι η ουσία της μια algorithm-- ένα καλό αλγόριθμο. Και αυτό είναι ένα από τα στόχοι μιας κατηγορίας, όπως αυτό, προσπαθεί να καταλάβω πώς μπορώ να κάνω λύσει το πρόβλημα όχι μόνο σωστά, όπως κάνω πάντα ήξερε πώς να το κάνουμε ένα σελίδα σε ένα time-- αλλά σωστά και καλά. Πώς μπορώ να σχεδιάσουν καλή λύσεις στα προβλήματα; Έτσι, ας ρίξουμε μια στιγμή εδώ και να σας δώσει μια αίσθηση τώρα του CS50 η πορεία itself-- εισαγάγει μέλη του προσωπικού λίγα μαθήματος. Λίγο πριν 2:00, εμείς θα να λάβει ένα σύντομο διάλειμμα έτσι ώστε όσοι από εσάς που ψωνίζουν μπορεί να πάπια έξω και να πάρει μια εξετάσουμε κάποια άλλη κατηγορία και να παρακολουθήσουν το υπόλοιπο αυτής της σε απευθείας σύνδεση. Αλλά για τώρα, επιτρέψτε μου να εισαγάγει CS50, η ίδια η τάξη, και ιδιαίτερα αυτό που είναι νέο. Έτσι, η τελευταία άνοιξη, πέρασε αρκετά ένα κομμάτι της time-- το προσωπικό του μαθήματος και I-- σκέψης για το τι είναι που θέλουμε CS50 να είναι, και πηγαίνοντας πίσω στην πρώτη αρχές, να το πω έτσι, να εξετάσει τι είναι αυτό που θέλουμε αυτό το μάθημα για να μοιάζουν και να είναι όπως και για τους σπουδαστές του. Και έτσι θα δείτε στο πρόβλημα που το μηδέν καθώς, μια πρόσκληση να ρίξετε μια ματιά σε αυτό URL που συνοψίζει μερικά από τα κίνητρα πίσω από το ακόλουθα χαρακτηριστικά της πτώσης 2016. Έτσι, όπως μπορείτε να έχετε σταχυολογηθεί από το TL: ελεημοσύνη DR, η διδακτέα ύλη και σήμερα, καθώς και από Ο κατάλογος Φυσικά, φέτος στο CS50, είστε μόνο αναμένεται να παραστούν today-- έτσι η δουλειά καλά done-- και η τελευταία διάλεξη στις 21 Νοεμβρίου. Και είστε ευπρόσδεκτοι, αλλά δεν αναμένεται να παρακολουθούν αυτές τις διαλέξεις στη μέση, γιατί αυτό που κάνουμε του τρέχοντος έτους, είναι τα γυρίσματα σε πραγματικό χρόνο το υλικό του μαθήματος. Έτσι, τα πάντα θα παραμείνουν τρέχουσες και ενσωματώθηκε όσο καλύτερα μπορούμε can-- τρέχοντα γεγονότα και τις συνομιλίες ότι οι λαοί θα μπορούσε να έχει στη βιομηχανία του κόσμο, αλλά κάνοντας αυτό το υλικό διαθέσιμα, ως εκ τούτου, ακόμη και earlier-- πλήρης, με πλήρη μεταγραφές κειμένου και έρευνας και συνδέσεις με άλλους πόρους. Και πράγματι, έχουμε ήδη υποστηρίζοντας για κάποιο χρονικό διάστημα και εμείς τώρα πιστεύουμε αυτό, ότι μπορούμε να δημιουργήσουμε, ψηφιακά, μια πιο συναρπαστική, πιο συναρπαστικό εκπαιδευτική εμπειρία, σε αντίθεση να συγκεντρώσει εδώ μερικά 23 φορές αυτοπροσώπως, ακούγοντας κάποιος μου αρέσει απλά μιλάμε για την επιστήμη των υπολογιστών, σε αντίθεση με την εμπλοκή πιο ενεργά. Έτσι θα δείτε το αναλυτικό πρόγραμμα του μαθήματος ένα σκίτσο του εξαμήνου εδώ, μαζί με όταν διαλέξεις θα να κινηματογραφηθεί, στην οποία είστε ευπρόσδεκτη, αλλά δεν αναμένεται, και πότε θα να κυκλοφορήσει στην ιστοσελίδα του μαθήματος. Και τι θα κάνουμε εδώ Τετάρτη αρχίζουν την επόμενη εβδομάδα, είναι πολύ πιο στενά, με μόνο εκείνοι οι λαοί που θέλουν να συμμετάσχουν, είναι το λεγόμενο βόλτα, όπου και οι κεφαλές του μαθήματος θα κάνει πραγματικότητα τα πράγματα λίγο πιο οικεία εδώ κάτω στην ορχήστρα ενότητα, εξακολουθούν να έχουν κάποια τεχνολογία και τα πόδια μέσα από το σετ πρόβλημα τρέχουσας εβδομάδας, και να σας προσφέρουμε particularly-- αν μεταξύ των Οι λιγότερο comfortable-- όλα τα πιο καθοδήγηση που μπορεί να θέλετε ή χρειάζονται για την πρόκληση της εβδομάδας. Και ομοίως, για όσους δεν μπορούν να παρακολουθούν εκείνους που στο πρόσωπο, δεν είναι μεγάλη υπόθεση. Εκεί θα οδηγήσει παρόμοια με ένα από τα ανώτερα στελέχη του μαθήματος, Zamalya, η ίδια δυνατότητα ενσωματωμένου το πρόβλημα οι ίδιοι θέτει. Πρόβλημα θέτει το τρέχον έτος θα κυκλοφορήσει την Παρασκευή και πλέον κάνει επτά ημέρες αργότερα, αλλά 10 ημέρες later-- σκόπιμα επικαλύψεις με κάθε πρόβλημα οριστεί, έτσι ώστε να φιλοξενεί καλύτερα, ελπίζουμε, άμπωτη και τη ροή στα προγράμματα των φοιτητών, ειδικά όταν εξετάσεις προόδου ή τον κλασικό αθλητισμό ή ακαδημαϊκούς ή εξωσχολικές τείνουν να έρχονται και να φεύγουν ειδικά μέσα εξαμήνου. Αυτό πρέπει να σας δώσει λίγο περισσότερο διακριτική ευχέρεια ως προς το αν μπροστά φορτώσει την εβδομάδα σας με CS50 ή την πλάτη του φορτίου αυτό το επόμενο σαββατοκύριακο αντ 'αυτού. Έτσι κοιτάξουμε να εξεταστέα ύλη του μαθήματος εδώ για το χρονοδιάγραμμα αυτών. Και θα παρατηρήσετε πάρα πολύ μεταξύ οι αλλαγές του τρέχοντος έτους, για όσους πιο εξοικειωμένοι με προγραμματισμού στο παρελθόν, θα ξεκινήσει το εξάμηνο, όπως θα είμαστε σήμερα στο Ξυστό, δίνει ιδιαίτερη έμφαση στη γλώσσα που ονομάζεται C, και στη συνέχεια να μην μετάβαση σε PHP, αλλά σε μια γλώσσα που ονομάζεται Python προς το τέλος του εξαμήνου στο πλαίσιο του web προγραμματισμό, μαζί με SQL και JavaScript, HTML, CSS, και ακόμα περισσότερα. Και απαντώντας σε συχνές ερωτήσεις, είναι πράγματι η περίπτωση ότι η CS δεν είναι τόσο τρομακτικό όπως εγώ κάποτε θεωρούν ότι ήταν, αλλά είναι και πολύ δουλειά όπως είχα ακούσει ότι θα μπορούσε να είναι. Αλλά αυτό είναι το να πούμε ότι εδώ είναι μερικά στατιστικά στοιχεία από το φθινόπωρο του 2015 το σώμα των φοιτητών, σύμφωνα με την οποία οι οριζόντιες μπλε γραμμές αντιπροσωπεύουν το μέσο αριθμό των ωρών αναφερθεί. Και θα δείτε έναν μέσο όρο έξι έως 10 12-- ίσως 16 ή έτσι και ούτω καθεξής, αλλά με υψηλή διακύμανση να είναι σαφής. Και έτσι να συνειδητοποιήσουμε ότι δεν υπάρχει μόνο οι μαθητές πιο άνετη και λιγότερο άνετα κατά τη διάρκεια, αλλά μια αντίστοιχη υποστήριξη δομή για να πάρει τους φοιτητές μέσα από το εξάμηνο με επιτυχία. Πράγματι, απαντώντας σε συχνές ερωτήσεις, θα πρέπει να παίρνετε CS50 ως πρώτο έτος; Απολύτως. Και στην πραγματικότητα, εγώ δεν μετανιώνω Δεν έχει βρει το δρόμο μου ή να βρεθεί ένα νέο πεδίο ότι το πρώτο έτος. Και θα πρέπει να πάρετε CS50 με άλλα μαθήματα, σίγουρα ως well-- και η γενική συμβουλή θα μπορούσαμε δίνουν στους μαθητές, ότι CS50 είναι πιθανώς δεν είναι το είδος της κατηγορίας ή εισαγωγή κατηγορίας ότι θα πρέπει να πάρετε με τρεις άλλο ή άλλα τέσσερα ρ-set τάξεις. Αλλά εάν παίρνετε άλλα δύο π-σετ τάξεις, κάτι άλλο, και CS50, απολύτως διαχειρίσιμη. Είχα πολλούς μαθητές στο παρελθόν πράξει με μεγάλη επιτυχία. Και για να σας πάρει προς το ότι τελειώσω γραμμή με επιτυχία, δεν το μάθημα έχει sections-- διαφορετικές πίστες για τους φοιτητές λιγότερο άνετη, πιο άνετα, και κάπου ενδιάμεσα, σύμφωνα με την οποία κατά τη διάρκεια του πρώτο σετ πρόβλημα, θα σας ζητηθεί να περιγράψει τον εαυτό σας. Και αν είστε μεταξύ εκείνων λιγότερο άνετο, είναι το είδος του πράγματος ότι το μόνο που μάλλον γνωρίζετε. Και πράγματι, αυτό ήταν η αυξανόμενη δημογραφική στο CS50 για αρκετά χρόνια. Από το περασμένο φθινόπωρο για παράδειγμα, το 58% της κατηγορίας περιγράφεται εαυτούς τους ως μεταξύ εκείνων λιγότερο άνετα, με 9% μεταξύ εκείνων περισσότερα άνετα, και στη συνέχεια οι άλλοι μαθητές εκεί κόκκινο περιγράφουν τους εαυτούς τους ως κάπου ανάμεσα. Και θα δείτε εδώ τα θέματα συνολικά και το χρονοδιάγραμμα των τμημάτων, τα οποία όλα προσφέρονται στο πρόσωπο, στο σε πραγματικό χρόνο, με την πορεία του καταπληκτικό προσωπικό της διδασκαλίας υποτρόφων και οι βοηθοί Φυσικά, μερικοί από τους οποίους θα ανταποκρίνονται ακριβώς σε μια στιγμή. Τμήματα τους εαυτούς τους, όπως θα δείτε, θα είναι Δευτέρα και την Τρίτη και την Τετάρτη, έτσι ώστε να σας επιτρέψει να βουτήξει στο μετά την εμπλοκή, αν έτσι επιλέξουν, κατά τη διάρκεια του διάλεξη νωρίτερα αυτή την εβδομάδα. Και μετά τις ώρες γραφείου, το οποίο Σίγουρα, με κάθε χρόνο που περνά, Έχουν όχι λιγότερο από ένα πρόκληση για το μάθημα. Και φέτος, δεν είμαστε το σχεδιασμό μόνο για να ασκεί τα καθήκοντά του hours-- ένα σε ένα ευκαιρίες για βοήθεια για οι μαθητές την Τετάρτη Πέμπτη και τις Κυριακές, το τελευταίο από αυτά είναι το απόγευμα από το σχεδιασμό να μειώσει ορισμένες από το άγχος που πάντα προκύπτει με αργά τη νύχτα p-settting με προθεσμία looming-- αλλά θα πρέπει επίσης να προσφέρονται ώρες γραφείου κάθε Δευτέρα και Τρίτη και Τετάρτες και τις Παρασκευές και τα Σάββατα, χάρη στους φίλους μας στο HSA. CS50 έχει πλέον το δικό του χώρο για τους φοιτητές και το προσωπικό CS50, στην κορυφή 67 Όρος Auburn Street, ακριβώς εκεί στην πλατεία του Χάρβαρντ. Το όραμα για το οποίο είναι ότι CS50 είναι TFs και ΑΠ σε όλη τη διάρκεια της εβδομάδας, λίγο πολύ σε όλη σχεδόν ημέρες, θα είναι εκεί για υποστήριξη. Έτσι, αν έχετε κάποια ερώτηση σχετικά με μια π-σετ ή αισθάνεστε λίγο μπλοκάρει ή μια μικρή σύγχυση, και καλό, έχετε μια ώρα ή μισή ώρα μεταξύ των τάξεων, ειδικά στην square-- μπορεί να σας ποπ και έχουν αυτό το ερώτημα απαντά της έχουν αυτή τη σύγχυση clarified-- πολύ στο πνεύμα, είστε εξοικειωμένοι, των μαθηματικών δική ερωτήσεις μαθηματικά κέντρο τμήματος, αλλά λίγο πολύ όλο το εικοσιτετράωρο ανά [? Gcal?] Που θα δημοσιεύσετε σε απευθείας σύνδεση. Διδακτική είναι επίσης διαθέσιμα για εκείνους φοιτητές, ελεύθερα από την πορεία του το δικό της προσωπικό, αν θα θέλατε πιο οικείο το ένα στο ένα, ή μόνο δύο ή τρεις συμμαθητές, που εργάζονται με ένα από τα μέλη του προσωπικού του μαθήματος. Και πράγματι, αυτά εδώ είναι ακριβώς ορισμένα από τα μέλη του προσωπικού του μαθήματος, μερικοί από τους οποίους θα ανταποκρίνονται ακριβώς σε μια στιγμή. Στην πραγματικότητα, CS50 δική το κεφάλι της διδασκαλίας τους συναδέλφους, και φυσικά το κεφάλι βοηθός, και διδάσκαλος, θα μπορούσε να έρθει επάνω, να επιτρέψει να πω ένα γεια. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] ΟΜΙΛΗΤΗΣ 1: [δεν ακούγεται]. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] ΟΜΙΛΗΤΗΣ 2: [δεν ακούγεται]. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] ΟΜΙΛΗΤΗΣ 3: [δεν ακούγεται]. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] DAVID Malan: Και μας επιτρέψει να φέρει επί του σκάφους δύο CS50 πιο ανώτερα στελέχη, ο Rob και Zamayla, καθώς και. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Πράγματι, τόσο ο Rob και Zamayla ήταν μαζί μας για τόσο πολύ καιρό, ότι ήμουν σε θέση να μπω σε αρχεία CS50 του και να βρείτε αυτό το πολύ SD πλάνα από τις συμμετέχουσες στον εαυτό τους στάδιο πριν από μερικά χρόνια. ROB: [δεν ακούγεται]. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] ZAMAYLA: [δεν ακούγεται] [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] DAVID Malan: Σας ευχαριστώ. Έτσι, εκτός από αυτά τα μέλη της ομάδας εδώ, CS50 έχει μια ομάδα περίπου 100 μέλη του προσωπικού, όλοι εκ των οποίων θα είναι διαθέσιμο για τα τμήματα και ώρες γραφείου και τόσα άλλα. Και όπως λέει πάρα Rob, αυτό είναι η πιο σημαντική αναμόρφωση του CS50 στα 10 χρόνια ότι Έχω πάει σε [δεν ακούγεται]. [Δεν ακούγεται] επικεντρώθηκε ιδιαίτερα στην παροχή μιας δομής στήριξης, κλάδεμα μακριά πολλά το μεγαλύτερο μέρος που είναι ήδη συσσωρευτεί σε 10 χρόνια επαναληπτικών εξελίξεις σχετικά με το πρόβλημα σύνολα του μαθήματος. Έτσι φέτος, όχι μόνο στην τάξη, αλλά Επίσης, με τη μορφή του προβλήματος του μαθήματος σύνολα, θα πρέπει να βρείτε τα πράγματα να να είναι πιο βελτιωμένο, χλοοτάπητα, πολύ πιο εύχρηστο από ό, τι στην διάρκεια των προηγούμενων ετών, όπως ρίξει μερικές από τις αποσκευές που είναι που αναπτύχθηκε από τη φύση της εξελισσόμενης έτους με το χρόνο και την επανάληψη. Έτσι, το νέο και βελτιωμένο αρχίζει σήμερα. Θα συναντήσετε λίγο περισσότερο από το προσωπικό μαθήματος στο [δεν ακούγεται] στις 2:30, όπου σερβίρονται, ως παράδοση, κέικ. Υπάρχει ένα κομμάτι κέικ περισσότερα από αυτό, αλλά θα Γνωρίστε Erin και ο Tobias και άλλοι ακόμα. Και επιτρέψτε μου να σας δώσω μια περιοδεία πριν ακούμε από μερικά από τα άλλα μέλη του προσωπικού στην τάξη, για το τι περιμένει, καθώς και. Στην πραγματικότητα, πάντα ξεκινάμε CS50 του εξάμηνο αυτό το ερχόμενο Σάββατο, με ό, τι λέγεται Ημέρα CS50 παζλ. Δεν έχει τίποτε να κάνει με την επιστήμη των υπολογιστών per se, αλλά με περίπου προβλήματος επίλυση γενικότερα. Και αν το επιλέξουν να συμμετάσχουν, ανά μερικές από τις προσκλήσεις, μπορεί να έχετε δει την πόρτα πέσει ή στη σκηνή εδώ, Είναι μια ευκαιρία σε ομάδες δύο ή τρία ή τέσσερα, να συμμετάσχουν για γρίφους και πίτσα και τα βραβεία και πιο-- αυτό το Σάββατο, μείνετε συντονισμένοι για περισσότερα. Θα βρείτε, επίσης, ότι κάθε Παρασκευή, σε Φωτιά και Πάγος, δεν φέρει CS50 ένα σωρό των μαθητών στο μεσημεριανό γεύμα, να κάνει ένα μεγάλο τάξη αισθάνονται πιο οικεία, και γενικά συγκεντρώνουν αποφοίτους και τους φίλους από τη βιομηχανία για να μιλήσουμε για αυτό που έχετε ήταν μέχρι Μετά την αποφοίτησή του. Ομοίως, φέτος, θα έχουμε εγκαινιάσει η πρώτη CS50 50 κωδικοποίησης contest-- ένα μέσα εξάμηνο δυνατότητα να μπορεί ο καθένας σε opt στη βάση, για να έχουν μια πρόκληση των πνευμάτων ενάντια συμμαθητές, και πάλι σε ομάδες των δύο ή τριών ή τέσσερις, χρησιμοποιώντας μόνο ότι ο προγραμματισμός καταλαβαίνω ότι θα πρέπει στη συνέχεια κάτω ζώνη σας μετά από μόλις έξι ή επτά εβδομάδων από την τάξη, και συμμετέχουν σε αυτό το είδος του ανταγωνισμού online-- αν θέλετε να ακονίσετε τη δική σας δεξιότητες πολύ περισσότερο σε αυτή την πρόκληση. Στο τέλος του εξαμήνου είναι η λεγόμενη CS50 Hackathon-- μια ευκαιρία που αρχίζει στις 7:00 PM τελειώνει στις 7:00 π.μ., και κατά μήκος του τρόπου είναι 12 ώρες το βράδυ για να βουτήξει στην τελική ταινία-- του μαθήματος μια ευκαιρία για το σχεδιασμό και να εφαρμόσουν τα περισσότερα τίποτα ενδιαφέροντος για να σας με τη διδασκαλία σας καθοδήγηση τους συναδέλφους του. Γύρω από 9:00 π.μ. κάνουμε συνήθως εξυπηρετούν πίτσα, 1.00 π.μ., Του Philippe, και οι λίγοι από εμάς που είναι ακόμα ξύπνιοι στις 5:00 π.μ., Δεν λεωφορείο μεταφερθούν με λεωφορείο προς τα κάτω το δρόμο προς IHOP για πρωινό. Και, στη συνέχεια, λίγες μέρες αργότερα είναι η λεγόμενη CS50 fare-- ένα τέλος της έκθεσης εξαμήνου γιορτή του πόσο μακριά τόσα πολλά του CS50 μαθητές έχουν έρθει από εβδομάδα μηδέν σε όλη τη διαδρομή μέχρι την εβδομάδα, και έχοντας κατά νου ότι το 73% των ατόμων συμμαθητές και η δική σας φέτος έχουν Ποτέ δεν λάβει μια τάξη CS πριν. Στην πραγματικότητα, για να επαναλαμβάνουν τόσο πολύ, εδώ είναι λίγα περισσότερα πρόσωπα από το προσωπικό CS50 του. ΟΜΙΛΗΤΗΣ 4: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 5: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 6: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 7: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 8: [δεν ακούγεται] ΟΜΙΛΗΤΗΣ 9: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 4: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 10: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 11: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 12: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 13: [δεν ακούγεται] ΟΜΙΛΗΤΗΣ 14: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 13: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 15: [δεν ακούγεται] ΟΜΙΛΗΤΗΣ 16: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ 11: [δεν ακούγεται] ΟΜΙΛΗΤΗΣ 5: [δεν ακούγεται]. DAVID Malan: Μερικές της ομάδας Οι ίδιοι ψώνια τάξεις. Αλλά αν τα μέλη αυτά του προσωπικού CS50 είναι εδώ, θα μπορούσε να έρθει σε για μια στιγμή. CS50 είναι TFs και ΑΠ και [; προσωπικό;] μέλη here-- αυτά είναι μόνο μερικά της faces-- ένας εκ των οποίων μόλις είδε, και μερικά other-- και μερικοί άλλοι ακόμη. Γιατί δεν πάμε μπροστά και να επιτρέψει εσείς ένα διάλειμμα πέντε λεπτών. Αν χρειαστεί να πάπια έξω για να τάξεις κατάστημα, αυτό είναι εντάξει. Και σε πέντε λεπτά, θα συνεχιστεί, ρίχνοντας μια ματιά σε Scratch-- πρώτη της γλώσσας προγραμματισμού μας, να πληρούν το προσωπικό του μαθήματος εδώ λίγο περισσότερο, και να επικεντρωθεί τελικά σχετικά με το πρόβλημα που μηδέν. Έτσι θα είμαστε πίσω σε πέντε λεπτά. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Εντάξει. Έτσι, είμαστε πίσω. Και στις υπόλοιπες μας φορά σήμερα, ο στόχος είναι να εξασφαλίσει ισότιμους όρους ανταγωνισμού από την άποψη της κάποια ορολογία, από την άποψη κάποιων ιδεών. Διότι πράγματι, σύμφωνα με μερικά από τα διαγράμματα νωρίτερα, υπάρχει πρόκειται να είναι μια σειρά από επίπεδα εμπειρίας στην τάξη, των οποίων ορισμένοι μαθητές έχουν ληφθεί κάποια προγραμματισμού πριν, ορισμένοι από τους οποίους δεν έχουν. Και έτσι με αυτό το πρώτο πρόβλημα που και με αυτή την πρώτη γλώσσα έχουμε την ευκαιρία να ξεκινήσετε να θεωρούμε δεδομένο μετά τη σημερινή μερικά κοινό λεξιλόγιο και την ιδέα. Και εμείς θα κάνουμε αυτό με τον τρόπο της πρώτη languages-- του μαθήματος εκτός από την C και Python και JavaScript και SQL και HTML και CSS, εμείς θα πρέπει να επικεντρώνονται αρχικά και μόνο για το πρόβλημα που μηδέν σε αυτή τη γραφική γλώσσα, που ονομάζεται Το μηδέν, που αναπτύχθηκε από το Media Lab του MIT κάτω από το δρόμο, για να βοηθήσει οι μαθητές και τα παιδιά ιδιαίτερα εκφραστούν algorithmically-- κατά τρόπο πιο συνεπή με τι θα μπορούσαμε να αποκαλέσουμε υπολογιστικής σκέψης. Και είναι μια χρήσιμη γλώσσα, διότι πολύ γρήγορα την επόμενη εβδομάδα σε μία εβδομάδα, εμείς τη μετάβαση σε μια πιο παραδοσιακών και απόκρυφες γλώσσα που ονομάζεται C, η οποία είναι καθαρά κειμένου. Μπορείτε να χρησιμοποιήσετε μόνο το πληκτρολόγιο σας σε Για να γράψετε οδηγίες όπως αυτά που εμφανίζονται στην οθόνη. Αλλά ακόμα κι αν έχετε δει ποτέ μια γλώσσα προγραμματισμού πριν, σε μόλις ρίχνοντας μια ματιά αυτό, όλα είναι το αινιγματικό, μπορείτε να μαντέψετε ότι ίσως εκτυπώνει Hello World. Αλλά υπάρχουν πολλά συντακτική γενικά εκεί. Υπάρχει το παράξενο hash Σύμβολο ή hash tag επάνω στην κορυφή. Υπάρχει οι αγκύλες, μερικά παρενθέσεις, αγκύλες, ημι-colon-- υπάρχει μόνο τόσο πολύ την οπτική σύνταξη που παίρνει με τον τρόπο. Ξεκινάμε την πορεία με Το μηδέν, έτσι ώστε να πάρει παρελθόν όλα αυτά διανοητικά πληκτικός περισπασμούς, και να επικεντρωθεί αντ 'αυτού στις ιδέες. Στην πραγματικότητα, αυτό μπορεί να είναι πριν. Αυτό, για το σκοπό αυτό, την εβδομάδα θα είναι μετά. Αυτό, Αυτή η γραφική γλώσσα Scratch, είναι το πώς θα εφαρμόσουν το ίδιο program-- ένα πρόγραμμα που όταν τρέχει, απλά λέει hello world. Και τι είναι ωραίο για το Scratch είναι ότι είναι αυτό το γραφικό προγραμματισμό περιβάλλον που χρησιμοποιεί κομμάτια του παζλ ή μπλοκ, που αλληλοσυνδέονται μόνο μαζί αν κάνει λογικό νόημα να το πράξει. Και με το Scratch μπορείτε να αναπτύξετε animations και διαδραστικά παιχνίδια και της τέχνης, και οποιοσδήποτε αριθμός από τα πράγματα που μπορείτε να φανταστείτε στο μυαλό σας, και να τις εφαρμόσουν απλά με μεταφορά και απόθεση κομμάτια του παζλ. Και πράγματι, θα έχουμε τη δυνατότητα για να εκφράσουν κάποιες από τις ίδιες ιδέες που ανέφερα μόλις μια στιγμή πριν, στο πλαίσιο της Mike Smith και την αναζήτηση ενός κινητού τηλεφώνου book-- πράγματα όπως λειτουργίες, απλά δράσεις, τα πράγματα όπως βρόχους που κάνουν τα πράγματα ξανά και ξανά, μεταβλητές, οι οποίες είναι κάτι που θα εισαγάγει, αλλά είναι γνωστό ίσως από algebra-- απλά κάποιο είδος κράτησης θέσης για να αποθηκεύσετε κάποια τιμή που θα μπορούσε Πρέπει later-- Boolean εκφράσεις, όπου αυτοί ναι όχι ή αλήθεια ψευδή ερωτήσεις από πριν. Συνθήκες είναι εκείνες πιρούνια στο road-- τα υποκαταστήματα να το πω έτσι. Και τότε υπάρχουν μερικά φανταχτερά χαρακτηριστικά θα δούμε ακόμα και σήμερα, ονομάζονται συστοιχίες και τα θέματα και γεγονότα, ότι θα επανεξετάσουμε τότε πάνω φορά σε διαφορετικές γλώσσες. Αλλά Scratch μας επιτρέπει για να εξερευνήσετε όλα αυτά. Έτσι, εδώ στο Scratch, αυτό το μοβ μπλοκ είναι ό, τι μια λειτουργία είναι συνήθως πρόκειται να μοιάσει. Αυτό το μοβ κομμάτι του παζλ που έχει μερικά λέξη, όπως για παράδειγμα, η οποία είναι η δράση, και, στη συνέχεια, θα μπορούσε να έχει μια επιχείρημα ή parameter-- κάποιο τρόπο του είδους παραμετροποίηση τι μπλοκ κάνει έτσι ώστε να μην είναι προκαθορίζεται από MIT τι λέει αυτό το μοβ μπλοκ. Στην πραγματικότητα, θα δείτε σε ένα τη στιγμή που είμαι σε θέση να πληκτρολογήσετε οι λέξεις όπως κόσμου γειά σου, ή γειά σου David, ή γεια Zamayla, ή ό, τι θέλω, το επιχείρημα σε αυτό το παζλ piece-- το λευκό κουτί εκεί. Εν τω μεταξύ, αν θέλω μια θηλιά, που θα Βλέπουμε ότι υπάρχει κομμάτια παζλ που κοιτάξουμε λίγο πορτοκαλί όπως αυτό. Και το σχήμα τους, το είδος των υποδηλώνει ότι κάτι που συμβαίνει ξανά και ξανά σε έναν κύκλο. Έτσι, αν μπορώ να τυλίξει ένα πω ένα γεια κόσμο μπλοκ με μια για πάντα μπλοκάρουν το Ξυστό, είναι ακριβώς πρόκειται να κρατήσει λέγοντας γεια κόσμο για πάντα, κυριολεκτικά. Εν τω μεταξύ, υπάρχει ένα άλλο είδος βρόχου στο Scratch ότι θα see-- μια επανάληψη block-- όπου, αν γνωρίζουμε εκ των προτέρων πόσες φορές θέλετε ο βρόχος να εκτελέσει ένας πεπερασμένος αριθμός των φορές σε fact-- σας μπορούν να ορίζουν ότι με την πληκτρολόγηση ενός αριθμού ή ακόμα και να συνδέσετε σε μια μεταβλητή, όπως x ή y όπως θα δούμε. Στην πραγματικότητα, οι μεταβλητές όπως θ στην περίπτωση αυτή, η οποία είναι ένα κοινό όνομα για μια ακέραια μεταβλητή που απλώς αποθηκεύει ένα number-- ένας ακέραιος μπορεί να είναι, Για να χρησιμοποιήσετε αυτή πορτοκαλί μπλοκ εδώ για να ορίσετε μια μεταβλητή, όπως εγώ στο μηδέν. Εδώ είναι ένα παράδειγμα στο πράσινο ενός Boolean έκφραση στο Scratch. Ακόμα κι αν αυτό μοιάζει με τα μαθηματικά τύπο, οι ανισότητες μαθηματικά σαν αυτό πραγματικά είναι Boolean εκφράσεις. Αυτό είναι είτε αληθείς ή ψευδείς. Ι είναι μικρότερη από 50. Είναι είτε ένα ναι ή όχι απάντηση ή αληθής ή ψευδής απάντηση. Και εμείς θα αποκαλούμε γενικά αυτές οι Boolean εκφράσεις. Και δεν χρειάζεται να είναι 50. Μπορεί να είναι μικρότερη από x y, μεγαλύτερο από το y, ίσο με y-- οποιοδήποτε αριθμό άλλων ερωτήσεις μπορεί να σας ζητηθεί. Τώρα, με την πρώτη ματιά, αυτό μπορεί να μοιάζει ξαφνικά αρκετά τολμηρή εδώ, και αυτό είναι. Αλλά η έννοια σοφός, είναι αρκετά γνωστά από πριν. Αν το x είναι μικρότερο από y, από ό, τι να πω τόσο πολύ. Αλλιώς αν το x είναι μεγαλύτερο από το y, τότε να πω τόσο πολύ. Άλλο να πω το x είναι ίσο με το y. Έτσι έχουμε ένα παράδειγμα υπάρχει τρίτης scenario-- η μόνη τρίτη possibility-- x είναι είτε μεγαλύτερο από, μικρότερο από, ή ίσο με. Έτσι έχουμε μια τρίοδη διακλάδωση του δρόμου. Και να παρατηρήσετε τι είναι δροσερό Scratch here--, όπως φαίνεται, έχει μόνο ένα παζλ κομμάτι, σε αυτή την περίπτωση, αν άλλο μπλοκ. Και όμως αυτό θα φανεί σε σας σημαίνει να έχουν μόνο μια αμφίδρομη διακλάδωση του δρόμου. Μπορείτε να πάτε αριστερά ή προς τα δεξιά, αλλά τι γίνεται με το τρίτο σενάριο; Τι θα συμβεί αν το x ισούται με y; Δεν έγινε και κάτι. Πάρτε ένα κομμάτι του παζλ, βάλτε ένα άλλο εσωτερικό του για να δημιουργήσετε το σημασιολογικό ισοδύναμο του εάν, άλλο αν, else-- και τώρα έχουν τρεις τρόπο πιρούνι σας στο δρόμο. Και όπως θα δούμε, η κομμάτια του παζλ Scratch μπορεί να τεντωθεί και να αναπτυχθούν, έτσι ώστε να χώνω περισσότερα πράγματα σε αυτά. Δεν χρειάζεται να ταιριάζει πάντα στο προεπιλεγμένο μέγεθος του. Αυτό είναι κάτι που θα δείτε σύντομα ονομάζεται συστοιχία. Είναι σαν ένα list-- κάποιο τρόπο αποθήκευση πολλά κομμάτια των πληροφοριών σε μια μεταβλητή, όχι απλά ένας αριθμός. Αυτά θα δούμε έναν εκπρόσωπο της κάτι που ονομάζεται multi-threading. Στην πραγματικότητα, όλοι σας Mac και PC αυτές τις μέρες υποστηρίζει multi-threading, που σημαίνει ότι μπορείτε κυριολεκτικά κάνει πολλαπλές πράγματα ταυτόχρονα. Μπορείτε να έχετε το Microsoft Word σε η πρώτο πλάνο, που εργάζονται σε κάποιο δοκίμιο. Μπορεί να έχετε ένα πρόγραμμα περιήγησης στο άνοιγμα φόντο G-mail ή το Facebook ή τα παρόμοια. Ο υπολογιστής σας μπορεί να κάνει πολλαπλές πράγματα σήμερα, διότι είναι multi-threaded, και τα προγράμματα που είναι στο Ειδικότερα είναι επίσης πολυ-σπείρωμα. Υπάρχουν πράγματα που ονομάζεται γεγονότα όπως καλά στον κόσμο του Scratch, και στη συνέχεια να υπάρχει ένας τρόπος πάρα πολύ, να κάνει τα δικά μας κομμάτια έθιμο παζλ, αν τα πράγματα στην πραγματικότητα, δεν υπάρχουν εκ των προτέρων. Ας παρακινήσει αυτό ως εξής. Πριν από μερικά χρόνια, όταν ήμουν ανακαλύφθηκε για πρώτη φορά το μηδέν, όταν ήμουν στην πραγματικότητα ένα grad φοιτητής στο MIT, εμείς οι ίδιοι είχαν αναλάβει να κάνει την εργασία. Και εγώ implemented-- η οποία, εκ των υστέρων, Ήταν μια πολύ κακή απόφαση, γιατί είναι το πιο εξοργιστικό τραγούδι στον κόσμο για να ακούσετε για οκτώ ώρες ενώ εργαζόταν σε homework-- σας αλλά κάτι που είχα ονομάζεται Όσκαρ χρόνου, που είναι ίσως ένα γνωστό τραγούδι. CS50s δική Ιορδανία Hayashi, ένα από τα περισσότερα ανώτερα μέλη του προσωπικού μας, έχει αναβαθμιστεί για το 2015 και Τώρα το 2016, δεδομένου ότι πίσω στην ημέρα, Είχα πάντα ακριβώς πρόκειται σε δοχείο απορριμμάτων Oscar. Τώρα στηρίζουμε την ανακύκλωση και την κομποστοποίηση. Αλλά για να ζωγραφίσει την εικόνα για το τι μπορούμε να κάνουμε εδώ και να παρακινήσει ορισμένες από τις Τα παραδείγματα χαμηλότερο επίπεδο, θα μπορούσαμε να πάρετε ένα άλλο εθελοντών σε μόλις έρθουν τα πάνω και να παίξει το πρώτο μου εργασία για το σπίτι ποτέ; Έλα επάνω. Ποιο είναι το όνομά σου? HENRY: Henry. DAVID Malan: Χένρι, έλα επάνω. Έλα επάνω. Το κεφάλι ή τον άλλο τρόπο, και θα δείτε σε λίγο, Πάω να πάει μπροστά και να χτυπήσει το πράσινη σημαία στην πάνω δεξιά πλευρά γωνία, πράγμα που σημαίνει να πάει. Το εικονίδιο με το σύμβολο μικρή στάση πρόκειται να πω στάση, και ότι όταν ξεκινάτε και να σταματήσει το πρόγραμμα. Χάρηκα για τη γνωριμία. Εντάξει. Έτσι θα πάμε για να δείτε τις οδηγίες στην οθόνη ακριβώς σε μια στιγμή. Και μόνο από αυτό το παιχνίδι για μερικές seconds-- πιστέψτε με, εμείς δεν πρόκειται να θέλουν να παίξουν σε όλη τη διαδρομή προς το end-- θα σας να πάρετε μια αίσθηση του τι κάνει το πρόγραμμα. Και περισσότερο από ό, τι ακριβώς επικεντρωθεί σε Henry είναι καλό ή κακό σε αυτό το παιχνίδι, εστίαση και πώς θα εφαρμοστεί από εμένα αρχικά και στη συνέχεια με την Ιορδανία. Με άλλα λόγια, πού είναι οι μεταβλητές; Πού είναι οι βρόχοι; Πού είναι οι λειτουργίες; Και θα δούμε αν δεν βλέπουμε εκείνοι κάτω από την κουκούλα. Απλά κάντε κλικ και σύρετε τα σκουπίδια στον κατάλληλο κάδο. [ΜΟΥΣΙΚΗ Playing] Εντάξει. Αυτό είναι πολύ καλό. Γιατί δεν μπορούμε να σταματήσουμε εκεί. Ευχαριστώ. Συγχαρητήρια σε Henry. Ευχαριστώ. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Απλά φανταστείτε τον εντοπισμό σφαλμάτων του εν λόγω προγράμματος. Εάν υπάρχει ένα πρόβλημα δύο λεπτά στο song-- αλλά έτσι τι συμβαίνει εδώ πραγματικά; Τόσο περίπλοκο όπως αυτό θα μπορούσε αρχίσει να φαίνεται για να πάρει την πάροδο του χρόνου, πράγματι όλο και περισσότερο τα πράγματα άρχισαν να πέφτουν, τι είναι ενδιαφέρον για το Αυτό το είδος της example-- και θα δούμε μερικά others-- είναι ότι αν κοιτάξουμε το παρελθόν της πολυπλοκότητας ή η πολυπλοκότητα του παιχνιδιού, υπάρχει μια πολύ απλή κατασκευή μπλοκ που play-- όλα εκ των οποίων, αν τα απόσταξη σε εκείνους δομικά στοιχεία, είναι πολύ προσιτές και εφαρμόσιμα για τον εαυτό τους. Για παράδειγμα, είναι κάποια στιγμή, αλλά είμαι αρκετά σίγουρος τι αρχικά έκανα όταν καθιστώντας αυτό το παιχνίδι για πρώτη φορά ήταν απολύτως σαν χρονοτριβήσει. Δεν είχα επικεντρωθεί σε όλα τα σχετικά με την λογική ή τα κομμάτια του παζλ, Έχω επικεντρώθηκε στα γραφικά και το εύρημα η θέση του δρόμου και το δοχείο απορριμμάτων και όλα αυτά. Αλλά αυτά ήταν απαραίτητα συστατικά με την πρώτη. Και μόλις τελείωσα χρονοτριβούν και περί το ευρύτερο πλαίσιο, Αποφάσισα, επιτρέψτε μου να κάνω ένα κομμάτι των σκουπιδιών πέφτουν από τον ουρανό. Και θα δούμε Scratch υποστηρίζει πράγματα που ονομάζεται sprites-- χαρακτήρες που μπορούν να έχουν διαφορετικά κοστούμια για έτσι ώστε να φαίνονται διαφορετικά. Και έτσι έβαλα ένα κάδο απορριμμάτων κοστούμι για ένα τέτοιο sprite. Και εγώ απλά χρειάζεται να πέφτουν από τον ουρανό. Και έτσι αποδεικνύεται, Ξυστό, όπως και οι περισσότερες γλώσσες προγραμματισμού, υποστηρίζει τυχαίων αριθμών ή τεχνικά pseudocode τυχαίων αριθμών, έτσι ώστε με μεταφορά και ρίψη ορισμένα κομμάτια του παζλ, Ήμουν σε θέση να έχουν τα σκουπίδια προέρχονται από την αριστερή από την πρώτη. Και στη συνέχεια την επόμενη φορά που έπεσε, από το δικαίωμα και, στη συνέχεια, από τη μέση. Και όλα αυτά το παιχνίδι δεν ήταν μόνο έχουν σκουπίδια πέφτουν από τον ουρανό. Δεν θα μπορούσε να δείξει σε αυτό ή κάντε κλικ σε αυτό. Δεν θα μπορούσε να ανοίξει τον κάδο απορριμμάτων. Δεν μπορούσα να κάνω τίποτα. Αλλά ήταν ένα βήμα μωρό προς τον τελικό όραμά μου. Και μετά από αυτό, εγώ πραγματικά εφαρμοστεί κάποιο είδος της ανίχνευσης, έτσι ώστε αν έκανε κλικ και σύρετε στο κομμάτι των σκουπιδιών πάνω από τον κάδο απορριμμάτων, του Oscar καπάκι θα ανοίξει και να κλείσει. Τίποτα δεν θα μπορούσε να συμβεί στον κάδο απορριμμάτων, αλλά τουλάχιστον το καπάκι θα ανοίξει και να κλείσει. Έτσι, στη συνέχεια, ελέγξτε, βήμα δύο από τις δύο. Και αυτό είναι ό, τι πρόκειται να είναι κλειδί, τόσο το πρόβλημα που μηδέν και στον προγραμματισμό γενικότερα, είναι να να λάβει αυτά τα πολύ σκόπιμη βήματα του μωρού. Γιατί όχι μόνο δεν θα σας επιτρέψει να αισθάνομαι ειλικρινά καταφέρει πολλά περισσότερα quickly-- είναι η χειρότερο πράγμα στον κόσμο να προσπαθήσει να εφαρμόσει το σύνολο των Oscar Time, Στη συνέχεια ώρες αργότερα έπληξε την πράσινη σημαία, και τίποτα δεν λειτουργεί όπως αναμένεται γιατί όπου μπορείτε να κάνετε ακόμα και αρχίζουν να debug ή να αντιμετωπίσετε αυτό το πρόγραμμα; Είναι απλά συντριπτική. Και έτσι πραγματικά αγκαλιάζει αυτή την ιδέα της λήψης και πάλι steps-- βήματα του μωρού και again-- δημιουργία κάτι που είναι, στο τέλος, Πραγματικά εντυπωσιακό και περίπλοκο, αλλά σε πρώτη φάση, δεν είναι σχεδόν τόσο πολύ έτσι. Στην πραγματικότητα, ας το κάνουμε αυτό. Επιτρέψτε μου να πάει μπροστά and-- ίδια Scratch υπάρχει στο διαδίκτυο σε Scratch.MIT.edu, και θα σας πει ως πολύ και πάλι το πρόβλημα που το μηδέν, η προδιαγραφή για η οποία είναι ήδη στην ιστοσελίδα CS50 του. Αλλά αυτό είναι ό, τι Ξύστε το ίδιο είναι. Και υπάρχει πραγματικά μόνο τρεις βασικούς τομείς. Στο πάνω αριστερό μέρος υπάρχει είναι η λεγόμενη φάση. Αυτό είναι το μηδέν. Η προεπιλογή κοστούμι είναι μια γάτα. Και αυτό είναι το ορθογώνιο κόσμο σε το οποίο μπορείτε να move-- πάνω, κάτω, αριστερά, δεξιά και κάποια άλλα πράγματα. Στη μέση είναι εδώ κατηγορίες μας ή παλέτες μας κομμάτια του παζλ, και διαφορετικά χρώματα σημαίνει διαφορετικά πράγματα. Και αν σακί γύρω, θα δείτε τα πράγματα όπως βρόχους και συνθήκες και μεταβλητές και άλλα συστατικά. Και τότε εδώ είναι η περιοχή σενάρια. Αυτό είναι όπου μπορώ να drag and drop αυτά τα κομμάτια του παζλ για να κάνουμε τα πράγματα. Έτσι, ας κάνουμε ένα τέτοιο πράγμα. Επιτρέψτε μου να πάει μπροστά and-- και ξέρω πού είναι. Έτσι, Πάω αμέσως να κάνετε κλικ στο όπου ξέρω ότι τα πράγματα είναι έτοιμα να είναι, αλλά δείχνοντας και κάνοντας κλικ και σπρώχνει γύρω είναι αναπόφευκτες. Έτσι, όταν κάνετε κλικ πράσινη σημαία, Τι θέλω να κάνω; Πάω να το κάνουμε αυτό. Πάω να μεταφέρετε αυτό το μωβ παζλ κομμάτι, να πω γεια για δύο δευτερόλεπτα, και επιτρέψτε μου να μεγεθύνετε. Και Πάω να αλλάξει αυτό να είναι αυτό που θέλω είναι να μαζεύουν γεια κόσμο για δύο δευτερόλεπτα είναι μια χαρά. Τώρα, είμαι πρόκειται να κάνετε κλικ στο πράσινη σημαία, ή αν θέλω πραγματικά, Μπορώ να πλήρη το οθόνη και στη συνέχεια να επανέλθει. Θα κρατήσει μόνο όλα σε ένα παράθυρο. Πράσινο flag-- κόσμο γεια. Εντάξει. Δεν είναι όλα αυτά ενδιαφέροντα. Επιτρέψτε μου λοιπόν να προχωρήσει και να το κάνουμε αυτό. Επιτρέψτε μου να προσπαθήσω άλλο. Όταν πράσινη σημαία clicked-- ας να κάνουμε κάτι σαν ήχος. Και παρατηρήσετε ότι από το πλαίσιο για την ελεύθερη παίρνετε μια καλή γάτα, όπως είναι η προεπιλεγμένη sprite. Έτσι τώρα επιτρέψτε μου να πάει μπροστά και να έπληξε την πράσινη σημαία τώρα. [Meowing] Aw. Αυτό είναι αξιολάτρευτο. Είμαι προγραμματισμού. Έτσι, ό, τι έχω κάνει; Αυτό είναι το ισοδύναμο ενός προγράμματος. Είναι προφανώς εξαιρετικά απλό. Δεν λαμβάνει πραγματικά όλα αυτά πολύ προσπάθεια και MIT έκανε την περισσότερη δουλειά, αλλά έχω ονομάζεται λειτουργία. Έχω χρησιμοποιήσει μια λειτουργία. Έχω κάνει κάποια ενέργεια, χρησιμοποιώντας μόνο ότι ένα μοβ κομμάτι του παζλ. Λοιπόν, αν θέλω να κάνω τρεις meows στη σειρά; Επιτρέψτε μου να προχωρήσει και να κάνει δύο και τρία. Και παρατηρήστε ότι όταν αιωρείται κοντά ένα κομμάτι του παζλ, εμφανίζεται μια μικρή λευκή γραμμή είδος μαγνητικά, και θα snap μαζί όταν θα αφήσει να πάει. Ας δούμε τι συμβαίνει εδώ. [Meowing] Υπάρχει ένα bug. Ακούω μόνο ένα νιαούρισμα. Γιατί μπορεί να συμβαίνει αυτό; Ναι; Ναι. Εμείς δεν το ακούσω πραγματικά, αλλά αυτό είναι καλή διαίσθηση. Είναι όλοι παίζουν ταυτόχρονα. Γιατί; Λοιπόν, ο υπολογιστής είναι ακριβώς πρόκειται να κάνει ό, τι μπορείτε να πείτε για να το κάνει. Έτσι, αν σας πω, το παιχνίδι του ήχου, αναπαραγωγή ήχου, αναπαραγωγή ήχου, αλλά δεν το πείτε για να παίξουν μέχρι τελειώσετε, να παίξουν μέχρι να τελειώσετε, πρόκειται να φυσήξει μέσα το πρόγραμμα πολύ γρήγορα και μπορώ μόνο ό, τι το πω για να το κάνουμε. Γι 'αυτό πρέπει πραγματικά να διορθώσετε αυτό σε μια-δυο τρόπους. Θα μπορούσα απλά να το κάνετε αυτό, να απαλλαγούμε από αυτό. Επιτρέψτε μου να προσπαθήσω αυτό το άλλο παζλ piece-- αναπαραγωγή ήχου νιαούρισμα μέχρι να γίνει, και στη συνέχεια σύρετε τρεις αυτά και κάντε κλικ στο κουμπί Play. [Meowing] Δεν είναι πραγματικά very-- Ευχαριστώ you-- πολύ φυσικό. Γιατί λοιπόν να μην αφήσετε I-- να πάω για τον έλεγχο εδώ. Όμορφη. Περιμένετε ένα δευτερόλεπτο, και τώρα επιτρέψτε μου να πάω πίσω σε ήχους, και αναπαραγωγή ήχου μέχρι να γίνει, και, στη συνέχεια, επιτρέψτε μου να πάρει περιμένετε ένα δευτερόλεπτο. Και τότε επιτρέψτε μου να πάει και να πάρει ένα περισσότερο ήχο, και εδώ πηγαίνουμε. [Meowing] Λίγο πιο φυσικό, αλλά αυτό δεν είναι πολύ αποτελεσματική. Σαν να ήμουν βαρεθείτε, όλοι εν συντομία, κάνοντας κλικ εμπρός και πίσω και πραγματικά αντιγραφή work-- μου λίγο πολύ αντιγραφή και επικόλληση. Πράγματι, αν μπορώ να ελέγξω κλικ ή δεξί κλικ σε Θα μπορούσα να είχα μόλις αντιγραφεί και επικολληθεί. Ποια θα ήταν η καλύτερη κατασκευή για να χρησιμοποιήσετε; Τι ιδέα από πριν; Ναι, έτσι ένας βρόχος. Και στην πραγματικότητα, αν έσπρωξε γύρω, μπορούμε να βρούμε ακριβώς αυτό. Επιτρέψτε μου να πάω σε γεγονότα ή μάλλον Ελέγχου. Έτσι repeat-- εγώ δεν κάνω θέλω να είναι 10 φορές. Αυτό πρόκειται να πάρει ενοχλητικό γρήγορα. Αλλά θα επαναλάβω τρεις φορές. Επιτρέψτε μου να πάω πίσω να ακούγεται και αναπαραγωγή του ήχου μέχρι να γίνει. Επιτρέψτε μου να πάω πίσω σε Ελέγχου και απλά περιμένετε ένα δευτερόλεπτο. Και ειδοποίηση, ίσως νομίζω ότι δεν ταιριάζει, αλλά και πάλι, αν μαγνητικά μπορείτε να το αφήσετε θραύση στη θέση του, θα αυξηθεί για να γεμίσει. Τι θα παίξετε τώρα; [Meowing] ΕΝΤΆΞΕΙ. Όμορφη. Και αυτό είναι ό, τι θα μπορούσε να ονομάζεται ένα πρόγραμμα που είναι επίσης σωστό. Είναι meowed τρεις φορές αρκετά φυσικά, αλλά είναι καλύτερα σχεδιασμένη. Είμαι χρησιμοποιώντας λιγότερο πλεονασμό. Δεν είχα αντιγραφή και επικόλληση τίποτα. Θα χρησιμοποιηθεί μόνο μια καλύτερη ιδέα. Τώρα, αυτό δεν είναι ακόμα όλα ότι ενδιαφέρον με το Scratch δεν κάνει οτιδήποτε. Έτσι, ας κάνουμε κάτι άλλο αντ 'αυτού. Ας κάνουμε κάτι για πάντα. Και ξέρετε τι; Κίνηση φαίνεται ενδιαφέρουσα. Ας τον έχουν κινηθεί 10 βήματα και να χτυπήσει το παιχνίδι τώρα. ΕΝΤΆΞΕΙ. Λοιπόν, τι μπορούμε για το είδος της αντίστασης τον πίσω, και αυτός είναι ακόμα τρέχει γιατί κάνει αυτό για πάντα. Έτσι, ο βρόχος κάνει τι λέει να κάνει, αλλά αυτό δεν είναι όλα αυτά ενδιαφέρον. Ας το κάνουμε. Επιτρέψτε μου να προσθέσω ένα μπλοκ ελέγχου, και να χρησιμοποιήσετε ένα από τις προϋποθέσεις αυτές για πρώτη φορά. Γι 'αυτό πρόκειται να κινηθεί 10 steps-- 10 τελείες, 10 pixels στο screen-- Στη συνέχεια πρόκειται να θέσω το ερώτημα. Αν κάτι είναι αλήθεια, τότε κάνουμε κάτι μέσα σε αυτό το μπλοκ. Έτσι αποδεικνύεται ανίχνευσης έχει ένα ολόκληρο δέσμη των Boolean expressions-- ερωτήσεις του ναι όχι ή αλήθεια ψευδή form-- επιτρέψτε μου να το κάνουμε αυτό. Αν touching-- και έπειτα υπάρχει αυτό το μικρό drop down μενού. Μπορώ να το παραμετροποιήσετε. Αν αγγίξετε το edge-- ας να κάνει κάτι τέτοιο. Έτσι, αν αγγίξετε edge-- επιτρέψτε μου να πάω πίσω στην κίνηση. Και γιατί δεν μπορούμε απλά γυρίσει 180 μοίρες; Εντάξει. Έτσι για πάντα, κινούνται 10 βήματα. Αν αγγίξετε το ακμή, γυρίστε 180 μοίρες. Και αυτό δεν είναι το τέλος του προγράμματος επειδή είστε σε μια πάντα μπλοκ, γι 'αυτό πρόκειται να πάει ξανά και ξανά και ξανά και ξανά. Ας δούμε τι θα συμβεί. ΕΝΤΆΞΕΙ. Ένα μικρό αμαξάκι, αλλά το είδος της δροσερό. Και μπορούμε να προσθέσουμε σε αυτό κάποια ανόητα πράγματα ότι δεν είναι όλα ότι πνευματικά ενδιαφέρων. Αλλά αν έχουμε χτυπήσει αυτό το μικρό μικρόφωνο button-- ωχ. Επιτρέψτε μου να καθαρίσει αυτό επάνω. Επιτρέψτε μου να ενισχύσει αυτό ως θα έλεγαν στην τηλεόραση. Καθαρίστε ότι μέχρι, Αποθήκευση, και τώρα πάει μέχρι σενάρια. Και τώρα, επιτρέψτε μου να πάω να ακούγεται. Επιτρέψτε μου να δώσω ένα όνομα. Θα καλέσω αυτό το ωχ. Και τώρα αναπαραγωγή ήχου ωχ. Παρατηρήστε ότι εμφανίζεται στο λίγο drop down μενού. Ας δούμε. [ΩΧ] [ΓΈΛΙΟ] Αλλά μπορούμε να αλλάξουμε t του σχετικά με τη μύγα. Μπορούμε να είμαστε δύο φορές πιο ενοχλητικό. [ΩΧ] Ή αν το κάνει, όπως 1.000 βήματα σε μια time-- ΕΝΤΆΞΕΙ. Έτσι θα πάμε να αφήσει ότι ένας και μόνο. Έτσι και πάλι, την οικοδόμηση blocks-- μου ξεκίνησε με κάτι εξαιρετικά απλό, και στη συνέχεια θα προστεθεί ένα χαρακτηριστικό, προστεθεί ένα χαρακτηριστικό, πρόσθεσε ένα χαρακτηριστικό. Και εγώ δεν χρειάζεται πλέον να ανησυχείτε για πώς το πρώτο από αυτά τα χαρακτηριστικά υλοποιήθηκε ως συνεχίζω να στρώμα τα πράγματα στην κορυφή. Έτσι, στην πραγματικότητα, επιτρέψτε μου να κάνω ένα άλλο εδώ. Επιτρέψτε μου να προχωρήσει και να ανοίξετε ένα αρχείο που Έφερα εκ των προτέρων, που ονομάζεται πρόβατα. Γι 'αυτό έχει μια ελαφρώς διαφορετική χαρακτήρα που μοιάζει με αυτό. Και επιτρέψτε μου να δούμε αν δεν μπορώ κάνει κάτι χρησιμοποιώντας ένα μετρητή σε αυτό case-- μια λεγόμενη μεταβλητή. Πάω να πάει μπροστά και κάτω από Events-- επιτρέψτε μου να πάρει μια πράσινη σημαία κλικ. Στη συνέχεια, επιτρέψτε μου να πάω σε δεδομένα, τα οποία γνωρίζω από παίζοντας ακριβώς γύρω από πριν, είναι όπου οι μεταβλητές είναι. Και Πάω να πάει μπροστά και να σύρετε αυτό. Έτσι, μια μεταβλητή που ονομάζεται μετρητή, και Πάω να γίνει η προετοιμασία στο μηδέν. Μπορώ να την αποκαλούν anything-- χ ή y ή z-- αλλά στον προγραμματισμό, ζητώντας κάτι σε ένα σημασιολογικά χρήσιμο τρόπο, όπως και σε αντίθεση, ότι περιγράφει αυτό που είναι, είναι ένα πολύ πιο εύκολο να διαβάσει τον κωδικό σας αργότερα. Επιτρέψτε μου να πάμε μπροστά και να πάρει μια για πάντα μπλοκάρει εδώ. Και επιτρέψτε μου να πάω να τα βλέμματα σελίδα και να κάνουμε ένα μπλοκ Say. Αλλά τι είναι δροσερό για μεταβλητών είναι I Δεν χρειάζεται να απλά πληκτρολογήστε σε κάτι όπως Hello World, το οποίο έχουμε ήδη κάνει, αντί να μπορώ να πάω να Δεδομένων και σύρετε μεταβλητή μου, ακόμη και Δεν αν το σχήμα δεν είναι αρκετά μοιάζει σαν να πρέπει να ταιριάζει, θα αυξηθεί για να γεμίσει. Και εγώ θα πω μόνο το μετρητή για ένα second-- spoiler-- ότι πρόκειται να μετρήσει. Θα το πω για ένα δευτερόλεπτο. Στη συνέχεια, Πάω να πάει και να πρέπει να περιμένει για ένα δευτερόλεπτο, οπότε δεν μετράνε πάρα πολύ γρήγορα. Και, στη συνέχεια, τέλος, να αλλάξει μετρητή από ένα-- με άλλα λόγια, αυξήσετε το μετρητή κατά ένα πρόσθετη αξία και να το κάνουμε αυτό για πάντα. Έτσι, τα πρόβατα πάρα πολύ, σαν ένα προγραμματιστής, μετράει από το 0. Και αν περιμένουμε αρκετά μεγάλο χρονικό διάστημα, θα κάνει αυτό για πάντα. Αλλά αυτό δεν είναι ακριβώς αλήθεια, επειδή Στην πραγματικότητα, όπως θα ανακαλύψετε μέσα σε μία εβδομάδα, ακέραιοι και υπολογιστές γενικότερα, τεχνικά έχουν μόνο ένα finite-- καλά, μάλλον υπολογιστές, όταν αντιπροσωπεύουν ακέραιους αριθμούς, έχουν μόνο έναν πεπερασμένο αριθμό bits. Αυτοί οι λαμπτήρες εκεί μπορεί μόνο να μετρήσει τόσο υψηλά πριν είστε έξω από λαμπτήρες. Και ένας υπολογιστής πάρα πολύ, έχει μόνο τόση μνήμη, έχει μόνο τόσες πολλές τρανζίστορ, έτσι ώστε να μπορεί μόνο να υπολογίζει τόσο υψηλή. Έτσι αποδεικνύεται ότι τα πρόβατα, Νομίζω, μπορεί να υπολογίζει σε 2 δισεκατομμύρια ή κάτι πολύ μεγάλο. Γι 'αυτό και δεν πρόκειται να περιμένετε για να συμβεί αυτό. Αλλά τελικά μερικά bug θα συμβεί που μπορεί να έχουν κάποια πολύ πραγματικό κόσμο διακλαδώσεις. Αλλά πέρα ​​από τα πρόβατα, ότι απλά εισάγει μια μεταβλητή. Ας πάμε μπροστά και να ανοίξει κάτι που γίνεται εκ των προτέρων εδώ λέγεται Pet η Cat-- Pet την Cat εδώ. Και παρατηρήσετε εδώ είναι μερικά μπλοκ, αλλά όταν πράσινη σημαία κλικ, για πάντα να κάνει τα εξής. Αν αγγίξετε το ποντίκι pointer-- οπότε ο κέρσορας στην οθόνη, η arrow-- παιχνίδι νιαούρισμα ήχος και, στη συνέχεια, περιμένετε δύο δευτερόλεπτα. Και μόλις γίνει αυτό για πάντα. Απλά συνεχώς περιμένετε για να δούμε αν το pointer-- αν η γάτα είναι σε επαφή με το δείκτη. Έτσι χτύπησα το παιχνίδι. Τίποτα δεν συμβαίνει. Αλλά, όπως έχω να μετακινήσετε τον κέρσορα πάνω από τη γάτα, [Meowing] Και αν μπορώ να ξεφύγουμε, να μην χάιδεμα τη γάτα πια. Έτσι, κάποια υπό όρους λογική ένθετα μέσα από ένα βρόχο. Τι λέτε για αυτό το παράδειγμα, σκόπιμα που ονομάζεται Μην Pet τη γάτα; Τι είναι αυτό πρόκειται να κάνει; [Meowing] Γιατί δεν πρέπει να το κατοικίδιο ζώο η γάτα; [Meowing] ΕΝΤΆΞΕΙ. Έτσι, αυτό είναι ένα παράδειγμα ένα, αν άλλος. Είναι ένα σημείο απόφασης και γιατί κάθεται στο βρόχο, είναι και οι δύο να πάρει ελεγχθεί. Είναι αλήθεια? Είναι αλήθεια? Είναι αλήθεια? Είναι αλήθεια? Και τελικά, ένα από τα εκείνοι πρόκειται να εφαρμόσει και έτσι μπορείτε να ακούσετε, είτε το νιαούρισμα ή ο βρυχηθμός του λιονταριού στην εν λόγω υπόθεση. Λοιπόν, ας κάνουμε μια ελαφρώς πιο φανταχτερό ένα ότι έκανα πριν too-- θέματα. Έτσι, ένα νήμα είναι μόνο μία πράγμα που ένας υπολογιστής μπορεί να κάνει. Έτσι, ένα πολυ-σπείρωμα πρόγραμμα είναι ένα πρόγραμμα ότι μπορεί να κάνει πολλαπλές πράγματα ταυτόχρονα. Και όλα αυτά τα παραδείγματα μέχρι στιγμής είχαν μόνο ένα σενάριο, έτσι ώστε να speak-- ένα πρόγραμμα σαν αυτό εδώ. Αλλά παρατηρήσετε αυτό το πρόγραμμα έχει δύο ξωτικά, δύο χαρακτήρες. Το ένα είναι ένα πουλί. Το ένα είναι μια γάτα. Και παρατηρήσετε όταν κάνω κλικ σε αυτά τα κάτω αριστερά, το καθένα έχει τα δικά τους σενάρια ή τα προγράμματα που συνδέονται με αυτά. Και οι δύο από αυτούς προγραμμάτων, προειδοποίηση, εκκίνηση με όταν πράσινη σημαία clicked-- ας δούμε την cat-- όταν πατηθεί πράσινη σημαία. Και έτσι πράγματι, όταν χτύπησα το παιχνίδι τώρα, Τα δύο πράγματα που πρόκειται να συμβούν ταυτόχρονα. Η γάτα και το πουλί είναι τόσο πρόκειται να λειτουργούν ταυτόχρονα για να δημιουργήσετε αυτό το αποτέλεσμα. Και μπορείτε να φανταστείτε τι συμβαίνει. Υπάρχει μια θηλιά και το πουλί και η γάτα είναι σε ένα βρόχο. Το πουλί είναι ακριβώς γερός σαν Ήμουν πριν, όταν είπα ωχ. Αλλά η γάτα έχει σαφώς ένα πλεονέκτημα. Υπάρχει ένα άλλο μπλοκ ανίχνευσης που επισημαίνει τη γάτα σκόπιμα με το πουλί σε αυτήν την περίπτωση εδώ. Έτσι, θα μπορούσαμε να δώσουμε έμφαση, εκτός, κοιτάζοντας μέσω αυτών των μπλοκ, τι συμβαίνει. Αλλά το βασικό συστατικό εδώ είναι ένα. Το πουλί, έτσι ώστε αυτό το παιχνίδι δεν είναι εντελώς boring-- ή αυτό animation-- αρχίζει σε μια τυχαία κατεύθυνση. Και ο υπολογιστής είναι picking ένας αριθμός μεταξύ 90 και 180 κατ 'ουσίαν, έτσι ώστε να είναι ελαφρώς διαφορετικά κινούμενα σχέδια κάθε φορά. Και στη συνέχεια παρατηρήσετε εδώ, αν η γάτα αγγίζει το πουλί, στη συνέχεια, παίζουν το λιοντάρι τέσσερις sound-- το βρυχηθμό. Αλλά εν τω μεταξύ στην πουλιού παλέτα, έχουμε αυτό. Για πάντα, αν δεν αγγίζουν τη γάτα, απλά να προχωρήσουμε τρία βήματα. Και στη συνέχεια, εδώ είναι ένα άλλο κομμάτι του παζλ. Αν είστε στην άκρη, αναπήδηση. Έτσι, το πουλί είναι ακριβώς το είδος της φύλαξη των παιδιών, τη δική του επιχείρηση, απλά πετούν γύρω και γερός, και είναι πραγματικά η γάτα που είχε την υπό όρους λογική για να διαπιστωθεί εάν είχε πιάσει το πουλί. Εντάξει. Έτσι, ας κάνουμε ένα άλλο εδώ, αυτό που ονομάζεται Hi Hi Hi. Και αυτό εδώ ακριβώς κάνει αυτό σε ένα πάντα βρόχο. Αλλά notice-- πώς μπορούμε να σταματήσουμε αυτό το πολύ ενοχλητικό πρόγραμμα; Χτυπήστε το πλήκτρο διαστήματος. Διότι, αν το κάνω αυτό, το αριστερό χέρι program-- παρατηρήσετε ότι είναι συνεχώς listening-- είναι το κλειδί χώρο πιέστε. Αν ο χώρος μπαρ πιέζεται, και αν ναι, τι κάνει; Κάνει μια πολύ συνηθισμένη τεχνική. Θέτει μια μεταβλητή ίση με κάποια αξία. Αλλά εναλλαγή αυτή την τιμή. [? Έτσι εμφάνιση;] με βάση την shape-- Ι έχουν μια μεταβλητή που θα έγραψε εκ των προτέρων ονομάζεται Σίγαση, το οποίο ακριβώς λέει ναι ή όχι. Είναι ο ήχος σε σίγαση ή όχι; Σωστό ή λάθος? Και ειδοποίηση, λέω this-- αν σίγαση είναι μηδέν, στη συνέχεια, αλλάξτε σε μία, άλλο που σίγασης είναι στο μηδέν. Έτσι, απλά γυρίστε την τιμή από μηδέν έως ένα. Θα μπορούσα να έχω done-- το αλλάξετε από δύο σε τρία και τρεις δυο ή τέσσερεις έως πέντε ή τέσσερις σε έξι. Αλλά δεν έχει σημασία τι αριθμούς μπορώ να χρησιμοποιήσω, εφ 'όσον έχω κρατήσει αλλάζοντας το αντίθετο. Και το πιο οποιοσδήποτε προγραμματιστής θα ήταν απλά επιλέξετε το μηδέν και ένα-- ψευδείς και αλήθεια, μακριά και on-- να εκπροσωπεί αυτό. Και αυτό εξακολουθεί να λειτουργεί. Αν μου χτύπησε και πάλι το πλήκτρο διαστήματος [SEAL SOUNDS] Το πρόγραμμα τρέχει ακόμα. Επειδή υπάρχει αυτή η άλλη γραφή που λέει, πάντα κάνουμε το εξής. Εάν η σίγαση μεταβλητή ισούται με zero-- οπότε αν δεν είστε σε σίγαση είναι η logic-- αν είναι ψευδής ή όχι, στη συνέχεια, αναπαραγωγή του ήχου, γιατί δεν είστε σε σίγαση. Θα πρέπει να παίξει τον ήχο και, στη συνέχεια, σκεφτείτε hi hi hi για δύο δευτερόλεπτα και στη συνέχεια, περιμένετε, και να το κάνουμε ξανά και ξανά και ξανά. Και έτσι με αυτό τον τρόπο έχουμε έναν τρόπο για οι άνθρωποι to-- για τα προγράμματα για να αλληλεπιδράσουν. Και δεν χρειάζεται να να καθώς χρονολογείται ως άλλοι. Στην πραγματικότητα, σπρώχνει around-- με το συμπάθειο-- κάποιος πέρασε ένα τεράστιο ποσό των χρόνο στο διαδίκτυο την εφαρμογή PokemonGo στο Scratch. Σας geolocates ακόμη και σε Cambridge ή Allston εδώ. Έτσι, εάν θέλετε να δείτε πάρα πολύ αυτό που οι άνθρωποι είναι να κάνουμε this-- πολύ φανταχτερό μενού. Κάντε κλικ εδώ. Αυτό είναι μου με τα βελάκια μου τώρα. Πάω να πάει μετά από αυτό. Κλίκ. Και τώρα κάνετε κλικ στο Pokeball. Θέλω να πω, νομίζω ότι είσαι υποτίθεται ότι πρέπει να κάνετε κλικ στο Pokeball. Εντάξει. Έτσι έκανα αυτό. Μπορώ να πάω εδώ. Και αυτό το πρόσωπο εφαρμοστεί λίγο περισσότερο PokeBalls πάνω here-- τρεις PokeBalls. Θα δημοσιεύσουμε ένα σύνδεσμο προς αυτό το σε απευθείας σύνδεση, ώστε να μπορείτε να παίξετε. Αλλά προειδοποίηση υπάρχει μόνο μερικά βασικά δομικά στοιχεία. Φαίνεται πολύ φανταχτερό, και αυτό είναι. Αυτό είναι εντυπωσιακό και πιο από ό, τι θα ήταν τυπικά Αναμένουμε, ασφαλώς για το πρόβλημα που μηδέν. Δεν έχω ιδέα πόσο καιρό το πρόσωπο αυτό δαπανάται σε απευθείας σύνδεση. Αλλά είναι όλα απλά ένας βρόχος. Υπάρχει ένας ήχος παίζει. Υπάρχει κάποιο είδος βρόχου ακούγοντας για το αν είμαι χτυπώντας το πάνω βέλος ή το κάτω Βέλος ή το αριστερό και το δεξί, και στη συνέχεια, αν ναι, κινείται αυτό κάποιος αριθμός των pixel. Και στη συνέχεια, αν κάνω κλικ άλλο ξωτικό, υπάρχει κάποιο είδος αν η κατάσταση εκεί. Ναι, αυτό είναι να πάρει πάρα πολύ έντονη. Εμείς πάμε για να σταματήσει. Είναι όλα εκείνα τα βασικά δομικά στοιχεία. Δεν υπάρχουν άλλα συστατικά εκτός από αυτά που έχουμε κοίταξε ήδη. Και όμως εδώ, επιτρέψτε μου να κάνω ένα τελικό σύνολο παραδειγμάτων ότι ζωγραφίζει μια εικόνα πολύ από ό, τι μπορείτε να κάνετε εδώ. Εδώ είναι ένα πολύ απλό πρόγραμμα που ακριβώς κάνει this-- βήχας, βήχας, βήχας. Και βασίζεται μόνο σε ό, τι έχουμε κοίταξε μέχρι στιγμής, όπου είναι η προφανής ευκαιρία για βελτίωση. Αυτό το πρόγραμμα είναι σωστό. Είναι βήχα τρεις φορές, το οποίο είναι αυτό που προορίζεται. Αλλά είναι ελάχιστα εφαρμοστεί. Είναι άσχημα σχεδιασμένο. Γιατί; Ναι. Δεν είναι ένας βρόχος. Και δεν είναι τόσο πολύ ότι δεν είναι ένας βρόχος, είναι ότι υπάρχει πολλή απόλυσης. Υπάρχει αντιγραφεί και επικόλληση κώδικα, να το πω έτσι. Και η λύση πιθανόν είναι πράγματι ένας βρόχος. Επιτρέψτε μου λοιπόν να πάμε μπροστά και βελτιώσουμε την κατάσταση αυτή. Και Πάω να σύρετε αυτές εδώ. Επιτρέψτε μου να πάμε μπροστά και να πάρει μια επανάληψη μπλοκ, το αλλάξετε αυτό σε τρεις. Πάω να πετάξουν ορισμένες από αυτές μπλοκ. Και θα παρατηρήσετε ότι είναι αρκετά έξυπνο. Μπορείτε drag and drop και τα πράγματα εμφανίζονται και εξαφανίζονται τελικά. Και μπορώ να σύρετε ακριβώς αυτό εδώ, και τώρα έχω ένα καθαρότερο έκδοση ακόμα. Αλλά ξέρετε τι; Υπάρχει αυτή η ευκαιρία τώρα για abstraction-- για να αρχίσει να καθορίσει νέο λεξιλόγιο ότι MIT δεν είχε προβλέψει. Υπάρχει περιμένουμε και επαναλάβετε και για πάντα και αν, αλλά τι γίνεται αν θέλω να εισαγάγουν η λέξη βήχα ως ένα μπλοκ; Τι γίνεται αν θέλω ένα κομμάτι του παζλ των οποίων ο σκοπός στη ζωή είναι να φτύνω; Λοιπόν, ας ρίξουμε μια ματιά σε αυτή την έκδοση εδώ, το οποίο έκανα ως εξής. Μαγικά, έχω δημιουργήσει αυτό το κομμάτι του παζλ εδώ, που Scratch σας επιτρέπει να κάνετε. Και πράγματι C και Python και JavaScript είναι πρόκειται να επιτρέψει σε σας για να το κάνετε αυτό, καθώς και. Μπορείτε να δημιουργήσετε τις δικές σας προσαρμοσμένες κομμάτια που σας καλούν ό, τι θέλετε. Σε αυτήν την περίπτωση, βήχας αισθάνεται όπως ένα λογικό ορισμό. Και στη συνέχεια με αυτά τα κομμάτια προς τα κάτω Εδώ μπορείτε να καθορίσετε τι σημαίνει. Έσερα και έπεσε από Αυτή η παλέτα here-- περισσότερα blocks-- αυτό το μεγάλο μωβ μπλοκ, όπου θα πληκτρολογήσει το βήχα ως το όνομα του νέου μου κομμάτι του παζλ. Και τότε λέω κάθε φορά που ένας χρήστης καλεί το νέο αυτό κομμάτι του παζλ βήχα, κάνει λόγο και αναμονή. Και έτσι εδώ στην επανάληψη μπλοκ μου, Μπορώ να βήχει μόλις τρεις φορές. Και θα έλεγα, ειδικά αν τώρα έχετε κρύψει αυτήν την λεπτομέρεια. Ποιος νοιάζεται πώς υλοποιείται ο βήχας; Όλα νοιάζει ως προγραμματιστής που μπορώ να βήξει. Δεν με νοιάζει πώς λένε υλοποιείται. Απλώς με νοιάζει ότι η γάτα μπορεί να πει κάτι. Μπορώ αφηρημένη μακριά ότι λεπτομέρεια και επικεντρωθεί μόνο σε ό, τι είναι στην οθόνη εδώ. Αλλά μπορώ να πάρω αυτό το ένα βήμα παραπέρα. Παρατηρήστε ότι εδώ, έχω υλοποιηθεί ο βρόχος τρεις φορές. Τι γίνεται όμως αν αντ 'αυτού να αρπάξει αυτή την έκδοση; Και τι θα γίνει αν αντί σε αυτή την έκδοση εδώ, Απλά αλλάξτε κομμάτι του παζλ μου να λάβει ένα επιχείρημα και των εισροών από μόνη της; Και αυτό εισόδου μπορεί να είναι ένας αριθμός σαν τρεις. Έτσι τώρα, αν γράφω ένα πρόγραμμα και θέλω η γάτα να βήξει, Μπορώ να πω πραγματικά το παζλ κομμάτι πόσες φορές να βήξει, γιατί στο κάτω μέρος εδώ, ένα φανταχτερό έκδοση από αυτά τα κομμάτια έθιμο παζλ ας μου διευκρινίζουν ότι βήχας διαρκεί στην πραγματικότητα μια input-- παίρνει ένα επιχείρημα όπως αυτό. Και ξέρετε τι; Ίσως Αντιλαμβάνομαι, περιμένετε ένα λεπτό. Ο βήχας είναι τρόπο-- είναι θεμελιωδώς η ίδια ιδέα όπως το φτέρνισμα. Είναι απλά ένα διαφορετικό λέξη στην οθόνη. Μπορώ αφηρημένη μακριά περαιτέρω και να εφαρμόσουν Αυτή η τελική έκδοση του ένα βήχας, η οποία με την πρώτη ματιά είναι πολύ πιο περίπλοκη ψάχνετε. Αλλά παρατηρήστε τι έχω κάνει. Τώρα έχω generalized-- Genericized really-- αυτό το κομμάτι του παζλ να κληθεί να πω λέξη n φορές. Και τώρα έχω δύο νέα κομμάτια του παζλ εδώ κάτω καθορίζουν βήχα n φορές. Και τι κάνει η λειτουργία του βήχα; Τι κάνει μου προσαρμοσμένο κομμάτι του παζλ; Είναι απλά καλεί το μπλοκ ας πούμε, περνώντας στη λέξη που θέλω να πω, περνώντας στον αριθμό φορές που θέλω να πω. Επειδή τώρα μπορώ να εφαρμόσουν φτάρνισμα λέγοντας απλώς achoo, στην περίπτωση αυτή, μερικές φορές. Και έτσι είμαι layering και layering. Και πάλι, το κλειδί δεν είναι εδώ πώς μπορώ να υλοποιηθεί, αλλά το γεγονός ότι αν εγώ απλά κυριολεκτικά μετακινήσετε αυτά έξω από την οθόνη, δείτε πόσο απλό, αν δεν πολύ το πρόγραμμά μου φαίνεται τώρα. Επειδή κάνει ό, τι λέει, έχω αντλούμενου μακριά ό, τι είναι μέσα σε αυτό το μαύρο κουτί. συμβαίνει να είναι ένα μωβ κουτί εδώ, αλλά έχω παρεμποδίζεται μακριά ό, τι είναι μέσα γιατί δεν με νοιάζει πώς λειτουργεί. Απλώς με νοιάζει τώρα ότι λειτουργεί. Και πράγματι, το πρόβλημα που το μηδέν, αυτό είναι ακριβώς το είδος της διαστρωμάτωσης των ιδεών που θα έχουν την ευκαιρία να εξερευνήσουν. Είναι ακριβώς η ευκαιρία να εφαρμόζουν τεχνικές επίλυσης προβλημάτων, σε ό, τι είναι πιθανώς ένα άγνωστο περιβάλλον. Και αν δεν έχετε προγραμματιστεί πριν ή προγραμματιστεί πριν, θα διαπιστώσετε ότι υπάρχει ένα μικρό κάτι σε αυτό το περιβάλλον για όλους. Και με το πρόβλημα που ένα στο χρόνο μιας εβδομάδας, θα πρέπει να μεταβεί στην εστίαση σε μια γλώσσα υψηλού επιπέδου που ονομάζεται Ντο-- ή μάλλον ένα χαμηλότερο γλώσσας επιπέδου που ονομάζεται Ντο-- αυτό είναι ακόμα πιο ισχυρό, ακόμα κι αν είναι λίγο πιο αινιγματική με την πρώτη ματιά. Και θα συνειδητοποιήσετε ανά σημερινή TL: DR, ότι αυτό το πρόβλημα που έχει βραχύτερη παράθυρο του χρόνου από το μέλλον αυτά, απλά γιατί θα πρέπει να το βρείτε αρκετά προσιτός. Και μην ανησυχείτε αν μπορείτε να προσθέσετε την κλάση αργά. Θα αντιμετωπίσουμε πριν από καιρό. Και πριν διακόψουμε για κέικ, ας τελειώσω με μια απλή ματιά δύο λεπτά σε ό, τι σας περιμένει εδώ σε CS50. [ΜΟΥΣΙΚΗ Playing] Εντάξει. Αυτό είναι για το CS50. Θα σας δούμε σύντομα. Κέικ είναι τώρα εξυπηρετούνται. [ΜΟΥΣΙΚΗ Playing] ΟΜΙΛΗΤΗΣ 17: Έχετε ακούσει ενός εκπαιδευτική άδεια, Διευθύνων; ΟΜΙΛΗΤΗΣ 18: Ίσως υπάρχει πιο κάτω από την κουκούλα.