[Powered by Google Translate] [MUSIC ROCK] [MUSIC - "Ευτυχισμένοι Μαζί" ΟΙ ΧΕΛΩΝΕΣ] DAVID Malan: Σήμερα, ξεκινάμε την εξερεύνηση μας από το βασικές αρχές της επιστήμης των υπολογιστών και η εισαγωγή μας, Τώρα, με την τεχνική του προγραμματισμού, του οποίου είναι ότι μόνο ένα παράδειγμα. Όμως, στο ίδιο πνεύμα της επίλυσης προβλημάτων, γνωρίζουν ότι Ημέρα παραδοσιακή παζλ CS50 είναι αύριο. Αν δεν έχετε ακόμη RSVPed για αυτή την εκδήλωση, μπορείτε να πάτε στο cs50.net/rsvp. Μπορείτε να φέρετε ομάδες των δύο ή τριών ή τεσσάρων. Θα πρέπει να αμφισβητηθεί με προβλήματα σαν αυτό που είδα εκεί στην αρχή. Όλα τα νέα προβλήματα φέτος, αν μετείχε πέρυσι, και σας θα έχουν την ευκαιρία τότε να κερδίσετε μερικά καταπληκτικά δώρα. Ανάμεσά τους, ένα Wii και κάποιες δωροεπιταγές και όπως, ενώ όλα κρέμονται από CS50 με τους μαθητές και τους συμμαθητές και πίτσα και το Facebook. Έτσι, περισσότερα για αυτό αύριο, εάν θα θέλατε. Αυτό είναι λοιπόν CS50, για όσους από εσάς μας ενώνει για το πρώτη φορά. Και γνωρίζουμε ότι η πορεία αυτή είναι ιδιαίτερα αποφασισμένος για να πάρει σας μέσα από αυτή την πορεία στον τελικό άκρο του, σε ποιο σημείο θα θα έχει όχι μόνο μια κατανόηση αυτών βασικές αρχές της επιστήμης των υπολογιστών, αλλά θα έχετε αυτό το πολύ πρακτικό σύνολο ικανοτήτων που μπορεί στη συνέχεια να πάρει πίσω το δικό της τμήμα σας, είτε πρόκειται για επιστήμες μηχανικού, εφαρμοσμένα μαθηματικά, οι φυσικές επιστήμες, φυσικές επιστήμη, ή τα παρόμοια. Πράγματι, τι είναι τόσο συναρπαστικό για αυτά τα επιστήμη των υπολογιστών ημέρες είναι ότι δεν είναι ακριβώς έτσι που ισχύουν για όλα τα είδη των πεδίων. Και ακόμα κι αν σήμερα, εμείς θα το μηδέν μόνο την επιφάνεια ενός πολύ παραδοσιακή γλώσσα προγραμματισμού είναι γνωστή ως C, θα αντί να δούμε κάτι που ονομάζεται Scratch, κάτι με που η ιστορία αγάπης μπισκότο υλοποιήθηκε ένας από σας προκατόχους τα προηγούμενα χρόνια, να πει ιστορίες, να δημιουργήσουν παιχνίδια, να δημιουργήσει διαδραστική τέχνη, και να αρχίσει πραγματικά να τυλίξουν μας μυαλά γύρω από ορισμένα από τα θεμελιώδη κατασκευασμάτων που αποτελούν τη βάση του προγραμματισμού, αλλά σε ένα πλαίσιο, όπως θα δείτε, αυτό είναι πολύ λιγότερο τρομακτικό, αυτό είναι πολύ λιγότερο απόκρυφες, από ό, τι θα δείτε πριν από καιρό. Και συνειδητοποιήσουμε, επίσης, για όσους από εσάς απλά μας ενώνει αυτό εξάμηνο, οι φράσεις στις οποίες καταλήξαμε διάλεξη της Τετάρτης, αυτό δεν είναι τόσο σημαντικό όταν θα καταλήξουμε σε σχέση με σας συμμαθητές σε αυτή την κατηγορία, αλλά όπου, μέχρι το τέλος του εξαμήνου στην εβδομάδα 11, καταλήγουν σε σχέση με τον εαυτό σας το δικαίωμα αυτό ακριβώς την ημέρα. Έτσι, χωρίς άλλη καθυστέρηση, αυτό είναι, επίσης, αξίζει να σημειωθεί ότι εκείνες λιγότερο άνετη, εκείνες κάπου στη μέση, είναι Επίσης, από το σχεδιασμό του μαθήματος, δεν υφίστανται διακρίσεις Vis-a-vis εκείνοι πιο άνετα έρχονται σε αυτή την κατηγορία. Όπως θα δείτε πάνω από τις προσεχείς εβδομάδες, έχουμε διαφορετικές ανόμοια κομμάτια για φόντο πίσω, τα τμήματα για εκείνους λιγότερο άνετο, πιο άνετο, εκείνα κάπου στο μεταξύ. Όπως θα δείτε αυτό το Σαββατοκύριακο και την επόμενη εβδομάδα, δύο εκδόσεις του περισσότερα σύνολα πρόβλημα τόσο στην έκδοση πρότυπο και έτσι χάκερ ότι όλοι μπορούν να αυτο-επιλέξετε το μονοπάτι με το οποίο μπορείτε είναι πιο άνετα. Έτσι, σήμερα, έχουμε βουτήξει σε αυτό το προγραμματισμό γλώσσα που ονομάζεται Scratch. Είναι μια γραφική γλώσσα προγραμματισμού, και ακόμη έχει το ίδια χαρακτηριστικά ορισμένων από τις υψηλότερες επιπέδου γλώσσες εμείς σας στέλνουμε διερευνήσει αργότερα στο εξάμηνο, μεταξύ των οποίων και C JavaScript και PHP. Αλλά αυτό πρόκειται να μας επιτρέψει να αποφύγει μερικές από τις αποσπάσεις της προσοχής νωρίς από τη σύνταξη, τα πράγματα όπως τα ερωτηματικά, παρενθέσεις, και άλλες απόκρυφες λεπτομέρειες που, εκ πρώτης όψεως, δεν είναι μόνο σε όλα τα πνευματικά ενδιαφέροντα και έχουν την τάση να πάρει το ο τρόπος από κάποια θεμελιώδη κατανόηση. Όσον αφορά τώρα τη δομή στήριξης μπροστά, το κατάλαβε αυτό εργαλείο, CS50 Συζητήστε, η οποία θα συνδέεται με την πορεία του ιστοσελίδα αργότερα σήμερα, είναι η απευθείας σύνδεση φόρουμ συζήτησης σε που θα είστε σε θέση να κάνετε ερωτήσεις ο ένας τον άλλον και προσωπικό, και είναι επίσης ένα εργαλείο, όπως θα δούμε την επόμενη εβδομάδα, ότι θα χρησιμοποιήσετε αρκετά integratedly σε ώρες γραφείου, καθώς και. Πράγματι, ώρες γραφείου αρχίζουν τη Δευτέρα, και ειλικρινά, το πρώτο εβδομάδα ώρες γραφείου είναι αρκετά χαμηλών τόνων. Δεν νομίζω ότι θα βρείτε Scratch όλα αυτά απρόσιτα. Είναι μάλλον αυτονόητο, όπως θα δούμε, και έτσι ό, τι θα το χρησιμοποιήσετε για σήμερα είναι να εξάγει μερικά από τα θεμελιώδεις ιδέες που θα, στη συνέχεια, εξακολουθούν να υπάρχουν σε όλη την υπόλοιπο του εξαμήνου. Όμως, από τη Δευτέρα, στις 8:00 μ.μ. με 23:00 μ.μ. θα ώρες γραφείου στο Annenberg πάνω από διάλειμμα του εγκεφάλου. Τομές δύο θα ξεκινήσει σήμερα το βράδυ, έτσι ώστε κάποια στιγμή αυτό Σαββατοκύριακο, πηγαίνετε στο cs50.net/section, και θα να ζητήσει μια σειρά από ερωτήματα. Ανάμεσά τους, πώς θα περιγράφατε σας επίπεδο άνεσης από σήμερα; Δεν υπάρχει κανένας σκληρός, γρήγορος κανόνας ως προς το ποιος είναι στην οποία κουβά. Είναι ακριβώς το είδος των πράγμα που ίσως γνωρίζετε αν έχετε είναι μεταξύ εκείνων οι λιγότερο άνετο ή άλλως. Και τώρα, walkthroughs. Η προδιαγραφή σετ πρόβλημα για αυτή την εβδομάδα, τόσο πρότυπο και έκδοση χάκερ όσο είναι online στο cs50.net από τώρα. Και θα δείτε ότι η πρώτη από αυτές τις εκδόσεις, η πρότυπο έκδοση κάθε εβδομάδα, συνοδεύεται από κάτι που καλέσετε έναν κωδικό πέρασμα, μια συνεδρία υπό την καθοδήγηση ενός από τα υποτρόφων διδασκαλία μαθήματος για να σας καθοδηγήσει, να παρέχουν συμβουλές για, και μπορείτε να πάρετε κάτω μια συγκεκριμένη πορεία, όταν πρόκειται από την έναρξη αυτών των συνόλων πρόβλημα. Έτσι, με κάθε ένα από αυτά τα σύνολα πρόβλημα, αν ποτέ θέλουν για τον εαυτό σας όπου μπορώ να ξεκινήσω, θα ξεκινήσω με αυτά walkthroughs. Και στην πραγματικότητα, επιτρέψτε μου να εισαγάγει Zamyla Chan, αυτό διδασκαλίας τους συναδέλφους του έτους που θα οδηγεί το καθένα και κάθε ένα από αυτά τα περάσματα. Zamyla; [Χειροκρότημα] ZAMYLA CHAN: Γεια σου, όλοι. Το όνομά μου είναι Zamyla. Είμαι μια junior μηχανικών που σπουδάζουν σε Winthrop Βουλή. Αλλά προσπαθώ και ταιριάζει σε τόσα μαθήματα επιστήμης των υπολογιστών, όπως εγώ μπορεί, αυτός είναι ο λόγος που είμαι πραγματικά ενθουσιασμένος που θα οδηγήσει αυτό walkthroughs έτους. Walkthroughs, για μένα, ήταν ένα ουσιαστικό μέρος του CS50 μου εμπειρία. Κατά τη διάρκεια της περιδιάβαση, για κάθε p-ομάδα, θα πάμε μέσω το πρόβλημα που μαζί, να δούμε πάνω από τα προβλήματα, το είδος της χωρίζουν τους επάνω σε διαχειρίσιμα δαγκώματα. Θα σας δώσω συμβουλές, τεχνικές, για να πάρει μέσα και να ξεκινήσετε. Ελπίζω να σας δω όλους στα περάσματα. Αν δεν μπορείτε να το κάνετε στο πρόσωπο, στη συνέχεια, παρακαλώ να συντονιστείτε σε απευθείας σύνδεση. DAVID Malan: Εξαιρετική. Σας ευχαριστώ, Zamyla. Έτσι, συνειδητοποιούν ότι walkthroughs είναι, πράγματι, την Παρασκευή απόγευμα, αλλά αυτό είναι σκόπιμα από το σχεδιασμό, έτσι ώστε ακόμα κι αν δεν θα παραστεί τάξη μάλλον την Παρασκευή απόγευμα, τα βίντεο θα είναι επάνω όλο και πιο γρήγορα πάνω το Σαββατοκύριακο. Έτσι συνειδητοποιούμε ότι cs50.net θα είναι όλα του Zamyla walkthroughs. Και ότι δεν υπάρχει ημερομηνία και η ώρα του σήμερα, 3:00 μμ, Harberd Hall, 104. Και μερικά από τα υποτρόφων διδασκαλίας έχουν επίσης παρασκευάζονται μερικές παρατηρήσεις για εσάς ερήμην για να σας δώσει ένα κομμάτι της προοπτική ως προς το ποια ήταν η εμπειρία τους και έρχονται σε βγείτε έξω από CS50 όπως ήταν. Έτσι, αν θα μπορούσαμε να χαμηλώστε τα φώτα για μια στιγμή, σας δίνω μέρος του προσωπικού CS50 του. JACKSON Steinkamp: Πήρα CS50 πέρυσι ως πρωτοετής στο πτώση, και το ανατίναξε εντελώς το μυαλό μου. Ποτέ δεν είχε λάβει κανένα μαθήματα προγραμματισμού πριν, και ποτέ δεν ήρθε με οποιαδήποτε επιστήμη των υπολογιστών εμπειρία σε όλα. Και ακριβώς, έχω ακούσει το βόμβο για την τάξη και αποφάσισε να το πάρει. ΤΖΟΥΛΙΑ MITELMAN: Ήταν πραγματικά διασκεδαστικό, πραγματικά ελκυστικό. Ακόμα, σε αυτήν την ημέρα - Μόλις πρόσφατα είδα έχω την δισκέτα που μας έδωσε ο David την πρώτη ημέρα της διάλεξης μας. Το είχα κρεμαστεί στον τοίχο μου. Αυτό είναι ίσως λίγο nerdy, αλλά έκλεισα το τηλέφωνο μου για το τοίχο κατά τη διάρκεια της κατηγορίας, ως υπενθύμιση του πόσο cool ήταν. TRAVIS DOWNS: Είναι τόσο ενοχλητικό. JACKSON Steinkamp: επιστήμη των υπολογιστών είναι κάτι που θα πρέπει να προσπαθήσουν ακόμα κι αν δεν είστε ένας για οι παραδοσιακές επιστήμες. Είναι δική της εμπειρία, και CS50 θα βεβαιωθείτε ότι είστε υποστηρίζεται και μέσω αυτού με πραγματικό στρατό της ΤΡ. ALI Nahm: πήρα σαν καινούριο, και έτσι έκανα μια πολύ από νέους φίλους. Επίσης, πήρε εισήχθη σε όλη αυτή τη συγκέντρωση και ολόκληρη σχολή της εφαρμοσμένης μηχανικής, και γι 'αυτό προτείνουμε ανεπιφύλακτα και σας καλωσορίζω στην οικογένεια CS50 μας. Yaniv YACOBY: CS50 σας διδάσκει ακριβώς πώς να χρησιμοποιούν εργαλεία που είναι ευρέως προσβάσιμα. Χρειάζεται μόνο ένα φορητό υπολογιστή, θα πρέπει να έχετε ένα πρόγραμμα περιήγησης στο Web, και σας Πρέπει να μάθουν να γράφουν κάποιο κώδικα, και μπορείτε πραγματικά να οικοδομήσουμε τακτοποιημένα πράγματα. KAREN XIAO: Είναι τόσο δροσερό για να είναι σε θέση να κάνουν κάτι και να έχουν οι άνθρωποι το χρησιμοποιούν και να έχουν οι άνθρωποι το βλέπουν, και ότι είναι αυτό που πραγματικά αγαπώ γι 'αυτό. TIM MCLAUGHLIN: - μια αίσθηση της κοινότητας, νομίζω, σε αυτό το Φυσικά περισσότερο από κάθε άλλο μάθημα που έχω πάρει μέχρι τώρα. Δεν παίρνετε μόνο ένα άλλο - δεν είστε συμπληρώνοντας μια άλλη απαίτηση. Δεν είστε ακριβώς πρόκειται να διαλέξεις και πρόκειται να ενότητα. Αλλά κάνετε τόνους πράγματα που είναι όλα σχετικά με προγραμματισμού και όλα τα σχετικά με την τεχνολογία, αλλά δεν πραγματικά αισθάνομαι σαν μια τάξη το μεγαλύτερο μέρος του χρόνου. TRAVIS DOWNS: Και την πρώτη ημέρα, που παραδόθηκε από κέικ, και Ήμουν πωλούνται αμέσως. JACOB PRITT: Δωρεάν καραμέλα και πίτσα. ZAMYLA CHAN: - ανεξάρτητα από το επίπεδο το ενδιαφέρον σας, νομίζω ότι CS50, θα έχετε τη διασκέδαση, και θα είστε διανοητικά διέγερση. MARK GROZEN-SMITH: Είναι πάντα ένα κόμμα στην τάξη, και αυτό είναι ένα πάρτι κάθε βράδυ που εργάζονται στο ρ-set σας. JACKSON Steinkamp: Κάθε φορά που τελειώνω ένα σύνολο πρόβλημα, Θα νιώθετε σαν να έχετε τελειώσει ένα έργο. ΜΕΛΙΣΣΑ NIU: Ήταν το καινούριο έτος, και είχα κάνει ψώνια. Είχα τέσσερις κατηγορίες έτοιμος μου, και ήμουν σε Annenberg. Και εγώ χτύπημα σε έναν φίλο, και λέει, hey, είμαι ψώνια αυτή η κατηγορία ονομάζεται CS50, και θα πρέπει να έρθει μαζί μου. Έκλεισε μέχρι τη λήψη της εν λόγω πτώση, και μετά από αυτή την κατηγορία, θα ότι ίσως Πάω να ανηλίκου CS. Αλλά εδώ είμαι, τρία χρόνια αργότερα, μελετώντας ακόμα υπολογιστή επιστήμη και να το κάνουμε πραγματικότητα ως ένα σημαντικό, και μου άρεσε κάθε στιγμή της. ROB BOWDEN: Δεν έχω ιδέα. ALI Nahm: Ας δούμε. ΜΕΛΙΣΣΑ NIU: Τρέλα. ΟΜΙΛΗΤΗΣ 1: Νιώθω σαν να ήμουν πολύ κλισέ. Θα ήθελα απλώς να πω, όπως, φοβερό. Yaniv YACOBY: Προσβασιμότητα. JACOB PRITT: Δωρεάν καραμέλα και πίτσα. TRAVIS DOWNS: Δεν είναι δυνατή γυρίσει κάτω μια τάξη τα χέρια από το κέικ. TIM MCLAUGHLIN: Ενεργειακά. Vipul Shekhawat: Essential. ROB BOWDEN: Επιτρέψτε μου να σκεφτώ μια απάντηση. Νομίζω ότι πήρα κάτι. Θεέ μου. Ναι, Rob όνομά μου Bowden, και αυτό είναι CS50. [Χειροκρότημα] DAVID Malan: Εντάξει, έτσι ας αρχίσουμε να ζωγραφίσει μια εικόνα από την κατεύθυνση προς την οποία μπορούμε να πάμε, και ας εισαγάγει αυτή η ιδέα εδώ είναι γνωστή ως ψευδοκώδικα. Έτσι ψευδοκώδικας δεν είναι ένα προγραμματισμού γλώσσα από μόνο του. Δεν είναι τίποτα τεχνική per se, αλλά αυτό είναι ακριβώς το είδος του ένα γενική τρόπος έκφρασης εαυτό σας αρκετά ακριβώς, αλγοριθμικά αρκετά, αρκετά διαδικαστικά, αλλά χωρίς να χρειάζεται να ανησυχείτε για το τι γλώσσα που εκφράζουν τον εαυτό σας μέσα Είναι μερικές μοντέλο της αγγλικής και γλώσσες προγραμματισμού με που τυχαίνει να είναι εξοικειωμένοι, έτσι μπορούμε να αρχίσουμε γράψω αυτό το είδος του πράγματος, όπως πάμε. Και στην πραγματικότητα, ο Joseph, θα μπορούσα να σας δανειστεί στη σκηνή για να γραφέας εδώ; Έχω προχωρήσει εδώ εκ των προτέρων και να ξεχάσει να βάλει σε ορισμένες κάλτσες σήμερα, και αυτό θα είναι μεταξύ των περισσότερο μας γελοία παραδείγματα. Τώρα, θα πρέπει να έχετε πάνω από εδώ. Θα κάνω το μέρος κάλτσες. Έτσι εδώ έχουμε ένα μικρό μαξιλάρι μηδέν. Αυτό είναι κυριολεκτικά TextEdit σε Mac. Δεν είμαστε πραγματικά πρόκειται να γράψω μια εκτελέσιμη πρόγραμμα, αλλά είμαστε ακριβώς πρόκειται να ξεκινήσει σκιαγραφώντας με βάση το ψευδοκώδικα για μερικές από τις συμβουλές που παρέχουν σε μένα εδώ. Έτσι, εδώ είναι η σωρός του κάλτσες μου στο σπίτι. Δεν έχω κάλτσες όταν ξυπνάω το πρωί, και τώρα πρέπει να γράψει ένα πρόγραμμα, έναν αλγόριθμο του είδους, με την οποία για να πάρει αυτές τις κάλτσες στα πόδια μου. Και στην πορεία, ας δούμε αν μπορούμε ταξίδι πάνω, ή αντιμετωπίζετε, μερικές από τις ιδέες που θα πάμε να πρέπει να αρχίσει σκέφτεται πολύ πιο σοβαρά κατά τον προγραμματισμό μήπως τα προγράμματά σας δεν συμπεριφέρονται αρκετά όπως θα έπρεπε. Έτσι κάθομαι εδώ κάτω. Έχω σωρό μου κάλτσες. Ποιο είναι το πρώτο πράγμα που ένας λογικός άνθρωπος θα κάνουμε όταν ο στόχος είναι να τεθεί σε ένα ζευγάρι κάλτσες; Κάποιος να μου δώσει ένα βήμα, και μόνο ένα βήμα. Ναι; ΚΟΙΝΟ: Λυγίστε τα κάτω. DAVID Malan: Λυγίστε τα κάτω, Εντάξει. Βήμα δύο. Βήμα δύο. ΚΟΙΝΟ: Σήκωσε κάλτσα σας. DAVID Malan: Σήκωσε κάλτσα σας. Εντάξει, τόσο μικρή ασάφεια εδώ, και αυτό είναι ένα από τα πρώτα εμπόδια που υποτίθεται ότι πρέπει να σκόπιμα συναντήσετε εδώ. Είναι λίγο ασαφής, έτσι ώστε να πάρει κάλτσα σας. Ωραία, θα πάρω αυτό το ένα, αλλά ένας υπολογιστής, συνειδητοποιούν σε μόλις ένα bit, δεν πρόκειται να έχουν αυτό το είδος της ανθρώπινης ένστικτο σε μόλις επιλέξετε το κοντινότερο. Εμείς πάμε να πρέπει να ξεκινήσει, πριν από καιρό, εκφράζοντας τους εαυτούς μας με μεγαλύτερη ακρίβεια. Εντάξει, έτσι το δεύτερο βήμα είναι να πάρει κάλτσα σας. Θα το πάρει. Βήμα τρία. Στην πλάτη. ΚΟΙΝΟ: Βρείτε μια αντίστοιχη ζεύγος. DAVID Malan: Βρείτε ταιριάζουν ζεύγος. Εντάξει, έτσι αυτό είναι καλό. Έπρεπε να διαλέξω αυτή την κάλτσα. Έτσι, ο στόχος είναι να βρεθεί μια αντιστοίχιση κάλτσα, τώρα, αλλά τι σημαίνει αυτό; Ένας λογικός άνθρωπος, όπως και την Τετάρτη, όταν εγώ απλά ήξερε πώς να βρείτε τον Mike Smith σε ένα τηλεφωνικό κατάλογο, ακριβώς το είδος του πήγε με το ένστικτό τους. Αλλά εδώ, είναι προφανές ότι αυτή η κάλτσα εδώ, αλλά ένα υπολογιστή Δεν πρόκειται να είναι τόσο ενστικτώδης. Ένας υπολογιστής πρόκειται να έχει μια συλλογή από bits, όπως έχουμε συζητήθηκε την Τετάρτη, και αυτά είναι οργανώνονται με κάποιο τρόπο στη μνήμη. Αλλά το θέμα είναι ότι ένας υπολογιστής έχει μόνο τη δυνατότητα για να δούμε τα πράγματα, ένα κάθε φορά, και στην πραγματικότητα, ακόμη και εμείς ανθρώπους - ακόμα κι αν αισθάνεται σαν κοίταξα κάτω και ένα split δευτερόλεπτο αργότερα ξέρω πού είναι η κάλτσα, το μυαλό μου και τα μάτια μου προφανώς έκανε μια γρήγορη άπαχο αυτών κάλτσες, και στη συνέχεια ασφαλισμένη σχετικά με εκείνο του εν λόγω. Έτσι, αν είμαστε ακόμη πιο σκόπιμη τώρα ως έναν υπολογιστή, πώς μπορώ να βρω αυτό το ζευγάρι αντιστοίχιση; Λοιπόν, έχουμε να επαναλάβει. Πρέπει να βρόχο ίσως πάνω από αυτό το χάος των κάλτσες για το όροφο όπου λέω κάτι σαν ΓΙΑ ΚΑΘΕ κάλτσα, το πάρει , και αν το ίδιο σχήμα και μέγεθος με το άλλο, ΤΟΤΕ τελεία, τελεία, τελεία, εμείς θα συνεχίσουμε την ιστορία. Έτσι, για κάθε κάλτσα, έτσι έχω πάρει αυτό το ένα. Μπορώ να ελέγξω αυτό είναι ίσο με αυτό. Δεν είναι, γι 'αυτό βάλει στην άκρη πλευρά. Τότε θα επαναλάβει και πάλι. Είναι αυτό ίσα; Όχι, δεν είναι, έτσι το έβαλα στην άκρη. Είναι αυτό; Όχι. Αυτό και μόνο; Όχι, και ούτω καθεξής. Και τελικά, ελπίζω, θα αντιμετωπίσετε αυτό το κάλτσα εδώ. Έτσι, αν πρόκειται για το ίδιο σχήμα, το μέγεθος, το πάρετε. Και τώρα, τι θα είναι το επόμενο βήμα μας εδώ; Ναι; ΚΟΙΝΟ: Αναγνωρίστε δεξιά από τα αριστερά. DAVID Malan: Εντάξει, να προσδιορίσει δεξιά και αριστερά, έτσι Ευτυχώς, αυτό το είδος των έργων. Ένα μικρό συμμετρική, ή έχω απλώς φοριούνται τους με αυτόν τον τρόπο. Εντάξει, έτσι έχω εντοπίσει το δικαίωμα. Και τώρα, πριν προχωρήσουμε, επιτρέψτε μου να επισημάνω τι Ιωσήφ έχει κάνει εδώ ως ένα είδος έμπειρα προγραμματιστής. Έτσι, και πάλι, δεν υπάρχει κανένας τρόπος για να γίνει αυτό, αλλά πέρα ​​από τα όρια αρίθμηση των γραμμών, Ιωσήφ έχει ήδη αρχίσει να το κάνει αυτό είδος της εσοχής. Πράγματι, αυτό είναι ένα πολύ κοινό σύμβαση στον προγραμματισμό, σύμφωνα με την οποία όταν κάνετε κάτι επαναληπτική, looping στυλ, όπως είμαστε υπονοώντας με την αγγλική φράση "για κάθε κάλτσα, "η σύμβαση σε ψευδοκώδικα και, όπως θα δούμε, κανονικές γλώσσες προγραμματισμού, είναι μόνο περίπτωση. Πατήστε το πλήκτρο διαστήματος μερικές φορές, πατήστε το πλήκτρο Tab ή τα παρόμοια, έτσι ώστε ένθετη κάτω "ΓΙΑ ΚΑΘΕ κάλτσα" είναι το κομμάτι της πράγματα που πρέπει να κάνετε, ως αποτέλεσμα αυτού του βρόχου. Έτσι, αυτό είναι το μόνο που μεταφέρει σημασιολογικά. Τώρα τω μεταξύ, το "Αν είναι το ίδιο σχήμα και μέγεθος," η γεγονός ότι «Πάρτε" είναι εσοχή περαιτέρω ακριβώς σημαίνει αυτό είναι το μόνο πράγμα που πρέπει να κάνετε αν αυτή κατάσταση, αν η εν λόγω υποκατάστημα, ότι η διακλάδωση του δρόμου, είναι στην πραγματικότητα αληθινή. Έτσι, τώρα εδώ, είμαστε στο βήμα τέσσερα, τον εντοπισμό δεξιά και αριστερά. Έχω δικαίωμα εντοπιστεί. Δώστε μου βήμα πέντε. Και από τεχνική άποψη, θα μπορούσαμε πραγματικά να καλέσετε ΓΙΑ ΚΑΘΕ το πράγμα - θα πρέπει να αριθμήσετε κατά πάσα πιθανότητα όλες τις γραμμές, εάν θα πάμε να το κάνουμε αυτό. JOSEPH: [δεν ακούγεται] DAVID Malan: [δεν ακούγεται]; Εντάξει, εντάξει, εντάξει, θα το κάνουμε με τον τρόπο σου. Εντάξει, έτσι βήμα πέντε, πώς μπορούμε να κάνουμε το σωστό κάλτσα; Πώς μπορούμε να προχωρήσουμε στη συνέχεια, εδώ; Ναι; ΚΟΙΝΟ: Σηκώστε το δεξί πόδι. DAVID Malan: Σηκώστε το δεξί πόδι, Εντάξει. Βήμα έξι; Γρήγορα. Ναι. ΚΟΙΝΟ: Βρείτε ένα ανοιχτό άκρο της κάλτσα. DAVID Malan: Εντάξει, βρείτε το ανοιχτό άκρο της κάλτσα. Τόσο καλό. Μέχρι εδώ, ειλικρινά, ένα πολύ κοινό ένστικτο θα είναι απλώς που διατίθενται στην δεξιά κάλτσα, αλλά αυτό είναι πάρα πολύ αρκετά ασαφής. Εκτός αν ο υπολογιστής ή ανθρώπινη ξέρει ακριβώς τι σημαίνει αυτό, δεν πρόκειται να είναι για να εκτελέσει ότι, τόσο εδώ, έχω βρήκε το άνοιγμα των αποθεμάτων. Βήμα επτά; ΚΟΙΝΟ: Αγγίξτε τα δάχτυλα των ποδιών σας. DAVID Malan: δάχτυλα αφής. Εντάξει, έτσι τώρα πάμε - Εντάξει, Πάω να πάρετε μερικές ελευθερίες εδώ. Ευχαριστώ. Βήμα οκτώ; Βάλτε την κάλτσα. Εντάξει, έτσι τώρα, νομίζω ότι είμαστε αρκετά κοντά για να ταξινομήσετε του να αυτό στο σπίτι. Εντάξει, έτσι αυτό ανεβαίνει. Θα πάρω κάποιες ελευθερίες με ό, τι αυτό σημαίνει, στην πραγματικότητα. Βάλτε την κάλτσα. Εντάξει, τώρα εννέα βήμα; ΚΟΙΝΟ: Βάλτε τα πόδια προς τα κάτω. DAVID Malan: Σας ευχαριστώ. Βήμα εννέα, το πόδι κάτω, και τώρα, μπορούμε να επαναλάβουμε. Έτσι, κατά πάσα πιθανότητα, μπορούμε τώρα να πάμε στο βήμα 10 και λένε προσδιορίσει αριστερά κάλτσα, αλλά αυτό είναι πιθανώς ήδη γίνει. Και έτσι λοιπόν, μπορώ να ταξινομήσετε από επαναλάβετε αυτά τα βήματα. Αλλά αυτό το είδος της θέτει το ερώτημα. Πριν, η τελευταία φορά που θέλαμε να επαναλάβουμε κάτι που, έκανε επαναληπτικό, ξανά και ξανά, ένα για Κάθε βρόχος να το πω έτσι. Θα ήταν λογικό να χρησιμοποιήσετε ένα βρόχο για να χειριστεί τόσο η αριστερά και η δεξιά κάλτσα; Επειδή αισθάνεται όπως οι πράξεις αυτές είναι λίγο πολύ ταυτόσημα εκτός από το γεγονός ότι το ένα αρχίζει εδώ και μία ξεκινά εδώ; Έχουμε βρόχο, ή θα πρέπει να κρατήσει μόνο εγγράφως βήματα 10 και 11 και 12; ΚΟΙΝΟ: Loop. DAVID Malan: Εντάξει, έτσι βρόχο. Εγώ πραγματικά θα μπορούσε να πει απλά συνεχίζω. Γιατί, λοιπόν, είναι αυτή η περίπτωση; Λοιπόν, αυτό είναι πραγματικά το πρώτο μας μη-προφανή αποφάσεις σχεδιασμού, και στην πραγματικότητα, μία από τις μετρικές με τις οποίες θα αρχίσουν να αξιολογούν, για τους εαυτούς μας και για σας, το ποιότητα του προγράμματος είναι πόσο καλά σχεδιασμένο είναι. Έχετε κάνει το ελάχιστο ποσό της εργασίας που απαιτείται για να γίνει η δουλειά του πιο γρήγορα, είτε από την άποψη της τον χρόνο σας ή την άποψη του χρόνου λειτουργίας του υπολογιστή; Πόσες επιχειρήσεις χρειάζεται για να εκτελέσει; Έτσι, αναμφισβήτητα, αυτό είναι μια ευκαιρία για έναν βρόχο, διότι μόλις έχω ξεκινήσει την αντιγραφή και επικόλληση, όπως ο Ιωσήφ αποτελεσματικά θα αρχίσουν να κάνουν σε μια στιγμή, είστε το είδος της σπατάλης σας χρόνο, και να είστε διπλά εκφραστική. Αλλά την ίδια στιγμή, αυτά είναι πραγματικά μόνο δύο ειδικές περιπτώσεις, αριστερά και δεξιά. Και ενώ πριν, μπορεί να έχω 10 ή 20 ή περισσότερα σε κάλτσες ένα σωρό, κάνει σίγουρα λογικό να μην έχουμε 50 γραμμές του Κωδικός λέγοντας ελέγξετε την κάλτσα, τότε η επόμενη, τότε το επόμενο. Εδώ, είναι λίγο λιγότερο προφανείς, και θα ήθελα να προτείνεται ότι θα μπορούσε να πάει είτε τρόπο. Θα μπορούσαμε να έχουμε είτε το βρόχο, παρά το γεγονός ότι μόνο βρόχους δύο φορές, ή θα μπορούσε απλά να αντιγράψετε και να επικολλήσετε μόνο ένα μικρό κομμάτι εδώ, για να γίνει η δουλειά. Όμως αυτό το πρόγραμμα είναι με λάθη, να το πω έτσι. Θα μπορούσε να έχει κάποια λάθη, λάθη, ή τις περιπτώσεις γωνία, έτσι ώστε να μιλούν, ότι δεν είχαμε προβλέψει πραγματικά. Τίποτα δεν πήγε καλά αυτή τη φορά, αλλά τι θα μπορούσε να πάει στραβά κατά την εκτέλεση αυτού του προγράμματος; ΚΟΙΝΟ: Δεν έχετε κανένα κάλτσες. DAVID Malan: Έτσι, θα μπορούσε να υπάρξει καμία απολύτως κάλτσες εκεί. Ας εξετάσει την υπόθεση γωνία. Έτσι, αν θα μπορούσαμε να μετακινηθείτε προς τα πίσω μέχρι να το βήμα ένα, έτσι βήμα ο ένας ήταν λυγίσει κάτω, έτσι ώστε να ελέγχει έξω. Βήμα δύο, σηκώστε κάλτσα σας, αλλά στη συνέχεια να βρει ταιριάζουν κάλτσα, προσδιορίσουν τους. Είμαστε είδος έκανε ένα σωρό υποθέσεις, και αυτό είναι, ειλικρινά, γιατί μερικές φορές το πρόγραμμα συντριβή. Εάν, ο προγραμματιστής, έχουν κάνει ορισμένες παραδοχές, όπως σίγουρα υπάρχει μετάβαση να είναι κάλτσες ή σίγουρα εκεί θα να αφήσει τη μνήμη του υπολογιστή, σίγουρα εκεί θα να αφήσει χώρο στο δίσκο στο σκληρό δίσκο - Λοιπόν, αν έχετε κάνει αυτές τις παραδοχές, και ότι δεν είναι, Στην πραγματικότητα, η πραγματικότητα, ποιος ξέρει τι μερικές φορές ο υπολογιστής του πρόκειται να κάνει; Και μερικές φορές, όταν μπορείτε να πάρετε την περιστρεφόμενη μπάλα ή την κατεψυγμένα Windows ή τα παρόμοια, που είναι ακριβώς επειδή μερικοί προγραμματιστής δεν περίμενε αυτές τις λεγόμενες περιπτώσεις γωνία. Τι άλλο θα μπορούσε να πάει στραβά σε αυτό το πρόγραμμα; Ναι; ΚΟΙΝΟ: Δεν έχετε το δικαίωμα πόδι και το αριστερό πόδι. DAVID Malan: Εντάξει, μπορεί να μην έχει τόσο ένα δεξί πόδι και ένα αριστερό πόδι, έτσι και αυτό το πρόγραμμα μπορεί να μην είναι καθολικά εφαρμόζεται. Άλλοι; ΚΟΙΝΟ: Μπορεί να έχετε πάρει ένα ορφανό κάλτσα. DAVID Malan: θα μπορούσα να έχω πάρει ένα ορφανό κάλτσα, έτσι, ένα μη-ταίριασμα κάλτσα που έχει απλά δεν τα αδέλφια επειδή έχω χαθεί αυτό, είναι σχισμένο, είναι στην πλύση ακόμη, ή τα παρόμοια. Έτσι που, επίσης, δεν έχει πραγματικά υποστεί χειρισμούς. Ναι; ΚΟΙΝΟ: Μπορεί να έχετε ήδη κάλτσες. DAVID Malan: θα μπορούσα να έχω ήδη κάλτσες. Δεν είχα πραγματικά έλεγχο. ΑΝ δεν έχετε κάλτσες, στη συνέχεια να προχωρήσει να κάνει γραμμή ένα και δύο. Και αυτό θα μπορούσε να συμβεί. Θα κοιμηθείτε με τις κάλτσες σας και τα παρόμοια, έτσι ότι, επίσης, μια πολύ λογική υπόθεση γωνία. Και ίσως ένα άλλο; ΚΟΙΝΟ: Η κάλτσα είναι μέσα προς τα έξω. DAVID Malan: Έτσι είναι η κάλτσα μέσα προς τα έξω, έτσι κάναμε κανένα λάθος τον έλεγχο, με λίγα λόγια. Εμείς δεν έλεγξε αν η κατάσταση του κόσμου είναι όπως περιμένουμε. Εμείς δεν έλεγξε αν όντως βρήκε αυτό που ψάχνουμε. Και ακόμα κι αν αυτό είναι ένα είδος γελοίο παράδειγμα συμμετοχή κάλτσες, στο τέλος της ημέρας, αυτό είναι ακριβώς το είδος της νοοτροπίας που πρέπει να έχετε κατά τη σύνταξη των προγραμμάτων, ακόμη και στο Ξυστό, καθώς και σε C, σε JavaScript, το PHP, γιατί αλλιώς, τα προγράμματά σας θα εμφανίζουν το ισοδύναμο του κλώση μπάλα ή απλά να αποδώσει ανακριβή αποτελέσματα. Έτσι, πολλές ευχαριστίες εδώ για να γραφέα Ιωσήφ μας. [Χειροκρότημα] DAVID Malan: Εντάξει, έτσι αυτό που είναι, σε Μάλιστα, ένα πρόγραμμα ηλεκτρονικού υπολογιστή; Λοιπόν, ας ρίξουμε μια γρήγορη ματιά σε ένα αντιπροσωπευτική εδώ. Έτσι, αυτό είναι ένα πρόγραμμα γραμμένο σε μια γλώσσα που ονομάζεται C. C είναι είναι χτισμένα αρκετά παλιά αυτές τις μέρες, αλλά πολλές νεότερες γλώσσες πάνω από αυτό. Πράγματι, PHP, ένα από τα web-centric γλώσσες που θα χρήση προς το τέλος του χρόνου, η ίδια έχει αυτό που ονομάζεται διερμηνέας, ένα πρόγραμμα που είναι γραμμένο σε C, αλλά περισσότερα για αυτό σε πολλές εβδομάδες από τώρα. Αλλά αυτό το πρόγραμμα, και αυτό είναι τι σημαίνει να γράψει ένα πρόγραμμα, αν και πολύ απλή. Έχουμε κάποια αρκετά κρυπτική σύνταξη εδώ, αλλά μπορείτε να μαντέψετε, ακόμα και αν δεν έχετε προγραμματιστεί πριν, τι αυτό το πρόγραμμα κάνει. Πράγματι, δεν ξέρω τι printf είναι, αλλά σίγουρα εκτύπωση φέρνει στο νου την ιδέα της εκτύπωσης κάτι. Και έτσι ναι, αυτό το πρόγραμμα είναι τελικά πρόκειται να εκτυπώσετε οι λέξεις "Hello, World". Τώρα, αν έχετε ένα Mac ή ένα PC ή έναν υπολογιστή Linux, οι πιθανότητες είναι, τουλάχιστον αν έχετε κατεβάσει μερικά ελεύθερα διαθέσιμο λογισμικό, θα μπορούσατε να είχατε γράψει προγράμματα για το φορητό υπολογιστή σας για αρκετό καιρό τώρα. Σε Mac OS, για παράδειγμα, υπάρχει το πρόγραμμα αυτό που ονομάζεται Terminal που έρχεται με ένα Mac, που είναι συνήθως σε σας Utilities φάκελο, και ανοίγει συνήθως μια μαύρη και λευκό ή λευκό και μαύρο παράθυρο στο οποίο έχετε προτρέψει στο οποίο μπορείτε να πληκτρολογήσετε εντολές. Έτσι, αυτό είναι πραγματικά θυμίζει αυτό που οι υπολογιστές χρησιμοποιείται για να είναι πριν γραφικών χρήστη διασυνδέσεις, GUIs, ήρθε μαζί. Τώρα, στα Windows, έχετε ένα παρόμοιο μηχανισμό, με τη μορφή από την γραμμή εντολών. Αλλά τι Πάω να κάνουμε εδώ είναι να ανοίξει, ας πούμε, TextEdit και πάλι, έτσι ώστε το ίδιο πρόγραμμα που χρησιμοποιούσαν για ψευδοκώδικα πριν από λίγο, και είμαι πρόκειται να πάει μπροστά και να γράψει το πρώτο μου πρόγραμμα. Συμπεριλάβετε stdio.h, ότι κι αν σημαίνει, int main άκυρη, ότι κι αν σημαίνει, και στη συνέχεια στη μέση εδώ, printf ("Hello, world."). Και στη συνέχεια, κλείστε απόσπασμα, κοντά παρένθεση, τελεία. Τώρα είμαι πρόκειται να πάει μπροστά και απλά πατήστε Command-S. Πάω να προχωρήσει και να σώσει αυτό το hello.c, έτσι ώστε η σύμβαση σε ο κόσμος του προγραμματισμού C είναι το όνομα του αρχείου dot c. Πάω να βάλει απλά στον κατάλογο Αρχική Τζον Χάρβαρντ, εδώ, κάντε κλικ στο κουμπί Αποθήκευση, και τώρα είμαι πρόκειται να πάει πάνω σε αυτό παράθυρο του τερματικού, το οποίο και πάλι είναι αυτό το μαύρο και άσπρο εντολών όπου μπορώ να εκτελέσει εντολές. Μπορώ να τρέξει προγράμματα, πληκτρολογώντας το όνομά τους, όχι από διπλό κλικ εικονίδια με τη συνηθισμένη έννοια. Αλλά το πράγμα είναι περίπου C είναι ότι μια γλώσσα όπως η C πρώτο έρχεται σε αυτή τη μορφή, κάτι που ονομάζεται τον πηγαίο κώδικα. Κάτι που μοιάζει λίγο σαν αγγλικά, αλλά είναι σίγουρα λιγότερο σαν αγγλικά από ένα ψευδοκώδικα Ιωσήφ πριν από λίγο. Είναι λίγο πιο απόκρυφες. Φαίνεται να ακολουθούν κάποιους κανόνες ή πρότυπα. Το γεγονός ότι έχω άγκιστρα, ερωτηματικά, εισαγωγικά, γωνία τιράντες, αισθάνεται σαν ένας υπολογιστής ήρθε με αυτό είδος της γλώσσας. Αλλά αν πάω, τώρα, σε αυτό το παράθυρο τερματικού, μπορώ να τρέξω ένα εντολή που πρόκειται να μετατρέψει αυτόν τον κώδικα είναι κάτι που ονομάζεται αντικειμενικό κώδικα. Αυτό πρόκειται να μετατρέψει Αγγλικά-όπως σύνταξη σε μηδενικά και αυτοί, τα ίδια τα είδη των μηδενικά και αυτά που μίλησε για την Τετάρτη. Τώρα, είμαι πρόκειται να εκτελέσετε μια εντολή που ονομάζεται Clang. Περισσότερα για το θέμα αυτό στις επόμενες εβδομάδες, αλλά είναι ένα πρόγραμμα με που μπορώ να μετατρέψει hello.c σε ένα σωρό από μηδενικά και μονάδες. Τώρα, έχω εκτέλεση αυτής της εντολής. Έχω τρέξει Clang, και τότε είπα στον εαυτό σας τρέχει σε αυτό το αρχείο hello.c ονομάζεται, το οποίο δημιουργήθηκε πριν από λίγο, και τίποτα δεν φαίνεται να συμβαίνει. Αλλά πράγματι, αν έσπρωξε γύρω από τον κατάλογο το σπίτι μου, θα έβλεπα ότι αυτό το όνομα a.out βλακωδώς πρόγραμμα υπάρχει τώρα. Αυτό είναι ακριβώς το προεπιλεγμένο όνομα για ένα πρόγραμμα κατά την εγγραφή σε Γ. Μπορούμε να παρακάμψετε αυτό τελικά, αλλά είναι το a.out όνομα του προγράμματος που μόλις μετατραπεί σε μηδενικά και μονάδες. Και τώρα που τα μηδενικά και αυτά που είναι, το Mac μου, σε αυτή την περίπτωση, ή Windows PC σας, μπορεί να καταλάβει τα κομμάτια, τα μηδενικά και μονάδες. Και έτσι όταν χτύπησα Enter, βλέπω "Hello, world!" Αλλά είναι λίγο προβληματικό. Δεν είχα αρκετά να πω "γειά σου, τον κόσμο: αέρα: - jharvard." Ο αέρας είναι το όνομα του υπολογιστή μου. Jharvard είναι το όνομα του λογαριασμού, οπότε αυτό που έκανα σαφώς απαλειφθεί από το πρόγραμμα; Κάποιο είδος της αλλαγής γραμμής. Δεν είχα χτυπήσει το ισοδύναμο του Enter ή την μεταφορά μετ 'επιστροφής, και αυτό είναι, και πάλι, απόδειξη για το γεγονός ότι οι υπολογιστές μπορούν να μόνο κάνει ό, τι σας πει να κάνετε. Και το γεγονός ότι δεν είχα πει τον υπολογιστή να μετακινήσετε το δρομέα στην επόμενη γραμμή - καλά, αυτό είναι σίγουρα δεν πρόκειται απλά να το κάνουμε presumptuously για μένα. Έτσι, αν πάω πίσω στο πρόγραμμά μου, και λέω \ n - Έτσι, \ n, όπως θα δούμε σύντομα, είναι ο τρόπος της εκπροσωπούν περίεργα πράγματα, όπως χαρακτήρες νέας γραμμής τα πράγματα, , που διαφορετικά θα είναι το αποτέλεσμα της χτυπώντας το πλήκτρο Enter. Αλλά για τώρα, απλά ξέρω ότι το χτύπημα το πλήκτρο Enter θα απλά έκανε τον κώδικά μας φανεί περίεργο, έτσι ώστε ο κόσμος αποφάσισε, ξέρετε τι, για να κρατήσει τα πράγματα πιο όμορφη, για να το κρατήσει σε μία γραμμή, ας απλώς να πω \ n αντιπροσωπεύει μια νέα γραμμή. Επιτρέψτε μου να αποθηκεύσετε ξανά το αρχείο μου, πηγαίνετε πίσω στο παράθυρο του τερματικού, και επανάληψη a.out, Enter. Ακόμα λάθη, αλλά γιατί; ΚΟΙΝΟ: [δεν ακούγεται] DAVID Malan: Ναι, γι 'αυτό πρέπει να το μεταγλωττίσετε. Έτσι, για να καταρτίσει ένα πρόγραμμα ακριβώς σημαίνει το μετατρέψει από την πηγή κώδικα αντικείμενο κώδικα, τον πηγαίο κώδικα για μηδενικά και μονάδες. Τώρα, το γεγονός και μόνον ότι χτύπησα Αποθήκευση σε αυτό το TextEdit δεν έχει φέρει σε αυτά τα μηδενικά και αυτά, γιατί πρέπει πρώτα να tell Clang hey, έχω αλλάξει αυτές τις γραμμές κώδικα, η πηγαίο κώδικα. Θα πρέπει να αναγεννηθούν a.out. Τίποτα δεν φαίνεται να έχει συμβεί, αλλά σε έναν υπολογιστή, σε μια γραμμή εντολών, να το πω έτσι, όταν δεν συμβαίνει τίποτα, αυτό συνήθως σημαίνει ότι όλα είναι καλά. Όταν συμβεί κάτι, αυτό σημαίνει που μπέρδεμα πάνω, γενικά. Ας πάμε τώρα να a.out, και μάλιστα τώρα, έχω "γεια σου, κόσμο. " Και τώρα, τι γίνεται με αυτά τα μηδενικά και μονάδες; Όταν, στην πραγματικότητα, είναι αυτά; Λοιπόν, δεν μπορώ πραγματικά ακριβώς το είδος του σακί γύρω από πολύ αποτελεσματικά. Επιτρέψτε μου να ανοίξει TextEdit. Εδώ είναι a.out. Επιτρέψτε μου να προχωρήσει και να ανοίξει αυτό, και αυτό είναι προφανώς αυτό που μου πρόγραμμα μοιάζει. Έτσι έχω ανοίξει, δεν hello.c, αλλά a.out. Αλλά αυτό δεν είναι στην πραγματικότητα ό, τι πρόγραμμα μου είναι πραγματικά. Προφανώς, αυτό είναι ένα είδος αλφαβητικούς χαρακτήρες. Βλέπω δεν μηδενικά και μονάδες, αλλά αυτό είναι a.out γιατί είναι ένα πρόγραμμα. Μηδενικά και αυτοί - αλλά TextEdit, όπως υποδηλώνει το όνομα, είναι ακριβώς όπως το Σημειωματάριο στα Windows, είναι απλά ένα πρόγραμμα επεξεργασίας κειμένου, έτσι ώστε να είναι σύγχυση όλα αυτά τα μηδενικά και μονάδες, όπως κι αν ήταν, τι; Χαρακτήρες ASCII. Έτσι θυμάμαι την Τετάρτη, απλά ήρθε με αυτό αυθαίρετη αντιστοίχιση των αριθμών, ή κομμάτια, σε επιστολές του αλφάβητο και τα σημεία στίξης και τα παρόμοια. Έτσι TextEdit, που είναι ένα πρόγραμμα επεξεργασίας κειμένου παρερμηνεύοντας αυτά τα πρότυπα μηδενικά και αυτά που υποτίθεται ότι είναι εκτύπωση λέξεις, όπως "Hello, world." Είναι εμφάνιση τους όπως ASCII, και γι 'αυτό φαίνεται λίγο ακατάστατο. Τώρα, υπάρχουν κάποιοι υπαινιγμοί της ορθότητας εδώ. Παρατηρήστε αν Τονίζω, υπάρχει μια υπόδειξη του πραγματικά "γειά σου, κόσμο », έτσι κάπου στο εν λόγω πρόγραμμα είναι η φράση που έγραψα. Αλλά ας πάμε μπροστά και να δούμε τώρα με ένα διαφορετικό πρόγραμμα. Αυτό δεν είναι αυτή που θα χρησιμοποιήσουμε ότι συχνά, αλλά έρχεται επίσης με ένα Mac και θα είναι στο εσωτερικό της συσκευής CS50. Επιτρέψτε μου να προχωρήσει και να ανοίξει με ένα πρόγραμμα που ονομάζεται XXD. Πίσω στην ημέρα, τα περισσότερα προγράμματα ονομάστηκαν αρκετά κρυφά, και έτσι η τάση αυτή συνεχίζεται. Αλλά-β σημαίνει φτύνουν αυτό το πρόγραμμα από το δυαδικό. Μην το τρέξει. Εμφάνιση σε μένα ως μηδενικά και μονάδες, και αυτός είναι ο C πρόγραμμα που μόλις έγραψε. Τώρα, εγώ, ως άνθρωπος εδώ, ειλικρινά δεν έχω καμία ιδέα για το τι αυτές οι διάφορες μορφές μηδενικά και μονάδες αντιπροσωπεύουν. Πίσω στην ημέρα, εγώ, με διάτρητες κάρτες μου ή κάτι παρόμοιο, θα πραγματικά πρέπει να δούμε τι αυτές τις διάφορες μορφές της 01111000, στην πραγματικότητα αντιπροσωπεύουν. Ή, ακόμη χειρότερα, θα πρέπει να κάνει το τρύπημα ή τη δημιουργία αυτών των προτύπων μηδενικά και μονάδες. Αλλά για τώρα, να λάβει την πίστη ότι η CPU, η Intel μέσα, έτσι να μιλήσουν, μέσα από όλους τους υπολογιστές μας αυτές τις μέρες, δεν ξέρει πώς να ερμηνεύσει αυτά τα μηδενικά και μονάδες. Και μερικά μηδενικά και μονάδες σημαίνει εκτύπωσης. Μερικές μηδενικά και μονάδες σημαίνει την αναπαραγωγή ενός ήχου. Μερικές μηδενικά και αυτοί να σημαίνει παρέμβαση του χρήστη από ένα πληκτρολόγιο. Υπάρχει όλα τα είδη των διαφορετικών μοντέλων, αλλά ευτυχώς, ως άνθρωπο, μόνο γενικά χρειάζεται να ανησυχείτε για τον προγραμματισμό σε αυτό αρκετά υψηλότερο επίπεδο. Και σε άλλες κλάσεις CS μπορεί να σας ψάχνω κάτω και να κοιτάξουμε βαθύτερα σε πράγματα όπως τα μηδενικά και μονάδες, ή ακόμη άλλα πράγματα ακόμα. Έτσι τώρα ας μετατρέψει αυτό. Ας προχωρήσουμε πολύ γρήγορα μακριά από το C και να προχωρήσουμε σε κάτι το λίγο πιο παρήγορο, λίγο πιο συναρπαστικό, σε ότι μπορούμε να πάρουμε πίσω κινούμενες εικόνες και ήχους μας και το ότι, όπως σαφώς μας έχουν διαφύγει σε αυτό αρκετά πρωτόγονο περιβάλλον. Έτσι, αυτό το ίδιο πρόγραμμα σε C μπορεί να παρασταθεί τώρα σε αυτή γλώσσα προγραμματισμού που ονομάζεται Scratch ως εξής. Αυτό είναι το ισοδύναμο του αυτού γειά σου παγκόσμιο πρόγραμμα γραμμένο σε αυτό το κομμάτι του παζλ γλώσσα στυλ που ονομάζεται Scratch. Επιτρέψτε μου λοιπόν να προχωρήσει και να ανοίξει αυτό το ίδιο το πρόγραμμα. Είναι και πάλι ονομάζεται Scratch. Είναι ελεύθερα διαθέσιμο, και αυτό είναι το ίδιο πράγμα που που ξεκίνησε σήμερα στις. Έτσι, αυτό είναι εδώ Scratch, και αυτό είναι που χωρίζεται σε λίγα διαφορετικά κομμάτια. Από την κορυφή δεξιά, έχουμε το λεγόμενο στάδιο, και Πράγματι, αυτό είναι όπου τα cookies εκτελείται μόλις πριν από λίγο. Και σε αυτό το στάδιο είναι τα πράγματα που ονομάζονται δαιμόνια, χαρακτήρες, ή αντικείμενα, ή οντότητες. Δεν έχει τόση σημασία το πώς σκέφτεστε από αυτούς, αλλά είναι προγραμματιζόμενες, κινητά πράγματα, και σε αυτή την περίπτωση, η παρούσα πρόγραμμα που μας έγραψε μαθητής έχει ένα ζευγάρι των μελόψωμο μπισκότα, ένα ζευγάρι των κυκλικών μπισκότα, ένα σωρό καρδιές, ένα σωρό γυαλιά. Εξαιτίας αυτού, αυτός ή αυτή είναι σε θέση να προγραμματίσει καθένα από αυτά μεμονωμένων χαρακτήρων χωριστά. Τώρα, τι σημαίνει αυτό για τον προγραμματισμό αυτούς τους χαρακτήρες; Λοιπόν, επιτρέψτε μου να προχωρήσει και κάντε κλικ σε αυτό το αριστερό χέρι μπισκότο μετακινηθείτε προς τα πάνω και προς τα αριστερά κορυφή εδώ. Στο πάνω αριστερό μέρος της οθόνης μου τώρα είναι η λεγόμενες σενάρια περιοχής. Αυτό είναι το είδος της μια κενή πλάκα, αρχικά, πάνω στο οποίο μπορώ drag and drop 'τα κομμάτια παζλ που, ειλικρινά, κάνει ακριβώς ό, τι λένε. Στην κορυφή αυτής της στοίβας του κομμάτια του παζλ είναι η λέξη Όταν Πράσινη Σημαία κλικ, και αν δεν προσέξετε πριν, ο τρόπος που ξεκίνησε αυτό το τραγούδι ήταν μπισκότο κλικ, κυριολεκτικά, μια πράσινη σημαία. Έτσι, εκείνο το κομμάτι παζλ στο επάνω αριστερό μέρος σημαίνει ότι υπάρχει όταν η η ανθρώπινη κλικ πράσινη σημαία, προχώρησε να κάνει τα ακόλουθα πράγματα. Τώρα, τι έκαναν μπισκότο προχωρήσει να κάνει; Πραγματικά, δεν ξέρω πώς να ερμηνεύσει αυτό ακόμα, αλλά η μπισκότο που προφανώς το αυλάκι της στο μηδέν, τότε θα περίμενε τρία δευτερόλεπτα, τότε άλλαξε ομάδα του σε ένα, τότε περίμενε μια δεύτερη, τότε άλλαξε του αυλάκι πίσω σε ένα. Και τότε αυτό φαίνεται πραγματικά σαν ένα κομμάτι από ένα σφάλμα, δεν θα πρέπει να πρέπει να αλλάξει αυλάκι του ξανά και ξανά, εκτός εάν είναι να αλλάξει αλλού, αλλά αυτή η σειρά των βημάτων είναι ό, τι είναι υπαγορεύει τη συμπεριφορά του συγκεκριμένου cookie. Ας πραγματικά μετακινηθείτε προς τα πίσω και δεν δούμε κάτι αρκετά τόσο περίπλοκο ακόμη. Επιτρέψτε μου να προχωρήσει και να πάει στο αρχείο, New, και να πάρετε μια καθαρή πλάκα. Μέχρι τώρα, έχω πράγματι μια κενή περιοχή σενάριο, ένα άδειο στάδιο, Scratch με sprite προεπιλογή μας, και στην επάνω αριστερή στην οθόνη του υπολογιστή μου δεν έχω την παλέτα του συνόλου του τους διαθέσιμα κομμάτια του παζλ. Και εμείς δεν θα περάσει σχεδόν ότι πολλά από αυτά τα πράγματα σήμερα, διότι, και πάλι, οι περισσότεροι είναι αυτονόητα, αλλά εμείς θα προσπαθήστε να τα ταξινομήσουν και να επισημάνω τις ομοιότητες με τις μελλοντικές αυτές τις γλώσσες στις οποίες θα βουτήξουμε. Και στο επάνω αριστερό μέρος εδώ είναι η πρώτη Όταν Πράσινη Σημαία κλικ, οπότε επιτρέψτε μου να σύρετε πάνω από αυτό εδώ, σμίκρυνση λίγο. Και αν κάνω κλικ στην πράσινη σημαία, δεν συμβαίνει τίποτα, γιατί πραγματικά Δεν έχω καμία λογική που επισυνάπτεται, κάθε δήλωση να το πω έτσι, να ότι η πράσινη σημαία, οπότε επιτρέψτε μου να πάω μέχρι το κατηγορίες εδώ. Είμαι σήμερα στην κατηγορία Ελέγχου. Είμαι αντί πρόκειται να πάει κάτω στην κατηγορία βλέμματα, και υπάρχει ένα σωρό πράγματα εδώ λένε ότι λένε, Σκεφτείτε, αλλαγή χρώματος, Κοστούμια Switch. Έτσι, μπορείτε να κάνετε ανόητα πράγματα με κοστούμια και ήχους και τα παρόμοια. Επιτρέψτε μου να προχωρήσει και να πω πω, και τώρα παρατηρώ όπως σύρετε and drop αυτό το κομμάτι παζλ, πρόκειται να θέλουν να προσδεθούμε μέσα στο αντίστοιχο σχήμα. Έτσι, όταν πάω μπροστά και να αφήσει να πάει από το ποντίκι μου, που κλειδώνει μαζί, και τώρα αν πάω εδώ και κάντε κλικ στην πράσινη σημαία, η γάτα έχει στην πραγματικότητα να πω γεια, γιατί αυτό είναι ό, τι είναι μέσα από αυτό το άσπρο κουτί. Θα δείτε σύντομα ότι αυτό το άσπρο κουτί είναι αυτό που ονομάζεται επιχείρημα, ή μία παράμετρος. Είναι ένας τρόπος για την αλλαγή της συμπεριφοράς του, στην περίπτωση αυτή, ένα παζλ κομμάτι, αλλά αν θέλω να πω ακριβώς αυτό που είπα πριν, λένε γεια σου, τον κόσμο, μπορώ τώρα να επανέλθω εδώ, να πατήσετε το play, και «γειά σου, τον κόσμο" είναι ό, τι είπε. Γι 'αυτό και είναι κυριολεκτικά προγραμματισμό τώρα. Δεν είναι όλα ότι συναρπαστικό ενός προγράμματος, αλλά τουλάχιστον είναι λίγο πιο συναρπαστικό από κάτι που μοιάζει, σε Με μια πρώτη ματιά, σαν αυτό. Και μπορούμε πολύ γρήγορα να πάρει όλο και πιο εκφραστική επειδή στο Scratch, όπως και σε άλλες γλώσσες, υπάρχει όλο τα είδη των καταστάσεων, όχι μόνο Πείτε εκτύπωση ή κάτι, αλλά μπορείτε να κάνετε πράγματα όπως να περιμένει, ως είδομεν με το cookie, κάποια αριθμός των δευτερολέπτων. Μπορείτε να παίξετε τους ήχους στο περιβάλλον του Scratch μόνο όπως μπορείτε σε ένα κανονικό πρόγραμμα αναπαραγωγής ήχου του υπολογιστή. Μπορείτε να ελέγξετε τα λεγόμενα Boolean εκφράσεις. Έτσι τώρα, ας αρχίσουμε να προσθέσει εργαλειοθήκη μας κάποια ορολογία που στην πραγματικότητα σχετίζεται με το παράδειγμα ότι ο Ιωσήφ και έκανα εδώ με τις κάλτσες. Έτσι, οι δηλώσεις είναι μόνο δηλώσεις του γεγονότος. Κάνετε αυτό. Η οδηγία για την sprite, ή με το ανθρώπινο, να κάνουμε κάτι. Μια Boolean έκφραση είναι κάτι που έχει μια αξία, μια λεγόμενη αξία αλήθειας, που είναι είτε ένα μηδέν ή ένα, ψευδείς ή αλήθεια, εκτός ή εντός, ή όχι ναι. Δεν έχει σημασία πόσο πραγματικά η γνώμη σας για αυτό, αλλά είναι ένα δυαδική κατάσταση. Όπως Nate συζητήθηκε στο βίντεο της Τετάρτης, δύο διαφορετικά πράγματα. Έτσι, στο Ξυστό, Boolean εκφράσεις τυχαίνει να δούμε όπως αυτές μπλε αντικείμενα εδώ, και σε αυτή την περίπτωση, το ερώτημα σήμα σημαίνει ότι κάνεις μια ερώτηση. Είναι η γάτα, ή το sprite, αγγίζοντας το δείκτη του ποντικιού; Έτσι, αυτό είναι μόνο ένα παράδειγμα από ένα μπλοκ Scratch που πρόκειται να μας επιτρέψει να ελέγξετε ναι ή όχι, είναι το ποντίκι αγγίζει το sprite στην οθόνη; Και αυτό μπορεί να είναι χρήσιμο, εάν θέλετε πραγματικά να κάνετε πράγματα με το ποντίκι σας. Εκτός από την Boolean εκφράσεις, έχουμε πράγματα όπως είναι το ποντίκι προς τα κάτω, έτσι ώστε να μπορεί να ανιχνεύσει αυτό το είδος της ερώτηση, καθώς και. Μπορούμε να κάνουμε τα μαθηματικά, αν πραγματικά θέλετε, και υπάρχει στην πραγματικότητα πιο συναρπαστικό χρήσεις για αυτό από μόνο του καθαρού αριθμητική, όπως θα δούμε. Ψευδο τυχαιότητα και κάνοντας το πρόγραμμά σας φαίνεται να σκέφτονται ή συμπεριφέρονται διαφορετικά με βάση κάποιες φαινομενικά τυχαίες τιμές, και στη συνέχεια έχουμε τα πράγματα όπως Boolean εκφράσεις όπως και. Έτσι, αν πραγματικά θέλετε να ελέγξετε δύο τιμές, θα δούμε σε Ξύστε ότι μπορούμε πραγματικά να ελέγξετε εάν αυτό είναι αληθινή και αυτό είναι αλήθεια. Για παράδειγμα, στην περίπτωση των κάλτσες μου, θα μπορούσα να έχω σε ο πολύ τέλος έθεσε το ερώτημα αν είναι αριστερή κάλτσα και στο δικαίωμα κάλτσα είναι επάνω, κλείστε. Είσαι όλα γίνονται για την ημέρα, έτσι αυτό θα ήταν μια ευκαιρία γι 'αυτό. Ας προχωρήσουμε και να προσπαθήσουμε να συναρμολογήσει μερικά από αυτά μαζί και να πάει σε μια-δυο παραδείγματα περισσότερο συναρπαστικό από αυτό. Επιτρέψτε μου λοιπόν να προχωρήσουμε εδώ και να ανοίξει μερικά από τα παραδείγματα που θα είναι πάντα στην ιστοσελίδα του μαθήματος, καθώς και ανοίξει Hello2. Έτσι, σε Hello2 εδώ, έχουμε ένα πρόγραμμα που κάνει μερικά τα πράγματα, αλλά δεν το κάνει τόσο αποτελεσματικά όσο θα μπορούσαμε. Έτσι, εδώ λέει «γεια σου, τον κόσμο" για ένα δευτερόλεπτο και στη συνέχεια να περιμένει για ένα δευτερόλεπτο. Και το κάνει πάλι, και στη συνέχεια να το κάνει πάλι. Έτσι, αν κάνω κλικ στην πράσινη σημαία, Scratch λέει "Hello, world. Hello, world. Hello, world. "Και αυτό είναι προφανώς υποψήφιος για την επιχείρηση βελτίωση. Ποια είναι η οριακή βελτίωση, ελπίζουμε, μπορούμε να τώρα αν κάνει Scratch υποστηρίζει την ιδέα; Κάποιο είδος βρόχου. Κάποιο είδος της επανάληψης, τώρα, θα ήταν ωραίο, οπότε επιτρέψτε μου να ότι στην πραγματικότητα προσπαθείτε. Επιτρέψτε μου να πάω στην πραγματικότητα και να προχωρήσουμε αυτό. Έτσι, μπορεί να αποσπάσει ειδοποίηση μπλοκ τόσο εύκολα όσο μπορείτε να προσθέσετε αποδίδουν τους. Επιτρέψτε μου να πάω κάτω από τον έλεγχο, μετακινηθείτε προς τα κάτω εδώ, και μάλιστα, υπάρχει αυτό το κομμάτι παζλ εδώ, Επανάληψη και για πάντα και Αν πάντα. Έτσι, υπάρχει μια σειρά από τρόπους έκφρασης δομές επανάληψης στο Scratch. Το μόνο που ίσως θέλετε εδώ δεν είναι για πάντα, γιατί μόνο θέλω αυτό να συμβεί τρεις φορές, αλλά κατά πάσα πιθανότητα Επαναλάβετε. Επιτρέψτε μου λοιπόν να σύρετε Επαναλάβετε εδώ, drag and drop 'αυτό, και τώρα αντί να λέει "Hello, world" τρεις διαφορετικές χρονικές στιγμές, επιτρέψτε μου να σύρετε αυτό το κομμάτι του παζλ εδώ. Και ακόμα κι αν αυτό δεν φαίνεται να ταιριάζει, το πρόγραμμα είναι έξυπνος αρκετά για να συνειδητοποιήσουμε ότι θα αυξηθεί για να γεμίσει, γι 'αυτό είναι η σχήματα που έχει σημασία και όχι το απόλυτο μέγεθος. Επιτρέψτε μου να αλλάξετε την επανάληψη σε τρεις, και τώρα άσε με να φύγω μπροστά και να σύρετε Περιμένετε ένα δευτερόλεπτο εκεί. Είναι πρόκειται να σπάσει απότομα σε, καθώς, έτσι και τώρα θα πάω να σύρετε αυτά τα παιδιά εδώ και απλά να τους πετάξετε γιατί Δεν τους χρειαζόμαστε πια. Επιτρέψτε μου σμίκρυνση και κάντε κλικ στο πράσινο σημαία τώρα, και έχουμε το ίδιο πρόγραμμα αλλά, όπως είχα προβλέψει πριν, καλύτερα σχεδιαστεί, επειδή μπορείτε να φανταστείτε πόσο άσχημα το πρόγραμμα θα πάρει, βεβαίως αισθητικά, αν έπρεπε να ξεκινήσετε την αντιγραφή και επικόλληση, αντιγραφή και επικόλληση, ή μεταφορά και απόθεση τα ίδια καταριέται τα πράγματα ξανά και ξανά. Τώρα, λέγοντας απλά πράγματα στην οθόνη, εκτύπωση για την οθόνη, πραγματικά όλοι ότι δεν συναρπαστικό, οπότε ας ανοίξει ένα τρίτες διακύμανση εδώ. Και τώρα, όπως θα δείτε, αυτό θα πάρει ενοχλητικό γρήγορα - [MEOW] DAVID Malan: - αλλά είναι επίσης το είδος του χαριτωμένο. [MEOW] DAVID Malan: Εντάξει, έτσι καλύτερα, και σίγουρα μπορούμε να χρησιμοποιήσουμε ίδια μετάβαση των τσούνκιν αυτό επάνω σε ένα looping δομή, αλλά ας το κάνουμε ακόμα πιο ενδιαφέρουσα. Επιτρέψτε μου να προχωρήσει και να ανοίξει ένα τέταρτο διακύμανση εδώ, όπου πάρουμε τα πράγματα ένα βήμα παραπέρα. Έτσι, σύμφωνα με αυτό, ανόητο κι αν αυτό είναι στην πρώτη ματιά, τι είναι αυτό το πρόγραμμα πρόκειται να κάνει; Είναι πρόκειται να νιαούρισμα φορά. Γιατί; Λοιπόν, το ένα είναι, απ 'όσο ξέρω, πάντα λιγότερο από δύο. Δεν υπάρχει η έννοια του τυχαίου εδώ. Έχω κυριολεκτικά σκληρά κωδικοποιημένες ένα και δύο, αλλά αυτό είναι ένα παράδειγμα τώρα πραγματικότητα με μια Boolean έκφραση. Όπως ακριβώς ο Ιωσήφ έκανε σε ψευδοκώδικα του, η εσοχή IF μπορείτε να βρείτε ταιριάζουν κάλτσες τότε κάντε τα παρακάτω, εδώ έχουμε μια έκφραση αν κάποιος είναι λιγότερο από δύο ΤΟΤΕ - και στην πραγματικότητα έχουμε ακόμα ένα μικρό κομμάτι της εσοχής, όπου το μωβ είναι ελαφρώς εσοχή προς τα δεξιά - Στη συνέχεια θα πάμε για να παίξει τον ήχο νιαούρισμα. Τώρα, σε αυτή την περίπτωση, κάποιος που είναι πάντοτε μικρότερο από δύο, έτσι αυτό είναι ένα είδος αποβλήτων μιας κατάστασης. Αλλά θα είμαστε σε θέση, όπως θα δούμε, για να συνδέσετε άλλα πράγματα σε αυτά τα σύμβολα κράτησης θέσης, όπου ένα και δύο είναι τώρα. Ας τώρα να προχωρήσει παράδειγμα πέντε από αυτά τα πολλά τυπικούς χαιρετισμούς και ματιά σε αυτό το πρόγραμμα πρόκειται να κάνει. Μέχρι τώρα, σε μια αγγλική φράση, πώς το κάνει αυτό πρόγραμμα συμπεριφέρονται; ΚΟΙΝΟ: meows το ήμισυ του χρόνου. DAVID Malan: το ήμισυ του Meow του χρόνου, έτσι αυτό είναι ένας τρόπος μεταφέροντας μια πολύ απλή ιδέα. Ακόμα κι αν τυχαίνει να χρησιμοποιεί κάποιες ανισότητες εδώ σε κάποιους αριθμούς, αυτό είναι πραγματικά ακριβώς μια προγραμματική Έτσι, ένας ακριβής τρόπος, για να πούμε αν το νόμισμα έρθει κορώνα, πηγαίνετε μπροστά και νιαούρισμα. Ή αντιστρόφως, αν το νόμισμα έρθει γράμματα, δεν νιαούρισμα. Και σε αυτή την περίπτωση, πώς μπορούμε να εκφράσουμε αυτό; Θα πάρει έναν τυχαίο αριθμό 1 έως 10, και αν η αριθμός είναι μικρότερος από 6, να προχωρήσει και να νιαούρισμα. Και πώς να έρθετε σε αυτό εδώ; Καλά και πάλι, μόλις παρατηρήσετε την μεταφορά και απόθεση και σύρτες πράγματα στη θέση τους. Έτσι, τώρα ας δούμε αν αυτό λειτουργεί τυχαίο. Επιτρέψτε μου να προχωρήσει και κάντε κλικ στην πράσινη σημαία. [MEOW] DAVID Malan: Εντάξει. [MEOW] DAVID Malan: Εντάξει. Εντάξει, καλά, γι 'αυτό πήρε κεφάλια, κεφάλια, ουρές αποτελεσματικά. Γράμματα. [MEOW] DAVID Malan: αρχηγών. [MEOW] DAVID Malan: Εξαιρετική. Είναι πάντα δύσκολη όταν απλά στατιστικά μπορείτε να πάρετε μια κακή τρέχει, και είναι όλες οι κεφαλές, και το πρόγραμμα στην πραγματικότητα δεν λειτουργεί όπως θα ελπίζουν. Αλλά αυτή τη φορά, λειτούργησε, και φαίνεται να έχουμε, αν το κάναμε αυτό ένα άπειρες φορές, 50% απόδοση. Τώρα και πάλι, δεν είναι όλα τόσο ενδιαφέρουσα, κάνοντας μόνο για γάτες νιαούρισμα, οπότε ας δούμε αν δεν μπορεί να προχωρήσει αυτό το λίγο περισσότερο εδώ στην έκδοση έξι. Μέχρι τώρα, έχουμε πραγματικά ενοχλητικό έκδοση - [Meows κάθε λίγα δευτερόλεπτα] DAVID Malan: - και αυτό είναι ό, τι είναι γνωστό, γενικά, ως άπειρο βρόχο. Έτσι άπειρο βρόχο σε αυτή την περίπτωση αισθάνεται άσχημα. Είναι σίγουρα θα αρχίσει να ηχεί άσχημα, ακόμη και άπειρο βρόχοι δεν είναι πάντα κακό. Μπορείτε να σκεφτείτε πλαίσιο προγραμμάτων για υπολογιστές όπου θέλετε στην πραγματικότητα θέλετε ένα άπειρο βρόχο; Ναι; ΚΟΙΝΟ: Όταν θέλετε να ελέγξετε την κατάσταση. DAVID Malan: Εντάξει, όταν θέλετε να διατηρήσετε τον έλεγχο μιας κατάστασης; Σαν τι; ΚΟΙΝΟ: [δεν ακούγεται] DAVID Malan: Εντάξει, καλά, έτσι αν είχε κάποιο πρόγραμμα, κάποια είδος των πράγμα οικιακού αυτοματισμού, όπου θέλετε να συνεχώς οθόνη είναι κάτι που συμβαίνει. Είναι τα φώτα; Είναι τα φώτα, γιατί ίσως έχετε ένα χρονόμετρο, και θέλετε να πάει μακριά, ίσως χρειαστεί να κάνετε κάτι ξανά και ξανά. Και στην πραγματικότητα, μιλώντας για χρονόμετρα, κάποιος από εσάς που έχουν ρολόγια στον υπολογιστή σας ή ψηφιακά ρολόγια, αυτό είναι ένα άπειρο βρόχο. Συνεχίζει να ενημερώνει την ώρα, επειδή είναι συνεχώς έλεγχο και τον έλεγχο και τον έλεγχο του χρόνου έχει αλλάξει, και αν ναι, ω, Θεέ μου. Το ρολόι είναι τελικά άλλαξε. Χρειάζεται εμφανίσει ότι η αξία για εσάς. Έτσι, ενώ οι περισσότερες από τις άπειρες φορές το χρόνο είναι ένα λάθος, ή τουλάχιστον μια κακή απόφαση σχεδιασμό, μερικές φορές κάνουν έχουν την αξία τους. Λοιπόν, ας προχωρήσει περαιτέρω εδώ για να hello7. Μέχρι τώρα, το πρόγραμμα θα πάρει λίγο πιο διαδραστική. Επιτρέψτε μου να μεγεθύνετε εδώ, και πάλι, αυτό είναι ό, τι είναι ωραίο για το Ξυστό. Και εμείς θα το χρησιμοποιήσετε για να είναι σαφής, Ξυστό, απλά σήμερα και σε πρόβλημα της επόμενης εβδομάδας οριστεί. Αλλά τη Δευτέρα, θα βουτήξει C. Σε αυτό το πρόγραμμα εδώ, το κάνει, πάντα, η ακόλουθη. ΑΝ επαφή με το δείκτη του ποντικιού - τώρα, ποιος είναι ο πλαίσιο εδώ; Λοιπόν, και η ειδοποίηση ότι ο οποίος έχει επιλεγεί εδώ κάτω στο κάτω μέρος δεξιά είναι η γάτα, sprite ένα, έτσι ώστε αυτά τα σενάρια, αυτό πρόγραμμα, ισχύει και για τον ειδικά. Έτσι, αν η γάτα είναι σε επαφή με το δείκτη του ποντικιού, τότε πρόκειται να παίξει αυτό κάτω και περιμένετε δύο δευτερόλεπτα, και στη συνέχεια, επαναλάβετε nauseum τώρα. Ας πάμε μπροστά και να χτυπήσει το παιχνίδι. Τίποτα δεν θα συμβεί, αλλά αν θέλω να το κατοικίδιο ζώο γάτα τώρα, μπορώ απλά. [MEOW] DAVID Malan: Adorable. [MEOW] DAVID Malan: Εντάξει, λιγότερο ενοχλητικά, αλλά παίρνει επίσης θαμπό, οπότε ας προχωρήσουμε και να δούμε αν δεν μπορούμε να εισφέρει λίγο περισσότερο λογική. Αυτό ήταν παράδειγμα επτά. Εδώ στο παράδειγμα οκτώ, θα πάμε να εισαγάγει ένα ΑΛΛΟ κατάσταση. Έτσι, σαν μια κυριολεκτική διακλάδωση του δρόμου, στο οποίο μπορείτε να πάτε αριστερά ή μπορείτε να πάτε δεξιά, μια κατάσταση σε ένα προγραμματισμό γλώσσα, όπως Scratch, ή όπως θα δούμε C, μπορεί να σας επιτρέψει να πάνε σε μία κατεύθυνση ή την άλλη μέσω ενός IF ELSE κατασκεύασμα. Έτσι, κυριολεκτικά, ΑΝ αγγίζοντας το δείκτη του ποντικιού, αυτό θα παίξει κάποιο ήχο, αλλιώς πρόκειται να παίξει αυτό το άλλο ήχο, νιαούρισμα. Τώρα, αν μπορείτε να συναγάγει από το όνομα αυτών των ήχων, μπορείτε να μαντέψετε τι αυτό το πρόγραμμα είναι γραφτό να πλάθω η ιδέα του. Αυτή η γάτα είναι meowing ευτυχώς. [MEOW] DAVID Malan: Ευτυχώς, αλλά δεν αρκετά ήθελε να αγγίξει. [Μουγκρίζει] DAVID Malan: Μέχρι τώρα έχουμε μια γάτα που θα φωνάζω σε σας. Εντάξει, καλά, ένα τελευταίο παράδειγμα με τις γάτες εδώ, και ας ανοιχτή έκδοση εννέα από αυτό εδώ. Μέχρι τώρα, έχουμε το επόμενο πιο ενοχλητικό ήχο που θα μπορούσα βρείτε, έτσι έχουμε ένα θαλάσσιο ίππο ή λιοντάρι θάλασσα εδώ που πρόκειται να κάνετε τα εξής. [ΦΛΟΙΟΣ SEAL] DAVID Malan: Εντάξει, έτσι αυτό θα συνεχιστεί μέχρι να καταλάβω πώς αυτό το πρόγραμμα λειτουργεί. Έτσι, αυτή τη στιγμή, αυτό το ζώο έχει δύο σενάρια, και τι ενδιαφέρον εδώ είναι ότι αυτά τα σενάρια θα εκτελέσει παράλληλα. Έτσι, επειδή οι δύο ξεκινούν με ένα κλικ πράσινη σημαία, Είναι σαν να πηγαίνεις σαν αυτό, και τα δύο προγράμματα θα αρχίσουν να προβάλλονται μία φορά, ακόμα και αν είστε πάντα looping. Έτσι, στην κορυφή σενάριο, έχω κάποια λογική. Τι χαρακτηριστικά ότι δεν παρέχουν μέχρι εκεί; [ΦΛΟΙΟΣ SEAL] ΚΟΙΝΟ: [δεν ακούγεται] DAVID Malan: Αν είναι αυτό; [ΦΛΟΙΟΣ SEAL] ΚΟΙΝΟ: αν είναι σε σίγαση στο μηδέν, πρόκειται να συνεχίσει να παίζει το ακούγεται. [ΦΛΟΙΟΣ SEAL] DAVID Malan: Εντάξει, καλά. Έτσι, αν είναι σε σίγαση, ό, τι αυτό είναι, αυτό το πορτοκαλί πράγμα είναι μηδέν, Στη συνέχεια να παίξει τον ήχο λιοντάρι θάλασσα και ότι "Ω, γεια », για δύο δευτερόλεπτα. Τώρα, δεν ξέρω τι είναι υποτονική, αλλά μηδέν φέρνει στο νου το ιδέα της ψευδούς ή off. Έτσι, αν σίγαση είναι ψευδής, οπότε αν δεν σίγαση, συνεχίσει να παίζει τον ήχο. Εντάξει, καλά, πώς μπορούμε να απενεργοποιήσετε αυτό το πράγμα; Λοιπόν, ας δούμε το δεύτερο σενάριο εκεί κάτω. Το δεύτερο σενάριο λέει που σίγαση στο μηδέν. Σημειώστε επίσης ότι είναι πορτοκαλί, έτσι ώστε ό, τι Scratch δεν είναι χρώματα μπλοκ στην ίδια απόχρωση, αν το είδος του των που σχετίζονται λογικά. Έτσι ακριβώς όπως σίγαση top up ήταν πορτοκαλί, έτσι είναι σε σίγαση εδώ κάτω αναφέρεται στο πορτοκαλί μπλοκ. Αλλά αυτό είναι μια μεταβλητή αναθέσεις, έτσι ακριβώς όπως στο άλγεβρα, έχετε x, y και z, στον προγραμματισμό που έχετε μεταβλητές, αλλά είναι γενικά - Ας παύση για μια στιγμή και το σχήμα πώς για να σταματήσει αυτό το γάβγισμα. Πώς μπορώ να το κάνω αυτό; [ΦΛΟΙΟΣ SEAL] DAVID Malan: Εντάξει. Σταμάτησε. Εντάξει. Έτσι ακριβώς όπως στην άλγεβρα έχετε μεταβλητών x, y και z, αλλά προγραμματισμό, έχοντας μεταβλητές όπως x, y και z είναι γενικά παρακινδυνευμένο γιατί δεν είστε καθόλου εκφραστικά. Δεν έχουν καμία απολύτως σημασιολογική έννοια, έτσι, στις περισσότερες γλώσσες προγραμματισμού, οι μεταβλητές μπορούν να έχουν πλήρη ολοκληρωμένες ονόματα ή λέξεις ή φράσεις, όπως σίγαση, να πω ό, τι κάνουν. Έτσι, αυτό το δεύτερο σενάριο, επίσης, άκουγε πάντα, και είπε αν το κλειδί, η Space κλειδί πληκτρολόγιο, είναι πατηθεί, ερωτηματικό. Έτσι, υπάρχει μια κατάσταση με μια Boolean έκφραση που είναι πρόκειται να απαντήσει σε μια ερώτηση, είτε με ειλικρίνεια ή ψευδής, τότε έχω μέσα από αυτό, αν το πλήκτρο space πιέζεται και ΑΝ σίγαση είναι μηδέν, που σίγαση σε ένα, ELSE που σίγαση στο μηδέν. Έτσι, αυτή η άλλη διακλάδωση του δρόμου, και παρατηρήστε πώς έχω ένθετες τα δύο, εάν οι συνθήκες, είναι ένας τρόπος για τον έλεγχο είναι η Space Bar πιεστεί γιατί αν ναι, εγώ είτε θέλετε να πάτε αυτό τρόπο ή με αυτόν τον τρόπο. Και πώς μπορώ να αναστρέψει την αξία του σε σίγαση; Θα πρέπει να ελέγξετε είναι το μηδέν; Αν ναι, το κάνουν ένα, άλλο να είναι μηδέν ως εκ τούτου να αλλάξετε δύο κράτη της. Εντάξει, έτσι έχουμε συνέχεια, μερικά από αυτά τα θεμελιώδη κατασκευάσματα. Έχουμε Boolean εκφράσεις, και να συνειδητοποιήσουμε, επίσης, αυτά είναι δεν είναι και τόσο εξοικειωμένοι. Στην πραγματικότητα, εδώ είναι μια γρήγορη εικόνα βέβαια του Χάρβαρντ CS50 εργαλείο για ψώνια, καθώς και οποιαδήποτε ιστοσελίδα εκεί έξω που έχει κουτάκια και κατεβάζει πτώση έχουν πραγματικά, όλο αυτό το διάστημα, έχει τη χρήση Boolean εκφράσεις. Στην περίπτωση αυτή εδώ, αν κάνετε κλικ στο κουτάκι δίπλα στο Φυσικά μεγαλύτερη από ή ίση με 4,5, ή το ίδιο δίπλα σε σχολή, είστε προσδιορίζοντας μια Boolean έκφραση. Δείξε μου τα μαθήματα για τα οποία η έκφραση είναι αληθής. Ή προς τα δεξιά, δεν έρχεται σε αντίθεση με τα μαθήματα είμαι λαμβάνοντας, αν αυτό είναι επιλεγμένο, τότε ναι, θέλετε να ελέγξετε η προϋπόθεση, αλλιώς θέλετε να το αγνοήσετε. Έτσι, Boolean εκφράσεις είναι είδος του σε όλο, αλλά όταν βάζουμε σε συνθήκες, είτε εάν οι συνθήκες, ΕΑΝ Elses, ή μπορούμε ακόμη και προσομοιώνουν βαθύτερη επίπεδα, IF ELSE IF ELSE - έτσι ώστε να είναι ένα είδος κατάσταση τριαδικό. Μπορείτε να πάτε με αυτόν τον τρόπο ή με αυτόν τον τρόπο ή με αυτόν τον τρόπο. Μπορούμε να κρατήσει φωλιάζουν τα πράγματα να πάνε σε διαφορετικές κατευθύνσεις. Έτσι Scratch έχει αυτές τις θηλιές, όπως πάντα. Έχει τα χαρακτηριστικά αυτά, όπως Επαναλάβετε 10, μερικές πεπερασμένο αριθμό φορών. Έχουμε τώρα τη δυνατότητα να ορίσετε μεταβλητές, οπότε σε αυτή την περίπτωση Έχω δηλώσει, για παράδειγμα, μια μεταβλητή που ονομάζεται κάλτσες. Έχω την αρχική τιμή 0, και αυτό είναι ένα ακόμη κατεύθυνση θα μπορούσαμε να έχουμε λάβει μέχρι εδώ με τον Ιωσήφ, το οποίο ίσως απλά να παρακολουθείτε πόσα κάλτσες που έχω και να τερματίσει το πρόγραμμα όταν η τιμή της μεταβλητής είναι 2. Αυτό θα ήταν ένας άλλος τρόπος του είδους γενίκευση that πρόβλημα και να κάνει κάτι ξανά και ξανά. Λοιπόν, ας πάμε μπροστά και τώρα εισάγουν ένα ζευγάρι καινούργια πράγματα. Έτσι, όσοι από εσάς με προηγούμενη εμπειρία θα programing Γνωρίζω ότι πολλές γλώσσες έχουν συστοιχίες, ή φορείς ή λίστες, και μάλιστα, Scratch έχει κάτι σαν αυτό, πάρα πολύ. Ας δούμε λοιπόν αν δεν μπορούμε να πάρουμε τα πράγματα στο επόμενο επίπεδο εδώ. Αν έχω τη δυνατότητα, τώρα, με αυτά τα κομμάτια του παζλ για να προσθέσω κάτι, όπως μια λέξη ή αριθμό, σε μια μεταβλητή, μπορώ αρχίζουν να συσσωρεύονται πράγματα. Και αυτό είναι πραγματικά πολύ επίκαιρη για τα πράγματα όπως τα παιχνίδια, role-playing games όπου είστε το είδος του περπατήματος γύρω από κάποια φανταστικό κόσμο συλλογή πράγματα, να πάρει τα πράγματα, κερδίζοντας πόντους, ή τα παρόμοια. Μπορεί να θέλετε να παρακολουθείτε κάποιο είδος απογραφής, και Πράγματι, αυτό είναι ένας από τους πρώην μαθητές μας εδώ έκανε με κάτι που ονομάζεται Fruitcraft RPG. Επιτρέψτε μου λοιπόν να προχωρήσει και να ανοίξει αυτό το πράγμα εδώ, και σε Fruitcraft, έχουμε αυτόν τον κόσμο επάνω στην κορυφή. Επιτρέψτε μου λοιπόν να προχωρήσει και κάντε κλικ στην πράσινη σημαία. Ανακοίνωση στο πάνω αριστερά είναι ένα είδος απογραφής. Που άρχισε να εφαρμόζεται στο Scratch καθώς αυτό θα καλέσουμε έναν πίνακα ή μια λίστα, και τώρα έχουμε αυτό το μικρό animation. Έτσι, όπως ακριβώς ξεκίνησε νωρίτερα με αυτή την ιστορία αγάπης cookie, και στη συνέχεια θα προχωρήσει σε γάτες και τα λιοντάρια θάλασσας, τώρα μπορούμε να έχουμε πράγματα που είναι ακόμη πιο διαδραστικό. Και αυτό το μικρό μπλε άνθρωπος, μπορώ να αρχίσουν να κινούνται γύρω του μικρό σπίτι εδώ. Έτσι φαίνεται σαν να έχεις μια έξοδο εδώ κάτω, έτσι είμαι με τη χρήση τα πλήκτρα βέλη, πάνω, κάτω, αριστερά, δεξιά. Και τώρα είμαι έξω, οπότε ας είναι ό, τι έχω εδώ. Μοιάζει με ένα πορτοκάλι, και μάλιστα, μόλις το αγγίζω πορτοκάλι, παίρνει plopped σε απογραφή μου. Αν πάω εδώ για να τα κεράσια, τώρα έχω κάτι αλλού στην απογραφή μου. Και όλα αυτά είναι ωραία και χαριτωμένα, αλλά σκεφτείτε πόσο, τώρα, αυτή η υλοποιείται. Λοιπόν, έχουμε αυτή την έννοια μια λίστα, και αυτό είναι προφανώς ένα κομμάτι του παζλ που μπορείτε απλά να πω ό, τι θέλετε να προσθέσετε, να προσθέσετε πορτοκαλιού, προσθέστε τα κεράσια. Τώρα, τι είναι αυτό το μικρό μπλε τύπος κάνει; Καλά, αυτός είναι ένα ξωτικό. Και πιθανώς, το πορτοκαλί και τα κεράσια - οι ίδιοι ήταν ξεχωριστή sprites. Και χρησιμοποιώντας συνθήκες στις εκφράσεις Boolean, τις μαθητής ήταν πιθανότατα σε θέση να εκφράσουν ΑΝ μπλε τύπος είναι αγγίζοντας τα κεράσια στη συνέχεια προσθέστε τα κεράσια λέξη του απογραφή, και στη συνέχεια να κρύψει και το κεράσι sprite. Έτσι, κάτω από την κουκούλα, κατά πάσα πιθανότητα εξακολουθεί να υπάρχει είναι ένα κεράσι sprite εκεί. Έχουμε πει ακριβώς για να γίνει ουσιαστικά αόρατο. Τώρα, αν θα κρατήσει τα πόδια πάνω από εδώ, μπορούμε επίσης να κάνουμε αυτό εγγύς πράγμα, όπου μπορώ να πάω και να διαβάσει την πινακίδα. Έτσι, αν μπλε τύπος συγκινητικό σημάδι, μπορούμε να έχουμε αυτό το μπλοκ Say όπως ακριβώς και η γάτα μας μίλησε με λόγια, γειά σου, νωρίτερα, "Got μερικά φρούτα; Φέρτε στον τόπο φρούτων. "Εντάξει, έτσι και τώρα, προφανώς, Έχω οδηγίες μου. Μπορώ να πάω εδώ στον τόπο φρούτα, γραμμή τον εαυτό μου με την πόρτα. Τώρα, είμαι εδώ. Μπορώ να πάω μέχρι τον άνθρωπο στον πάγκο. Ο ανιχνεύει ότι είμαι κοντά του, γι 'αυτό δεν πρέπει να είναι αρκετά με τον ίδιο συγκινητικό, και έχω κερδίσει το παιχνίδι. Έτσι εκεί έχουμε Fruitcraft RPG. Έτσι, μπορούμε να κάνουμε τα πράγματα ακόμα πιο προηγμένη από αυτό. Μπορούμε να προσθέσουμε ήχους. Μπορούμε να προσθέσουμε ψευδο τυχαιότητα. Μπορούμε να προσθέσουμε την πολυπλοκότητα. Επιτρέψτε μου να προχωρήσει εδώ, και αντί να κάνω μόνος μου αυτό, επιτρέψτε μου να σας δείξω ένα από τα πιο εξελιγμένα υποβολές πήραμε πέρυσι από ένα ορισμένο κάποιον που ονομάζεται Μπλέικ. Μπορούμε να έχουμε έναν εθελοντή που είναι άνετα εμφανίζονται στην φωτογραφική μηχανή και είναι για να παίζει ένα παιχνίδι; Τι θα λέγατε για εκεί; Ελάτε επάνω. Εντάξει, έτσι ώστε το παιχνίδι να έχετε μόνο εν αγνοία τους εθελοντικά για να παίξει - [Χειροκρότημα] DAVID Malan: - είναι κάτι που ονομάζεται από χτες "Frogger". Ποιο είναι το όνομά σου; RENDA: Ρέντα. DAVID Malan: Redna; RENDA: Είναι σαν Brenda με b. DAVID Malan: Εντάξει, Ρέντα. David. Χάρηκα για τη γνωριμία. Έτσι, εδώ στο "Frogger," και αν θα μπορούσε να αυξήσει τον όγκο μόλις λίγο, θα είναι αυτό το μικρό πράσινος βάτραχος στην κάτω πλευρά. Μπορείτε να χρησιμοποιήσετε τα αριστερά, δεξιά, πάνω και κάτω, και ο στόχος σας είναι να διασχίζουν το δρόμο, διασχίζουμε το ποτάμι, και να αγγίξει την μαξιλάρια κρίνων στην κορυφή. Aw. Ένα ακόμα t - ξανακάνει, εντάξει; Ας σταματήσει χτύπημα. Κανείς δεν είδε ότι. [Χειροκρότημα] [Χειροκρότημα] DAVID Malan: Ναι. Πολύ καλά κάνει. Εξαιρετική, σας ευχαριστώ. Έτσι, ότι υπήρχε Frogger. Τώρα που ξέρετε τι έχετε πάρει τον εαυτό σας σε ένα ακόμα εθελοντής για μια διαφορετική παιχνίδι που υποβάλλονται από άλλο φοιτητή. Θέλετε να έρθει στην επάνω; Ποιο είναι το όνομά σου; RICHARD: Ο Richard. DAVID Malan: Richard. Εντάξει, Richard, έλα επάνω. [Χειροκρότημα] DAVID Malan: Έχετε κάτι που θα ακούγεται εξοικειωμένοι σύντομα, τόσο εδώ είναι οι οδηγίες σας. Έτσι, σε μια στιγμή, κάποια κομμάτια του παζλ πρόκειται να μετακινηθείτε προς τα πάνω από την οθόνη που φαίνονται είτε αριστερά ή δεξιά επάνω ή προς τα κάτω. Θα πάμε να πρέπει να χτυπήσει τα βελάκια με τέτοιο τρόπο ότι αντιστοιχεί σε αυτά τα κομμάτια παζλ παράταξη με τα σύμβολα κράτησης θέσης στην κορυφή. Έτσι, όταν βλέπετε ένα αριστερό βέλος, και να ευθυγραμμιστεί με το αριστερό βέλος, πατήστε το αριστερό βέλος. Μπορείτε να ξεκινήσετε. [MUSIC - "Stronger" Kayne West] DAVID Malan: Εντάξει, μεγάλο χειροκρότημα για τον Richard. [Χειροκρότημα] DAVID Malan: Πολύ καλά κάνει. Σας ευχαριστώ. [Χειροκρότημα] DAVID Malan: Έτσι διασκέδαση και, φαινομενικά, το είδος της εκφοβιστικό όπως θα μπορούσε να είναι η εφαρμογή ως κάτι φαινομενικά περίπλοκο όσο αυτό, συνειδητοποιούν ότι ο μαθητής δεν ορίζονται και απλά γράφω αυτό όλα με τη μία. Αντίθετα, μπορείτε να σπάσει ένα πρόβλημα, όπως φαινομενικά περίπλοκη όπως αυτό σε πολύ μικρότερα κομμάτια, και αυτό, επίσης, είναι πρόκειται να είναι ένα θέμα. Το χειρότερο πράγμα που μπορείτε να κάνετε σε ένα πρόγραμμα εγγράφως στις περισσότερες οποιαδήποτε γλώσσα είναι να καθίσει, να πάρει πραγματικά ενθουσιασμένος, γράψτε το όλο πράγμα βλασφημίας, και στη συνέχεια, απλά ελπίζω ότι λειτουργεί με το φορά τελειώσετε το γράψιμο. Μάλλον, η διαδικασία του προγραμματισμού θα πρέπει γενικά είναι πολύ σκόπιμη, πολύ επαναληπτική, σύμφωνα με την οποία το μόνο που που είναι πολύ μικρά βήματα για τον εαυτό σας, κομμάτια δάγκωμα-μεγέθους θέλετε να δαγκώνουν, και έτσι ώστε να έχετε αυτά λογική ελέγχους, λίγο ορόσημα μπορείτε να συναντήσετε. Και τότε θα οικοδομήσουμε πάνω από αυτά για τη δημιουργία περισσότερων εξελιγμένα πράγματα ακόμα. Έτσι, για παράδειγμα, πώς θα μπορούσαμε να πάμε για εφαρμογή ένα παιχνίδι σαν αυτό; Λοιπόν, ειλικρινά, είναι βέβαιο ότι θα ξεκινήσει με απλά υποστηρίζοντας ένα πλήκτρο κάθε φορά. Ας εφαρμόσουν υποστήριξη για το αριστερό βέλος. Έτσι, ο μαθητής έπρεπε με κάποιο τρόπο να δημιουργήσει στο Photoshop, ή σε Χαράξτε το ίδιο με το μικρό γραφικό editor, μια πλήκτρο με το βέλος που μοιάζει με εκείνη στο πάνω αριστερά εκεί, απλά το γκρι σύμβολο κράτησης θέσης. Στη συνέχεια, ο μαθητής έπρεπε να καταλάβω τι x, y συντονίζει σε το βάζουμε, πού να το βάλετε στο παράθυρο. 0, 0 είναι εδώ, έτσι ώστε να πρέπει να υπολογίσετε τον αριθμό των εικονοστοιχεία, ή τελείες, για να αντισταθμίσουν αυτό το βέλος από στην κορυφή της οθόνης. Και στη συνέχεια, όταν αυτό είναι στη θέση του, το πρόγραμμά σας δεν πραγματικά κάνει τίποτα ακόμα, έτσι θα πρέπει να έχετε ένα δεύτερο sprite, για παράδειγμα, ένα πράσινο βέλος που είναι επίσης δείχνει προς τα αριστερά, και εσείς τότε πρέπει να αρχίσετε να γράφετε κάποια σενάρια για αυτό. Και αν παρατηρήσετε, ίσως, ότι αυτά τα πράγματα άρχισαν να έρχονται στο διαφορετικές ταχύτητες, καθώς και τα χρώματα ήταν σε διαφορετικές περιοχές, και ότι επειδή ο φοιτητής χρησιμοποίησε ένα κομμάτι της ψευδο τυχαιότητα. Και από ψευδο τυχαιότητα, απλά εννοώ να πάρει έναν αριθμό μεταξύ κάτι και κάτι, επειδή μπορείτε να τα πράγματα αρχίζουν να χάρτη, όπως και αν ο αριθμός είναι μεταξύ ενός και πέντε, καλά, ας κάνουμε το πράγμα πράσινο. Αν είναι μεταξύ 6 και 10, ας κάνει το κομμάτι του παζλ κόκκινο αντ 'αυτού. Εφ 'όσον έχετε έναν τρόπο να παράγει κάποιο είδος τυχαιότητα, μπορείτε να κάνετε στη συνέχεια, με βάση τις αποφάσεις που τυχαιότητα. Και συνεχίζω λέγοντας ψευδο τυχαία, διότι υπάρχει μια μικρό βρώμικο μυστικό. Οι υπολογιστές δεν μπορούν να έρθουν με τυχαίους αριθμούς. Μπορούν μόνο να κάνουν ό, τι τους λένε, επειδή ότι είναι τεχνητές συσκευές. Δεν μπορεί να μαντέψει μόνο έναν αριθμό, όπως εμείς οι άνθρωποι αισθάνονται σαν μπορούμε. Ένας υπολογιστής έχει να κάνει κάτι με μαθηματική πλάθω το ψευδαίσθηση της μαθηματικής αριθμός, μερικές φορές με τη χρήση του τρέχουσα ημέρα του χρόνου ως συμβολή στην υπολογίζει τι αριθμό για να επιστρέψει, αλλά περισσότερο για αυτό μια άλλη φορά. Προς το παρόν, απλά γνωρίζουμε ότι μπορούμε να δημιουργήσουμε ψευδο τυχαιότητα. Έτσι, μια φορά έχω την ικανότητα για το αριστερό βέλος για να ξεκινήσει εμφανίζονται σε διαφορετικούς χρόνους και σε διαφορετικές ταχύτητες, τότε Μπορώ να πάω πίσω και να προσθέσετε μερικά από αυτά, εάν οι συνθήκες. ΑΝ αυτό το ξωτικό αγγίζει το άλλο, και το αριστερό βέλος έχει πατηθεί το πλήκτρο - έτσι τρεις όρους στη συγκεκριμένη περίπτωση. Μπορώ να χρησιμοποιήσω ότι ίσως μπλοκάρουν και, σε αυτή την περίπτωση - Τότε θέλω να πάω μπροστά και να αυξήσετε το σκορ. Και στην κορυφή, έχουμε ένα αποτέλεσμα, έχουμε Awesome, Cool, καλή, και Boo. Έτσι, υπάρχει προφανώς πέντε μεταβλητές ότι αυτός ο μαθητής που χρησιμοποιούνται για την παρακολούθηση των διαφόρων αυτών μετρήσεις. Έτσι, με λίγα λόγια, το τελικό αποτέλεσμα είναι εκπληκτικό. Είναι διασκεδαστικό, είναι διασκέδαση για να παίξει, αυτό είναι δέσμευση, αλλά αυτό δεν είναι όπου ο μαθητής άρχισε. Αυτός ή αυτή ξεκίνησε σε ένα πολύ μικρότερο σύνολο βημάτων. Έτσι τι είναι μερικά άλλα δομικά στοιχεία που μπορούν να ύφανση σε αυτά τα προγράμματα; Λοιπόν, υπάρχει αυτή η άλλη έννοια στις περισσότερες γλώσσες, Ξύστε μεταξύ τους, που είναι γνωστή ως θέματα. Έτσι, ένας υπολογιστής μπορεί στην πραγματικότητα δεν κάνει πραγματικά πολλά πράγματα σε ένα του χρόνου, τουλάχιστον όχι συνήθως. Αντίθετα, ένας υπολογιστής έχει γενικά ένα μόνο CPU, και ακόμη αν και οι υπολογιστές είναι πολύ γρήγορη και μπορεί, ως εκ τούτου, δημιουργούν την ψευδαίσθηση του να κάνει πολλά πράγματα ταυτόχρονα - τον έλεγχο της αλληλογραφίας σας, να πάρει ένα άμεσο μήνυμα, εκτύπωση ενός εγγράφου - Πραγματικά, ένας υπολογιστής είναι απλά πηδώντας από εκτύπωση σε ΡΟΝΙΚΟ ΠΛΑΙΣΙΟ να ηλεκτρονικό ταχυδρομείο, και πίσω και εμπρός και πίσω τόσο γρήγορα που αργή έχων πνεύμα άνθρωποι απλά δεν συνειδητοποιούν ότι στην πραγματικότητα είναι λειτουργίας των εν λόγω προγραμμάτων λίγο σε έναν χρόνο. Τώρα, αυτό είναι ένα κομμάτι από ένα λευκό βρίσκονται αυτές τις μέρες, διότι, σήμερα, πολλοί υπολογιστές μας είναι τα λεγόμενα multi-core, έτσι ώστε να έχει ένα CPU αλλά πολλαπλούς πυρήνες, που είναι κάτι σαν έχει πολλαπλές CPUs. Και έτσι μερικές φορές, οι υπολογιστές μπορούν να κάνουν πραγματικά πολλά πράγματα σε μια στιγμή, αλλά γενικά σε ένα πρόγραμμα, τα προγράμματα βασίζονται σε αυτά τα πράγματα που ονομάζεται θέματα. Έτσι, ένα νήμα είναι το είδος του σαν ένα μικροσκοπικό πρόγραμμα που μπορεί να υπάρχουν παράλληλα με ένα άλλο μικροσκοπικό πρόγραμμα και μπορεί να τρέξει παράλληλα, ή τουλάχιστον μπορεί να τρέξει κάτω από την ψευδαίσθηση ότι από όπου και αν εκτελείται ταυτόχρονα. Έτσι Scratch υποστηρίζει αυτά τα πράγματα που ονομάζεται θέματα. Μπορείτε να έχετε πολλαπλά σενάρια εκτέλεση ταυτόχρονα, όπως ακριβώς έκανε με το λιοντάρι θάλασσα, και αυτό μας επιτρέπει να πραγματικά τότε έχουν αλληλεπιδράσεις μεταξύ αυτών των sprites. Επιτρέψτε μου να προχωρήσει εδώ και τραβήξτε προς τα πάνω, ας πούμε, τα θέματα, και παίξετε αυτό ως εξής. Έχουμε δύο ξωτικά, καθένας από τους οποίους θα δούμε έχει μόνο ένα σενάριο. Και θα παρατηρήσετε φαίνεται να υπάρχει κάποια νοημοσύνη στο γάτα σε αυτό το σημείο γιατί είναι όλο και πιο κοντά - [Μουγκρίζει] DAVID Malan: - και πιο κοντά στο μικρό πουλί. Λοιπόν, πώς είναι το λειτουργικό πουλί; Λοιπόν, ας ρίξουμε μια ματιά στο πουλί πρώτα. Το σενάριο πουλί είπε, όταν η πράσινη σημαία γίνει κλικ, πηγαίνετε στο x ισούται αρνητικό 115 και το γ ισούται με 150. Γι 'αυτό και μόλις κατάλαβα ένα τυχαίο σημείο όπου ήθελα η πουλί για να ξεκινήσει, και εγώ plopped αυτόν ακριβώς εκεί από προεπιλογή. Στη συνέχεια, πάντα εάν δεν αγγίζουν τη γάτα, έτσι αυτό είναι ένα διαφορετικό το είδος της κατασκευής βρόχου, αλλά ίδια ιδέα, το κάνουμε αυτό και πάλι και ξανά και ξανά. Εφ 'όσον δεν είστε αγγίζουν τη γάτα, να μετακινήσει τρία βήματα, και αν είστε στην άκρη, αναπήδηση, όπου είναι ένα είδος προβληματισμό, υπό την έννοια του μπιλιάρδου. Έτσι, αυτό είναι το πώς το πουλί κινείται γύρω από το είδος του φαινομενικά τυχαία, αλλά είναι μόνο και μόνο επειδή είναι αναπηδούν οι τοίχοι σε αυτή την περίπτωση. Τώρα, η γάτα, εν τω μεταξύ, είναι το είδος της εξαπάτησης. Η γάτα, όταν η πράσινη σημαία πατηθεί, ναι, ξεκινά κάποια θέση, μια τυχαία θέση - τουλάχιστον εν μέρει, σύμφωνα με τον συλλέκτη τυχαία πράσινο μπλοκ εκεί - και στη συνέχεια αγγίζοντας πάντα εάν το πουλί, να παίξετε τον ήχο λιοντάρι, και στη συνέχεια να σταματήσει σενάριο. Έτσι, όταν είπα τερματίσει, ή πριν βγείτε, υπάρχει ένα παζλ Ξυστό στο κομμάτι που θα σκοτώσει μόνο το πρόγραμμα σε ότι σημείο επειδή είναι το είδος του κάνει λογικά. Αλλά κατά τα άλλα, εδώ, παρατηρήστε τι πρόκειται να συμβεί. Σημείο προς το πουλί και να προχωρήσουμε ένα βήμα. Έτσι, αυτό το σημείο προς το πουλί είναι το είδος της πλεονέκτημα η γάτα έχει την έννοια ότι είναι παλιννόστησης σε σχετικά με την κίνηση των πτηνών, και μπορούμε τώρα κάνει αυτό το πρόγραμμα ακόμη πιο ενδιαφέρουσα. Αντί να κινείται ένα βήμα κάθε φορά ανά κύκλο επεξεργαστή, ανά απεργία διόδια της καμπάνας, να το πω έτσι, επιτρέψτε μου να προχωρήσει και μετακινήσετε, ας πούμε, πέντε βήματα σε μια εποχή όπως η γάτα. Κάντε κλικ τρέξει, και τώρα βρίσκει τον πραγματικά γρήγορα. Αν διπλασιάσουμε αυτό περαιτέρω σε 10 βήματα, αυτό το είδος του πηγαίνει σωστό γι 'αυτόν. Τώρα, μπορούμε να δώσουμε το πουλί, ίσως, ένα κομμάτι από ένα πλεονέκτημα. Ας πάμε στο πουλί και να πω, αντί να κινούνται τρία βήματα, ας προχωρήσουμε τον 30 βήματα. Αλλά ακόμα πιάστηκε στο τέλος. Τόσο εδώ, έχουμε δύο θέματα. Είναι φυλακισμένος στο Scratch με δύο σενάρια και δύο sprites, αλλά η ιδέα και σε άλλες γλώσσες είναι ότι μπορείτε να γράφουν, ουσιαστικά, πάρα πολλά προγράμματα όπως αυτό και έχουν να τρέξουν πραγματικά, ή imaginarily, παράλληλα. Τώρα, υπάρχει και αυτή η έννοια στο πλαίσιο του προγραμματισμού είναι γνωστή ως γεγονότα, και αυτό είναι κάτι που δεν θα δείτε σε C, οι γλώσσα είναι γνωστή ως C. Θα το δούμε προς το τέλος του εξαμήνου στον προγραμματισμό web, όταν εισάγουμε JavaScript και την έννοια των ιστοσελίδων κτιρίου που είναι δυναμικές και αλληλεπιδρούν με τους χρήστες. Έτσι, σε αυτή την περίπτωση, έχουμε ένα πολύ απλό παράδειγμα των δύο sprites, αγόρι και κορίτσι, καθένας από τους οποίους έχουν τις αντίστοιχες θέματα, αλλά με κάποιο τρόπο αυτά τα δύο είναι αλληλένδετα, επικοινωνία μέσω από κάτι που ονομάζεται γεγονότα. Επιτρέψτε μου λοιπόν να προχωρήσουμε εδώ και ζουμ σε σενάριο του αγοριού, το οποίο μοιάζει με αυτό. Όταν πράσινη σημαία κλικ, κάντε τα εξής για πάντα. Εάν το πλήκτρο Space, ή το Space Bar, πιέζεται, λένε Marco για δύο δευτερόλεπτα, που είναι καθαρά αισθητικούς για την οθόνη, ένα μικρό συννεφάκι, αλλά στη συνέχεια μεταδίδονται. Έτσι εκπομπή είναι ένα άλλο κομμάτι που είναι Scratch αντιπροσωπευτική μίας κατηγορίας της λειτουργικότητας στον προγραμματισμό που επιτρέπει διαφορετικά προγράμματα, διαφορετικά θέματα, να επικοινωνούν μεταξύ, με κάποιο τρόπο να στείλει μηνύματα, το ένα στο άλλο. Περνώντας ένα κομμάτι χαρτί στην τάξη είναι το είδος της χαμηλής τεχνολογίας ισοδύναμο. Έτσι μεταδίδονται εκδήλωση. Μπορώ να στείλω αυτό το μήνυμα, και το γεγονός λέξη είναι εντελώς αυθαίρετη. Scratch έχει μερικές φορές τα κατεβάζει πτώση, γι 'αυτό ακριβώς ήρθε με μια τυχαία λέξη σαν γεγονός, διότι τώρα, τι κάνει το αγόρι όταν πατάω το κλειδί είναι αυτός μεταδίδει αυτό το γεγονός. Και αν κοιτάζω τώρα στο σενάριο του κοριτσιού, το σενάριο της είναι εξαιρετικά απλή, διότι το μόνο που χρειάζεται να κάνετε είναι να μην ενεργούν κατά η πράσινη σημαία έχει πατηθεί. Είναι σχεδιασμένο για δράση, όταν αυτή λαμβάνει απόσπασμα, unquote, "Συμβάν", και σε εκείνο το σημείο, που ακούει ως εκ τούτου για το λεγόμενο γεγονός ξανά και ξανά. Από τη στιγμή που η ίδια δέχεται ότι το γεγονός, ότι πρόκειται να φωνάξει Πόλο για δύο δευτερόλεπτα. Και έτσι ίσως να μπορείτε να συναγάγει από αυτό ακριβώς το επόμενο αποτέλεσμα πρόκειται να είναι. Επιτρέψτε μου κάντε κλικ στην πράσινη σημαία. Τίποτα δεν συμβαίνει επειδή πρέπει να κάνω τι; ΚΟΙΝΟ: Space Bar. DAVID Malan: Space Bar. Αγόρι λέει ο Μάρκο, Polo κορίτσι λέει. Αλλά αυτό δεν είναι σκληρό κωδικοποιούνται per se. Αυτό είναι επικοινωνία μεταξύ των σεναρίων, έτσι τώρα έχουν τη δυνατότητα να κάνουν ακόμα πιο πολύπλοκα προγράμματα όπου αυτά τα δύο είναι κατά κάποιο τρόπο μεταξύ επικοινωνία. Έτσι, σε ποιες κατευθύνσεις μπορούμε να πάρουμε αυτό; Λοιπόν, το πρόβλημα στο σύνολο 0, πραγματικά, ο στόχος είναι να να διασκεδάσουν με Scratch. Για την έκδοση του χάκερ, θα έχετε τη διασκέδαση, αντί με μια πιο εξελιγμένη έκδοση του Scratch που ονομάζεται BYOB, Build Μπλοκάρει τη δική σας, αλλά η ιδέα είναι η ίδια. Θα είστε σε θέση - Ναι, αυτό ήταν εσκεμμένη. Ήρθε από το Μπέρκλεϊ. BYOB είναι η έκδοση έκδοση του χάκερ αυτό, αλλά και οι δύο , τη δημογραφία, τυπική έκδοση και έκδοση χάκερ όσο το Ο στόχος στο χέρι για την επόμενη εβδομάδα είναι πραγματικά ακριβώς για να βουτήξει σε βαθιά, λερώσετε τα χέρια σας με τον προγραμματισμό, και να κάτι ενδιαφέρον, κάνει κάτι διαδραστικό, να κάτι καλλιτεχνικό, να κάνει κάτι διασκεδαστικό να πραγματικά αποδεικνύουν, έτσι ώστε μέχρι το τέλος της εβδομάδας, θα έχετε ένα έργο, όχι μόνο για την πρώτη CS50 PSET σας, αλλά θα έχετε μια λίγο κάτι που μπορείτε να αναδείξουν σε Annenberg να τους φίλους ή ακόμα και οικογένεια με το φόρτωμα στην ιστοσελίδα του MIT. Και έτσι, όπως είπα την Τετάρτη, περιμένουμε το 90% της κατηγορίας, γενικά, να κάνουν τις τυποποιημένες εκδόσεις. Συνειδητοποιήστε ότι υπάρχει και αυτή η διέξοδος για όσους από εσάς διαφορετικά θα βρείτε τον εαυτό σας λίγο βαρεθεί με τα βασικά και πραγματικά θέλουν να βουτήξουν σε σκάφη και ένα όραμα που έχετε ήδη έχουν με την προηγούμενη υπόβαθρο σε αυτό το πιο φιλικό περιβάλλοντος. Έτσι, επιτρέψτε μου να σηκώσει άλλο ένα παράδειγμα ότι ένας από τους πρώην μας οι μαθητές έκαναν εδώ και πείτε λίγο κάτι μέσα από το τραγούδι. Αυτό ομοίως, καθώς αυτό παίζει, σκεφτείτε για το πώς θα πάτε για την εφαρμογή αυτού του προγράμματος χρησιμοποιώντας ακριβώς αυτά τα ίδια δομικά στοιχεία, ένα μικρό κομμάτι του ψευδο τυχαιότητα, και ένα λίγο γνωστό τραγούδι. Αν θα μπορούσε να αυξήσει τον όγκο μόλις λίγο; [MUSIC - "Βρέχει MEN" Τα κορίτσια ΚΑΙΡΟΣ] DAVID Malan: Αυτό είναι αυτό για CS50. Θα σας δούμε την Δευτέρα. [Χειροκρότημα]