[Παίζει μουσική] [MUSIC - Rossini, "RANZ DES Vaches "ΑΠΟ WILLIAM TELL] [MUSIC - THE ENGLISH BEAT, "ΜΑΡΤΙΟΥ Των περιστρεφόμενων ΑΡΧΗΓΩΝ "] [Χειροκροτήματα και επευφημίες] DAVID MALAN: Έτσι, αυτό είναι CS50. Το όνομά μου είναι David Malan. Και το 73% από εσάς δεν έχουν καμία προηγούμενη εμπειρία με την επιστήμη των υπολογιστών, σε αντίθεση με ό, τι μπορείτε να σκεφτείτε. Μέχρι σήμερα νομίζαμε ότι θα τσιπ μακριά εκείνη την έλλειψη εξοικείωσης, αλλά και να σας δώσει μια αίσθηση, για όσους από εσάς με μεγαλύτερη άνεση, η οποία κατευθύνσεις μπορείτε να πάτε αυτό το εξάμηνο. Ας ξεκινήσω με αυτό. Δεν έχω πραγματικά καμία ιδέα για το τι υπάρχει στο εσωτερικό της έναν υπολογιστή, ακόμη και αν, όπως και εσείς, το χρησιμοποιούν κάθε μέρα. Αλλά είναι κάποιο είδος του κιβωτίου, και υπάρχει δεν είναι πολλές εισόδους σε αυτό. Ελάχιστα, υπάρχει, τι; Πιθανώς ένα καλώδιο ρεύματος. Και μάλιστα με αυτό το ένα συστατικό, ηλεκτρικής ενέργειας, φαίνεται να είναι σε θέση να κάνει αρκετά ένα κομμάτι αυτές τις μέρες. Αλλά στο τέλος της ημέρας, μπορούμε πρέπει να εκπροσωπούν τα πράγματα ότι νοιαζόμαστε για. Πρέπει να αντιπροσωπεύουν πληροφορίες σε κάποια μορφή. Και είστε πιθανώς τουλάχιστον αόριστα εξοικειωμένοι με την ιδέα με δυαδικά ή bits ή τον άλλο τρόπο, οι υπολογιστές μειώνεται σε μηδενικά και μονάδες. Αλλά μπορούμε να αγκαλιάσει ότι και τουλάχιστον βάλετε ένα κομμάτι του φωτός σε αυτό; Έτσι έχω αυτά τα μικρά λάμπες γραφείου εδώ. Έχω μια ηλεκτρική πρίζα εδώ. Και Πάω να προτείνω αυτό το εσωτερικό του υπολογιστή μου είναι τουλάχιστον ένα από τα αυτά τα πράγματα, κάτι που μπορεί να να ενεργοποιηθεί ή να απενεργοποιηθεί. Σε αυτήν την περίπτωση, είναι πράγματι μια λάμπα γραφείου, αλλά σε χαμηλότερο επίπεδο, είναι κάτι ονομάζεται ένα τρανζίστορ. Αλλά στον κόσμο μας, είναι μια λάμπα γραφείου, έτσι ώστε Πάω να προχωρήσει και να συνδέσετε αυτό σε ηλεκτρική ενέργεια μου εδώ. Και εγώ ισχυρίζομαι ότι η χρήση αυτή η απλή, απλή συσκευή, αυτό το απλό διακόπτη, I μπορεί να αντιπροσωπεύουν πληροφορίες. Για παράδειγμα, αυτή τη στιγμή, είμαι εκπροσωπούν τίποτα, έτσι δεν είναι; Είμαι εκπροσωπούν αυτό που θα καλέσω 0 ή ψευδής, το αντίθετο από κάτι στην πραγματικότητα να είναι παρόντες. Αλλά αν απλώς γυρίστε το διακόπτη, τώρα έχω αντιπροσώπευε 1. Έτσι, με αυτό το πολύ απλό κομμάτι μνήμης, αν θέλετε, μπορώ να εκπροσωπώ πληροφοριών. Τώρα, δυστυχώς, ο υπολογιστής μου δεν μπορεί να κάνει όλα αυτά πολύ. Μπορεί να αντιπροσωπεύει μόνο δύο τιμές σε όλο τον κόσμο - 0 ή 1. Αλλά αυτό είναι μια προφανής λύση, τώρα, Αν θέλουμε να επεκτείνουμε υπολογιστή μας μνήμη και αντιπροσωπεύουν περισσότερο όχι μόνο 0 και 1; Λοιπόν, ας τραβήξει άλλο τέτοιο κομμάτι. Ας αρπάξει ένα άλλο διακόπτη, ένα άλλο τρανζίστορ, ωστόσο θα θέλατε να το σκεφτώ. Επιτρέψτε μου να προχωρήσει και να συνδέσετε αυτό στον υπολογιστή μου. Και Πάω να διεκδικήσει, τώρα, ότι με την με λίγο περισσότερη ηλεκτρική ενέργεια και στροφή περισσότερο από αυτούς τους διακόπτες και να μακριά, μπορεί να αντιπροσωπεύει περισσότερες από αυτές τις πληροφοριών. Μέχρι τώρα, αυτό είναι 1. Αν θέλω να αντιπροσωπεύουν τώρα 2, θα μπορούσα να κάνω αυτό. Αλλά συνήθως, σύμβαση, όπως θα τελικά να δούμε, θα πρέπει να το κάνω αυτό. Έτσι, αυτό είναι 0, αυτό είναι 1. Αυτό θα είναι 2. Και όπως ήταν αναμενόμενο, αυτό θα είναι 3. Έτσι, με αυτόν τον τρόπο, ακόμα, μπορεί να μετράμε ακόμα περισσότερο; Αν πάρω ένα τρίτο κομμάτι, το ένα τρίτο διακόπτη, ποιο είναι το μεγαλύτερο αριθμό μπορώ τώρα μετρήσει μέχρι από 0; Έτσι, 7 αν είμαι ξεκινώντας από το 0, έτσι δεν είναι; Γιατί αν ενεργοποιήσετε το φως και στην πραγματικότητα συνδέσετε αυτό το τρίτο και τελευταίο φως σε ηλεκτρική πρίζα μου εδώ, τότε έχω τη δυνατότητα να εκπροσωπεί οποιαδήποτε από τις δύο τιμές εδώ, δύο τιμές εδώ, δύο τιμές εδώ - και γι 'αυτό μπορεί να αντιπροσωπεύει 2 φορές 2 φορές 2, ή οκτώ πιθανές τιμές. Και αν αρχίσω λογιστικής σε 0, οπότε αυτό είναι 0, 1, 2, 3, 4, 5, 6, 7. Έτσι, αυτή η δυαδική. Είναι πραγματικά τόσο απλό. Και θα έλεγα ότι αυτό είναι στην πραγματικότητα αρκετά εξοικειωμένοι με τα περισσότερα ο καθένας σε αυτό το δωμάτιο. Επιτρέψτε μου να προχωρήσει και να ανοίξει ένα μικρό επεξεργαστή κειμένου εδώ. Και ίσως θυμάστε από το δημοτικό σχολείο ότι είχαμε τα πράγματα όπως τα εκατοντάδες θέση, η θέση των δεκάδων, και αυτά μέρος. Και υπενθυμίζουν ότι αν είχε κάποια δεκαδικά αριθμό, σαν κάτι τυχαίο όπως το 123, θα κάνατε ουσιαστικά γράφουν ότι με τη μορφή αυτών των τριών στηλών. Και γιατί είναι 1, 2, 3, τι γνωρίζουμε ως 123; Λοιπόν, στην αριστερή στήλη, έχουμε ένα 100 συν δύο 10s, έτσι ώστε να είναι 120, συν τρεις 1s, έτσι ώστε να είναι 123. Τώρα αυτός ο κόσμος που μόλις φωτίζεται είναι ακριβώς το ίδιο όπως έχετε εξοικειωθεί με για χρόνια, εκτός από τώρα, στήλες μας δεν είναι δυνάμεις του 10. Είναι απλά δυνάμεις του 2. Έτσι, λαμβάνοντας υπόψη ότι είναι ο τόπος αυτά, αυτό πρόκειται να είναι η δυάρια μέρος, αυτό είναι πρόκειται να είναι η θέση τέσσερα. Και επειδή είμαι χρησιμοποιώντας μόνο την απλούστερη των μηχανισμών να γυρίσει τα πράγματα on και off - ηλεκτρισμός ρέει ή ηλεκτρική ενέργεια δεν ρέει - Δεν έχω ακριβώς το ίδιο εκφραστικό φάσμα, από 0 έως εννέα. Εμείς πάμε για να κρατήσει εξαιρετικά απλό σε αυτόν τον κόσμο των υπολογιστών. Έχω μόνο 0 ή 1 - εφάπαξ ή σε ψευδείς ή αλήθεια. Και έτσι αυτό που είμαι εκπροσωπούν αυτή τη στιγμή είναι 1, 1, 1, επειδή κάθε ένα από αυτά φώτα φωτίζεται. Λοιπόν, αυτό μου δίνει ένα 4 συν ένα 2, οπότε Αυτό είναι 6, συν ένα 1, και αυτό είναι 7. Και ergo κάνει αυτή τη σειρά των τριών δυφία αντιπροσωπεύουν τον αριθμό 7. Έτσι, όλο αυτό το διάστημα, μέσα σας υπολογιστών, έχουν οποιοδήποτε αριθμό τρανζίστορ, οποιοδήποτε αριθμό από bits. Αλλά στο τέλος της ημέρας, μπορούμε μπορεί να αντιπροσωπεύουν πληροφορίες τόσο απλά όπως αυτό. Τώρα, δυστυχώς, έχουμε υπολογίζονται μόνο έως 7 σε CS50 μέχρι σήμερα, αλλά ελπίζουμε ότι μπορούμε να κάνουμε ένα κομμάτι καλύτερο από αυτό. Και πράγματι μπορούμε. Ας υποθέσουμε ότι εμείς οι άνθρωποι απλά αυθαίρετα αποφάσισε ότι πρόκειται να συνδέσει αριθμούς όπως 1 και 2, 3, 4, 5, 6, 7, με συγκεκριμένες επιστολές το αλφάβητο. Και για ιστορικούς λόγους, Πάω να αρχίσει κάπως αυθαίρετα, αλλά είμαι πρόκειται να πω, οι άνθρωποι, πρόκειται να αποφασίζει ως πρότυπο, σε παγκόσμιο επίπεδο, που 65 αντιπροσωπεύει τον αριθμό το γράμμα Α. 66 θα εκπροσωπήσει Β. τελεία, τελεία, τελεία. 90 θα αντιπροσωπεύουν το γράμμα Ζ. Και ας υποθέσουμε ότι, αν βάλουμε πραγματικά κάποια σκέψη σε αυτό, θα μπορούσαμε να καταλήξουμε με αριθμούς για τα θαυμαστικά και πεζά γράμματα, και μάλιστα, άλλοι άνθρωποι έχουν κάνει αυτό για εμάς. Μέχρι τώρα είχαμε κομμάτια με τα οποία μπορούμε να αντιπροσωπεύσει τους αριθμούς, τους αριθμούς με τους οποίους μπορούμε να αναπαραστήσουμε τα γράμματα, και με γράμματα μπορεί τώρα να ξεκινήσετε τη σύνταξη emails και τους χαρακτήρες εκτύπωση στην οθόνη. Επιτρέψτε μου λοιπόν να καλέσει, αν μπορούσα, οκτώ γενναίοι εθελοντές - που δεν με πειράζει που εμφανίζονται όχι μόνο την κάμερα, αλλά στο Διαδίκτυο - να καταλήξει εδώ και αντιπροσωπεύουν οκτώ τέτοιες bits, αντί αυτών των τριών. Πώς, λοιπόν, για ένα, δύο; Τι θα λέγατε για τρεις; Πόσο περίπου τέσσερις υπό το φως μπλε, πέντε για το τέλος; Σχετικά με κάποιον εδώ; Έξι μπροστά, επτά μπροστά, και οκτώ μπροστά, καθώς και. Γι 'αυτό ακριβώς έτσι συνέβη να έρθουν προετοιμασμένοι με ένα σωρό από χαρτάκια. Και σε αυτά τα κομμάτια χαρτιού είναι οι αριθμοί που αντιπροσωπεύουν ό, τι στήλες εσείς πρόκειται να εκπροσωπήσει. Έτσι θα είναι - ποιο είναι το όνομά σου; ΦΟΙΤΗΤΗΣ: Άννα Λία. DAVID MALAN: Άννα Λία, σας θα είναι η 128s στήλης. Είστε; ΣΠΟΥΔΑΣΤΩΝ: Chris. DAVID MALAN: Chris θα είναι η 64S στήλη. Είστε; ΣΠΟΥΔΑΣΤΩΝ: Dan. DAVID MALAN: Dan θα είναι η 32s στήλη. ΣΠΟΥΔΑΣΤΩΝ: Pramit. DAVID MALAN: Pramit θα είναι η στήλη 16s. ΣΠΟΥΔΑΣΤΩΝ: Lillian. DAVID MALAN: Lillian θα είναι η 8άρια. ΣΠΟΥΔΑΣΤΩΝ: Jill. DAVID MALAN: Jill θα είναι το 4s στήλη. ΣΠΟΥΔΑΣΤΩΝ: Mary. DAVID MALAN: Μαίρη θα είναι οι 2s, και; ΣΠΟΥΔΑΣΤΩΝ: David. DAVID MALAN: David θα είναι το 1s στήλη. Έτσι, αν εσείς θα μπορούσε να εντείνει λίγο προς τα εμπρός, έτσι ώστε ο καθένας μπορεί να δει. Αυτό που εσείς δεν βλέπετε είναι ότι στις πίσω από αυτά τα χαρτάκια είναι ένα μικρό φύλλο εξαπατήσει που είναι έτοιμος να αναθέσει αυτές τις οκτώ bits είτε σηκώστε το χέρι τους ή όχι σηκώστε το χέρι τους. Αν το χέρι τους ανεβαίνει, είναι αντιπροσωπεύουν 1. Αν το χέρι τους παραμένει κάτω, είναι αντιπροσωπεύει μια 0. Εν τω μεταξύ, το κοινό θα πρέπει να είναι είναι σε θέση να καταλάβω, με βάση αυτό το χαρτογράφηση, τι τρία γράμματα λέξη αυτές τις λαοί είναι έτοιμοι να διευκρινίσει. Έτσι, σε μια στιγμή, θα πάμε να διαβάστε την πρώτη γραμμή από το πίσω μέρος σκονάκι σας, και είστε είτε πρόκειται να αυξήσει ή να μην σηκώνετε το χέρι σας. Εάν είστε 1, θα αυξηθεί, εάν είσαι 0, θα σταθεί εκεί αδέξια, έτσι απλά. Go. Ποιος είναι ο αριθμός, πρώτα απ 'όλα, αυτά τα παιδιά που εκπροσωπούν; 66. 66, έτσι δεν είναι; Έχουμε 1 στο 64S στήλη, το 1 στην στήλη 2s. Αυτό μου δίνει 66, έτσι ώστε να εμφανίζεται να εκπροσωπεί Β. Έτσι, εσείς έχετε γράφονται - Εντάξει, αυτό είναι αρκετό. B. Έτσι τώρα ας προχωρήσουμε στην δεύτερη επιστολή μας. Go. Ποιος είναι ο πιο γρήγορος στα μαθηματικά εδώ; Έτσι, 79. Και πάλι, αν προσθέσουμε όλες τις στήλες στην οποία υπάρχει ένα 1, επί του παρόντος, απλά όπως κάναμε και στο παρελθόν με τον απλούστερο παραδειγμάτων 7, τώρα πάρετε τον αριθμό 79. Η οποία σύμφωνα με τη χαρτογράφηση μας είναι η γράμμα Ω. Έτσι, είμαστε σχεδόν εκεί. B, Ο. Και τέλος, πάμε. Τι είναι αυτοί αντιπροσωπεύουν τώρα; Λιγότερο συναίνεση. Αυτό είναι απλά ένα απόλυτο φύσημα. Ναι, είναι στην πραγματικότητα 87. Καλό. Έτσι, αν έχουμε χαρτογραφήσει τώρα ότι πίσω μέχρι - ας αρχίσει καλώντας ASCII διάγραμμα μας, American Standard Κώδικας για Information Interchange. Αυτό μας δίνει το γράμμα - Δεν "bo", αλλά "τόξο". Και αυτό είναι ένα τέλειο cue για σας παιδιά να λάβουν ένα τόξο και το κεφάλι στην πλάτη. Σας ευχαριστώ πολύ. [Χειροκρότημα] DAVID MALAN: Μπορείτε να τους κρατήσει. Αν και στην πραγματικότητα, θα μπορούσε κάποιος να σαν ένα επιτραπέζιο φωτιστικό, επίσης; [HOOT από το κοινό] DAVID MALAN: Επιτραπέζια λάμπα; [Γέλια] DAVID MALAN: Αλήθεια; Επιτραπέζιες λάμπες για όλους; Εντάξει. Έτσι, αρχίζοντας με την πολύ απλούστερη από αρχές, έχουμε τώρα όχι μόνο υπολογίζονται up από 0 σε όλη τη διαδρομή μέχρι 7, έχουμε Υποτίθεται ότι μόνο με τη ρίψη περισσότερα bits ή περισσότερα φώτα ή περισσότερα τρανζίστορ σε αυτό το πρόβλημα, μπορούμε να αντιπροσωπεύουν όλο και μεγαλύτερους αριθμούς, και ergo, όλο και μεγαλύτερες σειρές αλφάβητα, όπως τα αγγλικά. Και απλά ας πάρουμε την πίστη για σήμερα ότι εξίσου θα μπορούσαμε να αρχίσουμε να αντιπροσωπεύουν γραφικά και βίντεο, καθώς και κάθε σειρά άλλων μέσων με τα οποία είμαστε γνωστό σήμερα. Έτσι, αυτό είναι CS50, και σε αυτή την κατηγορία παράλληλα από σας είναι, και πάλι, πάρα πολλοί συμμαθητές που έχουν ως ελάχιστη την εμπειρία που έχετε. Και αυτό το αναφέρω, μόνο και μόνο επειδή είναι αρκετά Συχνά, ακόμη και πολύ πρόσφατα ως ένα από τα ο καινούριος συμβουλεύει εκδηλώσεις και σε δευτεροετής φοιτητής περασμένη άνοιξη παροχή συμβουλών εκδήλωση, συχνά ακούμε φοιτητές αποποιούνται όταν έρχονται στο τραπέζι CS, καλά, Έχω σκεφτεί για τη λήψη αυτό intro τάξη, αλλά δεν είμαι πραγματικά μια πρόσωπο του υπολογιστή. Ή, αλλά ο καθένας σίγουρα ξέρει περισσότερα από εμένα. Και έβαλα αυτό στο μεγαλύτερο γραμματοσειράς δυνατόν, να μεταφέρω αυτό το μήνυμα που αυτό δεν είναι στην πραγματικότητα η υπόθεση. Και αν αναρωτιέστε, θα πρέπει να Εγώ, στην πραγματικότητα, να είναι εδώ; Συνειδητοποιήστε ότι δεν είναι μόνο αυτό το μάθημα του τίτλος Εισαγωγή στην Πληροφορική Science, είναι Εισαγωγή στην Πληροφορική Επιστήμη Ι. Έτσι, υπάρχει πράγματι μια δεύτερη τέτοια εισαγωγή. Έτσι, δεν είστε, στην πραγματικότητα, σε λάθος μέρος. Και στους στόχους που έχω για σήμερα είναι για να κατευνάσει σε οποιεσδήποτε τέτοιες ανησυχίες θα μπορούσε να έχει, αλλά και να ζωγραφίσει ένα εικόνα του τι είναι στο κατάστημα για φοιτητές λιγότερα και πιο άνετη Παρόμοια σε αυτό το μάθημα. Αλλά πρώτα, μια λέξη σε ένα από τα φυλλάδια έχετε σήμερα, μεταξύ των οποίων είναι μια σειρά από ερωτήσεις. Ήταν ένα όραμα μας για κάποιο χρονικό διάστημα τώρα να εισαγάγει μια νέα διαβάθμιση επιλογή σε αυτό το μάθημα - δηλαδή, SAT / ακόρεστων. Φιλοσοφικά για μένα, είναι πολύ πολύ, πολύ πιο σημαντικό ότι η μαθητές αυτής της κατηγορίας ασχολούνται με το υλικό, να αμφισβητηθεί από το υλικό, και ανησυχούν πολύ, πολύ λιγότερο για οι μηχανικοί της πραγματικής σκορ και βαθμούς επιστολή στο εξάμηνο του τέλος, αλλά να αγκαλιάσει πραγματικά το πορεία και το υλικό του. Και πραγματικά αυτό αισθάνεται, γενικότερα, για ό, τι είναι ενδιαφέρον για αυτούς, για αντιλαμβάνονται την πρόκληση και να ανταμείβεται, αλλά χωρίς το φόβο της αποτυχίας. Και πράγματι, αυτό είναι πάρα πολύ ένα επαναλαμβανόμενο θέμα σε αυτό και άλλες εισαγωγικές μαθήματα σε άλλους τομείς, που θα πρέπει Αυτό τρόμο, όταν πρόκειται για βάζοντας τα δάχτυλα των ποδιών ενός ατόμου σε άγνωστα νερά. Εγώ ο ίδιος, το 1995, ήταν πρωτοετής. Ήμουν πάρα πολύ συγκεντρωμένοι στο να είναι συγκεντρωτή Gov εδώ. Και όμως είχα πάντα μεγαλώσει με ένα κομμάτι του ενδιαφέροντος για την επιστήμη των υπολογιστών. Ήμουν πάντα περίεργος. Αλλά τότε, ακόμη, είχα αυτό τον φόβο ακόμα και την ενίσχυση πόδι σε CS50, τόσο έτσι ώστε δεν είχα ακόμη κατάστημα το καινούριο έτος. Και ο μόνος λόγος που έβαλα ένα πόδι στην πόρτα του έτους δευτεροετών φοιτητών ήταν επειδή μου αφέθηκε να πάρετε επιτυχίας / αποτυχίας. Αλλά ακόμη και επιτυχίας / αποτυχίας απαιτείται να παίρνω μέχρι το νεύρο για να κλείσετε ραντεβού με τον καθηγητή Kernehan κατά τη χρονική στιγμή, φέρει αυτό το μεγάλο φύλλο χαρτί, και να ζητήσει του για την υπογραφή του και του άδεια για να διερευνήσει αυτά τα άγνωστα νερά. Και αυτό δεν έχει βοηθήσει τα τελευταία χρόνια ότι όταν το κάνετε αυτό σε CS50, όταν χρησιμοποιείται για να είναι επιτυχίας / αποτυχίας, ομοίως θα δεκάδες ή εκατοντάδες συμμαθητές σας πρέπει να καταλήξει, Θεός φυλάξοι, κατά τις μπροστά από Sanders με αυτή τη μορφή, που σε ορισμένες μυαλό αντιπροσωπεύει μια αδυναμία, Τολμώ να πω, για να εκτελέσει είναι το επίπεδο τους συμμαθητές σας. Ποια είναι γελοίο, αλλά πιστεύω υπάρχει η νοοτροπία. Και δεν υπήρξε ποτέ σε αυτή την κουλτούρα της SAT / ακόρεστων, ή επιτυχίας / αποτυχίας περισσότερα Γενικότερα, σε αυτή την πορεία, ή πραγματικά σε αυτό το πανεπιστήμιο. Έτσι φέτος καταφέραμε να το αλλάξουμε. Θα ήθελα να είναι εκστατική εξάμηνο του Η κατηγορία αυτή ή περισσότερο έληξε μέχρι τη λήψη CS50 SAT / ακόρεστων. Σε ένα χρόνο, θα ήταν υπέροχο αν και σχεδόν όλοι είναι. Στη συνέχεια ίσως θα λειτουργήσει για βαθμούς επιστολή στο Χάρβαρντ College γενικότερα. Αλλά για τώρα, εμείς θα κάνουμε αυτό μέσα μας τη δική του σφαίρα, και θα ήθελα ολόψυχα σας ενθαρρύνουμε να διαβάσετε αυτές τις ερωτήσεις και ερωτήσεις όπως σας βολεύει, έτσι ώστε να Ας ελπίσουμε ότι, σε αντίθεση με μένα, δεν θα είναι αρκετά έχουν το ίδιο παράγοντα φόβο, όταν εξερεύνηση του τι είναι πιθανόν να ένα άγνωστο μέρος. Έτσι τι είναι CS50; Είναι μια εισαγωγή στην πνευματική επιχειρήσεις του υπολογιστή επιστήμη και η τέχνη του προγραμματισμού. Αλλά τι πραγματικά σημαίνει; Λοιπόν, μέχρι στιγμής, μιλήσαμε πολύ σύντομα για την παρουσίαση των πληροφοριών. Αλλά ας υποθέσουμε ότι πραγματικά θέλουμε να κάνει κάτι με αυτό. Πρέπει να εισαχθεί η έννοια της Τι θα καλέσουμε έναν αλγόριθμο. Ένας αλγόριθμος είναι μια διαδικασία, μια διαδικασία, ένα σύνολο οδηγιών για την να κάνει κάτι. Και ένας αλγόριθμος μπορεί να είναι κάτι εξαιρετικά απλή. Για παράδειγμα, ένα παράδειγμα με τις οποίες ορισμένα από εσάς μπορεί να είναι εξοικειωμένοι είναι αυτό πράγμα εδώ. Έτσι, αυτό το βιβλίο εδώ είναι όλο και ημερομηνία, αλλά μια φορά κι έναν καιρό, περιείχε ένα σωρό ονόματα και αριθμούς τηλεφώνων. Και πράγματι, αν ήθελα να βρω κάποιος σε αυτό το βιβλίο του τηλεφώνου - ας πούμε, κάποιος με το όνομα Mike Smith - Θα μπορούσα να βρω Mike Smith σε οποιοδήποτε αριθμό με αρκετά απλό τρόπο. Θα μπορούσα να ξεκινήσω από την αρχή και προχωρήσουμε στην σελίδα 1, δεν είναι εκεί. Σελίδα 2, δεν είναι εκεί. Page 3. Είναι αυτός ο αλγόριθμος, είναι ότι διαδικασία, σωστά; Γι 'αυτό είναι σωστό, έτσι δεν είναι; Είμαι το είδος του ηλίθιος για να γίνει αυτό σε αυτόν τον τρόπο, αλλά τελικά θα το κάνω βρείτε το επώνυμο, και ελπίζω Mike Είναι σε αυτό το σημείο, και θα γίνω γίνεται με τον αλγόριθμο μου. Αλλά σίγουρα δεν είναι διαισθητική. Οι περισσότεροι κάθε λογικού ανθρώπου σε αυτό δωμάτιο δεν θα γίνει αυτό. Τι θα κάνατε; Θα είχα πάει κατ 'ευθείαν στη μέση, έτσι δεν είναι; Περίπου στη μέση. Και αντιλαμβάνεστε, ωχ, αυτοί είναι οι κα Έτσι, ο Mike Smith, το επώνυμο είναι Smith, δεν είναι, σαφώς, στη συνέχεια, στο αριστερό μισό του βιβλίου. Αυτός πρέπει να είναι προς το S είναι στο σωστό. Και σε αυτό το σημείο, αν και οι περισσότεροι από εμάς δεν το κάνετε αυτό στην πραγματικότητα, μπορούμε να κυριολεκτικά δάκρυ αυτό το πρόβλημα στο μισό. [Επευφημίες και χειροκροτήματα] DAVID MALAN: Σας ευχαριστώ. [Επευφημίες και χειροκροτήματα] DAVID MALAN: Μπορείτε να σχίσει κυριολεκτικά αυτό πρόβλημα στη μέση, αφήνοντας με με, κυριολεκτικά, ένα μισό πρόβλημα τόσο μεγάλο. Έτσι, αν αυτό το βιβλίο τηλέφωνο ήταν - και μάλλον ήταν - περίπου 1.000 σελίδες, τώρα είναι μόνο 500. Αν το κάνω αυτό ξανά και αντιλαμβάνομαι, OH, βλασφημία, πήγα πολύ μακριά, είμαι στην Ts ενότητα, μπορώ παρόμοια - μεταφορικά ή κυριολεκτικά - αντιγράψετε τον τηλεφωνικό κατάλογο - ήταν στην πραγματικότητα πολύ πιο εύκολο εκείνη τη στιγμή. Μπορώ να σχίσει κυριολεκτικά τον τηλεφωνικό κατάλογο στο μισό, να φεύγω τώρα με δεν 1000, όχι 500 - 250 σελίδες. Και μπορώ να πάω 125, και τα μισά από αυτά, και ήμισυ του, και τα μισά από ότι, μέχρι το τέλος, θα πρέπει να μείνει με μία και μόνο σελίδα. [Γέλια] DAVID MALAN: Αυτό είναι το μέρος Ι αποτύχει σε. Μια ενιαία σελίδα στην οποία Mike είναι ελπίζουμε. Τώρα οι διαφορετικοί αλγόριθμοι μπορούν να είδος εκτιμηθεί ή σε διαφορετικούς τρόπους. Το πρώτο ήταν πολύ γραμμική, έτσι δεν είναι; Γυρίστε τη σελίδα, αναζητήστε Mike. Γυρίστε τη σελίδα, αναζητήστε Mike. Είναι πολύ γραμμική. Αν υπάρχει μια σελίδα στο τηλέφωνο βιβλίο, είναι κατά πάσα πιθανότητα πρόκειται να με πάρει ένα περισσότερο δεύτερη, μία μονάδα του χρόνου, Ωστόσο, είμαστε υπολογισμό του χρόνου. Γι 'αυτό και θα μπορούσε να αντλήσει έτσι αυτή τη γραμμή εδώ, σύμφωνα με την οποία, όπως το μέγεθος του αυξήσεις πρόβλημα από αριστερά προς τα δεξιά - τηλεφωνικό μικραίνει σε μεγαλύτερες - και του χρόνου πρόκειται να αυξηθεί σε τον κατακόρυφο άξονα, το μεγαλύτερο ο τηλεφωνικός κατάλογος. Έτσι, n είναι μόνο μια γενική μεταβλητή που επιστήμονες της πληροφορικής χρησιμοποιούν για να εκπροσωπήσει κάποια αξία, κάποιος αριθμός. Έτσι, n πρόκειται να αυξηθεί γραμμικά. Διπλάσιο από το μέγεθος του τηλεφωνικού καταλόγου, είναι πρόκειται να με πάρει διπλάσια χρόνο, κατά πάσα πιθανότητα, να βρει Mike. Τώρα θα μπορούσα να είμαι έξυπνη γι 'αυτό, έτσι δεν είναι; Έπαιρνα βαρεθεί γρήγορα. Θα μπορούσε να γίνει αυτό από δυάρια. Έτσι, δύο σελίδες, στη συνέχεια, τέσσερις, στη συνέχεια, έξι, οκτώ στη συνέχεια. Και θα μπορούσα να ξεκινήσω πετούν μέσα από αυτό ένα λίγο πιο γρήγορα, αν και σε μικρό κίνδυνο της υπέρβαση Mike, αλλά ότι η καμπύλη δεν είναι πρόκειται να είναι όλα αυτά διαφορετικά. Είναι ακόμα πρόκειται να είναι μια ευθεία γραμμή, αλλά ελαφρώς πιο γρήγορα. Αλλά τι έκανα; Έκανα πραγματικά κάτι θεμελιωδώς καλύτερα. Πέτυχα ό, τι θα καλέσουμε λογαριθμική ώρα, ημερολόγιο του n, οπότε αυτό το πράσινο γραμμή έχει μια πολύ, πολύ, πολύ λιγότερο επίπεδη επιφάνεια σε αυτό. Και μάλλον, προτείνει, όπως ταξινομήσετε του προσεγγίζει το άπειρο ποτέ τόσο σταδιακά, ότι θα μπορούσε να πάρει πραγματικά μια 1.000-σελίδα τηλεφωνικό κατάλογο, το διπλάσιο μέγεθος της το επόμενο έτος - ας υποθέσουμε ότι, επειδή πολλά περισσότεροι άνθρωποι κινούνται στην πόλη. Έτσι, τώρα έχω 2.000 σελίδες, αλλά πώς πολλά περισσότερα βήματα είναι η πιο έξυπνη αλγόριθμο πρόκειται να πάρει; Μόνο ένα. Θέλω να πω, αυτό είναι ένα ισχυρό πράγμα. Αν πάμε σε 4.000 σελίδες το επόμενο έτος, ότι πρόκειται να με πάρει μόνο δύο περισσότερα βήματα. Έτσι, μπορείτε να ρίξει όλο και μεγαλύτερες προβλήματα σε μένα, δεν σε αντίθεση με το διαδίκτυο είναι ρίχνουν όλο και μεγαλύτερα προβλήματα κάθε μέρα στις Googles και Facebooks της ο κόσμος, και δεν είναι μια τέτοια μεγάλη υπόθεση. Επειδή έβαλα περισσότερη σκέψη και φροντίδα σε αλγόριθμος μου με το οποίο να λύσει προβλήματα αποτελεσματικά. Και πράγματι, αυτό θα είναι ένα από οι στόχοι του μαθήματος. Θα σας, κατά μήκος του τρόπου, μάθετε πώς να προγραμματίσετε. Θα μάθετε πώς να προγραμματίσετε το οποιοδήποτε αριθμό των γλωσσών. Αλλά στο τέλος της ημέρας, η πορεία είναι για την επίλυση των προβλημάτων και να πάρει καλύτερα στην επίλυση των προβλημάτων - και, όπως στην περιπτώσεις όπως αυτή, την επίλυση προβλημάτων πιο αποτελεσματικά. Τώρα, μέχρι στιγμής, έχουμε κάνει αυτό αρκετά διαισθητικά. Ας εισαγάγει κάτι αρκετά γενικά ονομάζεται ψευδοκώδικα. Έτσι, θα πάρει τελικά, σε αυτό το μάθημα, να διάφορες γλώσσες προγραμματισμού. Αλλά σήμερα θα το κάνουμε στα αγγλικά-όπως σύνταξη, όπου μπορείτε ακριβώς το είδος της πω τι εννοείς, αλλά είσαι πάντα τόσο σύντομη και να μην ανησυχείτε για γραμματική και πλήρεις προτάσεις. Θα εκφράσω μόνο τον εαυτό σας, όπως συνοπτικά γίνεται. Έτσι pseudocode είναι τα αγγλικά-όπως σύνταξη που αντιπροσωπεύει μια γλώσσα προγραμματισμού. Και προς αυτή την κατεύθυνση, επιτρέψτε μου να προτείνω εμείς μοντέλο τώρα τη διαδικασία που μόλις περιγράφεται από την καταμέτρηση κάτι λίγο διαφορετικά, αυτή τη φορά κέρδισε ματιά σε αυτό που παράγεται πέντε λεπτών βίντεο από τους φίλους μας στο TED που ορίζει τι είναι ψευδοκώδικας, ορίζει τι αλγοριθμικής σκέψης είναι, και ακόμη αν και το παράδειγμα που είστε έτοιμος να δείτε είναι, στον τομέα του το ίδιο, εξαιρετικά απλό, είναι πρόκειται να αρχίσει να μας δώσει την ψυχική μοντέλο, το λεξιλόγιο, με την οποία να κάνει πολύ, πολύ πιο περίπλοκη αλγόριθμοι είναι αρκετά γρήγορα. [Ξεκινήσετε την αναπαραγωγή VIDEO] [Παίζει μουσική] Αφηγητής: Τι είναι ένας αλγόριθμος; Στην επιστήμη των υπολογιστών, ένας αλγόριθμος είναι σετ οδηγιών για την επίλυση ορισμένων βήμα προς βήμα το πρόβλημα. Τυπικά, οι αλγόριθμοι εκτελούνται από τους υπολογιστές, αλλά εμείς οι άνθρωποι αλγορίθμων, όπως καλά. Για παράδειγμα, πώς θα πάτε για τον υπολογισμό του αριθμού των ανθρώπων σε ένα δωμάτιο; Λοιπόν, αν είστε σαν εμένα, θα ήθελα ίσως σημείο σε κάθε άτομο, ένα σε μια στιγμή, και να μετρούν από το 0. 1, 2, 3, 4, και ούτω καθεξής. Λοιπόν, αυτό είναι ένας αλγόριθμος. Στην πραγματικότητα, ας προσπαθήσουμε να εκφράσει μια λίγο πιο επίσημα σε ψευδοκώδικα - Αγγλικά-όπως σύνταξη που μοιάζει με μια γλώσσα προγραμματισμού. Ας N ίσο 0. Για κάθε άτομο στο δωμάτιο, που N ίσο Ν συν 1. Πώς να ερμηνεύσει αυτό το ψευδοκώδικα; Λοιπόν, μια γραμμή δηλώνει, να το πω έτσι, μια μεταβλητή που ονομάζεται N και προετοιμάζει την αξία του στο 0. Αυτό σημαίνει απλά ότι κατά την έναρξη της αλγορίθμου μας, το πράγμα με το οποίο μετράμε έχει την τιμή 0. Μετά από όλα, πριν αρχίσουμε να μετράμε, Δεν έχουν υπολογιστεί ακόμη τίποτα. Κλήση αυτής της μεταβλητής N είναι απλά μια σύμβαση. Θα μπορούσα να έχω αποκάλεσε σχεδόν οτιδήποτε. Τώρα γραμμή δύο demarks την έναρξη της βρόχο, μια ακολουθία των βημάτων που θα επαναλαμβάνουν κάποιες φορές. Έτσι, στο παράδειγμά μας, το βήμα που παίρνετε υπολογίζει άτομα σε ένα δωμάτιο. Κάτω γραμμή είναι η γραμμή δύο τρία, η οποία περιγράφει ακριβώς πώς θα πάμε για την καταμέτρηση. Η οδόντωση υπονοεί ότι είναι τρεις γραμμή που θα επαναληφθούν. Έτσι, ποια είναι η pseudocode λέει είναι ότι μετά την έναρξη σε 0, για καθεμία άτομο στο δωμάτιο, θα αύξηση της Ν κατά 1. Τώρα είναι ο αλγόριθμος αυτός είναι σωστή; Λοιπόν, ας Έκρηξη σε ένα κομμάτι. Μήπως αυτό το έργο, αν υπάρχουν δύο άτομα σε ένα δωμάτιο; Ας δούμε. Σε μία γραμμή, έχουμε προετοιμαστεί Ν σε 0. Για καθένα από αυτά τα δύο άτομα, θα αυξήσετε τότε Ν από 1. Έτσι, στην πρώτη διαδρομή μέσα από το loop, ενημερώνουμε N 0-1. Στο δεύτερο ταξίδι μέσα από την ίδια loop, ενημερώνουμε N 1 έως 2. Και έτσι από το τέλος αυτού του αλγορίθμου, n είναι 2, η οποία ταιριάζει πράγματι τον αριθμό των άτομα σε ένα δωμάτιο. Μέχρι στιγμής, όλα καλά. Τι θα λέγατε για μια υπόθεση γωνία, όμως; Ας υποθέσουμε ότι υπάρχουν 0 άτομα στο δωμάτιο - εκτός από εμένα, ποιος κάνει την καταμέτρηση. Σε μία γραμμή, έχουμε προετοιμαστεί Ν σε 0. Αυτή τη φορά, όμως, γραμμή τρία δεν εκτελέσει καθόλου δεδομένου ότι δεν υπάρχει άτομο στο δωμάτιο. Και έτσι Ν παραμένει 0, το οποίο ταιριάζει με το αριθμός των ατόμων στο δωμάτιο. Αρκετά απλό, σωστά; Αλλά καταμέτρηση των ανθρώπων, ένα κάθε φορά είναι αρκετά αναποτελεσματική, πάρα πολύ, έτσι δεν είναι; Σίγουρα μπορούμε να κάνουμε κάτι καλύτερο. Γιατί δεν μετράνε δύο άτομα σε μια στιγμή; Αντί μετρώντας 1, 2, 3, 4, 5, 6, 7, 8, και ούτω καθεξής, γιατί να μην μετράνε, 2, 4, 6, 8, και ούτω καθεξής; Ακούγεται ακόμα πιο γρήγορα, και είναι σίγουρα. Ας εκφράσουμε αυτή την βελτιστοποίηση σε ψευδοκώδικα. Ας N ίσο 0. Για κάθε ζεύγος των ατόμων στο δωμάτιο, που N ίσο με Ν συν 2. Αρκετά απλή αλλαγή, έτσι δεν είναι; Αντί οι άνθρωποι μετράνε ένα σε μια στιγμή, εμείς αντί να μετρούν τα δύο σε έναν χρόνο. Αυτός ο αλγόριθμος είναι έτσι δύο φορές όσο πιο γρήγορα το τελευταίο. Αλλά είναι σωστό; Ας δούμε. Μήπως αυτό το έργο, αν υπάρχουν δύο άτομα σε ένα δωμάτιο; Σε μία γραμμή, έχουμε προετοιμαστεί Ν σε 0. Για το ζεύγος έναν από τους ανθρώπους, θα αυξήσετε τότε Ν από δύο. Και έτσι από το τέλος αυτού του αλγορίθμου, N είναι 2, η οποία ταιριάζει πράγματι τον αριθμό των άτομα σε ένα δωμάτιο. Ας υποθέσουμε στη συνέχεια ότι υπάρχουν 0 άτομα σε ένα δωμάτιο. Σε μία γραμμή, έχουμε προετοιμαστεί Ν σε 0. Όπως και πριν, γραμμή τρία δεν εκτελέσει καθόλου, αφού δεν υπάρχουν ζεύγη των ανθρώπων σε ένα δωμάτιο. Και έτσι Ν παραμένει 0, η οποία μάλιστα ταιριάζει με τον αριθμό των άτομα σε ένα δωμάτιο. Τι γίνεται όμως αν υπάρχουν τρεις οι άνθρωποι στο δωμάτιο; Πώς το κάνει αυτό ναύλος αλγορίθμου; Ας δούμε. Σε μία γραμμή, έχουμε προετοιμαστεί Ν σε 0. Για ένα ζεύγος αυτών των ανθρώπων, θα αυξήσετε τότε Ν κατά 2. Αλλά τότε τι; Δεν υπάρχει άλλη πλήρες ζεύγος των ατόμων στην αίθουσα, έτσι ώστε τα δύο γραμμή δεν ισχύει πλέον. Και έτσι από το τέλος αυτού του αλγορίθμου, N εξακολουθεί να είναι 2, η οποία δεν είναι ορθή. Πράγματι, ο αλγόριθμος αυτός λέγεται ότι είναι αμαξάκι, επειδή έχει ένα λάθος. Αφήνει αποκατάσταση με κάποια νέα ψευδοκώδικα. Έστω n είναι ίσοι με 0 για κάθε ζεύγος των ατόμων στο δωμάτιο. Ορισμός N ίσο με Ν συν 2. Αν ένα άτομο παραμένει αταίριαστο, που N ίσο με N + 1. Για να λυθεί το συγκεκριμένο πρόβλημα, έχουμε θεσπίστηκε, σύμφωνα τέσσερα, ένα κατάσταση, αλλιώς γνωστή ως ένα υποκατάστημα που εκτελεί μόνο αν υπάρχει ένα πρόσωπο που δεν θα μπορούσε ζεύγος με ένα άλλο. Και τώρα, αν υπάρχει ένας ή τρεις ή οποιοδήποτε μονό αριθμό των ατόμων το δωμάτιο, ο αλγόριθμος θα μετρήσει τους τώρα. Μπορούμε να το κάνουμε ακόμα καλύτερο; Λοιπόν, θα μπορούσε να υπολογίζει σε 3s ή 4s ή ακόμα και 5s και 10s, αλλά πέρα ​​από αυτό, είναι πρόκειται να πάρει λίγο δύσκολο να το σημείο. Στο τέλος της ημέρας, αν εκτελεστεί υπολογιστές ή από τον άνθρωπο, αλγόριθμοι είναι απλώς ένα σύνολο των οδηγιών με η οποία για την επίλυση προβλημάτων. Αυτά ήταν μόνο τρεις. Ποιο είναι το πρόβλημα θα λυθεί με έναν αλγόριθμο; [PLAYBACK VIDEO END] DAVID MALAN: Αυτή είναι η μοναδική φορά Θα εμφανιστεί σε μορφή κινουμένων σχεδίων. Αλλά όταν η ιστορία αφήνει ανοικτά, Τώρα, πώς μπορούμε να κάνουμε καλύτερα; Τριάρια και τεσσάρια, διεκδικούμε, μπορούμε να υπολογίζουμε ανθρώπους πολύ πιο γρήγορα, αλλά μπορούμε κάνει ριζικά καλύτερο από αυτό; Και εγώ στοίχημα μπορούμε. Αν εισάγουμε ένα κομμάτι της δικής μας pseudocode εδώ, Πάω να προτείνει ότι μπορούμε να επιτύχουμε μια γραμμή σαν αυτή. Εμείς δεν πρόκειται να μετρήσει τους ανθρώπους ένα, δύο, τρία, τέσσερα. Εμείς δεν πρόκειται να πάμε δύο, τέσσερα, έξι, οκτώ. Εμείς πάμε να κάνουμε ουσιαστικά καλύτερη με την επανεξέταση του προβλήματος, και σε αυτό περίπτωση, αξιοποιώντας μια κατά τα άλλα υποχρησιμοποιούνται πόρων. Σε μια στιγμή, ελπίζω ότι θα συγχωρήσετε και να μας χιούμορ όρθιος θέση, σε ποιο σημείο θα πάμε να Ζητάμε κάθε ένας από εσάς να αναλάβει το σας μυαλά ο αριθμός 1. Είσαι στη συνέχεια πρόκειται να όλο και περισσότερο αδέξια, όσο περνάει ο καιρός, να βρουν κάποιος άλλος που στέκεται, συνδυάζουν αριθμούς σας μαζί με την προσθήκη τους επάνω. Κάποιος από εσάς στη συνέχεια πρόκειται να αγωνιστεί για να καθίσει κάτω πρώτα, και το άλλο πρόσωπο πρόκειται να επαναλάβω. Έτσι, με άλλα λόγια, με σπορά όλα σας με τον αριθμό 1, και στη συνέχεια Ο συνδυασμός των 1s σε 2s και των 2s σε 4s, με όλους ολοένα και κάθεται κάτω, θα πρέπει, στο τέλος της Ο αλγόριθμος αυτός, έχει μόνο ένα δάνειο ψυχή που δεν είχε καθίσει αρκετά γρήγορα, αλλά ο οποίος έχει το σύνολο μετράνε ακροατήρια στο δικό του μυαλό. Έτσι, αν ήταν, ας πάμε μπροστά και - βήμα ένα - σταθεί στη θέση του. Και να εκτελέσει. [CROWD μουρμουρίζοντας] DAVID MALAN: Ξέρετε όπου Lauren είναι; 729; [CROWD μουρμουρίζοντας] DAVID MALAN: Εντάξει; [CROWD μουρμουρίζοντας] DAVID MALAN: Εντάξει, θα πρέπει να να πλησιάζει το τέλος. Βλέπουμε μία συμπολίτες στέκεται ακόμα εδώ. Ποιος χρειάζεται άλλο να συνδεθεί; Αν εσείς θέλετε να συνδυάσετε off. Κάποιος επάνω στην κορυφή. Γιατί δεν μπορώ να δανείσει ένα χέρι εδώ. Για τους πολύ λίγους ανθρώπους που εξακολουθούν να είναι στέκεται, τι αριθμούς εσείς έχετε στο μυαλό σας; ΣΠΟΥΔΑΣΤΩΝ: 78. DAVID MALAN: 78 συν - που στέκεται εδώ κάτω; ΣΠΟΥΔΑΣΤΩΝ: 39. DAVID MALAN: Plus 39. Πλέον ποιος άλλος στέκεται ακόμα; 81; Εντάξει, ποιος άλλος; Ένα άλλο 81; Wow. Και τότε τι είναι στην πλάτη; ΣΠΟΥΔΑΣΤΩΝ: 49. DAVID MALAN: 49, συν; ΣΠΟΥΔΑΣΤΩΝ: 98. DAVID MALAN: 98 plus; Είναι ότι κάποιος άλλος; 12; Καλή δουλειά. [Γέλια] DAVID MALAN: Ω, 112 - oh. Καλή δουλειά! [Γέλια] [Χειροκρότημα] DAVID MALAN: Οποιοσδήποτε άλλος ακόμα όρθια; Συγγνώμη; ΣΠΟΥΔΑΣΤΩΝ: 99. DAVID MALAN: 99. Οποιοσδήποτε άλλος στέκεται ακόμα; Και ο συνολικός αριθμός των φοιτητών εδώ είναι στην πραγματικότητα, σύμφωνα με την - έχετε έναν αριθμό; Ω, ο πραγματικός αριθμός των ατόμων στην αίθουσα, σύμφωνα με το λογαριασμό που οι υπότροφοι διδασκαλίας έκαναν στο δρόμο του καθενός μέσα, ήταν 729. Έτσι, από νοσοκόμες, φοιτητές του Χάρβαρντ οι οποίοι υπολογίζονται, η απάντηση είναι 637. [Γέλια] DAVID MALAN: Τόσο κοντά. Αλλά ακόμα. Εντάξει, έτσι ώστε να είναι μια διδασκαλία στιγμή, έτσι δεν είναι; Αυτό είναι τώρα αυτό που περιγράφουν ως ένα bug. Κάπου στην πορεία, κάναμε κάποιες αριθμητικό λάθος, ή κάποιος κάθισε, ή αριστερά, ή κάτι πήγε στραβά. Αλλά αυτό είναι εντάξει. Διότι ακόμη και ακόμα, εμείς πήρε πολύ κοντά. Και θα έλεγα ότι φτάσαμε στο λάθος απαντήσετε σε μια πολύ πιο γρήγορα από ό, τι θα έπρεπε χρησιμοποιώντας πιο γραμμική προσέγγιση μου. Ας υποθέσουμε ότι όντως πάρει ότι διορθώσει, αλλά σκεφτείτε τώρα τι συνέβαινε κάθε φορά, σε σχέση μου δική αφελής αλγόριθμος δείχνει. Ένα, δύο, τρία. Αν πράγματι υπάρχουν 729 ή 637 άτομα εδώ, που θα με λάβει κυριολεκτικά 637 ή 729 επισημάνσεις του δακτύλου και προσαύξηση συνολικό αριθμό μου. Και θα μπορούσα να κάνω λίγο καλύτερη από πηγαίνει δύο, τέσσερα, έξι, οκτώ, και διπλασιάσει την ταχύτητα αυτή, ίσως ακόμα και να τριπλασιαστεί ή τετράκλινα, ανάλογα με το πόσο καλά μπορώ κάνουμε ότι η καταμέτρηση στο κεφάλι μου. Αλλά αυτή η προσέγγιση ότι εσείς πήρε ήταν ριζικά διαφορετική. Επειδή στην αρχή, όλους εσάς σηκώθηκε. Έτσι, όλα τα 729. Και τότε κυριολεκτικά το μισό από εσάς κάθισε. Και μετά από αυτό, ένα άλλο μισό από εσάς κάθισε. Και μετά από αυτό, ένα άλλο μισό από εσάς κάθισε. Και το συνολικό αριθμό των φορών που θα παιδιά θα μπορούσαν να έχουν κάθισε είναι περίπου οκτώ ή εννέα ή δέκα φορές συνολικά, ανάλογα με το τι συνολικό αριθμό μας. Και μπορούμε να ταξινομήσετε του κάνουν Αυτό το άλλο τρόπο. Αν είχαμε 1.024 ατόμων στο δωμάτιο, η συνολικός αριθμός των φορών που θα μπορούσε να μείωση κατά το ήμισυ 1.024 άτομα είναι 10. Τώρα σκέφτομαι σε την άλλη κατεύθυνση. Ας υποθέσουμε, γελοία, ότι είχαμε, ας πούμε τέσσερα δισεκατομμύρια άνθρωποι σε αυτή την αίθουσα, ή ένα ελαφρώς μεγαλύτερο δωμάτιο. Πόσες φορές θα έχουμε φύγει μέσω αυτού του αλγορίθμου, έτσι ώστε το ήμισυ της κατηγορίας αυτής κάθεται κάτω; Είναι μόνο πρόκειται να πάρει 32, όπως εργασίες, ακόμη και σε μια τάξη μεγέθους τέσσερα δισεκατομμύρια. Γιατί; Επειδή τέσσερα δισεκατομμύρια πηγαίνει σε δύο δισ. ευρώ, πηγαίνει σε ένα εκατομμύριο, πηγαίνει στο 500 εκατ. ευρώ, πηγαίνει στο 250 εκατ. ευρώ, τελεία, τελεία, τελεία. Μπορώ μόνο να κάνω τη διαίρεση αυτή το 32 φορές, σε ποιο σημείο, όλοι εκτός ένα άτομο θα μπορούσε να μείνει όρθια. Και αυτό, επίσης, είναι ένα είδος ισχυρού ιδέα ότι όλο και εμείς θα προσπαθήσουμε να μόχλευσης σε αυτό το μάθημα, και προγραμματισμό και την επιστήμη των υπολογιστών περισσότερα Σε γενικές γραμμές, αυτά τα μικρόβια μιας ιδέας με οποία μπορούμε να λύσουμε τα προβλήματα, στη συνέχεια πολύ, πολύ πιο δυναμικά. Έτσι ξεκινήσαμε αρκετά απλή με αυτό pseudocode και ένας τύπος σε ένα δωμάτιο, αλλά τώρα, ένα ολόκληρο δωμάτιο γεμάτο από ανθρώπους έχουμε κάνει ουσιαστικά καλύτερα. Λοιπόν, ας πάμε τώρα μετάβαση από ψευδοκώδικα σε κάποιο πραγματικό κώδικα. Αυτή η γλώσσα που είστε έτοιμος να δούμε να συμβεί να ονομάζεται JavaScript, και θα επανέλθει σε αυτό προς τέλος του εξαμήνου. Είναι μια γλώσσα προγραμματισμού που χρησιμοποιούν για να κάνουν ιστοσελίδες και άλλα τέτοια λογισμικού αυτές τις μέρες. Και έχουμε χρησιμοποιήσει, χάρη σε ένα φίλο από μας στο Πανεπιστήμιο του Στάνφορντ, να κωδικοποιήσει κάποιες κρυφές πληροφορίες εδώ. Αυτή είναι η τέχνη της steganography, να το πω έτσι, όπου μπορείτε να κρύψετε πληροφορίες σε ό, τι άλλο φαίνεται να να είναι θόρυβος ή ένα εντελώς διαφορετικό εικόνα συνολικά. Αλλά ενσωματωμένες στη συγκεκριμένη εικόνα είναι πράγματι ένα μυστικό μήνυμα του είδους. Έτσι, επιτρέψτε μου να πάει μπροστά και να σηκώσει η ίδια εικόνα εδώ, αυτό φορά σε ένα πρόγραμμα περιήγησης στο web. Και Πάω να κύμα το χέρι μου σε μερικά από οι λεπτομέρειες για σήμερα, ιδιαίτερα για όσους από εσάς αυτό μοιάζει δεν είναι μόνο ελληνικό, αλλά JavaScript, ως εντελώς άγνωστη γλώσσα. Αλλά αυτό είναι ένα παράδειγμα της μια γλώσσα προγραμματισμού. Και προς το παρόν, να λάβει την πίστη ότι Αυτή η πρώτη γραμμή κώδικα - και ανά κωδικό, εννοώ μόνο κείμενο. Το κείμενο που θα μπορούσα να έχω κυριολεκτικά πληκτρολογήσει στο Microsoft Word, αν είχα το κατάλληλο λογισμικό για την συνέχεια κάνει κάτι με αυτό. Πηγαίου κώδικα προγραμμάτων, ο προγραμματισμός κώδικα, είναι πραγματικά ακριβώς το κείμενο, και φαίνεται διαφορετική ανάλογα με το τι γλώσσα που χρησιμοποιείτε, δεν σε αντίθεση με αγγλικά και Ισπανικά και τα ρωσικά όλα φαίνονται διαφορετικά όταν τους πληκτρολογείτε στο πληκτρολόγιό σας. Έτσι, αυτή την πρώτη γραμμή, προς το παρόν αναλάβει πίστη, απλά ανοίγει ένα γραφικό από το internet, ότι η θορυβώδης γραφικών μόλις είδαμε. Η επόμενη γραμμή είναι εδώ ένα παράδειγμα μιας loop, και είδαμε πράγματι την ίδια ορολογία στο βίντεο TED. Ένας βρόχος είναι κάτι που συμβαίνει και πάλι και ξανά, και ακόμα κι αν αυτό απολύτως φαίνεται δυσνόητη, με το λέξη-κλειδί για, και μερικές παρενθέσεις, και κάποιοι ερωτηματικά. Θα επανέλθω στο θέμα αυτό πριν από καιρό, αλλά βρόχος ουσιαστικά υπάρχει λέει το πρόγραμμα, επαναλάβετε σε όλους των εν λόγω θορυβώδη τελείες, από αριστερά προς δεξιά, επάνω προς τα κάτω. Επειδή στο τέλος της ημέρας, μια εικόνα αρέσει αυτό - και μπορείτε πραγματικά να είδος το δείτε σε αυτό τον προβολέα - είναι πραγματικά ακριβώς ένα πλέγμα από κουκκίδες. Έτσι, μπορούμε να εντοπίσουμε κάθε μία από τις τελείες από μια συντεταγμένη, x, y, και με αυτό πρόγραμμα, τώρα μπορούμε να αρχίσουμε να κάνουμε κάτι για αυτές τις στιγμές. Λοιπόν, τι Πάω να προχωρήσει εδώ και δεν είναι Πάω να κάνει κάποιες αλλαγές. Πρώτη Πάω να πάει μπροστά και να απαλλαγούμε του συνόλου των εν λόγω πρασινωπό και γαλαζωπό θόρυβο, και πάω να προχωρήσει και πληκτρολογήστε την ακόλουθη ομολογουμένως αινιγματική σύνταξη. im για την εικόνα. που μπλε στη θέση x, κόμμα, Τοποθεσία y, στο 0. Με άλλα λόγια, θέλω απλά να απενεργοποιήστε όλα τα μπλε τελείες σε αυτήν την εικόνα. Πάω να προχωρήσει τώρα και κάντε κλικ Αυτό Run / κουμπί Αποθήκευση, και θα ανακοίνωση σχετικά με την δεξιά πλευρά, η εικόνα που εμφανίζεται. Τώρα σούπερ πράσινο της, αλλά αυτό δεν είναι έκπληξη, γιατί κυριολεκτικά γύρισε off, κάνοντας μια 1 σε 0, το σύνολο των το μπλε σε αυτήν την εικόνα. Λοιπόν, τώρα ας το κάνουμε λίγο περισσότερο. im για την εικόνα, dot setGreen, x, y. Και αυτό σημαίνει απλώς επαναλήψεις από αριστερά προς τα δεξιά και στη συνέχεια πάνω προς τα κάτω. Γυρίστε μακριά ότι με αξία 0, καθώς και. Αποθήκευση. Και στον προβολέα, δεν μπορείτε πραγματικά να δείτε πραγματικά τίποτα καθόλου. Στην οθόνη του φορητού υπολογιστή μου, αν ομοτίμους σε μόλις με το σωστό τρόπο, μπορώ να δω ένα κομμάτι της εικόνα, επειδή είναι ακόμα κάποια κόκκινα εκεί. Αν έχετε ακούσει ποτέ το ακρωνύμιο RGB - κόκκινο, πράσινο, μπλε - αυτό είναι που παραπέμπει στην παρούσα σύνθεση μιας εικόνας χρησιμοποιώντας μόνο αυτά τα τρία χρώματα. Και τώρα, έχουμε πετιούνται όλα πράσινα, όλα μπλε, αλλά δεν υπάρχει πολύ κόκκινο. Επιτρέψτε μου λοιπόν να ξεκινήσουμε το κόκκινο. Πώς μπορώ να κάνω αυτό; Λοιπόν, πρώτα, θα πάω να ρωτήσω το πρόγραμμα αυτό ένα ερώτημα. Πάω να πάει μπροστά και ας το πούμε μια μεταβλητή, όπως ακριβώς και στην άλγεβρα. Μπορείτε να έχετε x ή y ή z. Πάω να δηλώσει μια μεταβλητή και να πω, να θέσει στη μεταβλητή αυτή, προσωρινά, η αξία των εικόνες getRed αξία σε x, y. Και πάλι, θα επανέλθουμε σε όλους της παρούσας λεπτομέρεια στο μέλλον. Αλλά για τώρα, μόλις λάβει την πίστη ότι Αυτή η γραμμή ζητεί από το πρόγραμμα, τι είναι το κόκκινο αξία σε x, y; Εκείνη τη συγκεκριμένη dot; Στη συνέχεια, Πάω να κάνω κάτι γι 'αυτό. Στη συνέχεια, Πάω να κάνω εικόνα dot σετ κόκκινο στο x, y, y, αλλά αυτή τη φορά Πάω να ώθηση που κάνοντας κόκκινα φορές, ας πούμε, 10. Έτσι ώστε να αυξηθεί κατά ένα συντελεστή 10. Επιτρέψτε μου σμίκρυνση τώρα και κλικ μπορούσε να τρέξει / Save. Και voila, που ήταν εκεί το σύνολο της του χρόνου, ακόμη και αν τα ανθρώπινα μάτια μας Δεν μπορούσε να δει αρκετά. Έτσι και πάλι, αυτό είναι τώρα πραγματικό κώδικα, ένα παράδειγμα μιας γλώσσας που θα έρθουν πίσω στην πριν από καιρό. Αλλά συνειδητοποιούν, ιδιαίτερα όσοι από εσάς χωρίς τέτοια εμπειρία, είναι αρκετά σύντομα ότι εμείς οι ίδιοι θα τη σύνταξη κώδικα, όπως ότι υπάρχει. Στην πραγματικότητα, ένα εργαλείο με το οποίο είστε όλοι κάπως εξοικειωμένοι, ίσως, είναι το CS50 τη δική της πορεία-shopping εργαλείο, το οποίο ήταν πραγματικά επανεκκίνηση αυτό το καλοκαίρι από κάποιους των ιδίων πρώην CS50 μαθητών του, τώρα ΤΡ. Έτσι, αυτό συμβαίνει να είναι ένα ενσωματωμένο ιστοσελίδα σε μια γλώσσα που ονομάζεται PHP. Χρησιμοποιεί μια βάση δεδομένων που ονομάζεται MySQL, τα πράγματα με την οποία θα πάρουμε στα χέρια μας βρώμικο αργότερα στο εξάμηνο. Όμως, είτε το πιστεύετε είτε όχι, ακόμα και κάτι όπως αυτό τελικά μειώνει το απλούστερη των βρόχων και των όρων και κλάδους, όπως αυτές που είδαμε μόνο ένα πριν από λίγο στο βίντεο TED. Τι σκέφτηκα να κάνω τώρα είναι μετοχής δεν απλά κάτι που το προσωπικό έχουν κάνει για την πανεπιστημιούπολη, αλλά μάλλον κάτι ένας πρώην φοιτητής - τρεις φοιτητές, στην πραγματικότητα - έκανε αυτό το παρελθόν έτος, Sierra, Daniel, και Sam, η τελευταία εκ των οποίων δεν είχε καμία προηγούμενη προγραμματισμού εμπειρία όταν πήρε CS50. Και για την τελική του έργου τους, παρουσίασε, στην έκθεση CS50, η εφαρμογή που ονομάζεται wrdly, το οποίο είναι ένα web-based πρόγραμμα για το οποίο έκαναν Αυτό το βίντεο που σκέφτηκα να μοιραστώ με να σας δώσει μια αίσθηση του τι ακριβώς είναι είναι δυνατόν μέχρι το τέλος του όρου. [Παίζει μουσική] DAVID MALAN: Αυτό είναι από το μηδέν Εβδομάδα μέχρι την 12η εβδομάδα το περασμένο έτος. [Χειροκρότημα] DAVID MALAN: Ως ένα teaser, πάρα πολύ, πραγματικά για να σας ανοίξουν την όρεξη είναι ό, τι είναι είναι δυνατόν, μπορεί να έχετε δει ήδη, ή μπορεί να δούμε σύντομα, market.cs50.net, ένα νέο εργαλείο ότι η ομάδα του μαθήματος έχει εργάζεται σε, αυτή τη φορά στο συνεργασία με το Φοιτητικό Harvard Φορείς, όπως ότι ξεκινώντας από φέτος και συνεχίζοντας ελπίζουμε σε αυτό ερχόμενο καλοκαίρι θα έχετε ένα πρότυπο ευκαιρία στην πανεπιστημιούπολη για να αγοράσουν και να πωλούν τα πράγματα που σας ενδιαφέρουν. Και με τη συνεργασία μέσω της HSA, θα είστε επίσης να είναι σε θέση να ρίξει αντικείμενα μακριά σε ένα από τα φυσικά καταστήματα HSA σε κάποια σημείο στο μέλλον, έτσι ώστε να proxy πράγματα, ειδικά καθώς αποφοιτήσει και δεν θέλουν απαραιτήτως να πετάξτε τα πράγματα, αλλά στην πραγματικότητα το πληρώσει διαβιβάσει σε λαούς που μπορεί να σας ακολουθήσει εδώ στην πανεπιστημιούπολη. Έτσι, περισσότερα για αυτό να έρθει. Αλλά λίγο πιο συγκεκριμένα, ένα εργαλείο που είναι να βγει από CS50 κατά τα τελευταία χρόνια, με την οποία κάποιοι από εσάς μπορεί να είναι οικεία και άλλοι από εσάς μπορεί να googling τώρα, σε CS50.net/2x, θα βρείτε ένα σύνδεσμο για μια επέκταση του Chrome η οποία είναι εκδηλωτικός για το πώς μπορείτε να χρησιμοποιούν JavaScript, η ίδια γλώσσα που χρησιμοποιείται με τον Πύργο του Άιφελ πριν από λίγο, για την εφαρμογή 2x ταχύτητα αναπαραγωγής για όλες τις Χάρβαρντ βίντεο iSites. Αυτό είναι κάτι που είναι χτισμένο στη δική αναπαραγωγής βίντεο CS50 του. Αλλά αυτό, επίσης, αν αρχίσετε να σκάψει στον πηγαίο κώδικα, τον οποίο και θα ευτυχώς διάθεση, θα δείτε πώς μπορείτε να λύσετε τα προβλήματα, ακόμη και έτσι, επιτάχυνση widgets σε δικτυακούς τόπους με οποία είστε ήδη εξοικειωμένοι. Έτσι, μια λέξη τώρα για την πορεία και προσδοκιών και ό, τι βρίσκεται μπροστά μας. Σε γενικές γραμμές, θα πράγματι συγκεντρώνονται εδώ Δευτέρα και Τετάρτη - αν και αυτή την Παρασκευή, θα μαζευτούμε γιατί της Εβδομάδας Shopping - 1:00-14:00, αν και μερικές φορές μέχρι τις 2:30. Δεδομένου ότι ίσως να θέλει ή πρέπει να λάβει κάποια τάξη στις 2:00 μ.μ. και μετά, ή ακόμα και πριν, συνειδητοποιούν την Φυσικά υποστηρίζει αυτό που ονομάζεται ταυτόχρονη εγγραφή, την οποία εμείς θα στηρίξει μια αίτηση προς το Διοικητικό Συμβούλιο διαφημίσεων και κάτοικος κοσμήτορες σας για λογαριασμό σας, εάν έχετε μια σύγκρουση κάπου σε αυτό το 1:00-2:30 περιοχή. Επικεφαλής της εν λόγω απευθείας σύνδεση URL για πρόσθετες λεπτομέρειες. Αλλά από την άποψη της δομής στήριξης που χαρακτηρίζει CS50, για τους φοιτητές περισσότερο και λιγότερο άνετα όσο, εμείς προσφέρουν ξεχωριστές διαδρομές των τμημάτων. Και αυτό είναι μια-δυο εβδομάδες μακριά, αλλά πριν από καιρό, θα σας ζητηθεί να το επίπεδο άνεσής σας. Είστε μεταξύ εκείνων λιγότερο άνετα, πιο άνετα, ή κάπου στο μεταξύ; Και θα έχουμε τρεις διαφορετικές κομμάτια που μπορούν να εξυπηρετήσουν ακριβώς αυτά τα ακροατήρια. Έτσι, σε κανένα σημείο του όρου θα πρέπει να σας ακόμη και να αισθανθείτε σαν να είστε ανταγωνίζονται ενάντια σε κάθε μαθητή με περισσότερες ή λιγότερο από ό, τι φόντο σας. Πράγματι, η πορεία είναι γραφτό να γίνει πολύ πιο συνεργατική και πολύ πιο ανοιχτό από αυτό. Όσον αφορά τα σύνολα πρόβλημα, θα βρει, επίσης, ότι εκτός από τη βασική έκδοση του προβλήματος του κάθε εβδομάδας που, υπάρχει συχνά ένα "hacker έκδοση "που είναι γραφτό να απευθύνονται στο 5% έως 10% περίπου από τις δημογραφικό που είναι πράγματι μεταξύ εκείνων πιο άνετα και θα ήθελα περισσότερα από μια πρόκληση από το κανονικό έκδοση της εν λόγω PSET αναμένει. Περισσότερες λεπτομέρειες σχετικά με αυτούς να είναι βρέθηκαν στο αναλυτικό πρόγραμμα. Αλλά και σε μπορεί να βρεθεί λεπτομέρειες για τα μαθήματα τελευταίες μέρες. Συνήθως το πρόβλημα θέτει οφείλονται στις Πέμπτες. Ωστόσο, μπορείτε να επεκτείνετε πολλά από σας προθεσμίες που αυτό το φθινόπωρο από την Πέμπτη μέχρι Παρασκευή απλά με την ικανοποίηση μας στα μισά του δρόμου, να το πω έτσι, απαντώντας σε λίγες προθέρμανση ερωτήσεις σε ορισμένες από το πρόβλημα της εβδομάδας σύνολα, που αυτόματα θα συνέχεια να σας δώσει ένα επιπλέον 24 ώρες. Θα μειωθεί επίσης χαμηλότερο σας βαθμολογία, σύμφωνα με την εξεταστέα ύλη. Για να σας δώσω μια αίσθηση του τι είναι το πρόβλημα σύνολα είναι - γιατί είναι όντως το πρόβλημα του μαθήματος ορίζει ότι τελικά καθορίζουν σχεδόν κάθε εμπειρία του μαθητή, πολύ περισσότερο από ό, τι διαλέξεις, πολύ περισσότερο από ό, τι τα τμήματα, περισσότερα ό, τι πιο οποιοδήποτε άλλο πτυχή του μαθήματος. Πέρυσι, για παράδειγμα, ξεκίνησε, όπως Θα ξεκινήσουμε αυτό το έτος, με Scratch. Ιδιαίτερα αυτή την Παρασκευή, θα χρησιμοποιήσουμε, για μόνο μίας ημέρας, μια γραφική γλώσσα προγραμματισμού, με την οποία θα ξεκινήσετε τον προγραμματισμό με το σύρσιμο και πέφτουν κομμάτια του παζλ που μόνο συναρμολόγηση φυσικά αν έχει νόημα να το πράξουν λογικά. Την επόμενη εβδομάδα, θα γρήγορα μετάβαση σε C, ένα αρκετά παλιό, αλλά πολύ μικρές και απλή γλώσσα που θα μας επιτρέψει να πραγματικά να πάει από 0 έως 60 κατά τη διάρκεια από λίγες εβδομάδες, και στη συνέχεια παρολί οι ίδιες δεξιότητες και τις γνώσεις του βασικές δομές προγραμματισμού σε υψηλότερου επιπέδου γλώσσες όπως η PHP, JavaScript, και όμως άλλοι ακόμα. Πέρυσι, η τρίτη PSET κατά τη διάρκεια ήταν εκείνη της κρυπτογραφίας, ένα domain-συγκεκριμένη εφαρμογή την οποία έχουμε αμφισβήτησε τους μαθητές για την εφαρμογή κάθε αριθμό των αλγόριθμους κρυπτογράφησης, τα προγράμματα με τα οποία να αγωνίζομαι ή να αποκωδικοποιήσει πληροφορίες, για την κρυπτογράφηση. Για την έκδοση του χάκερ, αντιθέτως, δώσαμε στους μαθητές hacker ένα αρχείο από έναν τυπικό υπολογιστή Unix περιέχει τα ονόματα χρήστη και κωδικούς πρόσβασης, ο τελευταίος των οποίων ήταν κρυπτογραφημένα, και αμφισβήτησε αυτές χάκερ μαθητές να αποκρυπτογραφήσει, όσο καλύτερα μπορούσαν, αυτοί οι κωδικοί πρόσβασης, ακόμα ότι ίδιο τομέα. Scramble, ένα παιχνίδι με το οποίο ορισμένα από εσάς είναι ίσως εξοικειωμένοι. Ένα κομμάτι εγκληματολογίας, όπου ζητάμε από τους μαθητές να ανακτήσει τα δεδομένα που είχαν αλλιώς διαγράφεται από τη δική μου ψηφιακή συμπαγή κάρτα λάμψης φωτογραφικής μηχανής, με στην πραγματικότητα γράφοντας λογισμικό για να καταλάβω, όπου ήταν τα μηδενικά και αυτοί στο ότι η ψηφιακή φωτογραφική μηχανή που προηγουμένως συνθέσει ένα γραφικό JPEG; Μια πρόκληση των ειδών του περασμένου έτους συμμετοχή γράφοντας τον ταχύτερο ορθογράφο είναι δυνατόν, ανταγωνίζονται ενάντια στους φίλους και συμμαθητές, αν θα ήθελαν. Εφαρμογή n Puff Huff, ένα πρόγραμμα συμπίεσης. Και τελειώνει μετά το εξάμηνο με CS50 Οικονομικών, μια web-based εφαρμογή με το οποίο μπορείτε να δημιουργήσετε ένα eTrade-σαν ιστοσελίδα για να αγοράζουν και να πωλούν τα αποθέματα, έτσι ώστε να μιλούν, με πραγματικά τραβώντας σχεδόν σε πραγματικό χρόνο Yahoo! εισαγωγικά Οικονομικών. Αυτό που δεν κάναμε πέρυσι ήταν ένα σύνολο πρόβλημα που παραμένει παρ 'όλα αυτά ένα από τα αγαπημένα. Αν έχετε πάει ποτέ σε shuttle.cs50.net, θα δείτε ένα χρήστη διεπαφή λίγο σαν αυτό. Αλλά πριν από δύο χρόνια, η τάξη εφαρμογή, χρησιμοποιώντας το Google Maps και το Google Earth plug-in και λίγο καταλαβαίνω με την οδήγηση γύρω από την πανεπιστημιούπολη, έτσι ώστε ο στόχος αυτού του παιχνιδιού ήταν, όπως μπορείτε να δείτε μερικά από τα πρόσωπα, είναι να οδηγήσετε γύρω από την πανεπιστημιούπολη ψάχνει για προσωπικού, οι υπότροφοι διδασκαλίας και ΑΠ, και Όταν το κάνετε, θα τους ωθούσε στο λεωφορείο σας. Κανένας από αυτούς που πράγματι φαίνεται να είναι εδώ, έτσι θα πάμε να εισάγετε ένα εξαπατήσει κώδικα. [Γέλια] DAVID MALAN: Εκεί πάμε. Εντάξει. Και εδώ τώρα είναι το προσωπικό δένεται σε όλη την πανεπιστημιούπολη. Και όπως μπορείτε να δείτε, στη δεξιά πλευρά πλευρά της οθόνης, το λεωφορείο έχει κενές θέσεις. Και ο στόχος ήταν να γράψω το κώδικα με την οποία για την προσομοίωση αυτή οδήγηση και μαζεύοντας και απόθεση εκτός των επιβατών. Εκείνο το ένα, επίσης, χρησιμοποιώντας μια γλώσσα ονομάζεται JavaScript. Έτσι, συνειδητοποιούν ότι τα προγράμματα σαν και αυτό θα είναι στην ίδια τροχιά μας αυτό έτος, καθώς και. Όσον αφορά, τώρα, της πρόσθετης στήριξης, έχουμε ώρες γραφείου. Όπως ίσως έχετε δει στο σπίτι σας τραπεζαρία ή στο Annenberg, θα είμαστε στην τραπεζαρία σπίτι αίθουσες τέσσερις νύχτες την εβδομάδα - Leverett, Pfoho, Eliot και Annenberg αυτό το έτος, 20:00 μ.μ. - 23.00μμ. Και τι σκεφτήκαμε να κάνουμε αυτό το έτος είναι κάτι λίγο διαφορετικό. Αν έχετε ακούσει φήμες πέρυσι ότι ήταν λίγο πολύ άγχος, αυτό ώρες γραφείου έτους, όπως θα περιγράψουμε την επόμενη εβδομάδα, θα είναι πιο οργανικά, σύμφωνα με την οποία κατά την άφιξη, θα αποστέλλονται σε ένα συγκεκριμένο τραπέζι όπου περιμένουν πολλά μέλη του προσωπικού, και εμείς θα κάνουμε τα πράγματα πολύ πιο οργανικά. Δεν υπάρχει πλέον ουρά, όχι περισσότερο iPad, αλλά μάλλον έχει πιο στενή συζητήσεις γύρω από ένα τραπέζι μόλις οκτώ ή έτσι ώστε οι μαθητές, έτσι ώστε να προσέγγιση η αίσθηση του τι άλλο θα ήταν μια πολύ μικρότερη τάξη. Προσφέρουμε, επίσης, ότι αυτά τα πράγματα ονομάζονται περάσματα, βίντεο γυρίστηκε στην μετατεθεί κατά ένα από τη διδασκαλία του μαθήματος υποτρόφων, Zamyla, στο οποίο βόλτες σας μέσα από το πρόβλημα της εβδομάδας σύνολα, προσφέροντας συμβουλές και κόλπα για το προκλήσεις που βάζουν μπροστά. Και αντιστρόφως, μετά από σύνολα πρόβλημα είναι οφείλεται, κατά το τρέχον έτος, θα κυκλοφορήσει, μικρό κλιπ καλέστε νεκροψίες που πραγματικά σας καθοδηγήσει λύσεις εκπρόσωπο, τόσο καλή και κακό, μέσω του οποίου μπορείτε να συμπεράνουμε πως θα μπορούσατε να έχετε ή θα πρέπει να έχουν εφαρμοστεί δική σας λύση. Και τι θα προσφέρει για πρώτη φορά το τρέχον έτος, καθώς, ιδιαίτερα για τους φοιτητές που κάνουν χρήση του μαθήματος άλλα πόρους, αλλά παρ 'όλα αυτά αγωνίζονται όλα πάρα πολύ, η πορεία το ίδιο θα ζεύγος τους φοιτητές, όπως το επιτρέπουν οι πόροι, με τους δασκάλους, έτσι ώστε έχετε μια πολύ πιο οικεία ευκαιρία από το σπίτι αίθουσες φαγητού επιτρέπουν την one-on-one βοήθεια. Τώρα, μια τελική ματιά σε μερικά από τα παιχνίδια τέλος στο θέαμα. Ίσως να είναι εξοικειωμένος με το CS50 Hackathon. Λοιπόν, έρχεται αυτό το Δεκέμβριο, από τις 8:00 Μ.μ. έως 7:00 π.μ., στην αρχή της Ανάγνωση Περίοδο, θα είναι μια ευκαιρία για να συγκεντρωθούν με τους συμμαθητές - Αυτό θα είναι περίπου 21:00 - κατά την οποία θα βουτήξει τελικά σας υλοποίησης του έργου, παράλληλα με συμμαθητές, φίλους, και τα τρόφιμα. Αυτό θα είναι περίπου 01 π.μ., όταν η πρώτη παρτίδα των τροφίμων έφτασε. Και αυτό είναι περίπου 04 πμ ότι συγκεκριμένο έτος στο CS50 Hackathon. Αλλά η πραγματική κορύφωση του μαθήματος είναι γραφτό να το Fair CS50, μια πανεπιστημιούπολη σε όλη την Έκθεση της δικής τελικών σχεδίων σας, με το οποίο η οικογένεια και οι φίλοι είναι όλοι κάλεσε, ως recruiters μας και τους φίλους μας από τη βιομηχανία. Αυτό, για παράδειγμα, είναι μια γεύση από το 2.000 και πλέον ανθρώπους που έχουν παρακολουθήσει τελευταία χρόνια. Εκφράσεις όπως αυτό δεν είναι ασυνήθιστο, και ομοίως να κάνετε σας συμμαθητές χαρούν τα πράγματα έχετε καταφέρει. Και στην πραγματικότητα, προς το σκοπό αυτό, έχουμε μια start-of-διάρκειας εκδήλωση, καθώς και. Αν τα πράγματα όπως αυτό έκκληση σε σας, ή είστε τουλάχιστον περίεργος ως προς αυτό αυτό, γνωρίζουμε ότι μια νέα παράδοση του Φυσικά ονομάζεται CS50 Day παζλ. Και αυτό καθιερώθηκε ένα ζευγάρι των χρόνια πίσω για να πραγματικά να σηματοδοτήσει στην πανεπιστημιούπολη ότι η επιστήμη των υπολογιστών δεν είναι για προγραμματισμό, και δεν είναι βέβαιο ότι για την αγκαλιάζει μόνο οι φοιτητές οι οποίοι έχουν προηγούμενη εμπειρία. Είναι πραγματικά για την επίλυση των προβλημάτων γενικότερα. Και έτσι Puzzle Day, κατά τη διάρκεια των τελευταίων χρόνια τώρα, έχει εξελιχθεί σε ένα ωραίο συνεργασία με τους φίλους μας στο Facebook, σύμφωνα με την οποία θα υπάρξει fabulous βραβεία και πίτσα κατά μήκος του ποταμού σε το i-lab το ερχόμενο Σάββατο. Επικεφαλής σε αυτήν τη διεύθυνση URL με δύο ή τρεις τους φίλους, αν θα θέλατε να συμμετέχετε σε αυτή τη νέα παράδοση. Έτσι θα ήθελα να σας ζητήσω να κρατήσει ένα πράγμα στο μυαλό, και έχουμε μόνο ένα δύο λεπτά κλιπ στο οποίο να κλείσει σήμερα. 73% είναι ο αριθμός να θυμόμαστε. Κέικ, επίσης, θα σας περιμένουν έξω από αυτό transept όπως διακόψουμε σε μόλις ένα δυο στιγμές, η οποία είναι μια παράδοση του μαθήματος, καθώς και. Αλλά αυτό είναι το βασικό απόσπασμα από το διδακτέα ύλη μαθήματος που πρέπει να θυμάστε. Αυτό που τελικά έχει σημασία σε αυτό το μάθημα Δεν είναι τόσο πολύ πού θα καταλήξουμε σε σχέση με τους συμμαθητές σας, αλλά πού σας, στην Εβδομάδα 12, καταλήγουν σε σχέση με τον εαυτό σας στην Εβδομάδα 0. Αλλά η γεύση που θα σας αφήσει σήμερα εδώ είναι αυτό το τελευταίο εδώ από την ίδια Daniel μας, που έκανε την wrdly βίντεο πριν από λίγο. Σας αφήνω με αυτή την αναλαμπή το τι μέλλει γενέσθαι. Και καθώς το κάνουμε αυτό, αν θα μπορούσαμε να έχουμε CS50 προσωπικό από το μπροστινό μέρος του δωματίου να έρθει σε μέχρι το στάδιο να ζωγραφίσει όλα το περισσότερο από μια οπτική εικόνα ως προς τι σας περιμένει αυτό το έτος - να πάρει δύσκολη. Θα ολοκληρώσω με αυτό εδώ στην οθόνη. [Παίζει μουσική] DAVID MALAN: Αυτό είναι CS50. [MUSIC - MATT & KIM, "Είναι εντάξει"] ΟΜΙΛΗΤΗΣ 1: I love CS50 περισσότερο από τις γάτες. ΟΜΙΛΗΤΗΣ 2: Whoaaaa! [Γέλια] DAVID MALAN: Αυτό, λοιπόν, είναι CS50. Θα σας δούμε την Παρασκευή. [Χειροκροτήματα και επευφημίες] Αφηγητής: Στην επόμενη CS50, μια σκηνή demo δεν πάει όπως έχει προγραμματιστεί. DAVID MALAN: Θέλουμε να βρούμε Mike Smith σε αυτό το βιβλίο του τηλεφώνου. Λοιπόν, αυτό είναι το ένστικτό σας; Θα ήθελα να πηδούν περίπου στη μέση της ο τηλεφωνικός κατάλογος, ματιά κάτω, βλέπουμε ότι Είμαι στο M, και τώρα ξέρω ότι ο Mike Smith δεν είναι προς τα αριστερά. Αυτός πρέπει να είναι προς τα δεξιά. Και σε αυτό το σημείο, θα μπορεί κυριολεκτικά δάκρυ - σε αυτό το σημείο, μπορούμε κυριολεκτικά δάκρυ - σε αυτό το σημείο, μπορούμε μεταφορικά δάκρυ τον τηλεφωνικό κατάλογο στη μέση. [UKELELE γρατζούνισμα]