DAVID Malan: Καλώς ήρθατε και πάλι, ο καθένας. Έτσι, χθες, θα θυμηθούμε ότι επικεντρωθήκαμε σε αυτά τα θέματα εδώ. Έτσι, είχαμε τέσσερις πρωταρχικούς topics-- προστασία της ιδιωτικής ζωής, της ασφάλειας και της κοινωνίας? τεχνολογίες διαδικτύου? cloud computing? και, τελικά, ανάπτυξη ιστοσελίδων. Μήπως κάποιος που έχει η το εύρος ζώνης ή του χρόνου να παρακολουθήσουν μια μικρή John Oliver χθες το βράδυ; Είναι πραγματικά πολύ διασκεδαστικό, αν δεν είναι λίγο τρομακτικό. Οποιεσδήποτε ερωτήσεις σχετικά με τίποτα κάναμε χθες; Τυχόν διευκρινίσεις; Οποιεσδήποτε ερωτήσεις που θέλετε να κάνετε βεβαιωθείτε ότι αγγίζουμε σήμερα σε κάποια μορφή; Έτσι καθαρή πλάκα. Έτσι τι είναι στην ημερήσια διάταξη για σήμερα; Έτσι σκέφτηκα ότι θα αρχίσει σήμερα με μια ματιά στο τι είναι γενικά γνωστή και ως υπολογιστική thinking-- σε ο κίνδυνος υπεραπλουστατευτική, νομίζοντας όπως έναν υπολογιστή, ίσως σκέφτεται σαν μηχανικός, και προσπαθεί να αρχίσει να οργανώσετε τις σκέψεις σας ή για να σας δώσει μια καλύτερη αίσθηση της τι εμπλέκονται σε πραγματικά επιβλητική ένας υπολογιστής για να κάνει κάτι μέσω του προγραμματισμού. Και θα το κρατήσει σε ένα όμορφο υψηλού επιπέδου, λίγο πολύ τα αγγλικά, αλλά προσπαθήστε να χρησιμοποιήσετε γνώριμων παραδείγματα για να επισημοποιήσει το πώς θα πάει για την επίλυση των προβλημάτων. Και εμείς θα επανεξετάσουμε κάποια CS θέματα, όπως η αφαίρεση, η οποία ήρθε ένα ζευγάρι φορές χθες, αλγορίθμων, και στη συνέχεια αναπαράσταση. Και αυτό είναι όπου θα αρχίσουμε σήμερα σε μια στιγμή. Στη συνέχεια, θα ρίξουμε μια ματιά σε προγραμματισμό. Θα ρίξουμε μια ματιά σε μερικά θεμελιώδεις δομές με τα οποία μπορεί να είναι εξοικειωμένος και θα μπορούσε ακόμη και να βρείτε αρκετά διαισθητική. Θα δούμε, στην πραγματικότητα, σε προγραμματισμό δειγμάτων περιβάλλον που είναι πολύ προσιτές, πολύ παιχνιδιάρικο, και μάλιστα στοχευμένη για τις ηλικίες 12 και πάνω. Θα περάσουν μερικά λεπτά εκεί και στη συνέχεια να λάβει τα πράγματα σε χαμηλότερο επίπεδο και πραγματικά να μιλήσουμε για μερικά από τα οι αλγόριθμοι και δομές δεδομένων, να το πω έτσι, ότι προγραμματιστές συνήθως χρησιμοποιούν να λύσει τα προβλήματα πολύ πιο αποτελεσματικά από ό, τι θα μπορούσε να είναι σε θέση να κάνει χωρίς αυτά εντελώς. Στη συνέχεια, μετά το μεσημεριανό γεύμα, θα ρίξουμε μια ματιά σε στοίβες τεχνολογία, η οποία είναι ακριβώς ένα φανταχτερό τρόπο λέγοντας συλλογές των τεχνολογιών που μπορείτε να χρησιμοποιήσετε για να λύσει κάποιο πρόβλημα. Και θα μιλήσουμε για το αλφάβητο σούπα των γλωσσών που υπάρχουν today-- Java και Python και C ++ και PHP και Ruby και κάθε λογής άλλα πράγματα. Θα ρίξουμε μια σύντομη ματιά σε σχεδιαστικά πρότυπα. Προγραμματιστές, την πάροδο του χρόνου, έχουν εγκριθεί μεθοδολογίες που τείνουν να τους βοηθήσει λύσει τα προβλήματα πιο εύκολα. Όταν ξεκινάτε για να δείτε τον εαυτό σας γράφοντας το ίδιο είδος κώδικα ξανά και ξανά, άνθρωποι επισημοποιήσουν αυτές τις επαναλήψεις και τα ονόματα αποδίδουν σε αυτούς και στη συνέχεια να τα χρησιμοποιήσουν και να την προώθηση τους, τελικά. Και θα μιλήσουμε λίγο σχετικά με τα κινητά στρατηγικές, όπως τι σημαίνει πραγματικά να κάνει μια εφαρμογή για κινητά ή ένα κινητό δικτυακό τόπο. Μην το κάνετε για το Android; Μην το κάνετε για το iOS; Μην το κάνεις και για τους δυο αυτά; Και ποιες είναι οι συμβιβασμοί; Και τελικά, θα πάρουμε ένα web προγραμματισμό ματιά, η οποία είναι ένας συλλογικός όρος πραγματικά περιγράφει οποιαδήποτε στιγμή μπορείτε να γράψετε το λογισμικό που είναι σήμαινε να τρέχει στο διαδίκτυο, είτε σε τηλέφωνα ή επιτραπέζιους ή φορητούς υπολογιστές. Θα ρίξουμε μια σύντομη ματιά σε βάσεις δεδομένων και ο σχεδιασμός σ 'αυτό, έστω και μόνο επειδή σχεδόν κάθε ενδιαφέροντα web-based εφαρμογή αυτές τις μέρες έχει κάποιο είδος της βάσης δεδομένων. Διαφορετικά, θα ήταν απλά να είναι στατικό περιεχόμενο. Και μια βάση δεδομένων σας επιτρέπει να κάνετε αλλαγές πάροδο του χρόνου, είτε μόνοι σας ή από τους χρήστες. Και θα εξετάσουμε το πώς θα θα πάει για το σχεδιασμό ότι η βάση δεδομένων και το είδος της φρασεολογίας που θα μπορούσε να καταλήξει σε μια μηχανικού συζήτηση σε ένα λευκό του σκάφους όταν στην πραγματικότητα την εφαρμογή μια εφαρμογή για πρώτη φορά. Θα μιλήσω εν συντομία για APIs, χρήσιμες υπηρεσίες που μπορείτε να χρησιμοποιήσετε για να σταθεί η ώμους των άλλων, κατά πόσον οι εταιρείες ή ιδιώτες, και να λύσει σας τα δικά του προβλήματα πιο γρήγορα. Και τότε θα ανακατεύομαι ίσως λίγο με JavaScript, μια γλώσσα προγραμματισμού που χρησιμοποιείται τόσο σε προγράμματα περιήγησης αυτές τις μέρες, αλλά και σε servers. Και ίσως, εμείς θα επανεξετάσει, ο χρόνος το επιτρέπει, μερικά από τα hands-on web πράγματα που έκανε χθες και να ενσωματώσουν τα δύο μαζί πριν διακόψουμε. Έτσι, με ερμήνευα-- τι ahead-- είναι Υπάρχει κάτι που λείπει ώστε να Θα ήθελα να βεβαιωθείτε ότι εισάγετε και να αγγίξει σε κάποια στιγμή. Αν είναι ελατήρια στο μυαλό, να το φέρει επάνω πριν από καιρό. Αλλά γιατί να μην αρχίσουμε με μια εξετάσουμε υπολογιστικής σκέψης. Και επιτρέψτε μου να προτείνω υπολογιστική σκέψη είναι, και πάλι, το είδος της περιγραφής υψηλού επιπέδου τι μπορεί να κάνει ένας επιστήμονας υπολογιστών. Και πράγματι, ας ξεκινήσουμε με τρία συστατικά που θα μπορούσε να πάει σε υπολογιστική σκέψη. Αυτό είναι απλά ένας τρόπος για να περιγράψει αυτό. Θα μπορούσαμε σίγουρα καθορίζουν αυτό σε οποιοδήποτε αριθμό τρόπων. Αλλά επιτρέψτε μου να προτείνω, για χάρη του σήμερα, ότι τα προβλήματα του κόσμου, όλα τα προβλήματα του κόσμου, όταν προσεγγίζεται από ένα επιστήμονας υπολογιστών θα μπορούσε να να θεωρηθεί ως αυτό που θα κλήση εισόδους, η οποία Πρέπει να βαρεθείτε σε αυτό θα καλέσουμε αλγορίθμων, η οποία στη συνέχεια αποδώσει αποτελέσματα. Με άλλα λόγια, το σύνολο του κόσμο της αξίωσης επίλυση των προβλημάτων που μπορεί να αποστάζεται σε Αυτά τα τρία συστατικά. Λοιπόν, τι εννοώ με εισόδους; Είσοδοι είναι ακριβώς ό, τι είστε παρέδωσε προκειμένου να λυθεί. Για παράδειγμα, εδώ είναι ένα παλιό πρόβλημα του σχολείου. Αν έχω ένα βιβλίο τηλέφωνο εδώ και Θέλω να δούμε κάτι σε αυτό, αυτή είναι η συμβολή μου. Έχω 1.000 ή έτσι σελίδες σε ένα τηλεφωνικό κατάλογο. Αυτή είναι η είσοδος για το πρόβλημά μου. Και θέλω να βρω κάτι όπως ο Mike Smith, έτσι ώστε ένα φίλο του οποίου το όνομα και ο αριθμός είναι ελπίζουμε σε αυτό το βιβλίο διευθύνσεων. Αυτό είναι πριν από την ημέρα της κυτταρικής τηλέφωνα, ώστε να μπορώ να όχι μόνο το αναζητήσετε. Γι 'αυτό και πρέπει να το κάνουμε παλιά σχολείο και στην πραγματικότητα αναζήτηση Αυτές οι είσοδοι για κάποια απάντηση. Και η απάντηση είναι ακριβώς πρόκειται να ονομάζεται η έξοδος. Έτσι, η είσοδος είναι το βιβλίο του τηλεφώνου. Ο αλγόριθμος είναι ανεξάρτητα σύνολο βήματα μπορώ να χρησιμοποιήσω για να βρείτε Mike Smith. Και η έξοδος είναι, ελπίζω, αριθμό τηλεφώνου του Mike Smith. Και αυτό τότε θα ήταν απλά εκπρόσωπος των περισσότερων οποιοδήποτε πρόβλημα να με είστε χέρια είσοδοι και θέλουν να παράγουν αποτελέσματα. Έτσι, πριν από θεωρούμε ότι η διαδικασία με την οποία μπορούμε να λύσουμε αυτό το πρόβλημα, εύρεση Mike Smith και κάτι τέτοιο, Ας εξετάσουμε το πρώτο και οι last-- εισόδους και εξόδους. Σωματικά, φυσικά, η είσοδος εδώ έχει ένα σωρό χαρτιού κολλημένα μεταξύ τους υπό τη μορφή ενός τηλεφωνικού καταλόγου. Αλλά υπολογιστές, φορητοί υπολογιστές της course-- και επιτραπέζιοι υπολογιστές ακόμα και τα τηλέφωνα αυτά days-- αυτά είναι ηλεκτρονικές συσκευές. Και στο τέλος της ημέρας, τι είναι η μόνη είσοδος σε έναν υπολογιστή; Λοιπόν, αυτό είναι κάτι σαν αυτό το καλώδιο ρεύματος εδώ. Θα το συνδέσετε στον τοίχο, και Παίρνω μια ροή των ηλεκτρονίων, η οποία μου επιτρέπει να εκτελέσετε το μηχάνημα. Ή ίσως αυτά τα ηλεκτρόνια είναι δημιουργήθηκε από τον τρόπο της μπαταρίας μου. Αλλά στο τέλος της ημέρας, αυτό είναι το μόνο πράγμα που πηγαίνει στο laptop μου. Και τόσο πολύ ενδιαφέρον τα πράγματα είναι τελικά βγαίνει, αν μέσω του εκτυπωτή ή η οθόνη ή audially ή τα παρόμοια. Έτσι, αν το μόνο που έχουμε ως μας θεμελιώδη εισόδου σε έναν υπολογιστή είναι ηλεκτρική ενέργεια, έτσι απλά ηλεκτρόνια πηγαίνει μέσα και έξω ή, και ούτω πώς μπορούμε να χρησιμοποιήσουμε αυτή την είσοδο να εκπροσωπεί πραγματικά τις πληροφορίες; Με άλλα λόγια, πώς παίρνουμε από μια απλή ροή ηλεκτρικής ενέργειας να αντιπροσωπεύει την πραγματική αριθμούς ή πραγματική γράμματα ή πραγματικές εικόνες στην οθόνη ή πραγματικές ταινίες ή e-mails ή οποιοδήποτε αριθμό από αυτά υψηλότερες έννοιες επίπεδο, αν θέλετε, ότι η τέλος της ημέρας κάπως πρέπει να αποθηκευτούν σε αυτό ηλεκτρονική μηχανική συσκευή χρησιμοποιώντας μόνο αυτές τις απλές ingredients-- ηλεκτρόνια που έρχονται μέσα και έξω; Έτσι, φαίνεται ότι, Στην απλούστερη μορφή, το μόνο είδος των κρατών Έχω στον κόσμο μου, έτσι να speak-- συνθήκες σε world-- μου είναι είτε Έχω ηλεκτρόνια ρέουν, ηλεκτρικής ενέργειας ρέει, ή να κάνω not-- ούτω καθεξής, εκτός λειτουργίας. Και ας επισημοποιήσει και να σβήνουν, ως ένας επιστήμονας υπολογιστών θα μπορούσε, με μόνο 1 και 0. Ας περιγράψουμε κάποια αυθαίρετη αλλά συνεπής αριθμός σε αυτό. 1 σημαίνει για, 0 σημαίνει απενεργοποίηση. Ή μπορείτε επίσης να δείτε αυτό ως αλήθεια μέσα στις ψευδείς και μέσα. Θα μπορούσατε επίσης να κάνετε μαύρο και το λευκό ή κόκκινο και μπλε. Απλά χρειάζεται δύο περιγραφείς. Και έναν υπολογιστή οι επιστήμονες θα γενικά απλά χρησιμοποιήστε 0 και 1. Έτσι, αν αυτή είναι η περίπτωση, μόνο αλφάβητο μου αποτελείται από το 0 και 1, το πώς θα ήθελα να πάρει ενδεχομένως να εξομαλύνει τον αριθμό 2 σε έναν υπολογιστή, πόσο μάλλον ο αριθμός 3 ή ένα γράμμα της αλφαβήτου ή μια εικόνα ή μια ταινία; Πώς μπορούμε να το είδος της bootstrap τους εαυτούς μας από αυτή τη βασική αρχή από 0 και 1 και στην πραγματικότητα αντιπροσωπεύουν κάτι πιο ενδιαφέρον; Λοιπόν, ας βάλουμε αυτό το ερώτημα σε αναμονή για μια στιγμή και να εξετάσει κάτι ελπίζουμε εξοικειωμένοι, ακόμη και αν δεν έχετε σκεφτεί πραγματικά για αυτό με κάθε λεπτομέρεια για 10, 20, 30, 40, 50 περισσότερα χρόνια. Αυτό είναι ό, τι; Πώς θα προφέρει αυτό; Δεν είναι μια ερώτηση παγίδα. Ένας αριθμός, αλλά τι είναι αυτό; 1, 2, 3, ή 123. Και μου άρεσε το πώς είπατε 1, 2, 3, επειδή αυτός είναι ένας τρόπος που βλέπουν αυτό. 1, 2, 3, είναι μια ακολουθία από τρία σύμβολα. Είναι εικόνες που μας τώρα έχουν λέξεις για. Και αν το είδος των διαβάσει όλα αυτά μαζί, ένα τυπικό άνθρωπο σε Αγγλικά Θα έλεγα 123. Και αυτό είναι ένα είδος υψηλότερη έννοια επίπεδο, αισθάνεται σαν ένα λογικά μεγάλο αριθμό. Αλλά πώς θα φτάσουμε εκεί; Λοιπόν, θα μπορούσε να είναι μια στιγμή δεδομένου ότι έχετε σκεφτεί σαν αυτό, Αλλά πίσω στην ημέρα μου, είδος έμαθε αυτό όπως στήλη 1, οι 10 είναι στήλη, και η στήλη του 100. Έτσι, όπως λέει Lakisa, είναι 1, 2, 3, αλλά είναι επίσης 123. Αλλά πώς θα πάρετε από η πρώτη στη δεύτερη; Λοιπόν, θα συνήθως κάνουμε στο στήλη 100, έχω ένα 1. Έτσι, αυτό είναι σαν να λέμε 100 φορές 1. Και στη συνέχεια στη στήλη 10 του, έχω 2. Έτσι, αυτό είναι σαν να λέμε 10 φορές 2. Στη στήλη 1, το έχω 3. Έτσι, αυτό είναι σαν να λέμε 1 φορές 3. Και αν μπορώ να προσθέσω αυτά τα πράγματα μαζί, αυτό, φυσικά, είναι 100 συν το 10 συν 3. Και ω, γι 'αυτό παίρνω αυτό υψηλότερη έννοια επίπεδο των 123. Είναι απλά βασικά μαθηματικά, σύμφωνα με την οποία οι σύμβολα έχουν βάρη σε αυτούς, εάν θα, κράτησης θέσης ή τις τιμές της στήλης. Και αφού την έχω πολλαπλασιάσει τα πάντα έξω, να πάρω τον αριθμό αυτό. Έτσι, πόσοι από εσάς γνωρίζετε πώς να μιλήσω binary-- 0 και 1's-- σαν έναν υπολογιστή; Εντάξει, τέλεια, κανείς, ή κανείς από εσάς νομίζετε ότι κάνετε. Αλλά θα ήθελα να σας διεκδικήσει στην πραγματικότητα το γνωρίζετε ήδη. Πρέπει απλώς να το είδος της τσίμπημα ψυχική μας μοντέλο λίγο. Αλλά η διαδικασία είναι ακριβώς η ίδια. Επιτρέψτε μου να αφήσει αυτό το ένα επάνω εκεί και αντί να τραβήξει αυτό κάτω για μια στιγμή. Στον κόσμο των ηλεκτρονικών υπολογιστών, έχουμε μόνο 0 και 1 του. Και έτσι το πράγμα που είναι πρόκειται να αλλάξει είναι αυτό; Λοιπόν, το ανθρώπινο κόσμο μου, η δεκαδικό σύστημα, Δεκέμβριος έννοια 10, Έχω πόσα ψηφία στη διάθεσή μου; 10, σωστά; 0 έως 9, φυσικά. Και γι 'αυτό έχουμε το 10 του τόπο και τον τόπο του 100. Πού είναι ότι προέρχονται από; Λοιπόν, αυτό είναι 10 στη δύναμη του 0. Αυτό είναι 10 με τη δύναμη του 1, 10 στη δύναμη του 2, και ούτω καθεξής. Μπορείτε απλά να κρατήσει τον πολλαπλασιασμό των στηλών σας από 10, ξεκινώντας με μόλις 1 στο δεξιότερο εδώ. Έτσι, στον κόσμο της υπολογιστές, αν μόνο έχουν binary-- bi έννοια 2-- ή 0 και 1, μπορούμε απλά πρέπει πραγματικά να αλλάξει η βάση του εν λόγω μαθηματικά. Έτσι με άλλα λόγια, τώρα απλά θα έχουν στήλη 1 και το-- όπου είναι αυτό going-- στήλη 2'S, στήλη 4, καθώς και ίσως πέρα. Γιατί αυτό? Λοιπόν, αυτή είναι η 2 η 0-οστή δύναμη. Αυτή είναι 2 ο 1. Αυτό είναι 2 έως το 2, και ούτω καθεξής. Έτσι, ενώ εδώ, έχουμε 1, 10 του, 100, 1000, το 10000, το 100.000, το 1 εκατομμύρια, και ούτω καθεξής, εδώ έχουμε 1, 2, 4, 8, 16, 32, 64. Μπορείτε απλά να κρατήσει τον πολλαπλασιασμό με το 2, αντί να κρατήσει τον πολλαπλασιασμό κατά 10. Έτσι τώρα, αν ο στόχος στο το χέρι είναι να εκπροσωπεί αριθμούς με τη χρήση μόνο 0 και 1, η ας εξετάσουμε πώς θα φτάσουμε εκεί. Αυτό, φυσικά, είναι το μοτίβο 0 0 0, αλλά τι αριθμό εννοιολογικά εκπροσωπεί; Λοιπόν, 4 φορές 0 συν 2 φορές 0 συν 1 φορές 0, ας προσθέσουμε εκείνους μαζί. 4 φορές 0 είναι, φυσικά, 0, συν 2 χρόνους 0 είναι, φυσικά, 0 συν 1 φορές 0 Είναι, φυσικά, 0. Έτσι, αχ, αυτό αντιπροσωπεύει το αριθμός εμείς οι άνθρωποι γνωρίζουμε ως 0. Λοιπόν, τώρα, ας πολύ γρήγορα γρήγορα προς τα εμπρός. Αν είμαι αντί δεν αντιπροσωπεύουν 0 0 0, αλλά ας κάνουμε 1 0 1, ότι θα μπορούσε να είναι το πώς Lakisa, νωρίτερα, Θα το 1 0 1 προφέρει μόνο. Αλλά τώρα, πώς θα το πάρετε στο υψηλότερο επίπεδο, ο αριθμός εμείς οι άνθρωποι μπορεί να ξέρει; Έτσι τι είναι αυτός ο αριθμός; Είναι 5, ο αριθμός που γνωρίζουμε ως 5. Καλά, γιατί συμβαίνει αυτό; Λοιπόν, μπορούμε πραγματικά να το είδος της με τα πόδια μέσα από αυτό μεθοδικά 4 φορές 1, 2 φορές 0, 1 φορές 1. Προσθέστε αυτά συνολικά, έτσι αυτό είναι 4 συν 0 συν 1. Και αυτό είναι, πράγματι, 5. Έτσι, είναι να πάρει λίγο κουραστική τώρα κάνει ξανά και ξανά την αριθμητική. Αλλά η διαδικασία είναι ακριβώς η ίδια. Το μόνο πράγμα που έχει άλλαξε στον κόσμο μας είναι ότι οι στήλες μας είναι 1, 2, 4, 8, 16, και ούτω καθ 'εξής, αντί για 1, 10, 100, 1.000. Και αυτό είναι μόνο και μόνο επειδή αλφαβήτου μας έχει συρρικνωθεί από το 0 έως το 9 σε μόλις 0 έως 1. Έτσι, ως ένα μικρό κουίζ εδώ, πώς θα που αντιπροσωπεύουν τον αριθμό 7 σε δυαδική; 0; Λοιπόν, 0, που σημαίνει 0 0 0; Πες το ξανά, Karina. Τέλειος. Γιατί αυτό? Είναι αποτελεσματικά 4 συν 2 συν 1. Τοσο καλα. Πώς μπορούμε να αντιπροσωπεύουν ένα μικρό another-- πώς σχετικά με τον αριθμό 2; Κοντά, αλλά προς τα πίσω. Λοιπόν, τι είναι αυτό; Είναι 4 συν 1, έτσι ώστε να είναι 5 και πάλι. Έτσι what's-- Λυπάμαι, Karina; 0 1 0. 0 1 0 θα είναι 2, επειδή και πάλι, ακόμη και αν είδους δεν πηδούν έξω σε σας, απλά κάνετε τα μαθηματικά. 4 χρόνους 0, 0, 2 φορές 1 είναι 2, 1 φορές το 0 είναι μηδέν. Έτσι, αυτό είναι ο αριθμός που γνωρίζουμε ως 2. Πώς σχετικά με τον αριθμό 8; Χμ; Καλά. Γι 'αυτό το είδος χρειάζεται άλλο κράτησης θέσης. Χρειαζόμαστε 1 0 0 0. Και αυτό είναι αλήθεια του είδους μας του παλαιού συστήματος σχολείο δεκαδικά. Πώς μπορείτε να αντιπροσωπεύουν τον αριθμό 1,000; Λοιπόν, θα φαίνεται να είναι είδος σε δύσκολη θέση, αν σας ζητήσω να αντιπροσωπεύουν ο αριθμός 1.000, γιατί ακόμα και αν δώσετε στον εαυτό σας, όπως 9 από αυτούς, 9 από αυτούς, 0 από αυτά, η οποία είναι ο μεγαλύτερος αριθμός που έχετε, δεν είναι αρκετά να πάρει σε 1.000. Έτσι, αν 1000, το μόνο που χρειάζεται ένα άλλο θέση, έτσι ώστε να μπορείτε να κάνετε 1 0 0 0, ergo ο αριθμός 1.000. Έτσι τώρα, ας χάρτη αυτού του είδους εννοιολογική συζήτηση πίσω στο υλικό, όπου και πάλι, η είσοδος ήταν απλά αυτό το μικρό καλώδιο τροφοδοσίας, ηλεκτρικό ρεύμα έρχονται και που ρέει έξω. Και έτσι γι 'αυτό που πρόκειται να χαρτογραφηθεί από εδώ εκεί, καλά, τι πραγματικά χρειαζόμαστε; Λοιπόν, μπορείτε να σκεφτείτε ότι είναι μέσα από μια υπολογιστή, ένα σωρό των λαμπτήρων, αν θέλεις. Είναι πραγματικά ονομάζεται τρανζίστορ. Και τρανζίστορ είναι μόνο διακόπτες ότι μπορεί να είναι είτε ή να απενεργοποιήσετε. Έτσι, μπορείτε να σκεφτείτε ένα τρανζίστορ που είναι σε επιτρέπει την ηλεκτρική ενέργεια να ρέει και ένα τρανζίστορ που είναι μακριά ως τη διακοπή ηλεκτρική ενέργεια να ρέει. Και αντί να λάβει πάνω από τα φώτα εδώ, Γιατί δεν μπορώ να κάνω αυτό το είδος νέο στυλ σχολείο. Έτσι, αυτό μπορεί να είναι ένα 1, ένας φακός είναι στο, μόνο ελάχιστα όμως. Και αυτό μπορεί να είναι ένα 0, και τώρα είναι ανοικτά. Έτσι, με τη χρήση αυτής της φυσικής συσκευής, εγώ μπορούν τώρα να αντιπροσωπεύουν το δυαδικό σύστημα. Χρειάζομαι μόνο δύο κράτη. Δεν έχει σημασία τι χρώμα είναι ή τι δεν είναι. Το μόνο που έχει σημασία είναι ότι έχω ένα κράτος στο άλλο και κατάσταση off. Έτσι, χρησιμοποιώντας το τηλέφωνό μου εδώ, πώς μπορώ να κάνω αντιπροσωπεύουν τον αριθμό που γνωρίζουμε ως 0; Ή να τεθούν ισοδύναμα, τι αριθμός είμαι εκπροσωπούν τώρα; 0, διότι η συσκευή είναι εκτός λειτουργίας. Και αν το κάνω αυτό; Και τώρα, πώς μπορώ να κάνω αντιπροσωπεύουν τον αριθμό 2; Μπορώ να δανειστώ το τηλέφωνό σας Εδώ, όπως κάναμε χθες; Ας δούμε, οπότε αν θέλω να εκπροσωπεί ο αριθμός 2, είναι αυτός ο αριθμός 2; Όχι. Τι αριθμό είμαι λάθος εκπροσωπούν εδώ; Αυτό είναι στην πραγματικότητα ο αριθμός 3. Έτσι που το ένα θέλω να απενεργοποιήσετε; Το μαύρο τηλέφωνο or-- καλά, αν μαζεύουν μαύρο τηλέφωνο ή το λευκό τηλέφωνο; Το λευκό τηλέφωνο. Έτσι, αν απενεργοποιήσετε αυτή την επιλογή και τη γραμμή επάνω εδώ, έχουμε ένα 1 στη θέση του 2 και ένα 0 στη θέση 1 του. Και έτσι είμαι τώρα που αντιπροσωπεύει τον αριθμό 2. Και αυτό, φυσικά, θα είναι ο αριθμός 3, γιατί τώρα τα δύο από αυτά τα φώτα βρίσκονται σε. Και εγώ θα σταματήσω εδώ, αλλά στέκεται στο λόγο αν θέλω να εκπροσωπεί το αριθμός 4 ή 8 ή υψηλότερο, Πάω να χρειάζονται περισσότερα τηλέφωνα. Αλλά αυτό είναι το μόνο που συμβαίνει. Έτσι, αν έχετε ακούσει ποτέ ότι στο εσωτερικό της a-- ευχαριστήσω you-- υπολογιστή είναι εκατομμύρια τρανζίστορ, που είναι μόνο τα εκατομμύρια των μικροσκοπικό διακόπτες. Και δεν είσαι το φως λαμπτήρες που ανάβουν και να σβήνουν, αλλά δεν επιτρέπουν ούτε την ηλεκτρική ενέργεια να ρέει κάπου ή να σταματήσει αυτό. Και έτσι υπάρχουν δύο σας states-- ή να απενεργοποιήσετε, ή να απενεργοποιήσετε. Έτσι θα φαίνεται τώρα να έχουν αυτή την ικανότητα να εκπροσωπεί αυτήν την έννοια που θα θέλαμε σε πραγματικό hardware. Αλλά το μόνο που έχουμε τώρα είναι η ικανότητα για να αντιπροσωπεύσει τους αριθμούς φαίνεται. Επομένως, πώς θα πάτε για την εκπροσωπούν γράμματα του αλφαβήτου, το οποίο αισθάνεται σαν το επόμενο είδος του χαρακτηριστικό σας Θα θέλετε να προσθέσετε σε ένα σύγχρονο υπολογιστή αφού έχετε τους αριθμούς; Και πράγματι, αν το σκεφτείτε ότι, ιστορικά, οι υπολογιστές εισήχθησαν πραγματικά να εξυπηρετήσει όπως αριθμομηχανές αριθμητικά. Αλλά φυσικά, αυτά ημέρες, θα κάνει πολύ περισσότερα. Ακόμα και όταν την εκκίνηση, μπορείτε δείτε συνήθως μία ή περισσότερες λέξεις. Τόσο πώς μπορείτε να αντιπροσωπεύουν λόγια, αν το μόνο που έχετε είναι, και πάλι, ηλεκτρική ενέργεια, στο τέλος της ημέρα, ή ισοδύναμα του 0 και 1 του; Ναι. Ναι, θέλω να πω, έχουμε το είδος της έκανε αυτό χθες σε κάποια μορφή, όπου σε κάποιο σημείο, Νομίζω ότι αυθαίρετα είπε ότι, αν θέλουμε να εκπροσωπεί το γράμμα Α, θα μπορούσαμε απλά τηλεφωνήστε ότι 1. Ήταν στο πλαίσιο της κρυπτογραφίας, όπου εμείς απλά χρειάζεται κάποιο είδος κώδικα, κάποιο είδος χαρτογράφησης. Έτσι ίσως Α θα εκπροσωπούνται ως 1, και Β θα πρέπει να εκπροσωπούνται ως 2, και Ζ θα εκπροσωπούνται ως 26, για παράδειγμα. Και τότε η μόνη προειδοποίηση είναι ότι αν είμαι πρόκειται να κωδικοποιήσει τα γράμματα στο email μου ή σε μηνύματα κειμένου μου όπως αριθμούς, σε όλους σας πρέπει να συμφωνήσουν να χρησιμοποιούν το ίδιο σύνολο των συμβάσεων. Και πράγματι, ο κόσμος έχει κάνει ακριβώς αυτό. Υπάρχει ένα σύστημα στον κόσμο που ονομάζεται ASCII, American Standard Κώδικας για Ανταλλαγή Πληροφοριών, η οποία είναι απλά μια απόφαση μερικά χρόνια Πριν από ότι οι άνθρωποι γίνονται ότι αποφάσισε ότι πρόκειται να ισούται με, δεν 1, 2, και 26, και έτσι forth-- είναι μια λίγο different-- αλλά 65, 66, 67. Και εγώ θα σηκώσει ένα διάγραμμα ακριβώς σε μια στιγμή. Αλλά είναι αυθαίρετη. Αλλά δεν έχει σημασία ότι είναι αυθαίρετη. Ο κόσμος πρέπει να είναι μόνο συνεπής. Τώρα, πιο πρόσφατα, υπάρχει κάτι φανταχτερό ονομάζεται Unicode, επειδή το είδος του κόσμου των συνειδητοποίησα, μετά την επινόηση υπολογιστές, ότι υπάρχουν περισσότερα από καλά 256 σύμβολα στον κόσμο ότι θα μπορούσαμε να θέλουμε να εκπροσωπεί, ειδικά όταν σας παρουσιάσουμε Ασιατικές γλώσσες και άλλα symbologies ότι χρειάζονται περισσότερη εκφραστικότητα από ό, τι μπορούν να χωρέσουν στην παλαιότερη έκδοση του αυτός ο κώδικας, ο οποίος ονομαζόταν ASCII. Έτσι, Unicode επιτρέπει στην πραγματικότητα μπορείτε να χρησιμοποιήσετε περισσότερα 0 και 2. Πιο συγκεκριμένα, θα ακούμε το bytes λέξη στην κοινωνία και ακόμη και μόνο εχθές. Και ένα byte είναι αυτό πάλι; Τι είναι ένα byte; Είναι μόλις 8 bits. Λοιπόν, τι σημαίνει αυτό πραγματικά; Λοιπόν, αυτό σημαίνει ότι, νωρίτερα, όταν ήμασταν μιλάμε για τα διμερή και ήμουν με τη χρήση αυθαίρετα τρία κομμάτια όταν ήμασταν μιλάμε για binary-- θέση του 1, το του 2'S θέση, και τα 4 είναι place-- καλά, ένα byte απλά σημαίνει ότι μιλάτε όχι σε μονάδες των τριών, αλλά τέσσερα, πέντε, έξι, επτά οκτώ, η οποία μας δίνει τη θέση 8, η 16, το 32, το 64, καθώς και 128 του. Με άλλα λόγια, ένα κομμάτι που δεν είναι όλα ότι χρήσιμη μια μονάδα μέτρησης, επειδή είναι ακριβώς σαν ένα μικροσκοπικό κομμάτι των πληροφοριών, ή να απενεργοποιήσετε. Έτσι, πριν από μερικά χρόνια, ο κόσμος μόλις αποφάσισε Είναι ελαφρώς πιο βολικό για να μιλήσει στο όρους bytes, οκτώ πράγματα ταυτόχρονα. Και έτσι έτσι γεννήθηκε η έννοια ενός byte. Και έτσι έχουμε οκτώ κομμάτια εδώ. Και αποδεικνύεται, επίσης, για παρόμοια λόγους, ο κόσμος αποφάσισε χρόνια Πριν από αυτό να αντιπροσωπεύει ένα γράμμα ASCII, θα πάμε να χρησιμοποιήσετε μονάδες 8 bits. Έτσι, ακόμη και αν δεν το κάνετε πρέπει ότι πολλοί, είστε πάντα πρόκειται να χρησιμοποιήσετε 8 bits για αντιπροσωπεύουν ένα γράμμα της αλφαβήτου. Και αυτό είναι βολικό, γιατί τότε αν λαμβάνετε ένα μήνυμα που έχει 0 0 0 1 1 1 1 0 που ακολουθείται από μια άλλη 1 1 1 0 1 0 0 1, οπότε αν λάβετε 16 bits, ο κόσμος μπορεί απλά υποθέσουμε ότι το πρώτο 8 είναι ένα γράμμα και η δεύτερη 8 είναι μια άλλη επιστολή. Δεν έχει σημασία πόσοι είναι εκεί. Έχει σημασία ότι είμαστε όλοι συνεπείς όταν είμαστε ερμηνεία αυτών των bits. Και αυτό ήταν απλώς τυχαία. Αυτό σημαίνει κάτι, αλλά δεν το έκανα πραγματικά σκέφτονται για το τι σημαίνει. Έτσι είναι ένα μικρό λευκό ψέμα. Αρχικά, ASCII στην πραγματικότητα χρησιμοποιείται μόνο 7 κομμάτια. Και το όγδοο bit είναι που ονομάζεται εκτεταμένη ASCII. Αλλά το θέμα είναι, σε τελική ανάλυση, το ίδιο. Ο κόσμος γενικά τυποποιηθεί σε 8 bits. Έτσι, αυτό φαίνεται να είναι λίγο περιορισμό, γιατί δεν μπορώ παρά να αντιπροσωπεύουν κεφάλαιο Α, κεφάλαιο Β μέσω Ζ του κεφαλαίου Αλλά πράγματι δεν είναι, αν πάω to-- υπάρχει μια δέσμη των πόρων σε απευθείας σύνδεση, για παράδειγμα, asciitable.com, αυτό πρόκειται να είναι μια μικρή συντριπτική κατά την πρώτη. Αλλά εγώ θα επισημάνω αυτό που είναι σημαντικό εδώ. Αυτό συμβαίνει ακριβώς να μαζεύουν και εγώ θα walk-- ας δούμε, αν πάω εδώ. Εδώ είναι, στο δεκαδικό στήλη, ο αριθμός 65. Και σχετικά με το e-mail στη δεξιά στήλη χαρακτήρα, Χρ, είναι το γράμμα A. Και μπορείτε να αγνοήσετε, για τώρα, τα πάντα στη μέση. Αυτό είναι δεκαεξαδικό, οκταδικό, και ένα κώδικα HTML. Σε αυτό το site είναι ακριβώς που προσπαθεί να ρίξει πολλές πληροφορίες σε σας αμέσως. Αλλά το μόνο που νοιάζει είναι το δεκαδικό στήλη και η στήλη χαρακτήρα. Έτσι, με αυτή τη λογική, τι είναι ο αριθμός ότι ο κόσμος αποφάσισε αντιπροσωπεύει ένα πεζό ένα; Ναι, 97. Και ακριβώς για να μπερδεύουν ενδεχομένως ελαφρώς, τι αριθμό έχει αποφασίσει ο κόσμος θα αντιπροσωπεύουν τον αριθμό 1; Δεξιά, επειδή we-- 49, φαίνεται Εδώ, κάτω από το κάτω αριστερά. Τώρα, τι εννοώ με αυτό; Έτσι αποδεικνύεται ότι σε συστήματα ηλεκτρονικών υπολογιστών, υπάρχει γενικά μια θεμελιώδης διαφορά μεταξύ ενός αριθμού και ενός χαρακτήρα. Ένας αριθμός είναι το πράγμα που έμαθα μεγαλώνοντας, όταν ήμασταν σούπερ νέοι στο σχολείο βαθμού. Είναι πράγματα που μετράνε με. Αλλά ένας χαρακτήρας είναι απλά ένα σχήμα, μια γλύφω, να το πω έτσι, στην οθόνη. Τώρα, εμείς οι άνθρωποι του είδους δείτε κάτι που μοιάζει με αυτό. Και λέμε, OH, ότι είναι ο αριθμός 2. Αλλά όχι, αυτό είναι μόνο ένα σύμβολο που μοιάζει όπως αυτό που γνωρίζουμε ως τον αριθμό 2. Και έτσι υπάρχει αυτό θεμελιώδη διάκριση μεταξύ των πραγματικών αριθμών και χαρακτήρων. Αυτός είναι ένας αριθμός. Αλλά γενικά, στην πλαίσιο ενός υπολογιστή, αν αντί να δείτε κάτι σαν αυτό quoted-- Και δεν είναι πάντα Πρέπει να δούμε αυτό αναφέρεται, αλλά για χάρη της discussion-- αν βλέπετε εισαγωγικά γύρω από τον αριθμό, Αυτό είναι τώρα ένα χαρακτήρα. Έτσι, αυτός ο αριθμός 2 κάτω η κουκούλα εσωτερικό ενός υπολογιστή θα εκπροσωπούνται με ένα μοτίβο των bits που αντιπροσωπεύουν τον αριθμό 50 σύμφωνα με το διάγραμμα σε απευθείας σύνδεση. Ωστόσο, εάν ένας υπολογιστής μόλις βλέπει αυτό, αυτό θα αντιπροσωπεύεται με το μοτίβο bit 0 0 0 0 0 0 1 0. Ότι αυτός ο χαρακτήρας θα στην πραγματικότητα να εκπροσωπούνται as-- και τώρα, Πήρα να σκεφτώ λίγο harder-- έτσι αυτό χαρακτήρα θα πρέπει να εκπροσωπούνται με 0 0 1-- τι πρέπει να κάνω εδώ; 0 0 1 1 0 0 1 0. Πώς το κάνω αυτό; Καλά αυτό είναι ο αριθμός 50, αν πολλαπλασιάστε το με τη χρήση αυτών των στηλών, Αυτός είναι ο αριθμός 2, και ούτω γι 'αυτό υπάρχει αυτή η διχοτόμηση. Και αυτό είναι μόνο ένα teaser τώρα για τα χαρακτηριστικά που υπάρχουν σε γλώσσες προγραμματισμού ότι θα αναφερθώ σε συντομία αργότερα σήμερα. Σε γλώσσες προγραμματισμού, Έχετε γενικά, αλλά όχι πάντα, τα πράγματα καλέστε διαφορετικούς τύπους δεδομένων. Με άλλα λόγια, ένα programmer-- όταν αυτός ή αυτή είναι η γραφή, ένας προγραμματιστής παίρνει να αποφασίσει σε ό, τι μορφή για την αποθήκευση δεδομένων του. Μπορείτε είτε να αποθηκεύουν τα δεδομένα ως πρώτων αριθμών, όπως ο αριθμός 2. Ή μπορείτε να τα αποθηκεύσετε ως χορδές, ή αλληλουχίες χαρακτήρων ότι θα εκφράσει γενικά με εισαγωγικά στη γλώσσα προγραμματισμού σας. Μπορείτε να έχετε τα πράγματα called-- Θα υπεραπλουστεύσουμε και να καλέσει τους πραγματική numbers-- έτσι αριθμών που δεν είναι ακέραιοι, όπως τον αριθμό 2, αλλά οι αριθμοί αρέσει 4,56. Έτσι πραγματικοί αριθμοί μπορούν επίσης να έχουν δεκαδικών ψηφίων, έτσι ώστε να είναι μια διαφορετική θεμελιώδη κομμάτι των δεδομένων σε έναν υπολογιστή. Και τότε μπορείτε να έχετε ακόμη και άλλους τύπους δεδομένων ακόμα. Έτσι, αυτό είναι μόνο ένα τρέιλερ πραγματικά της η απλούστερη των αποφάσεων σχεδιασμού ότι ένας προγραμματιστής θα μπορούσε κάνουν κάτω από το καπό. Έτσι ακριβώς ακόμα οποιεσδήποτε ερωτήσεις; Έτσι, ας προσπαθήσουμε να κάνουμε αυτό το λίγο πιο πραγματικό. Αυτό το υλικό δεν είναι τόσο πολύ σε χρήση πια. Αλλά ο καθένας σε αυτό το δωμάτιο πιθανώς μεγάλωσε με και εξακολουθεί να χρησιμοποιεί σκληρούς δίσκους κατά κάποιο τρόπο. Ακόμα κι αν οι περισσότεροι από φορητούς υπολογιστές μας δεν είναι πλέον έχουν συσκευές που λειτουργούν σαν αυτό, αντί για φορητούς υπολογιστές σήμερα γενικά έχουν δίσκους στερεάς κατάστασης χωρίς κινούμενα μέρη. Και αυτό τείνει να είναι πιο ακριβά, Δυστυχώς, όμως λίγο πιο γρήγορα και a-- καλά, συχνά, πολύ πιο γρήγορα, η οποία είναι ένας από τους λόγους. Και επίσης δεν το κάνει παράγει τόση θερμότητα. Μπορεί να είναι μικρότερη, οπότε είναι γενικά μια καθαρή θετική. Αλλά αυτό μας επιτρέπει να χαρτογραφήσουν ένα λίγο πιο συγκεκριμένα τι μιλάμε για στο 0 και επίπεδο 1 τώρα σε μια φυσική συσκευή. Είναι ένα πράγμα για μένα να μιλήσω περίπου 0 και 1 σε όρους του τηλεφώνου μου ή αφηρημένα όσον αφορά των διακοπτών είναι on και off. Αλλά τι γίνεται με τους σκληρούς δίσκους; Σε φορητούς υπολογιστές σας, εάν έχετε ένα παλαιότερο ένα, ή σε επιτραπέζιο υπολογιστή σας, ή οπωσδήποτε σε διακομιστές σήμερα, όπου έχετε σκληρούς δίσκους που έχουν ένα terabyte του διαστήματος, 4 terabyte χώρου, καλά τι σημαίνει αυτό; Ένας σκληρός δίσκος με 1 terabyte των μέσων χώρου υπάρχει 1 τρισεκατομμύριο bytes μέσα από αυτό με κάποιο τρόπο, ή ισοδύναμα 8.000 δισεκατομμύρια bits μέσα. 1 terabyte ήταν 8 terabits ή 1 τρισεκατομμύριο bits, η οποία σημαίνει ότι αν έχετε ένα σκληρό αυτοκίνητο, έχετε κατά κάποιον τρόπο ή άλλο ένα τρισεκατομμύριο 0 του και 1 του μέσα από αυτό. Και αν εμείς απλά ρίξτε μια ματιά σε ένα αυθαίρετη εικόνα ενός σκληρού δίσκου εκπρόσωπος, αυτό είναι ό, τι έναν σκληρό αυτοκίνητο μπορεί τυπικά να μοιάσει στο εσωτερικό. Είναι, επίσης, είναι κάτι σαν ένα παλιό παίκτη φωνογράφου αλλά γενικά με πολλαπλές εγγραφές στο εσωτερικό, έτσι να speak-- πολλαπλές πιατέλες, όπως και αν ονομάζεται, μέταλλο κυκλικοί δίσκοι, και τότε μια μικρή κεφαλή ανάγνωσης, σαν ένα παλιό πικάπ. Και αυτό κεφαλή ανάγνωσης κινείται πίσω και εμπρός και με κάποιο τρόπο διαβάζει τα κομμάτια. Και τι είναι σε αυτές τις πιατέλες, ακόμα και αν εμείς οι άνθρωποι δεν μπορούν να τα δουν, είτε στην πραγματικότητα είτε σε αυτή την εικόνα, υπάρχει μικροσκοπικά μαγνητικά σωματίδια. Και ακόμα κι αν έχετε καιρό ξεχάσει πώς λειτουργεί ηλεκτρικής ενέργειας, ένα μαγνητικό σωματίδιο ότι είναι φορτισμένη σε γενικές γραμμές έχει ένα βόρειο άκρο και ένα νότιο end-- τόσο βόρεια και νότια. Και έτσι ο κόσμος απλά αποφάσισε πριν από λίγο καιρό ότι, αν ένα μαγνητικό πρωτόκολλο ουσιαστικά ευθυγραμμίζεται σαν αυτό, Βορρά-Νότου, ας την ονομάσουμε ότι 1. Αν είναι αντί Νότου-Βορρά, ας καλούν ότι μια 0. Και έτσι, αν έχετε στο διάθεσή σας ένα τρισεκατομμύριο μικροσκοπικά μαγνητικά particles-- και ελπίζω, η εφευρετικότητα του υλικού στο Για να αναστρέψετε τους γύρω όπως βλέπετε fit-- αν θέλετε να αντιπροσωπεύουν ένα σωρό 0, μπορείτε το μόνο που χρειάζεται 8 μαγνητικά σωματίδια όλα ευθυγραμμισμένα σαν αυτό. Και αν θέλετε να εκπροσωπεί οκτώ 1, μπορείτε απλά Πρέπει 8 μαγνητικά σωματίδια ευθυγραμμίζονται πλάτη με πλάτη με πλάτη σαν αυτό. Τι εννοώ με το μαγνητικά σωματίδια; Ειλικρινά, όλα αυτά τα χρόνια αργότερα, η πράγμα που ακόμα έρχεται στο μυαλό μου Είναι αυτός ο τύπος, αν Μεγάλωσα με αυτό το πράγμα. Αυτό είναι ένα little-- για εκείνους unfamiliar-- ένα μικρό παιχνίδι παιδική ηλικία ότι έχει αυτό το άτριχο άνθρωπος εδώ ότι έχει όλα αυτά τα μικροσκοπικά μαύρα μαγνητικά σωματίδια που έρχονται με αυτό. Και χρησιμοποιώντας ότι το κόκκινο ραβδί, το οποίο είναι απλά ένας μαγνήτης, Μπορείτε να ταξινομήσετε του να του δώσει ένα μουστάκι ή τα φρύδια ή τα μαλλιά ή οτιδήποτε σε αυτόν. Έτσι, στην πραγματικότητα, αν μεγέθυνση σε, για παράδειγμα, αυτό είναι το είδος του παιχνιδιού που μπορούν να παίξουν με Wooly Willy. Και αυτό είναι μόνο να πω, αυτά είναι πολύ μεγαλύτερα μαγνητικά σωματίδια από ό, τι είναι στην πραγματικότητα σε έναν σκληρό δίσκο, και πολύ λιγότερα μαγνητικά σωματίδια. Αλλά ας δούμε πραγματικά στη συνέχεια, αν έχετε μικροσκοπικά μαγνητικά σωματίδια σε ένα σκληρό δίσκο, πώς μπορείτε πραγματικά να χρησιμοποιήστε αυτά να εκπροσωπεί τα δεδομένα. [ΑΝΑΠΑΡΑΓΩΓΉ ΒΊΝΤΕΟ] -Το Σκληρό δίσκο είναι όπου το PC σας αποθηκεύει τα περισσότερα από μόνιμα δεδομένα του. Για να γίνει αυτό, τα δεδομένα ταξιδεύει από τη μνήμη RAM μαζί με σήματα λογισμικού που λένε η σκληρό δίσκο πώς να αποθηκεύουν τα δεδομένα. Τα κυκλώματα σκληρό δίσκο μεταφράσει εκείνους σήματα σε διακυμάνσεις της τάσης. Αυτοί, με τη σειρά του, ελέγχει το σκληρό δίσκο του μετακίνηση parts-- μερικά από τα λίγα κινούμενα τμήματα αριστερά στο σύγχρονο υπολογιστή. Μερικά από τα σήματα ελέγχου ενός κινητήρα, η οποία περιστρέφεται μέταλλο επικαλυμμένο με πιατέλες. Τα δεδομένα σας είναι πραγματικά αποθηκευμένα σε αυτές τις πιατέλες. Άλλα σήματα κινηθούν οι κεφαλές ανάγνωσης / εγγραφής να διαβάσει ή να γράψει δεδομένα σχετικά με τις πιατέλες. Αυτά τα μηχανήματα είναι τόσο ακριβής ότι μια ανθρώπινη τρίχα δεν θα μπορούσε καν περνά ανάμεσα από τα κεφάλια και κλώση πιατέλες. Ωστόσο, όλα αυτά λειτουργεί σε καταπληκτική ταχύτητα. [ΤΕΛΟΣ ΑΝΑΠΑΡΑΓΩΓΗ] Και μπορείτε να δείτε στο ουρά τέλος του βίντεο, υπάρχουν γενικά πολλαπλές πιατέλες. Και έτσι ότι η ανάγνωση της κεφαλής Δεν είναι μόνο διαβάζοντας την κορυφή. Είναι κάτι σαν τρεις ή τέσσερις ή περισσότερες κεφαλές ανάγνωσης ότι η κίνηση όπως αυτή, ανάγνωση δεδομένων ταυτόχρονα. Έτσι υπάρχει πολλή πολυπλοκότητα και το είδος του χρονισμού ότι εμπλέκεται σε ένα σκληρό δίσκο. Και το πράγμα γυρίζει πραγματικά καταριέται γρήγορα, έτσι υπάρχει μια μεγάλη πολυπλοκότητα. Αλλά ας μεγέθυνση λίγο βαθύτερα και δείτε πού είναι αυτά τα μαγνητικά σωματίδια και πώς είμαστε πάρει σε αυτούς. [ΑΝΑΠΑΡΑΓΩΓΉ ΒΊΝΤΕΟ] ματιά -Ας σε ό, τι Μόλις είδα σε αργή κίνηση. Όταν μια σύντομη παλμός της ηλεκτρικής ενέργειας αποστέλλεται στην κεφαλή ανάγνωσης / εγγραφής, το flips σε ένα μικρό ηλεκτρομαγνητικό για ένα κλάσμα του δευτερολέπτου. Ο μαγνήτης δημιουργεί ένα πεδίο, το οποίο αλλάζει η πολικότητα του ένα μικροσκοπικό, μικροσκοπικό τμήμα των σωματιδίων του μετάλλου η οποία παλτό επιφάνεια κάθε platter του. Μια σειρά μοτίβο αυτών των μικροσκοπικών χρεώνονται περιοχών στο δίσκο αντιπροσωπεύει ένα μόνο κομμάτι των δεδομένων στο δυαδικό αριθμητικό σύστημα που χρησιμοποιείται από τους υπολογιστές. Τώρα, εάν το ρεύμα αποστέλλεται ένα δρόμο μέσα από την κεφαλή ανάγνωσης / εγγραφής, η περιοχή είναι πολωμένο σε μια κατεύθυνση. Εάν το ρεύμα αποσταλεί η αντίθετη κατεύθυνση, η πόλωση αντιστρέφεται. Πώς μπορείτε να πάρετε τα στοιχεία από το σκληρό δίσκο; Απλά αντιστρέψει τη διαδικασία. Έτσι είναι τα σωματίδια για την δίσκο που παίρνουν την τρέχουσα στην κεφαλή ανάγνωσης / εγγραφής κινείται. Βάλτε μαζί τα εκατομμύρια των Αυτά τα μαγνητισμένο τμήματα, και έχετε ένα αρχείο. Τώρα, τα κομμάτια ενός αρχείου μπορεί να είναι διάσπαρτα σε όλη platters ενός δίσκου, κάτι σαν το χάος των εγγράφων στο γραφείο σας. Έτσι, μια ειδική επιπλέον αρχείο κρατά παρακολουθείτε όπου τα πάντα είναι. Μην θέλετε είχατε κάτι τέτοιο? [ΤΕΛΟΣ ΑΝΑΠΑΡΑΓΩΓΗ] Έτσι που υπαινίχθηκε εκεί, ίσως, είναι ότι το θέμα από το χθες της διαγραφής. Όταν διαγράφετε ένα αρχείο, χθες είπαμε ότι ένας υπολογιστής κάνει πραγματικότητα τι, όταν σύρετε κάτι στον κάδο ανακύκλωσης ή κάδο απορριμμάτων; Είναι ξεχνά ακριβώς. Αλλά το 0 και 1, η τα μαγνητικά σωματίδια που μοιάζουν με κόκκινο και μπλε τα πράγματα εδώ, ή το χέρι μου εδώ, εξακολουθούν να υπάρχουν στο σκληρό δίσκο. Και έτσι υπάρχει software-- Norton Utilities και χτες και άλλα πιο σύγχρονα software-- ότι ακριβώς θα σαρώσει μια ολόκληρη μονάδα σκληρού δίσκου που αναζητούν σε όλες αυτές τις 0 και 1, διότι αυτό Αποδεικνύεται ότι οι περισσότεροι Μορφές-- αρχείο έγγραφα του Word, Excel αρχεία, εικόνες, βίντεο files-- όλα έχουν ορισμένα μοτίβα που είναι κοινά μεταξύ τους. Κάθε αρχείο βίντεο μπορεί να να είναι διαφορετικού βίντεο, αλλά το πρώτο αρκετές bits είναι συνήθως τα ίδια. Ή τα τελευταία αρκετά bits είναι συνήθως τα ίδια. Και έτσι με υψηλή πιθανότητα, μπορείτε να αναζητήσετε αυτά τα πρότυπα. Και ακόμα και αν το αρχείο έχει ξεχάσει, μπορείτε να πείτε με μεγάλη πιθανότητα, αλλά αυτό μοιάζει με ένα έγγραφο του Word, αφήνει να ανακτήσει και un-ξεχνάμε, αν θέλεις. Και έτσι αυτό είναι το πώς μπορείτε να ανακτήσετε δεδομένα που είναι είτε ήταν λάθος διαγράφονται ή να διαγραφούν ή σκοπίμως διαγράφεται για οποιοδήποτε σκοπό. Αντίθετα, την ασφαλή διαγραφή κάνει ό, τι στο πλαίσιο της εικόνας όπως αυτό; Ακριβώς, τους κάνει όλα τυχαία. Γι 'αυτό το είδος κινείται μερικά από τα κάτω, κάποια από αυτά επάνω, αφήνει κάποια από αυτά αμετάβλητη, και γενικά καθιστά τυχαίο θόρυβο έξω από αυτό, ή ίσως ακριβώς κάνει όλα τα 0 ή όλα αυτά 1 του. Και αυτό επίσης μπορεί γενικά τρίψτε τα δεδομένα σας μακριά. Ας επιστρέψουμε τώρα στο θέμα της υπολογιστικής σκέψης, σύμφωνα με την οποία έχουμε τις εισόδους τύπο. Και αλγόριθμοι δίνει που εξάγει τελικά. Έχουμε επικεντρωθεί τώρα στις εισροές και εξόδους, γιατί τώρα, αξίωση έχουμε έναν τρόπο εκπροσωπούν εισόδους και εξόδους. Είμαστε ακριβώς πρόκειται να χρησιμοποιήσετε δυαδική. Και δεν έχει σημασία τι θα θέλω να εκπροσωπώ σήμερα, είτε πρόκειται για ένα αριθμό ή ένα γράμμα ή χιλιάδες αυτών σε ένα τηλεφωνικό κατάλογο ή εικόνες ή ταινίες, στο τέλος της ημέρας, είναι όλα 0 και 1 του. Και εγώ ισχυρίζονται ότι, ακόμα κι αν αυτό είναι ένα σούπερ απλό κόσμο με μόλις 0 του και 1, μπορούμε να οικοδομήσουμε τον εαυτό μας επάνω. Και έχουμε δει ένα παράδειγμα ότι με γράμματα μέχρι στιγμής. Οπότε ας επικεντρωθούμε τώρα σε αυτό μεσαίο συστατικό, ένας αλγόριθμος. Και ας επιστρέψουμε σε αυτό παράδειγμα του Mike Smith. Έτσι, σε αυτό το τηλέφωνο βιβλίο, το οποίο κατά γενική ομολογία, δεν χρησιμοποιούμε τόσο πολύ πια, υπάρχει ένα πρόβλημα που πρέπει να λυθεί. Θέλουμε να βρούμε κάποιον σαν τον Mike Smith. Και τι μπορεί να κάνω για να βρει τον Mike; Λοιπόν, θα μπορούσα απλά να ανοίξει αυτό το βιβλίο, ξεκινούν από την πρώτη σελίδα, και να συνειδητοποιήσουν, OH, είμαι στο τμήμα Α. Ο Mike δεν είναι εκεί. Χρειάζομαι την ενότητα S για τον Σμιθ. Έτσι απλά να κρατήσει γυρίζοντας μία σελίδα τη φορά. Επιτρέψτε μου να προσποιούνται ότι όλα αυτά είναι λευκές σελίδες και όχι κίτρινες σελίδες, γιατί εμείς δεν πρόκειται να βρείτε Mike στις κίτρινες σελίδες ούτως ή άλλως. Αλλά είμαι στις λευκές σελίδες. Και τώρα, είμαι στο τμήμα Β. Ακόμα δεν έχω τον βρήκε. Έτσι κρατώ γυρίζοντας μία σελίδα τη φορά. Αυτό είναι ένα αλγόριθμο. Είναι ένα σύνολο οδηγιών για την επίλυση κάποιου προβλήματος. Με άλλα λόγια, να δούμε σελίδα, αν ο Mike δεν είναι σε αυτό, γυρίσει σελίδα και επαναλήψεις ξανά και ξανά και ξανά, ιδανικά κοιτάζοντας προς τα κάτω, όπως το κάνετε. Έτσι είναι ο αλγόριθμος αυτός, Η διαδικασία αυτή, σωστά; Συγνώμη. Όχι, ακούω κάποιους αριθμούς. ΟΚ, αλλά is-- ναι, είναι σίγουρα κουραστική. Όπως, θα είμαστε εδώ όλη την ημέρα αν ήμουν συνεχίσετε να ψάχνετε για Mike σε αυτή την ταχύτητα. Αλλά επιτρέψτε μου να ισχυρίζονται ότι είναι σωστό. Είναι ανόητο, αλλά είναι σωστό. Στο τέλος της ημέρας, όσο θα μπορούσε, να λάβει, θα βρω τον Mike αν είναι εκεί και είμαι προσοχή. Και εγώ τελικά να φτάσει τη σελίδα του. Και αν έχω πάρει πάρα πολύ μακριά, αν Παίρνω στο τμήμα Τ, τότε ελαφρώς μπορώ να βελτιστοποιήσει και απλώς να πω, hm, όλα γίνονται. Δεν χρειάζεται καν να χάνετε χρόνος θα το Ζ του. Αλλά αυτό είναι ένα πολύ γραμμική προσέγγιση, αν θα, ένα πολύ είδος αριστερά προς τα δεξιά προσέγγιση, μια ευθεία γραμμή. Και της σωστής αλλά αργή. Έτσι θυμάμαι από το δημοτικό, το είδος της βελτιστοποίησης από μια πρώτη γκρέιντερ, όπου έμαθα πώς να μην μετράνε από αυτά, αλλά από twos-- έτσι 2, 4, 6. Είναι Α, πολύ πιο δύσκολο να κάνουν, αλλά θεωρητικά, είναι faster-- 8, 10, 12, 14, και ούτω καθεξής. Τι λέτε για αυτό το αλγόριθμο; Είναι πιο αποδοτικό; Είναι πιο γρήγορα; Κοινό: Είναι αποτελεσματικό. DAVID Malan: Ναι, έτσι είναι def-- είναι κυριολεκτικά δύο φορές τόσο γρήγορα, υποθέτοντας μου δεν παίρνουν σκόνταψε επάνω με τα δάχτυλά μου. Είναι δύο φορές πιο γρήγορα, επειδή Είμαι στροφή μέσω δύο σελίδες ταυτόχρονα αντί για ένα, αλλά είναι ενδεχομένως σε σωστή, γιατί για ποιο λόγο; ΚΟΙΝΟ: Είσαι παρακάμπτοντας μερικά. DAVID Malan: Δεξιά, ό, τι και αν συμβεί Mike να sandwiched-- ίσως όταν είμαι αργότερα στον τηλεφωνικό κατάλογο, Mike συμβαίνει να είναι ανάμεσα σε αυτές τις δύο σελίδες, και εγώ απλά τυφλά υπερπηδήσει αυτό. Έτσι, χρειαζόμαστε μια μικρή αποτύπωση εκεί. Μόλις χτύπησα το τμήμα Τ, Ι Δεν μπορούμε απλά να πούμε με βεβαιότητα, δεν βρήκαμε Mike Smith. Μάλλον πρέπει να διπλασιαστεί πίσω. Ή στην πραγματικότητα, αφού την έχω φτάσει κάποιος ονομάστηκε S-Ν, αντί του S-M για Smith, αμέσως, θα μπορούσε να διπλασιαστεί πίσω, γιατί ίσως ήταν στην προηγούμενη σελίδα. Αλλά δεν έχω να διπλασιάσει πίσω τώρα. Θεωρητικά, αν το κάνω στο σωστό φορά, θα ήθελα απλώς πάω πίσω μία σελίδα. Έτσι είναι η προσθήκη μόνο ένα επιπλέον βήμα. Έτσι έχω πάει δύο φορές πιο γρήγορα, αλλά μου κοστίσει ένα επιπλέον σελίδα. Αλλά ότι αισθάνεται σαν ένα καθαρό κέρδος. Αλλά αυτό δεν είναι το πώς οι περισσότεροι άνθρωποι στην Αυτό το δωμάτιο θα λύσει αυτό το πρόβλημα. Τι θα ήταν ένα τυπικό πρόσωπο, ίσως μια Πριν από μερικά χρόνια να κάνει, για να βρει τον Mike Smith; Ναι, δεν κατάφερε να βρει τον Mike. Τι κάνω? Έτσι ώστε να πάρετε μια λίγο πιο κοντά, αλλά να κάνω ξέρεις-- τι είναι αληθινό για ένα τηλεφωνικό κατάλογο; Κοινό: Είναι διαδοχική. DAVID Malan: Είναι διαδοχική. Είναι αλφαβητική. Και έτσι αν είμαι στο τμήμα Μ, Ο Mike είναι σαφώς προς τα δεξιά, Μπορώ κυριολεκτικά να σχίσει το πρόβλημα στην half-- είναι συνήθως πιο εύκολο από ό, τι ερμήνευα-- δάκρυ το πρόβλημα στη μέση και να το πετάξετε, έτσι ώστε τώρα, έχω ένα πρόβλημα που είναι δεν είναι πλέον 1.000 pages-- που ήταν δύσκολο, γιατί νομίζω ότι πραγματικά έσκισε ο τηλεφωνικός κατάλογος δεν time-- 1.000 σελίδες, αλλά 500. Έτσι, το πρόβλημα είναι κυριολεκτικά το μισό τόσο μεγάλη. Και αυτό είναι πολύ συναρπαστικό, επειδή με την προηγούμενη αλγόριθμοι μου, έκδοση 1 και 2, έφτιαχνα μόνο το πρόβλημα μία σελίδα μικρότερα, δύο σελίδες μικρότερα σε μια στιγμή. Ενώ τώρα, έκανα 500 σελίδες μικρότερα όλα με τη μία. Εντάξει, έτσι και τώρα, Karim προτείνει να πάω στο δεξί μισό. Έτσι, Πάω να πάει περίπου στη μέση, ή να δώσει. Και αν το έκανα αυτό από μαθηματική άποψη, Θα μπορούσα να πάω δεξιά στη μέση. Και τώρα, συνειδητοποιώ, OH, Είμαι στο τμήμα Τ. Εγώ πραγματικά δεν πάει πολύ μακριά. Αλλά μπορώ να, και πάλι, δάκρυ η πρόβλημα στη μέση, να το πετάξετε. Και bytes μου δεν είναι τόσο μεγάλη. Είναι μόνο, ό, τι, 256 σελίδες ή 250 σελίδες, ή να δώσει τώρα. Αλλά εξακολουθεί να είναι πολύ πιο από μία σελίδα ή δύο σελίδες. Και έτσι τώρα, πάω περίπου στη μέση. Ω, δεν είχα πάει αρκετά μακριά αρκετά τώρα. Γι 'αυτό και επαναλαμβάνω, επανάληψη, επαναλαμβάνω, Επαναλαμβάνω, μέχρι να είμαι αισίως άφησε με μόνο μία σελίδα. Έτσι ώστε να καλεί το ερώτημα, αν μου ξεκίνησε με περίπου 1.000 σελίδες, πόσα βήματα δεν μου πάρει με την έκδοση 1 του αλγορίθμου μου; Λοιπόν, αν ο Mike είναι στην S τμήμα, στη χειρότερη περίπτωση, που είναι πολύ κοντά σε το τέλος της αλφαβήτου. Έτσι, αν το βιβλίο τηλέφωνο έχει 1.000 σελίδες, Θα βρείτε Mike εντός 1.000 σελίδες, δώσε ή πάρε. Ίσως είναι σαν 800 ή έτσι, αλλά είναι αρκετά κοντά στο 1.000. Ότι, κατά το δεύτερο αλγόριθμος, πόσες σελίδα γυρίζει το μέγιστο θα μπορούσε Ι απαιτούν να βρει τον Mike Smith; Υπάρχει 1.000 σελίδες, αλλά είμαι να κάνει τους δύο σε έναν χρόνο. Δεξιά, έτσι max όπως 500ish, επειδή αν πάω μέσα από την όλη τηλεφωνικό κατάλογο, κατά την οποία το σημείο, μπορώ να σταματήσω. Αλλά μπορώ να ξυρίσει μερικά από σταματώντας μόνο στο τμήμα Τ. Αλλά είναι στη χειρότερη περίπτωση 500 σελίδες. Έτσι, πόσες φορές μπορώ να διαιρέσετε ένα 1,00o-σελίδα τηλέφωνο βιβλίο στη μέση και πάλι και ξανά και again-- από 1.000 έως 500 για 250 έως 125; Πόσο καιρό πριν χτύπησα μία σελίδα; Ναι, είναι περίπου 10. Ανάλογα με στρογγυλοποίηση και τέτοια, είναι περίπου 10 σελίδες συνολική ανάγκη να μετατραπεί ή τα βιβλία του τηλεφώνου πρέπει να σχιστεί. Έτσι ώστε να είναι αρκετά ισχυρό. Ξεκινήσαμε με ένα πρόβλημα 1.000 σελίδων σε όλες τις τρεις από αυτές τις ιστορίες. Αλλά στο πρώτο αλγόριθμο αυτό, Μου πήρε, χειρότερη περίπτωση, 1,000 σελίδα Αποδεικνύεται να βρει τον Mike. Δεύτερο αλγόριθμο, 500 σελίδες για να βρείτε Mike. Τρίτον αλγόριθμο, 10 σελίδες για να βρείτε Mike. Και είναι ακόμα πιο ισχυρό, όταν σκέφτεστε σχετικά με το είδος της αντίθετο σενάριο. Ας υποθέσουμε ότι η τηλεφωνική εταιρεία επόμενο έτους συγχωνεύει ίσως δύο πόλεις μαζί, και το βιβλίο του τηλεφώνου είναι ξαφνικά Αυτό το παχύ, αντί του παρόντος ότι, έτσι 2.000 σελίδες αντί για 1.000. Λοιπόν, το πρώτο αλγόριθμο μου ψάχνει για Mike Smith σε 2.000 σελίδων τηλεφωνικό κατάλογο, χειρότερη περίπτωση, πρόκειται να λάβει πόσες σελίδα γυρίζει την επόμενη χρονιά; Τηλεφωνικός κατάλογος είναι 2.000 σελίδες, so-- καλά, όχι ένα ακόμη. Αν ο τηλεφωνικός κατάλογος είναι δύο φορές πιο παχιά στην το πρώτο αλγόριθμο, πρώτο αλγόριθμο, 2.000, σωστά; Στη χειρότερη περίπτωση, ο Mike είναι πραγματικά κοντά στο τέλος του βιβλίου, έτσι είναι 2.000 στροφές σελίδα. Δεύτερος αλγόριθμος πηγαίνει από δυάρια, όπως και 1.000 σελίδες. Αλλά πώς για το τρίτο μου και το πιο πρόσφατο αλγόριθμο; Αν η τηλεφωνική εταιρεία διπλασιάζει το αριθμό των σελίδων από 1.000 έως 2.000, πόσες φορές πρέπει εγώ δάκρυ ότι το βιβλίο στη μέση για να βρείτε Mike; Κοινό: Μόνο ένα. DAVID Malan: Απλά ένα ακόμα, γιατί με μία σελίδα δάκρυ, Μπορώ κυριολεκτικά να διαιρέσει και να κατακτήσει, αν θέλετε, ότι το πρόβλημα στο μισό λήψη ένα τεράστιο δάγκωμα από αυτό. Και έτσι αυτό είναι ένα παράδειγμα του αποτελεσματικότητα και, αναμφισβήτητα, ένας αλγόριθμος με την οποία όλοι μας είδος διαισθητικά εξοικειωμένοι. Αλλά είναι εξίσου σωστό όπως άλλοι αλγόριθμοι μου με αυτό το tweak για το δεύτερο αλγόριθμο, αλλά είναι τόσο πολύ πιο αποδοτική. Και στην πραγματικότητα, ό, τι ένας υπολογιστής επιστήμονας, ή με τη σειρά του ένας προγραμματιστής, συνήθως θα κάνετε όταν γράφετε κώδικας είναι προσπαθώ να καταλάβω, Εντάξει, δεν θέλω μου Πρόγραμμα ακριβώς για να είναι σωστή, Θα ήθελα επίσης να είναι αποτελεσματική και την επίλυση προβλημάτων καλά. Φανταστείτε στον πραγματικό κόσμο σήμερα, όπως ευρετήρια της Google, αναζητήσεις όπως δισεκατομμύρια σελίδες, φανταστείτε αν χρησιμοποιείται το πρώτο αλγόριθμο για να βρείτε τις γάτες μεταξύ ενός δισ pages-- κοιτάζοντας η πρώτη σελίδα στη βάση δεδομένων τους, η δεύτερη, η τρίτη, απλά ψάχνουν για μια γάτα, ψάχνει για μια γάτα. Αυτό είναι αρκετά καταριέται επιβραδύνει φαίνεται. Θα μπορούσαν να χρησιμοποιήσετε κάτι που ονομάζεται δυαδική αναζήτηση, η οποία δεν είναι coincidence-- bi σημαίνει δύο, εμείς κρατήσει τη διαίρεση κάτι σε 2, σε half-- θα μπορούσαν να χρησιμοποιήσουν δυαδική αναζήτηση και ίσως βρείτε τις γάτες ακόμα πιο γρήγορα, ή ό, τι είναι αυτό που αναζητάτε. Και ειλικρινά, δεν υπάρχει ακόμη πιό φανταχτερό αλγόριθμοι ότι κάνει πολύ περισσότερα από ό, τι ακριβώς διαιρώντας τα πράγματα στο μισό Για να βρείτε πληροφορίες γρήγορα. Και θα μιλήσουμε λίγο για εκείνους που μετά το μεσημεριανό γεύμα σήμερα. Έτσι, επιτρέψτε μου να προσπαθήσω να εκπροσωπεί αυτό. Εμείς δεν χρειάζεται να πάει σε οποιαδήποτε μαθηματικά ή πραγματικούς αριθμούς. Μπορούμε να μιλήσουμε για αυτό το αφηρημένο. Αλλά επιτρέψτε μου να προτείνω, εάν ήταν έχοντας μια συζήτηση τώρα με τους μηχανικούς προτείνει αυτόν τον αλγόριθμο και προσπαθείτε να κάνετε μια υπολογισμένη απόφαση, επειδή ίσως ο μηχανικός λέει σε σας, ξέρετε τι, μπορώ να εφαρμόσουν μια γραμμική αναζήτηση σε σαν δύο λεπτά. Είναι τόσο εύκολο. Δυαδική αναζήτηση δεν είναι τόσο φανταχτερό, αλλά πρόκειται να με πάρει, όπως 10 λεπτά, έτσι 5 φορές περισσότερο. Υπάρχει ένα εμπορικό εδώ, ακόμη και από την άποψη να αποφασίσει τι λογισμικό για να γράψει. Έχετε γράψει το πιο απλό αλγόριθμο, το οποίο θα σας πάρει μόλις δύο λεπτά; Ή περνάτε περισσότερο χρόνο, 10 λεπτά, γραπτώς τον εκτροφέα αλγόριθμο; Πώς μπορείτε να αποφασίσετε αυτό το είδος της ερώτησης; Ή θα μπορούσε να είναι λίγο πιο πραγματικό. Έχω πει το αφεντικό μου ότι πρόκειται να λάβει μένα είτε για μία εβδομάδα ή 10 εβδομάδες για την εφαρμογή της λογισμικό με αυτό τον τρόπο, πώς μπορείτε να αποφασίσετε που αλγόριθμο για να το πράσινο φως; Karim; ΚΟΙΝΟ: Το κοινό, υποθέτω. DAVID Malan: Το ακροατήριο. Τι εννοείτε με το κοινό; Κοινό: Αν πρόκειται που πρέπει να χρησιμοποιούνται από τους χρήστες ο οποίος [δεν ακούγεται] από τους χρήστες [δεν ακούγεται]. Αλλά αν είναι κάτι που είσαι ακριβώς να κάνει για τον εαυτό σας για να διευκολύνει ένα πρόβλημα, [Δεν ακούγεται] γρηγορότερα. DAVID Malan: Ναι, είναι γρήγορη και βρώμικο είναι ένας καλός τρόπος για να το περιγράψω. Στην πραγματικότητα, εάν είστε που περιγράφει ένα μεγάλο μέρος του χρόνου μου σε grad το σχολείο, το οποίο πολλές φορές, Έγραψα κακό κώδικα συνειδητά so-- τουλάχιστον, αυτό είναι το πώς θα εξορθολογισμός it-- συνειδητά έτσι, επειδή ακόμα κι αν έγραφα κώδικα ότι ήταν σχετικά αργή να εκτελέσει, Ήμουν σε θέση να γράψει η ίδια τον κωδικό πολύ γρήγορα, οι δαπάνες μόλις λεπτά ή όχι σε ώρες ημέρες. Και αποδείχθηκε, εγώ περιστασιακά χρειάζεται για να κοιμηθεί. Έτσι ακόμα κι αν μου κώδικα που απαιτούνται 8 ώρες για να τρέξει, αλλά αυτό είναι εντάξει, Θα πήγαινε για ύπνο ενώ τρέχει. Έτσι, εκείνη τη στιγμή, σκέφτηκα ότι αυτό ήταν πολύ έξυπνος, ακόμα κι αν φαινομενικά εργαστεί μέσω διδακτορικό μου πολύ αργά. Αλλά το αντίστροφο του ότι είναι ότι, αν έγραφα λογισμικού για άλλους ανθρώπους που πείραξε περισσότερο από μένα, και, έχουν να περιμένουν 8 ώρες για να να πάρει πίσω τα αποτελέσματα αναζήτησής τους Δεν είναι όλα αυτά συναρπαστικό. Και έτσι ξοδεύουν περισσότερο χρόνο μπροστά για να γράψει το λογισμικό ότι είναι πιο αποτελεσματική, πιο σαν τρίτο αλγόριθμο μας, πιθανώς ωφελεί τους χρήστες την πάροδο του χρόνου. Γι 'αυτό εξαρτάται πραγματικά πάνω φορά πως οι δαπάνες αυτές αθροίζονται. Αν πρόκειται να γράφει λογισμικό για να το χρησιμοποιήσετε μία φορά, πιθανώς θα μπορούσε κάλλιστα να κάνει γρήγορο και βρώμικο, όπως λένε. Απλά να ρίξει μαζί. Είναι κώδικας που στενοχωρώ σας, είναι τόσο κακό, αλλά κάνει τη δουλειά του σωστά, ακόμη κι αν δεν είναι αποτελεσματική. Αντίθετα, μπορείτε να περάσετε περισσότερο χρόνο σε κάτι, να το πάρει ακριβώς δεξιά. Και στη συνέχεια αποσβένονται κατά τη διάρκεια του χρόνου, ότι η εκ των προτέρων το κόστος του χρόνου Είναι ίσως αξίζει τον κόπο, αν έχετε κρατήσει βελτιστοποίηση για την κοινή υπόθεση. Και πράγματι, αυτό είναι ένα θέμα στο προγραμματισμού, ή επιστήμη των υπολογιστών περισσότερα γενικά, προσπαθούν να βελτιστοποιήσουν όχι για την ασυνήθιστη υπόθεση αλλά οι κοινές case-- ποια λειτουργία πρόκειται να συμβεί ξανά και ξανά; Εάν πρόκειται να έχουν δισεκατομμύρια των χρηστών που ψάχνουν στην ιστοσελίδα σας, θα πρέπει να περάσουν πιθανώς το επιπλέον εβδομάδες μπροστά εγγράφως καλύτερο λογισμικό, έτσι ώστε όλοι οι χρήστες σας ωφελήσει. Τώρα, ας προσπαθήσουμε να συλλάβει αυτό το ένα λίγο με εικόνες, αλλά όχι τόσο πολύ αριθμητικά. Έτσι, εδώ είναι απλά ένα παλιό διάγραμμα σχολείο. Και επιτρέψτε μου να πω ότι αυτό είναι ο χρόνος. Και δεν έχει σημασία what-- στην πραγματικότητα, όχι, όχι το χρόνο. Ας το θέσουμε ότι στην άλλη άξονα. Ας πούμε ότι αυτή είναι η κατάλληλη στιγμή, και αυτό είναι το μέγεθος του προβλήματος. Και ένας επιστήμονας υπολογιστών θα μπορούσε γενικά να καλέσετε αυτό ακριβώς n. n είναι σαν μας go-to μεταβλητή, όπου η είναι ένας αριθμός, n: αριθμός, και είναι το αριθμός ανεξάρτητα από τις εισροές που έχετε. Έτσι, σε αυτή την περίπτωση, το η είναι ο αριθμός των σελίδων. Έτσι θα μπορούσε να είναι 1000 σε η υπόθεση που μόλις είπα. Έτσι, ο χρόνος μπορεί να είναι οποιαδήποτε μονάδα μέτρησης. Ίσως, είναι η δεύτερη. Ίσως, είναι μέρες. Ίσως, είναι σαν να γυρίζει σελίδα. Δεν πειράζει. Ό, τι θέλετε να μετρήσετε από το ότι, θα είναι ο χρόνος ή το κόστος ισοδύναμα. Έτσι, με αυτό το πρώτο πολύ αλγόριθμο, αν, για παράδειγμα, είχε 1.000 σελίδων τηλεφωνικό κατάλογο, Πάω να σχεδιάσετε μια τελεία εκεί, γιατί αν είναι 1.000 σελίδες, χρειάστηκε περίπου 1.000 σελίδα γυρίζει, ή να δώσει. Και τότε, αν είχα ένα 2.000 σελίδων τηλεφωνικό κατάλογο, και πάω να σχεδιάσετε ένα δεύτερο dot εδώ, γιατί για 2.000 σελίδες, είναι σαν 2000 δευτερόλεπτα ή η σελίδα γυρίζει ή οτιδήποτε άλλο. Και έτσι όταν είπα και προηγουμένως, είναι το είδος της μια γραμμική σχέση, ότι ήταν εσκεμμένη, γιατί ήθελα αργότερα on-- δικαίωμα now-- να σχεδιάσετε μια γραμμή. Είναι το είδος του μια ευθεία σχέσης γραμμή. Η κλίση είναι 1/1, αν θέλετε. Εν τω μεταξύ, ο δεύτερος αλγόριθμος είπε, αν έχετε 1.000 σελίδες και που χρησιμοποιούσατε το δεύτερο αλγόριθμο, όπου μέτρησα από 2, μετατρέποντάς δύο σελίδες σε μια στιγμή, θα πρέπει να συντάξει ένα κουκκίδα κάτω ή πάνω από την αρχική μου τελεία; Κοινό: Κάτω. DAVID Malan: Παρακάτω, γιατί όπως είδαμε, παίρνει λιγότερο χρόνο, μισό χρόνο. Έτσι, η τελεία θα πρέπει να είναι το μισό τόσο υψηλές όσο το άλλο. Και ίδια συμφωνία εδώ, αυτή η κουκίδα θα πρέπει πιθανώς να είναι περίπου εκεί. Και έτσι το δεύτερο αλγόριθμο μου, ομοίως, έχει μια γραμμική σχέση με το χρόνο. Και μπορούμε να το συντάξει ως τέτοια. Μέχρι τώρα, το τρίτο και τελευταίο αλγόριθμος είναι λίγο πιο δύσκολο να επιστήσει. Αλλά διαισθητικά, αν έχω 1.000 σελίδες με τρίτες αλγόριθμο μου, θα πρέπει να μου αρέσει μόνο 10 βήματα. Και αν έχω 2.000 σελίδες με τρίτες αλγόριθμο μου, θα πρέπει να μου πάρει όχι 10 βήματα, αλλά 11, μόνο ένα περισσότερο. Έτσι είμαστε μόνο μόλις και μετά βίας πρόκειται να δείτε αυτό. Και αποδεικνύεται, αν Θα κάνετε ζουμ σε αυτό, είμαι πρόκειται να υπερβάλλουμε για την επίδραση, το σχήμα της εν λόγω γραμμής, σε τελική ανάλυση, δεν είναι μια ευθεία line-- διότι, πράγματι αν ήταν, θα μοιάζουν περισσότερο με το others-- στην πραγματικότητα είναι μια καμπύλη γραμμή ότι, αν μεγέθυνση, πρόκειται να εξετάσουμε πολύ περισσότερο σαν αυτό. It-- καλά, εντάξει, αγνοούν αυτό το μέρος. Αυτή ήταν η πένα μου θα της γωνίας. Είναι μια καμπύλη γραμμή που είναι πάντα αύξηση, πάντα, πάντα, πάντα αυξάνεται, αλλά μόλις μετά βίας. Και έτσι την πάροδο του χρόνου, έχετε ένα σχέση που είναι περισσότερο σαν αυτό. Φαίνεται σχεδόν ευθεία. Αλλά είναι πάντα τόσο αργά αυξάνεται. Αλλά για όλα σχεδόν τα σημεία κατά μήκος x-άξονα, τον οριζόντιο άξονα σας, είναι χαμηλότερη από αυτές τις άλλες γραμμές. Έτσι, αυτό μπορεί να είναι μια σχέση n, σύμφωνα με την οποία αν έχετε n σελίδες, Σας n δευτερόλεπτα παίρνει. Αυτό μπορεί να είναι μια σχέση N / 2. Έχετε n σελίδες, παίρνει Σας n / 2 δευτερολέπτων, τα μισά. Και αυτό είναι μια λογαριθμική σχέση, η οποία αν θυμάστε, συνδεθείτε βάσης 2 του ν συλλαμβάνει αυτό το είδος της ανάπτυξης, να το πω έτσι. Έτσι, αυτό είναι το είδος του ιερού Δισκοπότηρο μεταξύ των τριών αυτών εδώ, επειδή είναι ακριβώς τόσο πολύ περισσότερο αποτελεσματική, αλλά αναμφισβήτητα πιο περίπλοκη να εφαρμόσει. Καμιά ερώτηση? Λοιπόν επιτρέψτε μου να το κάνουμε αυτό, ας Θέλω να ανοίξει ένα παράθυρο κειμένου μόνο έτσι μπορούμε να προσπαθήσουμε να επισημοποιήσει κάτι εδώ. Επιτρέψτε μου λοιπόν να προχωρήσει τώρα και εφαρμόζουν αυτόν τον αλγόριθμο για την εύρεση Mike Smith στον κώδικα, αν θα σας, τον κωδικό ψευδοκώδικας. Είμαι δεν πρόκειται να χρησιμοποιήσετε το Java ή C ++. Είμαι ακριβώς πρόκειται να χρησιμοποιήσετε το είδος της Αγγλικά-όπως σύνταξη, η οποία θα θα καλέσει σε γενικές γραμμές κώδικα ψευδοκώδικα. Εδώ, έχω ένα κενό παράθυρο. Και λέω βήμα 1 του πολύ πρώτος αλγόριθμος είναι να πάρει το βιβλίο του τηλεφώνου. Βήμα 2 είναι ανοιχτό βιβλίο στην πρώτη σελίδα. Βήμα 3 θα εξετάσουμε σελίδα για Mike Smith. Αν στη σελίδα, καλέστε τον Mike. άλλος σελίδα στροφή και μεταβείτε στο βήμα 3. Έγινε, ας πούμε. Και έτσι δεν είναι αρκετά τέλειος, που θα δούμε σε λίγο. Αλλά ας εξετάσουμε τι έννοιες που έχω εισαχθεί εδώ. Έτσι, τα βήματα 1 και 2 και 3 είναι λίγο πολύ ρήματα. Είναι δηλώσεις, actions-- το κάνετε αυτό. Και έτσι σε ένα προγραμματισμό γλώσσας, εμείς θα σε γενικές γραμμές καλέστε τους δηλώσεις ή λειτουργίες ή τις διαδικασίες, τους αποκαλούν πολλά πράγματα. Αλλά είναι ακριβώς actions-- το κάνετε αυτό. Βήμα 4 είναι θεμελιωδώς διαφορετική, επειδή είναι το είδος της μια ερώτηση. Είναι λέγοντας ότι είμαστε το είδος της σε μια διακλάδωση του δρόμου. Αν Mike είναι στη σελίδα, καλέστε αυτόν, έτσι στρίψτε αριστερά, αν θέλετε. Και αν όχι, πάμε πίσω σε μερικά άλλα page-- ή μάλλον, συγγνώμη, πάμε πίσω σε κάποιο άλλο στάδιο, το οποίο προκαλεί κάποιου είδους κατασκευή looping. Και το κάνουμε ξανά και ξανά και ξανά. Και στην πραγματικότητα, ξέρετε τι; Ναι. άλλο αν στο τέλος της στάσης του βιβλίου. Έτσι, χρειαζόμαστε το είδος της τρίτης κατάσταση, γιατί Δεν μπορεί να κρατήσει γυρίζοντας τη διαφήμιση της σελίδας nauseum, γιατί τελικά, εγώ θα χτύπησε το τέλος του βιβλίου. Και ένα σφάλμα σε ένα πρόγραμμα μπορεί να Δεν πρόβλεψη ότι το σενάριο. Και τότε μόνο συνειδητοποίησα, OH, περιμένετε ένα λεπτό, χρειάζομαι ένα τρίτο σενάριο. Αν είμαι έξω από τις σελίδες, εγώ θα πρέπει πραγματικά μόνο να σταματήσει. Διαφορετικά, είναι απροσδιόριστη. Τι πρόκειται να συμβεί εάν κρατώ λέγοντας γυρίσουμε σελίδα και να πάει πίσω, Αυτό είναι όταν οι υπολογιστές παγώσει ή συντριβή, όταν χτυπάτε μερικές απρόβλεπτες κατάσταση όπως αυτή. Τώρα, τι γίνεται με τον Mike τρίτο algorithm-- Σμιθ σηκώστε τον τηλεφωνικό κατάλογο, ανοιχτό βιβλίο σε first-- να Όχι, δεν είναι η πρώτη σελίδα αυτή τη φορά, να middle-- oh, επίσης, ότι έπαιρνα είναι το δεύτερο αλγόριθμο. Ας παραλείψετε το τρίτο. Κοινό: Ω, λυπάμαι. DAVID Malan: Αυτό είναι εντάξει. Ας παραλείψετε το third-- ανοιχτή σε μεσαία και τώρα να αναζητήσουν Mike Smith. εάν στη σελίδα, καλέστε τον Mike. Και τότε τι θέλουμε να πούμε εδώ; άλλο τι; Μπορούμε να εκφράσουμε αυτή σε οποιοδήποτε αριθμό τρόπων. Δεν υπάρχει σωστή απάντηση. ΟΚ, αν όχι και πάλι, αλλά πρέπει να μαζεύουν ΟΚ, θέλουμε να χωρίσει στα δύο, αλλά θέλουμε να πάμε αριστερά ή να πάτε δεξιά; Πώς μπορούμε να εκφράσουμε αυτή την έννοια; Λοιπόν, στην περίπτωση του Mike, ναι, αυτό είναι δίκαιο. Αλλά εντάξει, έτσι ώστε να είναι πραγματικά ένα καλό σημείο. Είναι εντάξει. Θα συνεχίσουμε με αυτή τη λογική. Έτσι-- Κοινό: Λιγότερο από το μισό. DAVID Malan: Ναι. Έτσι, άλλο αν η σελίδα είναι, εμείς θα πούμε, λιγότερο από Smith, στα αριστερά του Smith, then-- ας δούμε, είναι αυτό θα περιπλέξει; αλλιώς εάν η σελίδα έρχεται πριν Smith, δάκρυ στο μισό, πετάξτε τα οποία ημίχρονο; ΚΟΙΝΟ: Νόμιζα ότι ήταν [δεν ακούγεται]. DAVID Malan: ακούω δύο απαντήσεις. Κοινό: Αριστερά. DAVID Malan: Εντάξει, να ρίξει μακριά αριστερό μισό, όπως Lakisa είπε νωρίτερα, το αριστερό μισό, τότε το είδος του θέλουν να πάνε μόνο to-- πάω προς τα δεξιά. Ή ισοδύναμα, και έκανα μια μικρή κομμάτι από ένα χάος από την αρχή εδώ, Έχω αποτελεσματικά θέλουν να μεταβείτε στο βήμα 2 και πάλι, όπου ανοικτή για το middle-- ή open-- Ναι, ας πούμε, σελίδες με μέση. Και αυτό καθορίζει. Δεν είναι πλέον ένα βιβλίο. Είναι ακριβώς το μισό ενός βιβλίου, τόσο σε ανοιχτές σελίδες στο μέση. ήταν else-- σχεδόν εκεί. Βήμα 6, αλλιώς αν η σελίδα έρχεται μετά Smith, δάκρυ στο μισό, πετάξτε δεξί μισό, Στη συνέχεια μεταβείτε στο βήμα 2. άλλο σταματήσουν το κάπνισμα, ένα τέταρτο σενάριο, αν έχουμε κανένα σελίδες αριστερά για να γυρίσει. Έτσι θα μπορούσαμε να καθαρίσει αυτό επάνω. Και θα πρέπει να καθαρίσει αυτό επάνω. Αυτό είναι πολύ ψευδοκώδικα κώδικα, αν θα, περιγραφή πολύ υψηλό επίπεδο. Αλλά δεν συλλάβει γενικά την ιδέα. Και, πάλι, σε αυτό το σενάριο, έχουν την έννοια μιας κατάστασης, ένας κλάδος, μια διακλάδωση του δρόμου, καθιστώντας ένα decision-- αν αυτό, πάει με αυτόν τον τρόπο, άλλο αν, πάει με αυτόν τον τρόπο, άλλο αν, πάει με αυτόν τον τρόπο. Και αυτό είναι ένα πολύ κοινό τεχνική προγραμματισμού να αποφασίσει ποια κατεύθυνση για να πάει, να το πω έτσι. Και έχουμε επίσης κάποιο είδος του looping δομή, όπου κάνουμε κάτι ξανά και ξανά. Τώρα, αποδεικνύεται, πολύ όπως σε αυτό το παράδειγμα, είναι εξαιρετικά ακριβές, είναι σημαντικό. Αλλά έχουμε επίσης δει κάτι ότι θα κρατήσει καλώντας αφαίρεσης. Τι σημαίνει αυτό για να πάρει το βιβλίο του τηλεφώνου; Είμαστε ακριβώς το είδος της λήψης δεδομένο σε αυτό το δωμάτιο ότι έχει κάποια σημασιολογική έννοια. Όλοι μας ακριβώς το είδος της γνωρίζουν, OH, καλά, σηκώστε τον τηλεφωνικό κατάλογο. Τι σημαίνει αυτό πραγματικά; Λοιπόν, αυτό σημαίνει πραγματικά να παρατείνει χέρι, άπαχο πάνω, να επεκτείνει τα δάχτυλα, τσιμπήστε το βιβλίο μεταξύ των δακτύλων, σταθεί, τραβήξτε το χέρι προς το μέρος σας. Και θα μπορούσαμε να είμαστε πραγματικά σχολαστικός γι 'αυτό, Πραγματικά είναι εξαιρετικά ακριβή ως προς το τι κάνω. Αλλά όλα αυτά τα βήματα συλλογικά είναι τι σημαίνει να πάρει ένα τηλεφωνικό κατάλογο. Και νωρίτερα, όταν είπα, κάθε από αυτές τις δύο πρώτες δηλώσεις μπορεί να θεωρηθεί ως ένα προχωρήσει ή μια λειτουργία, πραγματικά αντιπροσωπεύει αυτό που κρατήσει καλώντας μια αφαίρεση. Είναι σαν ένα υψηλό επίπεδο εννοιολογικού περιγραφή του ένα πρόβλημα που περιλαμβάνει στην πραγματικότητα πολύ λίγα βήματα. Και έτσι αυτό, επίσης, είναι ένα επαναλαμβανόμενο θέμα στον προγραμματισμό, σύμφωνα με την οποία θα μπορούσα να γράψω ένα πρόγραμμα χρησιμοποιώντας σύνταξη σαν this-- pick_up_phone_book (). Και, στη συνέχεια, συντακτικά, είμαι πρόκειται να κλέψουν κάτι από τις περισσότερες γλώσσες προγραμματισμού. Τώρα, βήμα 1 φαίνεται ακόμα περισσότερο σαν μια συνάρτηση, ως προγραμματιστής θα το ονομάσουμε. Μοιάζει με τον κωδικό που κάποιος έχει δοθεί ένα όνομα και να δοθεί για μένα να χρησιμοποιήσετε somehow-- σε άλλες Δηλαδή, ποια είναι η γραμμή που έχω επισημανθεί αντιπροσωπεύει λειτουργικότητα που ίσως Δεν ήξερα καν εφαρμόσει τον εαυτό μου. Κάποιος μεγάλα, σοφότεροι από μου ήδη καταλάβει πώς θα εκφράσουν την έννοια μαζεύοντας ένα τηλεφωνικό κατάλογο. Και είναι σαν τα πέντε βήματα που μόλις ταρακούνησε off, από την κορυφή του κεφαλιού μου. Αλλά αυτός ή αυτή που ήδη εφαρμόζονται αυτό, έδωσε αυτά τα πολλά βήματα ένα όνομα, pick_up_phone_book. Και οι παρενθέσεις είναι ακριβώς αυτό που οι περισσότεροι προγραμματιστές κάνει στο τέλος του δηλώσεις σαν αυτό. Μπορώ τώρα να σταθεί στα του ή της ώμους και ποτέ ξανά, σκεφτείτε τι σημαίνει για να πάρει ένα τηλεφωνικό κατάλογο. Θέλω μόνο να πω, σηκώστε τον τηλεφωνικό κατάλογο. Και αυτό είναι ακριβώς ό, τι όλοι εμείς οι άνθρωποι έκαναν εδώ. Όταν ήμασταν πιθανότατα 1 ετών, 2 ετών, κάποιος έπρεπε να μας διδάξει τι γραφτό να πάρει ένα τηλεφωνικό κατάλογο. Και από τότε, έχουμε αντλείται μακριά από εκείνα τα πολύ πληκτικός μηχανική βήματα. Και έχουμε μόνο μία διαισθητική κατανόηση του τι σημαίνει να να πάρει ένα βιβλίο τηλέφωνο. Και μπορείτε να προεκτείνουν τώρα σε πιο περίπλοκα things-- κατασκευάσει ένα κτίριο. Όπως, για μερικούς ανθρώπους, ότι έχει πραγματικά νόημα. Στους εργολάβους, τους αρχιτέκτονες, ότι έχει κάποιο νόημα. Και θα ξέρουν τι να κάνουν, αν Είπα, πηγαίνετε κατασκευάσει ένα κτίριο. Αλλά οι περισσότεροι από εμάς στην αίθουσα δεν θα μπορούσε ασχοληθεί με αυτό το επίπεδο αφαίρεσης. Θα πρέπει να μας πει ήθελε να πάει να πάρει το φτυάρι και να πάει να πάρει το σκυρόδεμα με νύχια και τα κομμάτια του ξύλου μαζί και ό, τι άλλο συμμετέχει στην οικοδόμηση ενός κτιρίου. Και αυτό συμβαίνει γιατί δεν έχουμε ακόμη προγραμματιστεί να κατανοήσουν τι σημαίνει για την κατασκευή ενός κτιρίου. Δεν έχουμε αυτή την αφαίρεση. Δεν έχουμε αυτή τη λειτουργία. Και έτσι αυτό που θα δείτε στο γλώσσες προγραμματισμού, σε γενικές γραμμές, ιδιαίτερα πιο σύγχρονες γλώσσες, όπως η Java, PHP, Ruby και Python, ότι είναι πολύ πιο ώριμη από ό, τι παλαιότερα γλώσσες, όπως η C και η C ++ και ακόμα άλλους. Και έτσι έρχονται με πιο λειτουργικότητα χτίστηκε. Περισσότερα κώδικας έχει γραφτεί από τους ανθρώπους στο παρελθόν ότι μπορούμε τώρα να καλέσετε ή καλέσει ή να χρησιμοποιήσετε, όπως είμαι υπαινίχθηκε σε με αυτό επισημασμένη γραμμή εδώ. Και έτσι ακόμα κι αν δεν μιλάμε για τις γλώσσες προγραμματισμού per se, απλά pseudocode κώδικα, όλα τα ιδέες είναι ακόμα σε αυτή τη συζήτηση. Και αποδεικνύεται η ακρίβεια είναι σούπερ σημαντικό, όπως είναι η αφαίρεση. Και ας προσπαθήσουμε να επικοινωνούν ότι ως ακολούθως. Έκανα κατά λάθος μπορεί να έχουν χαλάσει αυτό αναβοσβήνοντας ένα slide στην οθόνη πρόωρα. Αλλά επιτρέψτε μου να ρωτήσω για μια γενναία εθελοντή, αν δεν σας πειράζει να ανεβαίνει. Θα ήθελα να είναι μπροστά από το φωτογραφική μηχανή, αν είστε εντάξει με αυτό. Ο καθένας θα ήθελε να έρθει και να δώσει οδηγίες στους συναδέλφους σας εδώ; Απλά πρέπει να έρθω εδώ και να σταθεί εδώ και να πω μερικά λόγια. Victoria χαμογελάει περισσότερο και αποφεύγοντας τα μάτια μου το πιο. Θα είναι πρόθυμοι να έρθουν προς τα πάνω; ΕΝΤΆΞΕΙ. Και αν όλοι οι άλλοι σε θέσεις σας θα μπορούσαν να πάρουν ένα κομμάτι χαρτί θραύσματα, αν θέλεις. Χαρτί με γραμμές είναι μια χαρά. Ελάτε γύρω από αυτόν τον τρόπο. Ή μερικά από το χαρτί που σας δόθηκε χθες, ένα οποιοδήποτε κενό φύλλο χαρτιού, αν μπορούσε. Και αν δεν έχετε κάποια, απλά ρωτήστε το γείτονά σας, αν μπορούσε. Έτσι, προς το παρόν, για αυτό το παράδειγμα, Βικτώρια πρόκειται να παίξει το ρόλο του προγραμματιστής, μηχανικός, ο οποίος πρέπει να προγραμματίσετε όλα, όπως οι υπολογιστές, να κάνουμε κάτι. Και θα δούμε τι παραδοχές αποφασίσετε να κάνετε. Θα δούμε πώς ακριβής επιλέγει να είναι. Και αν αυτή η επίδειξη πηγαίνει παιδαγωγικά καλά, πολλά λάθη θα γίνει, ότι θα χρησιμοποιήσει στη συνέχεια, ότι ως μια ευκαιρία για συζήτηση. Αλλά η πρόκληση για την κανονική είναι να αποφύγετε αυτά τα λάθη, να είναι ένας καλός προγραμματιστής. Και έτσι η πρόκληση στο χέρι, αν που θα άρεσε να περπατήσει εδώ, είναι μπροστά της Βικτόρια στην οθόνη here-- και ελπίζουμε ότι, κανένας από εσάς το θυμάστε αυτό όταν ήμουν έλαμψε στην οθόνη. Και μην γυρίσει καθόλου, επειδή υπάρχει και μια άλλη οθόνη σε αυτό το δωμάτιο ότι μπορώ να την απενεργοποιήσετε. Έτσι μην γυρίσουν. Μπροστά της Βικτώριας είναι ότι η ίδια κραυγή. Και η δουλειά της τώρα είναι να σας πω όλα για το κομμάτι σας χαρτί τι να επιστήσει. Και θα δούμε, με βάση την προφορικές οδηγίες μόνο, κώδικα υπολογιστή, αν θέλετε, πόσο ακριβής σχέδια σας are-- εφαρμογές σας. Βγάζει νόημα? Κοινό: Ναι. DAVID Malan: Εντάξει, να εκτελέσει. Κοινό: Σχεδιάστε ένα τετράγωνο. [ΓΈΛΙΟ] DAVID Malan: Και όχι ερωτήσεις μπορεί να ζητηθεί. Μπορεί να κάνει μόνο ό, τι λένε. Ω, και αν έχετε σημερινή διαφάνειες ανοίγει σε μια καρτέλα, δεν φαίνονται σε σας καρτέλα. ΕΝΤΆΞΕΙ? Κοινό: Εντάξει, να σχεδιάσετε έναν κύκλο. Ένα slope-- μπορώ να πω κλίση; DAVID Malan: Έως σας. Κοινό: Μια πίστα. Και ένα τρίγωνο. DAVID Malan: Εντάξει. Και να μείνουν εδώ για μια στιγμή. Και Πάω να έρθει γύρω ακριβώς σε μια στιγμή. Και δεν χρειάζεται να βάλει τα ονόματά σας σε αυτό. Επιτρέψτε μου να έρθουν κοντά και να συλλέγουν τα σχέδιά σας, αν δεν σας πειράζει λυσσασμένο τους έξω. Εδώ είναι αυτό που πήραμε πίσω. Θα το προβάλει στην οθόνη. Βλέπω ένα τετράγωνο, ένα κύκλο, μια πλαγιά, και ένα τρίγωνο. Έτσι ώστε ήταν μια απάντηση εκεί. Και let's-- κραυγών. Ευχαριστώ. Εδώ είναι μια άλλη ποικιλία, και μία πίσω από αυτό. Έτσι, όλοι φαίνονται να συλλάβει το πνεύμα. Ευχαριστώ. Υπάρχει ένα άλλο, και εδώ είναι ένα άλλο. Η ερμηνεία κλίση είναι ένα λίγο διαφορετικό, λίγο curvy. Και το πιο κοντινό, είτε λόγω της υπέροχο ιδιαιτερότητα με την οποία έχετε περιγράφεται, ή ίσως το είδος της είδα πριν, αυτό είναι πράγματι ό, τι ήταν στην πραγματικότητα περιγράφουν Victoria. Αλλά τώρα, όσοι από εσάς δεν είχε πάρει το απόλυτο δίκιο, ας προσφέρουν κάποιες αντιρρήσεις εδώ. Έτσι Victoria εν λόγω πρώτη σχεδιάσετε ένα τετράγωνο. Και τώρα, μπορούμε να υποθέσουμε για χάρη του σήμερα ότι όλοι γνωρίζουν πώς να σχεδιάσετε ένα τετράγωνο. Αλλά αυτό δεν είναι απολύτως σαφές, σωστά; Πώς αλλιώς θα μπορούσε να έχετε που ένα τετράγωνο, ή όταν μπορεί να είναι μερικές από τις ασάφειες εδώ για τον υπολογιστή; Κοινό: Θέση και μέγεθος. DAVID Malan: Τοποθεσία, σωστά; Όλοι είχατε ένα χαρτί από κάποιο σχήμα, γενικά ορθογώνια, αλλά ελαφρώς διαφορετικά μεγέθη. Αλλά σίγουρα θα μπορούσε να έχουν καταρτίσει, αν θέλετε, μια τεράστια πλατεία, ίσως ένα μικρό τετράγωνο. Ίσως, αυτό περιστρέφεται. Δεν νομίζω ότι είδαμε ότι. Αλλά θα μπορούσε να ήταν πιο διαμάντι όπως, αλλά ακόμα, παρ 'όλα αυτά, μαθηματικά ένα τετράγωνο. Έτσι, αυτό ήταν αναμφισβήτητα διφορούμενη. Στη συνέχεια, είπε, να σχεδιάσετε έναν κύκλο. Κάποιοι από εσάς δεν θα επιστήσει δίπλα στο αυτό, το οποίο δεν είναι παράλογο, επειδή οι άνθρωποι τείνουν να σκέφτονται ή να διαβάσετε δεξιά προς τα αριστερά στις περισσότερες γλώσσες, έτσι ώστε να μην μια κακή εικασία. Αλλά αυτό κύκλο θα μπορούσε να έχει ήταν μέσα στο τετράγωνο, θα μπορούσε να ήταν γύρω ο τετράγωνο, θα μπορούσε να ήταν αλλού στο φύλλο, έτσι αναμφισβήτητα διφορούμενη. Κλίση μπορεί να ήταν ίσως λαμβάνοντας τις περισσότερες ελευθερίες προφορικά με ό, τι σημαίνει αυτό. Και κάποιοι από εσάς ερμηνεύεται ως μια παραμορφωμένη γραμμή ή μία ευθεία γραμμή ή τα παρόμοια. Και τότε τρίγωνο, επίσης, θα μπορούσε να έχει έχουν προσανατολιστεί σε οποιαδήποτε διάφορους τρόπους. Έτσι, με λίγα λόγια, ακόμα και με κάτι που Σας ματιά και είστε όπως, wow, έτσι απλά, ένα παιδί θα μπορούσε να συντάξει αυτό, αλλά δεν Πραγματικά, αν δεν είσαι super, super πειστικό και πες του υπολογιστή ακριβώς τι πρέπει να κάνουμε. Έτσι, αν μπορούσαμε, αν έχετε ένα άλλο φύλλο χαρτιού, ας δοκιμάστε αυτό το για μια ακόμη φορά. Και Πάω να δώσω ένα Βικτόρια άλλο παράδειγμα στην οθόνη εδώ. Και πάλι, μην γυρίσουν και δεν φαίνονται σε διαφάνειες σας. Και θα της δώσει λίγο χρόνο για να σκεφτείτε για το πώς να περιγράψει αυτό. Μην τους αφήσετε να δείτε ο φόβος στα μάτια σας. [ΓΈΛΙΟ] Και πάλι, αυτή τη φορά μόχλευσης ορισμένες από αυτές τις takeaways και να προσπαθήσει να πάρει σχεδόν όλους τουλάχιστον η σωστή απάντηση. Κοινό: Εντάξει, πάρτε μια κομμάτι χαρτί, δείτε στη μέση του εν λόγω κομμάτι χαρτί. Στη μέση αυτού του κομματιού χαρτί, σχεδιάστε ένα κύβο. [ΓΈΛΙΟ] DAVID Malan: Τι έχουμε μάθει; Ήμασταν τόσο κοντά. Εντάξει, επαναλαμβάνω, αν μπορούσε, για τον καθένα. Κοινό: Στη μέση της κομμάτι χαρτί, σχεδιάστε ένα αντικείμενο, που μοιάζει με κύβο. DAVID Malan: Εντάξει, αυτό είναι το μόνο που έχετε να εργαστεί με. Επιτρέψτε μου να είναι αναλυτική και όχι τόσο πολύ κρίσιμη, αλλά για να κάνει τον ισχυρισμό ότι η Victoria σίγουρα φαίνεται να σκέφτεται σε πολύ αφαιρέσεις υψηλού επιπέδου, η οποία δεν είναι παράλογο. Διότι αλλιώς, όλοι θα είναι αρκετά δυσλειτουργική, αν έπρεπε να είμαστε πάντα τόσο ακριβής με ό, τι κάνουμε στον κόσμο. Αλλά λέγοντας πάει στο middle-- μου νόμιζα ότι ήταν σε ένα τέτοιο καλό δρόμο εκεί, όπως και πηγαίνετε στην πολύ μέση της σελίδας, και στη συνέχεια να σχεδιάσετε ένα κύβο. Έτσι σκέφτεται σε αφαιρέσεις, γιατί είναι ακόμα προβολή τι είναι στην οθόνη, όπως άλλωστε ένας κύβος. Αλλά υπάρχουν τόσες πολλές ευκαιρίες για την ερμηνεία εκεί. Και στην πραγματικότητα, υπάρχουν τόσα πολλά άλλους τρόπους θα μπορούσε να εκφράσει ότι, το οποίο εγώ θα προτείνω σε μια στιγμή. Έτσι, εδώ έχουμε μια ενσάρκωση της picture-- whoops-- ένα ενσάρκωση της εικόνας, έτσι, ένα λίγο τρισδιαστατότητα σε αυτήν, το οποίο είναι ωραίο. Εδώ είναι ένα άλλο, όπου θα έχουν την ίδια, αν και αυτό είναι το είδος της ανοικτής κύβου. Μερικοί λαοί πήρε λίγο πιο επίπεδη, δύο διαστάσεων. Και αυτό είναι μια χαρά. Έτσι εκεί, πράγματι η κέντρο του χαρτιού. Αυτό και μόνο νομίζω ότι θα όπως, γιατί αν πάμε εδώ, αυτό είναι αυτό που περιέγραφε. Έτσι τώρα, επιτρέψτε μου να προτείνω πώς αλλιώς θα μπορούσαμε να περιγράψουμε την κατάσταση αυτή. Πίσω στην ημέρα, ένα από τα πιο πιο κοινούς τρόπους για να μάθουν προγραμματισμό ήταν να γράφουν κώδικα, γράφει γραμμές των οδηγιών, ότι ελέγχεται λίγο χελώνα στην οθόνη. Λογότυπο και άλλες παραλλαγές αυτού ήταν το όνομα της γλώσσας. Και η χελώνα ζούσε σε έναν κόσμο. Έτσι, ας υποθέσουμε ότι αυτό το ορθογώνιο ο χώρος είναι ο κόσμος του. Και θα ξεκινήσω assuming-- μου Πραγματικά, δεν ξέρω πώς να επιστήσω την χελώνα, οπότε ας το κάνουμε έτσι. Και στη συνέχεια πήρε ένα κέλυφος και τότε ίσως κάποιοι πόδια. Έτσι μπορείτε να έχετε αυτό το μικρό χαρακτήρα στην οθόνη. Και το αντικείμενο της παρούσας γλώσσα προγραμματισμού ήταν να υποχρεωθεί η χελώνα για να πάει πάνω, κάτω, αριστερά, δεξιά και να θέσει πένα του κάτω ή να πάρει την πένα του επάνω, έτσι θα μπορούσε πραγματικά να σχεδιάσετε πάνω στην οθόνη σε αυτή την πολύ επίπεδη ορθογώνια κόσμο. Έτσι, όταν σκέφτηκα ότι ίσως να πρόκειται, και πού θα πρέπει να εξετάσει την κατάδυση κάτω για να διανοητικά κατά την περιγραφή οδηγίες γενικότερα, Θα ήθελα να ισχυρίζονται, τίθεται σας στυλό κάτω στο middle-- και θα απαλλαγούμε από το χελώνα, γιατί δεν μπορώ πραγματικά να να τον κρατήσει αντλώντας πολύ καλά. Και τώρα, πώς αλλιώς θα μπορούσε να Λέω να σχεδιάσετε ένα κύβο; Λοιπόν, θα μπορούσαμε να πούμε κάτι σαν κλήρωση μια διαγώνια γραμμή βορειοανατολικά, για παράδειγμα, ή σε μια γωνία 45 μοιρών προς τα πάνω. Και αυτό θα μπορούσε να μου πάρει εδώ. Και είμαι αρκετά μακριά από ένα κύβο. Αλλά τώρα, θα μπορούσα να πω κάτι όπως στροφή 90 μοιρών προς τα αριστερά και σχεδιάστε μια γραμμή βορειοδυτικά ίσου μήκους. Και θα μπορούσα να συνεχίσετε με παρόμοιες κατευθύνσεις. Και δεν πρόκειται να είναι εύκολο. Και ειλικρινά, είμαστε κατά πάσα πιθανότητα θα Βρίσκομαι εδώ για πέντε λεπτά. Αλλά ίσως θα είχαμε φτάσει σε κάτι που, στο τέλος της ημέρας, καταλήγει να είναι ένας κύβος, αλλά εμείς βούτηξε στο εσωτερικό της αφαίρεσης για να το κάνει σε ένα τέτοιο χαμηλό επίπεδο που δεν μπορείτε πραγματικά να δείτε τι κάνετε μέχρι το σύνολο του πράγμα που είναι πραγματικά εκεί στη σελίδα. Και έτσι αυτό είναι μια γενική αρχή, και πάλι, της programming-- αυτής της ιδέας της αφαίρεσης. Είναι τόσο υπέροχα ισχυρό, γιατί και πάλι, αυτή ακριβώς είπε, να σχεδιάσετε ένα κύβο, που όλα μας λίγο πολύ θα κατανοήσω πολύ γρήγορα. Εμείς απλά θα καταλάβει, Εντάξει, σχεδιάστε έναν κύβο. Εμείς μπορεί να μην γνωρίζουν τον προσανατολισμό, έτσι θα μπορούσε να είναι λίγο πιο ακριβή, αλλά μπορούμε να γένει εικόνα ή ξέρουν τι ένας κύβος είναι. Και αυτό είναι χρήσιμο, γιατί αν κάθε φορά που κάθισε ως προγραμματιστής σε πληκτρολόγιό σας για να γράφουν κώδικα, αν έπρεπε να σκεφτούμε σε τέτοια χαμηλό επίπεδο, κανένας από εμάς θα μπορούσε ποτέ να κάνει τίποτα. Και σίγουρα, κανένας από εμάς δεν θα απολαύσετε τη διαδικασία της γραφής κώδικα. Θα ήταν σαν να γράφει στο 0 και 1, η η οποία ειλικρινά δεν ήταν όλα αυτά πολύ καιρό πριν οι άνθρωποι έγραφαν κώδικα σε 0 και 1 του. Και είμαστε πολύ γρήγορα ήρθε με αυτά υψηλότερο επίπεδο languages-- C ++ και Java και άλλα. Ας προσπαθήσουμε άλλη μία φορά μόνο για να αναστρέψετε τα τραπέζια, έτσι ώστε όλοι μας έχουν την ευκαιρία να σκεφτούν σε μάλλον τον ίδιο τρόπο. Θα μπορούσαμε να πάρετε μια πιο εθελοντή αυτό χρόνο για να καταλήξει στο διοικητικό συμβούλιο και να συντάξει, δεν απαγγέλλουν; Ναι, εντάξει. Μπεν, έλα επάνω. Και, Ben, στην περίπτωση αυτή, από τη στιγμή που αντιμετωπίζουν το διοικητικό συμβούλιο, μην κοιτάς αριστερά, δεν φαίνονται σωστά. Μόνο κάνουμε ό, τι σας συναδέλφους εδώ να σας πω. Και για όλους τους άλλους στο δωμάτιο, τώρα είναι ο προγραμματιστής. Είναι ο υπολογιστής. Και η εικόνα που έχω επιλέξει εδώ εκ των προτέρων, είναι αυτό εδώ. Είναι just-- σκέφτονται του ένα αστείο ανέκδοτο είναι όλα. Έτσι θα κάνει κάποιος ήθελε να εθελοντικά την πρώτη εντολή ή δήλωση ότι δεν θα πρέπει στυλό εντολή του Ben; Και θα το κάνουμε αυτό συλλογικά, ίσως μια εντολή από το κάθε άτομο. Συγγνώμη? Κοινό: Σχεδιάστε ένα κύκλο. DAVID Malan: Σχεδιάστε ένα κύκλο Είναι το πρώτο πράγμα που άκουσα. Κοινό: Μέχρι κορυφή. DAVID Malan: Μέχρι κορυφή. Εντάξει, μπορούμε να σας αφήσει να διαγράψετε, να αναιρέσετε. Και τώρα, κάποιος άλλος. Νταν, θα είναι άνετο προσφέροντας την επόμενη εντολή; Κοινό: Σίγουρα, σχεδιάστε το κέντρο του πυθμένα του κύκλου, με small-- λίγο μικρό διάστημα από αυτό, σχεδιάσετε μια ευθεία γραμμή προς τα κάτω σε τρεις τέταρτα του δρόμου κάτω από το διοικητικό συμβούλιο μια μικρή γωνία στα αριστερά σας. DAVID Malan: Καλή. Κοινό: Ελαφρά γωνία. DAVID Malan: Αναίρεση, Control-Z. ΕΝΤΆΞΕΙ. Andrew, θέλετε να προσφέρετε μέχρι την επόμενη εντολή; Κοινό: Σίγουρα. Από το κάτω μέρος της γραμμής αυτής, μια περαιτέρω ελαφρά angle-- whoops-- ίσως περίπου το ένα τρίτο του μήκους [δεν ακούγεται], μικρή γωνία προς τα κάτω και σαν ένα τρίτο του μήκους του [δεν ακούγεται]. Οπότε ναι, από εκείνο το σημείο, Σχεδιάστε μια γραμμή το ένα τρίτο του μήκους του προηγούμενου γραμμή περαιτέρω προς τα αριστερά. DAVID Malan: Ότι εντάξει; Ευθεία γραμμή, αυτό είναι εντάξει; ΟΚ, Olivier, θέλετε να προσφέρουν μέχρι το επόμενο; Κοινό: [δεν ακούγεται] από το κάτω μέρος του κύκλου, [δεν ακούγεται]. Ισοπαλία στη δεξιά πλευρά της [δεν ακούγεται] εκατοστά. [ΓΈΛΙΟ] DAVID Malan: Νομίζω ότι θα πάμε να πρέπει να μετατρέψει αυτό είναι ίντσες εδώ. Κοινό: Σταματήστε. [ΓΈΛΙΟ] DAVID Malan: OK. [? Ara,?] Θέλετε να προσφέρουν μέχρι το επόμενο; Κοινό: Σχεδιάστε μια [δεν ακούγεται] η άνω [δεν ακούγεται] το ίδιο. [Δεν ακούγεται] κύκλο, επιστήσει την [Δεν ακούγεται] και σχεδιάστε [δεν ακούγεται]. DAVID Malan: Εντάξει, όχι περισσότερο αναίρεσης. Ας κάνουμε μία ή δύο περισσότερες οδηγίες. Κρις, θέλετε να προσφέρετε ένα; ΚΟΙΝΟ: Στο κάτω μέρος του κύκλου, [δεν ακούγεται] σχεδιάσετε μια ίση slopping γραμμή προς τα κάτω προς τα αριστερά [δεν ακούγεται]. DAVID Malan: OK. Ανδρέας? Εμείς did-- Karim; Κοινό: Ξεκινώντας από τη σωστή γραμμή, το άκρο του αριστερού γραμμής, το κάτω μέρος, θα πάμε για να πάει δεξιά περίπου το ίδιο μήκος με αυτή τη γραμμή βρίσκεστε, την κατάρτιση σε το δικαίωμα [δεν ακούγεται]. [Δεν ακούγεται] βαθμούς, έτσι ώστε [δεν ακούγεται] μοίρες στην δεξιά πλευρά. DAVID Malan: Εντάξει. Ας παύση. Μην γυρίσει ακόμα. Ας παύση, και ας δοκιμάστε μια άλλη προσπάθεια πριν αποκαλύψει στον Ben τι έχει γίνει κατάρτιση. Μπορείς να ανακατέψετε Ben να η right-- ή πραγματικά, Όχι, ας σας δώσω άλλο τμήμα, ακόμα καλύτερα. Έτσι, κάποιος θα ήθελα τώρα να λάβει περισσότερο την προσέγγιση ότι η Victoria πήραν νωρίτερα, όπου μιλάμε σε ένα υψηλότερο επίπεδο αφαίρεσης και μόνο μια φράση ή δύο περιγράφουν με τον Ben τι να επιστήσω χωρίς να μπουν τα ζιζάνια, να το πω έτσι, σε αυτό το χαμηλότερο επίπεδο; Βικτώρια. [ΓΈΛΙΟ] Κοινό: Σχεδιάστε ένα σχήμα του ανθρώπου με τα πόδια. Και τα πόδια και τα χέρια του πρέπει να είναι η δεξιά πλευρά. DAVID Malan: Εντάξει, αυτό είναι το μόνο που έχετε να πάρετε. Εντάξει. Γιατί δεν αποκαλύπτουν στον Ben ό, τι έκανε. Έτσι, ένα χειροκρότημα. Αυτό ήταν το πιο δύσκολο ίσως. Έτσι ακόμα κι αν μιλάμε σε αρκετά ανόητη άποψη για ακριβώς την κατάρτιση φωτογραφίες, ελπίζω να σας μπορούν να εκτιμήσουν πραγματικά το βαθμό της εκφραστικότητα που μπορεί να είναι απαραίτητη προκειμένου να πείτε σε έναν υπολογιστή τι να κάνει. Και στην πραγματικότητα, το γεγονός ότι ο Ben ήταν σε θέση να αντλήσει αυτό τόσο γρήγορα είναι είδος απόδειξη για τη χρήση ενός γλώσσα, ίσως ένα υψηλότερο επίπεδο έκδοση της αγγλικής γλώσσας, που του επιτρέπει να χρησιμοποιούν απλά λόγια, ή να ακούσουν τα λόγια από Victoria, που του επιτρέπουν αυτά abstractions-- μόνο επιστήσει μια φιγούρα με τα πόδια για να το right-- αυτό το είδος έχει κάποια σημασιολογική έννοια σε αυτό αυτή δεν είναι σχεδόν τόσο προφανές όταν είστε ακριβώς λέγοντας, βάλτε το στυλό σας προς τα κάτω, σχεδιάστε προς τα δεξιά, σχεδιάστε προς τα αριστερά. Και έτσι αυτό, επίσης, είναι πολύ κοινά σε προγραμματισμό. Αυτό θα μπορούσε να λέγεται ότι είναι σαν ένα πολύ χαμηλό γλώσσα επίπεδο, προγραμματισμού σε 0 και 1, αν θέλετε. Και αυτό θα είναι ένα υψηλότερο επίπεδο γλώσσα προγραμματισμού σε Java, ή κατι τετοιο. Ένα κομμάτι της μια υπεραπλούστευση, αλλά αυτό είναι το είδος του σαν συναισθηματική αίσθηση ότι νιώθεις όταν χρησιμοποιώντας ένα είδος πράγμα ή το άλλο. Ένα κομμάτι της απογοήτευσης εδώ από την ανάγκη για τέτοια ακρίβεια, αλλά η ευκαιρία να είναι λίγο πιο χαλαρή με η ερμηνεία εδώ. Αλλά φυσικά, σφάλματα μπορούν να προκύψουν ως αποτέλεσμα. Αν θέλετε στο home-- μας Δεν θα κάνει αυτό το ένα στο class-- αλλά αν θέλετε να φέρει αυτό ένα σπίτι, Νόμιζα ότι θα βουτήξει σε αυτό. Έτσι, αν θέλετε να παίξετε αυτό το παιχνίδι με σημαντικό άλλο σας ή τα παιδιά ή τα παρόμοια, που μπορεί να απολαύσει και αυτό. Ας πάμε μπροστά και να δούμε μια τελευταία πράγμα εδώ για υπολογιστική σκέψη. Και αυτό μας φέρνει στο John Oliver, όχι για το κλιπ μπορεί να έχετε δει χθες το βράδυ, αλλά με μια κάπως πρόσφατη έκδοση. Λίγους μήνες πίσω, η Volkswagen πήρε αρκετά ένα κομμάτι των γιλέκων για ποιο λόγο, αν γνωρίζετε; Τι έκαναν πάρει στο πρόβλημα για; Ναι, έτσι emissions-- που προσπαθούσαν να νικήσει εκπομπών δοκιμές με ουσιαστικά έχουν τους αυτοκίνητα ρυπαίνουν λιγότερο το περιβάλλον όταν τα αυτοκίνητά τους είχαν ελεγχθεί και μολύνουν το περιβάλλον πιο όταν τα αυτοκίνητα δεν είχαν ελεγχθεί. Και τι είναι πιο ενδιαφέρον στον κόσμο, όπως μπορεί να έχετε τεκμαιρόμενη από τις συζητήσεις του like-- τι είναι it-- CarPlay, το λογισμικό της Apple για τα αυτοκίνητα και το γεγονός ότι πολλοί από εμάς όλο και περισσότερο έχουν οθόνες αφής στα αυτοκίνητά μας, υπάρχει μια τρομακτική ποσότητα του λογισμικού των ανθρώπων αυτοκίνητα σήμερα, η οποία ειλικρινά ανοίγει ένα ολόκληρο κουτί της Πανδώρας, όταν πρόκειται για την ασφάλεια και τη σωματική του κινδύνου. Αλλά για σήμερα, ας επικεντρωθεί σε ακριβώς αυτό που είναι που εμπλέκονται στον τομέα του λογισμικού εγγράφως ότι θα μπορούσε να gamed το σύστημα. Για τον ορισμό του πρόβλημα, για όσους δεν είναι εξοικειωμένοι, ας ρίξουμε μια ματιά στο John Oliver. Και για όσους είναι εξοικειωμένοι με το πρόβλημα, ας ρίξουμε μια ματιά σε αυτό σε ένα διασκεδαστικό φακό μέσω του John Oliver, καθώς και. Επιτρέψτε μου λοιπόν να χτυπήσει το παιχνίδι σε αυτό, νομίζω, εισαγωγή τριών λεπτών. Ανάθεμα. [ΑΝΑΠΑΡΑΓΩΓΉ ΒΊΝΤΕΟ] -Cars-- DAVID Malan: Προφανώς, στο YouTube, it's-- - --Η Πιο έξυπνο χαρακτήρες σε τα Γρήγορη και Furious ταινίες. Αυτή την εβδομάδα, η γερμανική αυτοκινητοβιομηχανία Volkswagen βρέθηκε στη μέση ενός σκανδάλου της ενδεχομένως ποινικές διαστάσεις. -Volkswagen Βρίσκεται προ των πυλών για δισεκατομμύρια σε πρόστιμα, πιθανές ποινικές επιβαρύνσεις για τα στελέχη του, όπως η εταιρεία απολογείται για νοθεία 11 εκατομμύρια αυτοκίνητα να βοηθήσει να νικήσει δοκιμές εκπομπών. -Ορισμένες Πετρελαιοκίνητα μοντέλα σχεδιάστηκαν με εξελιγμένο λογισμικό που μεταχειρισμένα πληροφορίες, συμπεριλαμβανομένης της θέσης του τιμονιού και του οχήματος ταχύτητας, για να καθορίσει το αυτοκίνητο ήταν υποβάλλονται σε δοκιμές εκπομπών. Υπό αυτή την περίπτωση, ο κινητήρας θα μειώσει τις εκπομπές τοξικών. Αλλά το αυτοκίνητο ήταν στημένα στην παράκαμψη ότι όταν ήταν να κινούνται. Εκπομπές αυξήθηκαν 10 έως 40 φορές πάνω από τα αποδεκτά επίπεδα EPA. -Wow, 10 έως 40 φορές μεγαλύτερη από την EPA επιτρέπει. Αυτό είναι το χειρότερο πράγμα Η Volkswagen έχει κάνει ποτέ, Είναι κάτι που θα μπορούσε να πει κανείς εάν ποτέ δεν είχα ακούσει από τον Δεύτερο Παγκόσμιο Πόλεμο. Αλλά ίσως ο πιο σίγουρος σημάδι για το πόσο πολύ κόπο Volkswagen είναι, είναι ότι οι άνθρωποι στην ίδια top έχουν παραιτήθηκε. Ο Διευθύνων Σύμβουλος παραιτήθηκε την Τετάρτη μετά ανακατώνουν για να κάνουν έλεγχο βλάβης, λέγοντας ότι ήταν συγγνώμη ασταμάτητα, η οποία ακουγόταν μεγάλη μέχρι αποδείχθηκε ήταν συγγνώμη μόνο το 10% αλλά είχε στημένα το στόμα του να διογκώσει τεχνητά λυπηρώτητα του. Και εν τω μεταξύ, η Volkswagen ΗΠΑ Ο επικεφαλής είχε μια συγγνώμη της δικής του. -Ας Είναι σαφής σχετικά με αυτό, Η εταιρεία μας ήταν ανέντιμη. Και σε γερμανικές λέξεις μου, έχουν εντελώς μαντάρα. -Ναι, Αλλά εντελώς βιδωμένο up δεν είναι γερμανικά εργοστάσια. Και η γερμανική γλώσσα έχει πολλές όμορφες φράσεις για να περιγράψει καταστάσεις όπως αυτή, όπως [της Γερμανίας], που σημαίνει περίπου, η θλίψη που έρχεται από τα ψέματα που σχετίζονται με τις επιχειρήσεις, ή [της Γερμανίας], η οποία μεταφράζεται ως διαπόμπευση πατέρας εκείνων που αφορούν σύννεφα της βενζίνης. Είναι μια όμορφη γλώσσα. Είναι ακριβώς πλέει από τη γλώσσα. Και από τον τρόπο, ενώ αυτή του ανθρώπου συγγνώμη μπορεί να ακούγονται ειλικρινής, αξίζει να σημειωθεί ότι μιλούσε σε ένα επίσημο κόμμα έναρξη για το 2016 Volkswagen Passat, πράγμα που σημαίνει ότι σύντομα μετά λέγοντας συγνώμη, είπε αυτό. Σας -Σας πάρα πολύ που ήρθατε. Απολαύστε το βράδυ. Μέχρι την επόμενη είναι Lenny Kravitz. [ΜΟΥΣΙΚΗ Playing] -Εντάξει, Εντάξει, λήγει σας απολογία μέχρι την επόμενη Lenny Kravitz δεν ουρλιάζουν νηφάλια κατάνυξη. Είναι κραυγές, ζητήσαμε από Bon Jovi, και είπε όχι. μάρκας Volkswagen έχει υποστεί σοβαρή βλάβη. Και ειλικρινά, νέα διαφήμιση τους εκστρατεία δεν είναι ακριβώς βοηθούν. - [Της Γερμανίας], εμείς στην Volkswagen θα θέλαμε να ζητήσει συγγνώμη για εξαπάτηση σας με οχήματα μας. [ΤΕΛΟΣ ΑΝΑΠΑΡΑΓΩΓΗ] DAVID Malan: Έτσι, αυτό ήταν ένα έμμεσο τρόπο τον αριθμό τους sorry-- αυτό ήταν ένα έμμεσο τρόπο της εισάγοντας ένα θεμελιώδες πρόβλημα στο λογισμικό, το οποίο είναι ότι θα Πρέπει να ανιχνεύσει ορισμένες προϋποθέσεις. Και έτσι η ερώτηση στο χέρι εδώ είναι, πώς ένα αυτοκίνητο δυνητικά, όπως εφαρμόζεται στο λογισμικό από αυτούς τους προγραμματιστές, ανιχνεύσει ότι είναι πραγματικά δοκιμάζονται; Έτσι για να είναι σούπερ σαφής, τι έκαναν ήταν, σε περιβάλλοντα όπου οι προγραμματιστές κατάλαβα το αυτοκίνητο είναι δοκιμαστεί, κατά κάποιο τρόπο έκανε το αυτοκίνητο εκπέμπουν λιγότερες εκπομπές, λιγότερες εκπομπές, τόσο λιγότερο τοξικές αναθυμιάσεις και τέτοια. Αλλά όταν είναι κανονικά οδήγηση στο δρόμο, θα ήταν απλώς εκπέμπουν τόσο πολύ ρύπανσης, όπως το ήθελε. Λοιπόν, πώς θα μπορούσε να γράφουμε το ψευδοκώδικα για αυτόν τον αλγόριθμο; Πώς θα μπορούσαμε να γράψει το ψευδοκώδικα για το λογισμικό που τρέχει στο αυτοκίνητο; Θέλω να πω, με λίγα λόγια, αυτό βράζει κάτω σε κάτι σαν αυτό. αν δοκιμάζεται, εκπέμπουν λιγότερο. άλλος εκπέμπει περισσότερο. Αλλά αυτό είναι μια μικρή πολύ υψηλό επίπεδο, έτσι δεν είναι; Ας προσπαθήσουμε να βουτήξει ως προς τι αυτή η αφαίρεση του υπό δοκιμή μέσα. Με άλλα λόγια, ακόμα και αν δεν ξέρετε τίποτα για τα αυτοκίνητα, τι είδους ερωτήσεις μπορεί να σας ζητήσει, προκειμένου να καθοριστεί εάν είστε υπό δοκιμή, αν είστε το αυτοκίνητο; Ποια χαρακτηριστικά θα μπορούσε να είναι παρουσιάσει, εάν ένα αυτοκίνητο που δοκιμάζεται; Κοινό: Εξοπλισμός δοκιμής. DAVID Malan: Εξοπλισμός δοκιμών. Έτσι, αν εξοπλισμό δοκιμών σε κοντινή απόσταση, τότε εκπέμπουν λιγότερο. Έτσι θα μπορούσα να φανταστώ την εφαρμογή ότι με κάποιο είδος κάμερες ή ανίχνευση ό, τι συμβαίνει γύρω σας. Και επιτρέψτε μου να προτείνω, ότι ακριβώς αισθάνεται πάρα πολύ περίπλοκη να έχουν πραγματικά πρόσθετο υλικού μόνο για το σκοπό αυτό. Κοινό: Αν είστε στην πάρκο, αν κουκούλα σας είναι ανοικτό. DAVID Malan: Στο πάρκο ή κουκούλα ανοιχτή, έτσι ώστε να είναι καλό. Κοινό: Και τρέχει το αυτοκίνητο. DAVID Malan: Έτσι, αυτό είναι μια μικρή περισσότερα concrete-- και τη λειτουργία του αυτοκινήτου. Έτσι, αυτό θα ήταν το συνδυασμό ενός μερικές διαφορετικές συνθήκες, αν θέλετε. Έτσι, αν το αυτοκίνητο είναι στο πάρκο, και ακόμα αν και αυτό είναι ένα πολύ μηχανικό πράγμα συνήθως, θα μπορούσα φανταστείτε γραπτώς λογισμικού, ειδικά επειδή υπάρχει συχνά ένα φως εκεί αυτές τις μέρες, Θα μπορούσα να φανταστώ ύπαρξη λογισμικό που μπορεί να θέσει υπό αμφισβήτηση το λεβιέ ταχυτήτων ή δεν είναι αυτό, είστε στο πάρκο, είναι σας στο δίσκο, θα είναι από την ανάποδη. Και μπορώ να πάρω πίσω μια απαντούν ότι είναι είτε ναι ή όχι σε αυτά τα είδη των ερωτήσεων. Και γι 'αυτό θα μπορούσε επίσης πιθανώς να απαντήσει ένα ζήτημα όπως είναι η κουκούλα ανοιχτή. Ίσως, υπάρχει κάποιο είδος αισθητήρα είτε ότι μου δίνει πίσω ένα 1 ή 0, αληθείς ή ψευδείς, η κουκούλα είναι ανοιχτή. Και στη συνέχεια να τρέχει το αυτοκίνητο, θα μπορούσα να ανιχνεύσει ότι κατά κάποιον τρόπο μέσω ποιο μηχανισμό; Όπως, το αυτοκίνητο βρίσκεται σε λειτουργία, θα θα μπορούσε να ανιχνεύσει ότι είναι σχετικά, θα μπορούσα να ανιχνεύσει κάποιο τρόπο ότι το αυτοκίνητο κινείται; Κοινό: στροφές. DAVID Malan: Ναι, έτσι υπάρχει πάντα ότι η βελόνα η οποία σας λέει πόσες περιστροφές ανά Τα λεπτά οι τροχοί που βιώνουν. Και έτσι θα μπορούσα να το δούμε. Και αν δεν είναι 0, που πιθανότατα σημαίνει ότι το αυτοκίνητο κινείται. Αλλά πρέπει να είναι ένα λίγο προσεκτικοί εκεί, because-- ας απλοποίηση this-- αν εμείς απλά είπε, αν τρέχει το αυτοκίνητο, δεν θέλουμε απλά να εκπέμπουν λιγότερο, θέλουμε αν το αυτοκίνητο είναι σε λειτουργία και είναι υπό δοκιμή. Έτσι, υπάρχουν μερικά άλλα συστατικά που οι λαοί υπέθεσαν το λογισμικό κάνει, επειδή απουσιάζει η πραγματική του πηγαίου κώδικα, μπορείτε μόνο είδος συναγάγει από το φυσικά αποτελέσματα του αυτοκινήτου ως προς το τι μπορεί να συμβαίνει κάτω η κουκούλα στο λογισμικό. Έτσι, αν το αυτοκίνητο τρέχει και ίσως, ας πούμε, πίσω τροχοί δεν κινείται, ίσως αυτό να είναι ενδεικτικό κάποιου είδους τεστ; Τι είμαι εγώ υπαινίχθηκε εδώ; Ναι, ίσως, είναι σε ένα από εκείνα τα πράγματα κυλίνδρου, όπου όπως και οι τροχοί γυρίζουν στο μπροστινό μέρος ή στο πίσω μέρος, ανάλογα με το αν πρόκειται για μπροστινό τροχό ή πίσω τροχούς, έτσι ώστε το ήμισυ των τροχών είναι σε κίνηση, αλλά η άλλα δύο δεν είναι, το οποίο Είναι ένα παράξενο κατάσταση στον πραγματικό κόσμο. Αν είστε οδήγηση για την δρόμο, ότι δεν πρέπει να συμβεί. Αλλά εάν είστε σε μια αποθήκη σε κάποιο είδος του συστήματος κυλίνδρων, ότι μπορεί πράγματι να συμβεί. Νομίζω ότι οι λαοί επίσης προτείνει ότι ίσως, αν το αυτοκίνητο βρίσκεται σε λειτουργία και το σύστημα διεύθυνσης Δεν τροχού κινούνται, ότι πάρα πολύ μπορεί να είναι ένα σήμα, γιατί αυτό είναι λογικό για σαν αμέσως σε ένα δρόμο. Αλλά ακόμα και τότε, ο άνθρωπος είναι πιθανώς μετακινώντας λίγο ή σίγουρα πάνω από μερικά δευτερόλεπτα. Ή τη διάρκεια της λεπτό, οι πιθανότητες είναι είναι είναι δεν πρόκειται να σταθεροποιείται σε ακριβώς στην ίδια θέση. Έτσι με άλλα λόγια, μπορεί να πάρει την αφαίρεση, Δεν μπορείτε να δοκιμαστεί, και σπάσει αυτή τη λειτουργικότητα σε αυτές τις συστατικό συστατικά. Και αυτό είναι πραγματικά ό, τι της Volkswagen μηχανικούς με κάποιο τρόπο το έκανε. Έγραψαν λογισμικού συνειδητά να ανιχνεύει αν το αυτοκίνητο είναι υπό δοκιμή, Ως εκ τούτου, εκπέμπουν λιγότερο, άλλος εκπέμπουν με το συνήθη τρόπο. Και το πρόβλημα εδώ, πάρα πολύ, είναι ότι το λογισμικό δεν είναι κάτι που μπορείτε πραγματικά να δείτε εκτός έχετε τη λεγόμενη πηγαίο κώδικα. Έτσι, υπάρχουν δύο διαφορετικοί τύποι code-- τουλάχιστον δύο διαφορετικούς τύπους του κώδικα στον κόσμο. Υπάρχει κάτι που ονομάζεται πηγή κωδικό, ο οποίος δεν είναι σε αντίθεση με ό, τι έχουμε γράψει, τον πηγαίο κώδικα. Αυτό τον πηγαίο κώδικα γραμμένο σε μια γλώσσα που ονομάζεται ψευδοκώδικα, το οποίο είναι ακριβώς κάτι Αγγλικά-όπως. Δεν υπάρχει επίσημος ορισμός της. Αλλά C και Java, C ++, εκείνοι Όλες οι επίσημες γλώσσες που, όταν γράφετε σε αυτά, ό, τι έχετε είναι ένα αρχείο κειμένου που περιέχει τον πηγαίο κώδικα. Αλλά υπάρχει και κάτι το ο κόσμος που ονομάζεται κώδικας μηχανής. Και κώδικα μηχανής, δυστυχώς, είναι μόνο 0 και 1 του. Έτσι κώδικα μηχανής είναι ό, τι μηχανές να κατανοήσουν, φυσικά. Ο πηγαίος κώδικας είναι ό, τι καταλαβαίνουν οι άνθρωποι. Και γενικά, αλλά όχι πάντα, υπάρχει ένα πρόγραμμα ότι ένας προγραμματιστής χρησιμοποιεί ότι παίρνει πηγή κώδικα και μετατρέπεται σε κώδικα μηχανής. Και ότι το πρόγραμμα είναι γενικά ονομάζεται compiler. Έτσι συμβολή σας είναι πηγαίο κώδικα, εξόδου είναι κώδικα μηχανής, και ο compiler είναι ένα κομμάτι της λογισμικό που κάνει αυτή τη διαδικασία. Έτσι, αυτό χαρτογραφεί πραγματικά όμορφα σε είσοδοι μας, αλγόριθμοι, εξόδους. Αλλά αυτό είναι μια πολύ συγκεκριμένη ενσάρκωση από αυτό, το οποίο είναι να πούμε ότι, ακόμα κι αν έχετε στην κατοχή σας ένα από της Volkswagen αυτοκίνητα που είναι ένοχοι για αυτό, δεν είναι όπως μπορείτε να ανοίξετε μόνο το κουκούλα ή να ανοίξετε το εγχειρίδιο του χρήστη ή να εξετάσουμε τον πηγαίο κώδικα, διότι από τη στιγμή φθάνει το αυτοκίνητό σας στο δρόμο σας, Είναι ήδη μετατρέπεται σε 0 και 1 του. Και είναι πολύ δύσκολο, δεν είναι αδύνατο, αλλά πολύ δύσκολο να μαζέψει ένα μεγάλο μέρος τίποτα από απλά κοιτάζοντας το υποκείμενες 0 και 1 του. Έτσι μπορείτε να το καταλάβω, τελικά, αν καταλαβαίνετε πώς μια μηχανή operates-- Intel inside-- αν καταλαβαίνετε η αρχιτεκτονική της Intel, αλλά είναι πολύ χρονοβόρα. Και ακόμα και εκεί, ίσως δεν είναι σε θέση να δει τα πάντα ότι ο κώδικας μπορεί να κάνει. Οποιεσδήποτε ερωτήσεις σχετικά με αυτό ή αυτό το είδος της διαδικασίας γενικότερα; Και στην πραγματικότητα, μπορούμε να συνδέσει αυτή τη συζήτηση στη χθεσινή συζήτηση της Apple. Αυτό, επίσης, είναι ο λόγος που το FBI δεν μπορεί απλά να πάει και να κοιτάξουμε στο τηλέφωνο του υπόπτου και να βρει τις γραμμές κώδικα, για παράδειγμα, που επιτρέπουν τον κωδικό πρόσβασης ή να ενεργοποιήσετε αυτή την καθυστέρηση των 80 χιλιοστών του δευτερολέπτου. Επειδή από τη στιγμή που είναι στο iPhone του υποτρόφου, Είναι ήδη μετατρέπεται σε 0 και 1 του. Λοιπόν, ας παύση εδώ για μας εξετάσουμε υπολογιστικής σκέψης. Γιατί δεν κάνετε ένα διάλειμμα 15 λεπτών. Και όταν επιστρέψουμε, εμείς θα ρίξτε μια ματιά σε προγραμματισμό το ίδιο και να αρχίσει να χαρτογραφήσει μερικά αυτών των εννοιών υψηλού επιπέδου σε μια πραγματική, αν παιχνιδιάρικο, γλώσσα προγραμματισμού.