1 00:00:09,136 --> 00:00:13,056 >>: दाऊद आपका स्वागत है, मेरा नाम है दाऊद Malan और इस CS50 है. 2 00:00:13,056 --> 00:00:16,246 और नहीं, यह आपकी विशिष्ट उच्च विद्यालय कंप्यूटर 3 00:00:16,246 --> 00:00:17,346 विज्ञान पाठ्यक्रम. 4 00:00:17,346 --> 00:00:19,276 इस कोर्स में एक छोटे से कुछ खास है. 5 00:00:19,636 --> 00:00:20,936 है और यह नहीं है क्योंकि मैं इसे अध्यापन कर रहा हूँ. 6 00:00:20,936 --> 00:00:23,066 क्योंकि यह एक है , हम सोचने के लिए की तरह, 7 00:00:23,066 --> 00:00:27,206 उन दुर्लभ पाठ्यक्रम है कि वास्तव में अपने मस्तिष्क इतना squeezes 8 00:00:27,206 --> 00:00:28,466 और अपने इतना अनुसूची 9 00:00:28,466 --> 00:00:31,756 कि तुम सेमेस्टर के अंत तक सही मायने में होशियार लग रहा है. 10 00:00:31,926 --> 00:00:33,206 इसलिए कि जिस तरह से मुझे लगा था, 11 00:00:33,206 --> 00:00:36,476 जब मैं अपने आप को इस ली 1996 में वापस कोर्स है. 12 00:00:36,476 --> 00:00:37,646 मैं एक सरकारी प्रमुख था 13 00:00:37,646 --> 00:00:42,806 यहाँ समय Mather हाउस में रह रहे हैं. 14 00:00:44,006 --> 00:00:44,346 और, मैं 15 00:00:44,346 --> 00:00:44,413 [] जयकार 16 00:00:44,413 --> 00:00:46,356 के रूप में अन्य रहे हैं, वहाँ पाँच अन्य. 17 00:00:46,856 --> 00:00:50,886 तो, मैं एक सरकारी था समय में प्रमुख. 18 00:00:50,886 --> 00:00:51,876 और मैं किसी सरकार प्रमुख था 19 00:00:51,876 --> 00:00:53,246 क्योंकि मैं हमेशा चाहता हूँ इतिहास पसंद आया. 20 00:00:53,246 --> 00:00:55,196 मैं संवैधानिक पसंद उच्च विद्यालय में जी. 21 00:00:55,196 --> 00:00:58,256 और हां, तो मैं इस रास्ते पर बंद सेट नए कर मैं क्या वर्ष 22 00:00:58,316 --> 00:01:00,246 अच्छा, मैं क्या कर पता था कि मैं पसंद आया. 23 00:01:00,466 --> 00:01:02,376 और मैं हमेशा किया गया था एक geek के एक बिट, 24 00:01:02,516 --> 00:01:04,186 मैं हमेशा babbled था कंप्यूटर के साथ. 25 00:01:04,186 --> 00:01:06,846 लेकिन, अपने आप को, शायद मैं विडंबना यह है कि बीती बातों की जांच में, 26 00:01:06,846 --> 00:01:09,276 मैं हमेशा लोगों को देखा था जो कंप्यूटर विज्ञान ले जा रहे थे 27 00:01:09,276 --> 00:01:12,906 अपने उच्च विद्यालय में मेरे असली geeks के रूप में दोस्त हैं. 28 00:01:13,206 --> 00:01:16,646 और फिर भी, अंततः sophomore था, साल मैं इस छोटे पाठ्यक्रम ले 29 00:01:16,646 --> 00:01:19,726 कहा जाता है जो वास्तव में CS50 मुझे डर था दूर अपने ही 30 00:01:19,726 --> 00:01:20,346 नए साल. 31 00:01:20,536 --> 00:01:22,156 और मैं एक उपयोगकर्ता था समय सहायक. 32 00:01:22,636 --> 00:01:25,006 तो, मैं निश्चित रूप से पहले से ही योग्य, कम से कम 33 00:01:25,006 --> 00:01:27,726 उन के बीच में होना है, उन geeks 34 00:01:27,726 --> 00:01:29,946 मैं कौन का मज़ाक उड़ाया हाई स्कूल में. 35 00:01:30,326 --> 00:01:31,216 लेकिन, मैं डर गया था. 36 00:01:31,326 --> 00:01:34,966 वहाँ है, यह इस प्रतिष्ठा था समय और अब भी शायद पर 37 00:01:34,966 --> 00:01:37,616 भाग में है कि यह एक था, यह कोर्स एक डरावना था. 38 00:01:37,616 --> 00:01:38,396 यह काम का एक बहुत कुछ था. 39 00:01:38,396 --> 00:01:41,566 यह कठिन है और अभी तक था, यह एक है उन बातों के बारे जहाँ, मेरे भगवान, 40 00:01:42,026 --> 00:01:44,176 छाल दूर था उसके काटने से भी बदतर. 41 00:01:44,176 --> 00:01:46,446 मैंने पाया खुद sophomore साल, पहली बार, 42 00:01:46,746 --> 00:01:48,266 वास्तव में होमवर्क मज़ा ढूँढने. 43 - 00:01:48,506> 00:01:51,026 और मैं नहीं कह रहा हूँ यह तो बस आप को इस कोर्स पिच. 44 00:01:51,026 --> 00:01:52,956 यह था एक वास्तविक मेरे लिए वसूली. 45 00:01:53,236 --> 00:01:55,416 अब, मैं एक पर लगता है, बात है, मैं लाइन पार किया 46 00:01:55,416 --> 00:01:59,276 सच geekdum करने के लिए मैं जहाँ वास्तव में इस्तेमाल के लिए तत्पर हैं 47 00:01:59,276 --> 00:02:01,736 शुक्रवार की रात के लिए है क्योंकि मैं सामने कर्ल सकता 48 00:02:01,736 --> 00:02:05,176 मेरी छोटी मैकबुक और है CS50 समस्या सेट पर काम करते हैं. 49 00:02:05,496 --> 00:02:08,466 मैं तो, उस बिंदु पर, मुझे लगता है स्पष्ट था लाइन पार. 50 00:02:08,466 --> 00:02:10,996 और, इस कोर्स में हमारा लक्ष्य आप सभी को बारी नहीं है 51 00:02:10,996 --> 00:02:13,926 उस व्यक्ति में, लेकिन, सिर्फ कहने के लिए 52 00:02:13,926 --> 00:02:16,676 कि वहाँ एक छोटा सा कुछ है इस कोर्स के बारे में खास, 53 00:02:16,676 --> 00:02:18,776 एक छोटे से कुछ खास कंप्यूटर विज्ञान के बारे में 54 00:02:18,776 --> 00:02:20,186 विशेष रूप से सामान्य में इन दिनों. 55 00:02:20,186 --> 00:02:22,496 और, हम और अधिक आदत है सभी प्रौद्योगिकियों में मिला है, 56 00:02:22,736 --> 00:02:24,766 हम अधिक खिलौने ले के आसपास हमारी जेब में 57 00:02:24,766 --> 00:02:25,936 कि खुद कर रहे हैं कंप्यूटर. 58 00:02:25,936 --> 00:02:28,826 मेरा मतलब है, मेरे iPhone वास्तव में है एक उच्च प्रदर्शन कंप्यूटर 59 00:02:28,936 --> 00:02:30,616 की तुलना में मेरे लैपटॉप कॉलेज में था. 60 00:02:30,806 --> 00:02:33,496 आप बधिया का एक बहुत कुछ कर सकते इन बातों के साथ बातें. 61 00:02:33,496 --> 00:02:34,786 और अब, के अधिकांश हमें इस कमरे में, 62 00:02:34,956 --> 00:02:38,146 शायद अन्य लोगों का उपयोग सॉफ्टवेयर, अन्य लोगों के उपकरण, 63 00:02:38,366 --> 00:02:41,156 अन्य लोगों के समाधान समस्याओं के कारण हम चले 64 00:02:41,286 --> 00:02:43,236 iTunes करने के लिए, हम डाउनलोड app की दुकान से कुछ app 65 00:02:43,236 --> 00:02:45,006 वाल्ला और हम क्या कर सकते हैं कुछ सच में स्वच्छ. 66 00:02:45,196 --> 00:02:46,476 लेकिन, अंत के द्वारा इस सेमेस्टर, 67 00:02:46,946 --> 00:02:50,106 तुम व्यक्ति को हो सकता कि समस्या को हल कर रहे हैं. 68 00:02:50,106 --> 00:02:53,316 आप को सुलझाने के व्यक्ति को हो सकता कुछ समस्या है, उस अनुप्रयोग के निर्माण, 69 00:02:53,636 --> 00:02:55,526 कि सॉफ्टवेयर का टुकड़ा है, उस उपकरण है कि या तो,, 70 00:02:55,526 --> 00:02:58,476 सिर्फ एक मेरे amuses, आप amuses. 71 00:02:58,476 --> 00:03:01,156 उदाहरण के लिए, नियंत्रण, कहते हैं, अपने iTunes पुस्तकालय 72 00:03:01,156 --> 00:03:02,946 अपने मकान के साथ से स्पष्ट रूप से एक app 73 00:03:03,116 --> 00:03:06,476 कि पहले से ही आप कर सकते हैं या मौजूद है खोजने शटल अधिक अनुसूचियां 74 00:03:06,476 --> 00:03:07,566 आसानी से उदाहरण के लिए. 75 00:03:07,806 --> 00:03:09,666 तो वास्तव में, एक की बहुत पहले मैंने किया चीजें 76 00:03:09,666 --> 00:03:13,036 CS50 ले जा रहा था के बाद फिर, यह शायद 77 00:03:13,036 --> 00:03:15,596 इस बिंदु पर शुक्रवार रात और शनिवार की रात, 78 00:03:15,596 --> 00:03:17,526 इस अवसर था समय 79 00:03:17,526 --> 00:03:19,156 जहां हार्वर्ड था चल शटल बसें. 80 00:03:19,156 --> 00:03:21,496 और, इस दिन के लिए, वे अभी भी अनुसूचियां है छपी. 81 00:03:21,526 --> 00:03:23,336 लेकिन, वहाँ नहीं वास्तव में था ढूँढने के लिए ऑनलाइन का अर्थ है 82 00:03:23,336 --> 00:03:24,436 बाहर जब अगली शटल था. 83 00:03:24,666 --> 00:03:26,486 अब, मुझे परवाह नहीं थी, क्योंकि यद्यपि मैं रहता 84 00:03:26,486 --> 00:03:29,486 Mather में मैं उन में से नहीं था जो आम तौर शटल लिया. 85 00:03:29,486 --> 00:03:31,606 लेकिन, मैं दोस्तों के एक बहुत कुछ था Pfoho में उदाहरण के लिए. 86 00:03:31,606 --> 00:03:33,906 उनमें से एक ने मुझसे पूछा और, मैं एक बिंदु पर में लगता है. 87 00:03:33,906 --> 00:03:33,973 [] जयकार 88 00:03:33,973 --> 00:03:35,306 ठीक है Pfoho बेहतर जाहिरा तौर पर Mather से अधिक है. 89 00:03:35,416 --> 00:03:37,846 तो, मेरे एक दोस्त की तरह 90 00:03:37,846 --> 00:03:40,566 के बारे में सोच मुझे मिल गया हो सकता है मैं कर सकता हूँ किस तरह एक छोटे से प्रोग्राम लिखने 91 00:03:40,566 --> 00:03:42,646 जांच के मेरे दोस्तों की मदद शटल कार्यक्रम. 92 00:03:42,646 --> 00:03:45,736 और इस तरह पैदा हुआ था awkwardly शटल लड़का नाम 93 00:03:46,496 --> 00:03:49,786 शब्दकोश है कि के इस टुकड़े कुछ नंबर के लिए आस पास रुके 94 00:03:49,786 --> 00:03:51,726 वर्ष में कम से कम के बीच में upperclassmen के कुछ. 95 00:03:51,726 --> 00:03:54,686 समय, यह इस गया था छोटे कमांड लाइन कार्यक्रम 96 00:03:54,956 --> 00:03:56,156 समान में Dos के लिए आत्मा. 97 00:03:56,156 --> 00:03:57,746 इसमें चल रहा था एक UNIX वातावरण. 98 00:03:57,916 --> 00:03:59,336 इसलिए, यह बहुत ही सेक्सी बिल्कुल नहीं था. 99 00:03:59,336 --> 00:04:01,266 तुम सिर्फ एक जोड़े को लिखा आदेश और इसे आप से कहा 100 00:04:01,266 --> 00:04:02,286 जब शटल थे. 101 - 00:04:02,506> 00:04:05,056 खैर, इन दिनों यह एक थोड़ा और अधिक परिष्कृत. 102 00:04:05,226 --> 00:04:07,826 और, यह वास्तव में प्रतिनिधित्व किया ठीक प्रकार के 103 00:04:07,826 --> 00:04:10,146 परियोजनाओं की है कि छात्रों को इस पाठ्यक्रम के अंत में 104 00:04:10,146 --> 00:04:11,526 अप शर्तों अंत कर रही है. 105 00:04:11,526 --> 00:04:15,276 तो, यह चार संस्करण कुछ है, बाद में 15 साल Shuttleboy की. 106 00:04:15,676 --> 00:04:17,826 गूगल मैप्स लगता है थोड़ा धीमा वहाँ जा रहा है. 107 00:04:17,826 --> 00:04:20,386 लेकिन, आप कौन है की उन लोगों के लिए वर्ग के बाद यहाँ से बाहर निकलना 108 00:04:20,746 --> 00:04:23,086 और जाओ, कहते हैं, से मेमोरियल हॉल और जरूरत 109 00:04:23,086 --> 00:04:24,626 अप करने के लिए जाना है, कहते हैं, ट्रैक्टर के लिए. 110 00:04:24,906 --> 00:04:28,016 खैर, आप या तो छोड़ सकते हैं दो मिनट में अगर द्वारा, 111 00:04:28,016 --> 00:04:29,616 यह सच नहीं है सिर्फ तुम्हारे लिए अभी तक काम करना, 112 00:04:29,866 --> 00:04:32,856 या आप के रूप में कई अन्य तुम जैसे हो सकता है के रूप में विकल्प. 113 00:04:32,856 --> 00:04:35,286 और, जल्द ही आ रहा है, हम कर सकते हैं CS50 से इस पिच, 114 00:04:35,286 --> 00:04:37,756 यह वही होगा एसएमएस द्वारा क्षमता. 115 00:04:37,976 --> 00:04:39,756 आप पाठ Shuttleboy कर सकते हैं फोन के माध्यम से. 116 00:04:39,756 --> 00:04:40,936 आप Shuttleboy कहते हैं. 117 00:04:41,486 --> 00:04:43,106 फ़ोन नंबर है CS50 इस वर्ष, ठीक है, 118 00:04:43,266 --> 00:04:47,156 यह आश्चर्यजनक था उपलब्ध है, 617-बग CS50. 119 00:04:47,666 --> 00:04:49,276 तो, कि जल्द ही शुरुआत करेंगे. 120 00:04:49,756 --> 00:04:50,786 तो यह सिर्फ फोन नहीं करते 121 00:04:50,786 --> 00:04:52,896 क्योंकि मैं अभी तक है कमाई के लिए डांटा, 122 00:04:53,016 --> 00:04:54,926 अभी यह कराई जा रही है 123 00:04:54,926 --> 00:04:57,386 हमारी प्रणाली सिर शिक्षण के लिए साथी है सेल फोन. 124 00:04:57,616 --> 00:04:59,076 हां, तो आप बस उसे मिलेगा यदि आप प्रश्न हैं 125 00:04:59,076 --> 00:05:00,436 शटल कार्यक्रम के बारे में अब. 126 00:05:00,656 --> 00:05:02,356 लेकिन, कि जल्द ही लागू किया जाना. 127 00:05:03,546 --> 00:05:06,026 तो, अन्य बातों के, वास्तव में, कि हम अपने आप को इस गर्मी खर्च 128 00:05:06,026 --> 00:05:09,236 पर वास्तव में करने के लिए तैयारी इस सेमेस्टर एक पूरी गुच्छा था 129 00:05:09,236 --> 00:05:11,746 अन्य समस्याओं की है कि हमें हल करना चाहता था. 130 00:05:11,786 --> 00:05:13,726 उदाहरण के लिए, वहाँ एक है सामान की पूरी बहुत कुछ है कि हो जाता है 131 00:05:13,726 --> 00:05:15,566 इस परिसर में पर किसी दिए गए दिन पर. 132 00:05:15,566 --> 00:05:17,666 और वास्तव में, एक और डाला वैसे, वहाँ एक पूरी बहुत कुछ है 133 00:05:17,666 --> 00:05:18,976 इस परिसर में सामान पर जाने का 134 00:05:18,976 --> 00:05:20,846 कि मैं निश्चित रूप से कभी नहीं का लाभ ले लो. 135 00:05:21,066 --> 00:05:23,516 और, फिर भी अब मैं कर रहा हूँ के साथ ऊपर हावी कितनी बातें 136 00:05:23,516 --> 00:05:24,926 उस पर जा रहे हैं परिसर, 137 00:05:25,176 --> 00:05:27,076 मैं अब भी लगता है कभी नहीं करने के लिए समय लगता है. 138 00:05:27,356 --> 00:05:29,706 लेकिन, यहां तक कि वाल्ला, वहाँ है, CS50 व्याख्यान. 139 00:05:29,706 --> 00:05:32,766 कि तुम कहाँ है, तो यह था एक, यह एक कार्यक्रम में हम ने लिखा था 140 00:05:32,966 --> 00:05:34,816 सभी के समग्र परिसर में घटनाओं. 141 00:05:34,816 --> 00:05:36,566 और यह किया गया है कुछ है कि अन्य छात्रों 142 00:05:36,566 --> 00:05:38,466 यह एक ही पाठ्यक्रम में है अपने दम पर घेरने की कोशिश की. 143 00:05:38,686 --> 00:05:40,606 और, हम साथ काम कर रहा हूँ परिसर में अन्य संस्थाओं 144 00:05:40,606 --> 00:05:41,846 वास्तव में बनाने के लिए यह होता है. 145 00:05:41,846 --> 00:05:44,426 लेकिन CS50 करने के लिए बिंदु यह शब्द है कि सभी 146 00:05:44,426 --> 00:05:47,086 हम इन छोटे प्रोग्राम किया है पर काम कर रहा है कि क्या यह एक 147 00:05:47,366 --> 00:05:50,326 या aggregating के लिए कि क्या एक हार्वर्ड के सभी समाचार 148 00:05:50,326 --> 00:05:51,906 सब एक जगह में गूगल समाचार, 149 00:05:52,096 --> 00:05:54,166 इन सब बातों के लिए जा रहे हैं करने के लिए एपीआई क्या है कहा जाता है, 150 00:05:54,656 --> 00:05:56,686 अनुप्रयोग प्रोग्रामिंग इंटरफेस. 151 00:05:56,686 --> 00:05:59,306 और यह सिर्फ कल्पना है क्षमता के लिए बात 152 00:05:59,516 --> 00:06:01,646 अन्य लोगों को बताने की, इस कमरे में लोगों को, 153 00:06:01,846 --> 00:06:03,956 वास्तव में कुछ कर रही कि एक ही डेटा के साथ. 154 00:06:03,956 --> 00:06:05,646 तो, शब्दों के द्वारा अंत में, यदि आप तय 155 00:06:05,646 --> 00:06:08,306 करने के लिए अंतिम परियोजना लागू समाचार या घटनाओं से संबंधित 156 00:06:08,306 --> 00:06:10,206 या नक्शे, हम अच्छी तरह से, कम से एक कोर्स के रूप में कम से कम, 157 00:06:10,206 --> 00:06:12,846 करेगा करना है कि सभी को और अधिक इस वर्ष आप प्रदान करके आसान 158 00:06:12,846 --> 00:06:15,506 एक अंतरफलक के साथ, एक तरह से समारोह की, तो बात करने के लिए, 159 - 00:06:15,506> 00:06:19,436 सॉफ्टवेयर है कि आप में उपयोग कर सकते हैं अपनी खुद की परियोजनाओं के ऊपर जाने के लिए 160 00:06:19,436 --> 00:06:22,016 परे और जहां छात्रों, शायद, बार अतीत में चला गया है 161 00:06:22,206 --> 00:06:24,556 क्योंकि इस रूपरेखा है उनके लिए जगह में नहीं किया गया. 162 00:06:24,556 --> 00:06:26,906 और फिर, यह सब शुरू किया, मेरे लिए कम से कम, 163 00:06:27,246 --> 00:06:29,706 कुछ 15 साल पहले Shuttleboy कार्यान्वयन. 164 00:06:29,706 --> 00:06:31,636 मैं तो मेरे ईमेल Pfoho में दोस्त केन. 165 00:06:31,636 --> 00:06:33,206 अरे, मैं तुम्हें क्या लगता है कहा? 166 00:06:33,206 --> 00:06:33,936 यह उपयोगी है? 167 00:06:33,936 --> 00:06:36,446 वह इसे पर बाहर भेज दिया Pfoho खुला सूची और वाल्ला, 168 00:06:36,446 --> 00:06:38,676 इन सभी वर्षों के बाद मैं कर रहा हूँ जाहिरा तौर पर अभी भी दुहना 169 00:06:38,976 --> 00:06:39,686 इस परियोजना. 170 00:06:39,686 --> 00:06:42,106 और इसके बारे में साफ बात है, और इस जहाँ भी एक कोर्स 171 00:06:42,106 --> 00:06:44,306 इस तरह से और इंजीनियरिंग में कंप्यूटर विज्ञान, मुझे लगता है, 172 00:06:44,306 --> 00:06:47,136 एक छोटे से खास है, यह है कि, काम करता है जब आप अपने घर है 173 00:06:47,136 --> 00:06:49,666 और जब आप अपनी परियोजनाओं करना इस कोर्स में, आप जानते हैं, 174 00:06:49,666 --> 00:06:52,656 उनमें से बहुत से, हाँ, तुम डाल देंगे अलग नहीं है और वास्तव में फिर से इस्तेमाल करते हैं. 175 00:06:52,656 --> 00:06:54,286 लेकिन, इसके बारे में कुछ है, तुम जाएगा. 176 00:06:54,346 --> 00:06:57,186 और वहाँ है यह वास्तव में मुझे कम से कम शक्तिशाली बात है,, 177 00:06:57,406 --> 00:06:59,656 यह वास्तव में रोमांचक बात है, जब आप कुछ करना 178 00:06:59,856 --> 00:07:03,446 अन्य लोगों को वास्तव में देखभाल और, अन्य लोगों को न सिर्फ मुस्कान है 179 00:07:03,446 --> 00:07:05,036 और पॅट पर अपने जाने के पीछे और तब सॉर्ट 180 00:07:05,036 --> 00:07:05,766 अपने स्वयं के जीवन के बारे में. 181 00:07:05,766 --> 00:07:08,976 वे वास्तव में तुम क्या उपयोग किया अपने स्वयं के जीवन में भी अगर यह 182 00:07:08,976 --> 00:07:11,766 मूर्ख या के रूप में कुछ के लिए साधारण बस खोजने के रूप में 183 00:07:11,766 --> 00:07:12,816 जब वे यहां से बाहर निकल सकते हैं 184 00:07:12,816 --> 00:07:14,726 पकड़ने के लिए अगले ट्रैक्टर के लिए शटल. 185 00:07:14,726 --> 00:07:17,516 तो, शब्दों के द्वारा अंत में, कि एक इस पाठ्यक्रम के लिए लक्ष्यों की; 186 00:07:17,516 --> 00:07:20,196 तुमसे लोगों को सशक्त बस कुछ समस्या की पहचान क्या 187 00:07:20,196 --> 00:07:22,306 यह परिसर या पर उम्मीद है कि अच्छी तरह से परिसर से परे है, 188 00:07:22,646 --> 00:07:25,666 और वास्तव में अपने स्वयं के उपयोग के कौशल, अपने मन और हल 189 00:07:25,666 --> 00:07:28,816 कुछ में है कि समस्या तकनीकी रूप से भाग. 190 00:07:29,216 --> 00:07:32,026 तो, यह भी एक पाठ्यक्रम है के रूप में हम में कहना पाठ्यक्रम 191 00:07:32,026 --> 00:07:35,366 और पाठ्यक्रम अधिकारी वर्णन है कि आपको सिखाता है कि कैसे 192 00:07:35,366 --> 00:07:37,416 सोचने के लिए और यह आपको सिखाता है कि कैसे 193 00:07:37,416 --> 00:07:39,286 समस्याओं को सुलझाने कुशलतापूर्वक और अधिक. 194 00:07:39,536 --> 00:07:40,356 खैर, क्या मतलब है? 195 00:07:40,356 --> 00:07:42,476 खैर, जब आप 600 है अपनी जेब में megahertz 196 00:07:42,476 --> 00:07:44,356 या तीन gigahertz घर पर अपने डेस्क के तहत, 197 00:07:44,646 --> 00:07:47,056 तुम में से एक बहुत से हल कर सकते हैं सिर्फ समस्याओं कुशलतापूर्वक 198 00:07:47,096 --> 00:07:48,336 कतरनी जानवर बल द्वारा. 199 00:07:48,616 --> 00:07:50,526 लेकिन, वहाँ की एक बहुत कुछ है इस दुनिया में समस्याओं, 200 00:07:50,766 --> 00:07:54,156 यह खोज कर रहा है चाहे, कहते हैं, नेटवर्क है Facebook 201 00:07:54,156 --> 00:07:55,756 या गूगल के माध्यम से इंटरनेट, 202 00:07:55,756 --> 00:07:58,706 कि यह कोई फर्क नहीं पड़ता कि कैसे जल्दी अपने विशेष कंप्यूटर है, 203 00:07:58,706 --> 00:08:00,866 वहां नर्क में कोई रास्ता नहीं है आप कर रहे हैं खोज अरबों के लिए जा रहा 204 00:08:00,866 --> 00:08:03,886 जल्दी से वेब पृष्ठों की जब तक आप वास्तव में इस दृष्टिकोण 205 00:08:03,886 --> 00:08:05,496 समझदारी से समस्या है. 206 00:08:05,496 --> 00:08:06,916 तुम बस नहीं खोज करते हैं, उदाहरण के लिए, 207 00:08:06,916 --> 00:08:09,876 सभी वेब की एक विशाल सूची पृथ्वी पर ऊपर से पृष्ठों 208 00:08:09,876 --> 00:08:11,876 नीचे की ओर देख संबंधित कुछ करने के लिए 209 00:08:11,876 --> 00:08:14,776 जो कुछ खोज शब्दों के लिए आप कर रहे हैं उम्मीद है कि गूगल के लिए तलाश 210 00:08:14,776 --> 00:08:17,006 और संभवतः गूगल और Facebook और किसी भी 211 00:08:17,006 --> 00:08:19,476 इन बड़े संस्थाओं में से एक है स्मार्ट सोच बहुत से लोगों को 212 00:08:19,476 --> 00:08:21,856 के बारे में वे कैसे कर सकते हैं डेटा अधिक जल्दी मिल जाए, 213 00:08:22,106 --> 00:08:24,626 वे कैसे जानकारी प्रक्रिया कर सकते हैं और अधिक कुशलतापूर्वक, और, 214 00:08:24,656 --> 00:08:27,196 वे कर सकते हैं कि कैसे सिर्फ आम तौर पर वापस अधिक जल्दी परिणाम 215 00:08:27,456 --> 00:08:28,266 इतनी है कि आप अभी तक कर सकते हैं, 216 00:08:28,266 --> 00:08:30,546 और अधिक दिलचस्प बातें इन उपकरणों के साथ. 217 00:08:30,546 --> 00:08:33,916 और हां, तो हम क्या मतलब है, यद्यपि, द्वारा कैसे, कैसे लोगों को उपदेश 218 00:08:33,916 --> 00:08:36,526 के लिए और अधिक ध्यान से लगता है, algorithmically अधिक. 219 00:08:36,756 --> 00:08:39,686 खैर, इस छोटे से दृश्य हमेशा के लिए पर अच्छी तरह से जाना प्रतीत होता है. 220 00:08:39,686 --> 00:08:40,816 और, यह करने के लिए यादगार लगता है. 221 00:08:40,926 --> 00:08:43,126 और मैं यह भी पूछा गया था तो बस एक पूर्व छात्र द्वारा कल 222 00:08:43,126 --> 00:08:45,466 ओह तुम क्या करने जा रहे हैं phonebook फिर से बात. 223 00:08:45,466 --> 00:08:48,896 मैं बहुत ज्यादा स्थान पर ठीक है कि हम का निर्माण होगा फैसला 224 00:08:48,896 --> 00:08:49,646 एक phonebook बात. 225 00:08:49,646 --> 00:08:52,266 और उसने मुझसे पूछा आप जब यह आधा सही में फाड़े, 226 00:08:52,636 --> 00:08:55,006 मैं गया था की तरह अच्छी तरह से तकनीकी तौर पर हाँ हम इसे छमाही में फाड़े लेकिन नहीं 227 00:08:55,006 --> 00:08:58,056 रास्ते में, कंप्यूटर में मैं विज्ञान में सक्षम हो जाएगा रास्ता 228 00:08:58,056 --> 00:08:59,366 करने के लिए छमाही में इस बात को आंसू. 229 00:08:59,366 --> 00:09:02,426 और हां, तो यहाँ समस्या थी कि हम कुछ समय के लिए प्रस्तुत किया. 230 00:09:02,426 --> 00:09:03,336 तो, यहाँ phonebook है. 231 00:09:03,336 --> 00:09:05,366 यह मिल गया है कम से कम एक पर हजार या तो पृष्ठों. 232 00:09:05,616 --> 00:09:08,296 और हाथ पर आसान लक्ष्य असली दुनिया के लिए बहुत खोजने के लिए है, 233 00:09:08,616 --> 00:09:09,806 कहते हैं, यहाँ एक व्यक्ति. 234 00:09:09,806 --> 00:09:12,586 तो, माइक स्मिथ, पिछले एस के साथ शुरू तो नाम है, 235 00:09:12,586 --> 00:09:14,416 मैं एक ठेठ मैं मानव हूँ, इस फोन की किताब उठाओ. 236 00:09:14,416 --> 00:09:17,156 और वहाँ से बाहर किसी को भी, जो तुम, एक विशिष्ट व्यक्ति होता है, 237 00:09:17,156 --> 00:09:19,856 माइक के लिए खोज शुरू करते हैं स्मिथ, जानने जाहिर नहीं 238 00:09:19,856 --> 00:09:21,816 अग्रिम में क्या पृष्ठ पर वह वास्तव में है. 239 00:09:22,346 --> 00:09:26,096 ठीक है, तो आप मोटे तौर पर जाना बीच में ठीक है. 240 00:09:26,096 --> 00:09:29,956 और कहानी में इस बिंदु पर, मैं में हूँ शायद एन या एम है, 241 00:09:29,956 --> 00:09:32,006 तुम्हें पता है, लगभग आधी phonebook के माध्यम से. 242 00:09:32,356 --> 00:09:34,646 बाहर वर्षगांठ, पिछली बार मैंने किया इस उदाहरण मैं किसी तरह मिली 243 00:09:34,646 --> 00:09:36,056 खुद अनुरक्षण अनुभाग में. 244 00:09:36,056 --> 00:09:38,646 इसलिए, यह वास्तव में समान रूप से नहीं है एम के माध्यम से एक के बीच संतुलित 245 00:09:38,646 --> 00:09:41,646 और जेड के माध्यम से एन लेकिन, आज, हम वास्तव में कर रहे हैं,, में है एम, 246 00:09:41,956 --> 00:09:43,116 ठीक है, इसलिए अब मैं पर हूँ एम के. 247 00:09:43,176 --> 00:09:44,576 लेकिन मेरा takeaway क्या अब बस 248 00:09:44,576 --> 00:09:46,006 के रूप में एक सामान्य मानव बंद गली से? 249 00:09:46,046 --> 00:09:47,306 मैं अगले कहाँ जाते हो माइक स्मिथ के लिए. 250 00:09:48,026 --> 00:09:51,736 [अश्रव्य] और हां, तो बस शायद इस आधे पर, सही, 251 00:09:51,736 --> 00:09:55,886 क्योंकि एस एम. के बाद आता है और हां, तो यहाँ दृश्य नाटक निहित है. 252 00:09:55,886 --> 00:09:57,896 कि वास्तव में नहीं है यह आधा सही में फाड़. 253 00:09:57,896 --> 00:09:58,956 मुझे धोखा दिया है की तरह केन्द्र नीचे. 254 00:09:59,236 --> 00:10:02,986 लेकिन, अब हम जानते हैं कि माइक कि आधे में कम से कम नहीं है. 255 00:10:03,086 --> 00:10:06,196 हम सचमुच फेंक कर सकते हैं समस्या दूर आधा. 256 00:10:06,196 --> 00:10:08,676 और मैं समस्या के साथ छोड़ रहा हूँ कि मौलिक अभी भी 257 00:10:08,676 --> 00:10:10,906 एक ही बात है, माइक मिल एक बहुत बड़ी पुस्तक में स्मिथ. 258 00:10:11,096 --> 00:10:12,996 लेकिन, समस्या यह है बड़ी के रूप में अब आधा. 259 00:10:12,996 --> 00:10:15,666 अगर यह एक हजार पृष्ठों की थी 500 से पहले, अब यह हो गया है. 260 00:10:15,866 --> 00:10:17,416 तुम्हें पता है, मैं कर सकता हूँ फिर वही बात. 261 00:10:17,596 --> 00:10:20,426 मैं recursively या की तरह कर सकते हैं बार बार एक ही बात करते हैं. 262 00:10:20,696 --> 00:10:24,856 अब मैं पर काफी नहीं हूँ टी. और इसलिए पर एस मैं कर रहा हूँ, 263 00:10:24,856 --> 00:10:26,246 ओह, मैं एक छोटे से बहुत दूर चला गया. 264 00:10:26,246 --> 00:10:30,126 लेकिन, अब मुझे पता है कि माइक सही करने के लिए नहीं, वहाँ क्या हो रहा है 265 00:10:30,126 --> 00:10:32,216 कुछ वर्ग के किसी दिन जहां मैं अभी बात नहीं बांध आंसू कर सकते हैं, 266 00:10:32,216 --> 00:10:32,486 मैं शर्त लगा लो. 267 00:10:32,726 --> 00:10:34,666 लेकिन अब, मुझे पता है वह है नहीं सही करने के लिए. 268 00:10:34,896 --> 00:10:36,646 तो, अब समस्या quartered किया गया है. 269 00:10:36,646 --> 00:10:39,706 तो, मैं एक से चला गया है हजार 500-250 पृष्ठों. 270 00:10:39,706 --> 00:10:41,976 और फिर, अगर आप जारी तर्क, गणित, जारी 271 00:10:42,236 --> 00:10:44,136 मैं यह काट रहा हूँ आधे में आधे में समस्या है,, 272 00:10:44,416 --> 00:10:47,896 अंत तक आधे में मैं भी हूँ खोजने के लिए नहीं जा रही किसी भी स्मिथ 273 00:10:47,896 --> 00:10:51,196 सभी में, की संभावना नहीं है, या मैं जा रहा हूँ करने के लिए एक के लिए मैं देख रहा हूँ लगता है. 274 00:10:51,316 --> 00:10:53,476 लेकिन, कि, तो फिर, begs सवाल है, यह किसी भी बेहतर है 275 00:10:53,476 --> 00:10:57,606 के दृष्टिकोण से अधिक सिर्फ साधारण कह रही है, तुम एक, नहीं, बी, पता है, 276 00:10:57,606 --> 00:11:00,566 नहीं, सही करने के लिए बाएँ से शुरू पुस्तक के माध्यम से रैखिक जा रहा है? 277 00:11:00,756 --> 00:11:01,776 खैर, सहज हाँ. 278 00:11:01,916 --> 00:11:03,246 यह एक बहुत तेजी से हो रहा है. 279 00:11:03,526 --> 00:11:04,326 लेकिन, बहुत कम कैसे? 280 00:11:04,856 --> 00:11:09,056 अच्छा, अगर मैं एक हजार पृष्ठ है फोन की किताब या चलो 1024 कहते हैं 281 00:11:09,056 --> 00:11:10,746 उन आप के लिए जो दो की शक्तियों की तरह, 282 00:11:10,966 --> 00:11:13,446 कितनी बार मैं हो सकता है इस समस्या को विभाजित है 283 00:11:13,446 --> 00:11:16,326 आधे में खोजने से पहले श्री स्मिथ? 284 00:11:17,176 --> 00:11:17,276 >> दस. 285 00:11:17,686 --> 00:11:18,826 >>: दाऊद तो, ठीक है दस. 286 00:11:18,826 --> 00:11:22,746 अगर आप 1024 पृष्ठों की है और उन्हें आधे में आधे में विभाजित है, 287 00:11:22,746 --> 00:11:24,926 आधे में, आधे में, मैं कर दस बार जिसका अर्थ है मुझे जाना 288 00:11:24,926 --> 00:11:27,346 1000 के पन्नों से व्यक्ति को मैं देख रहा हूँ 289 00:11:27,346 --> 00:11:29,096 बस के लिए दस पृष्ठों में बदल जाता है. 290 00:11:29,096 --> 00:11:31,076 और कहा कि स्वच्छ की तरह है, लेकिन तुम्हें पता है, अगर आपको लगता है 291 00:11:31,076 --> 00:11:32,426 इसके बारे में तुम क्या कर रहा हूँ अपने जीवन के सभी यह. 292 00:11:32,426 --> 00:11:33,246 ऐसा लगता है कि नाटकीय नहीं है. 293 00:11:33,386 --> 00:11:35,826 लेकिन अब, कि phonebook बोस्टन के लिए बस नहीं है, 294 00:11:35,826 --> 00:11:38,036 इसके लिए पूरे अमेरिका या पूरी दुनिया 295 00:11:38,036 --> 00:11:40,616 और इस बात की है इसे में पृष्ठों के अरबों, 296 00:11:40,706 --> 00:11:43,436 तो एक phonebook कल्पना चार अरब पन्नों के साथ. 297 00:11:43,776 --> 00:11:47,176 कितने पृष्ठ बदल जाता है मैं हूँ करने के लिए ज़्यादा से ज़्यादा क्या करना है जा रहा 298 00:11:47,176 --> 00:11:50,196 एक में माइक स्मिथ मिल चार अरब पृष्ठ phonebook? 299 00:11:50,196 --> 00:11:52,196 >> प्रवेश करें दो आधार है. 300 00:11:52,446 --> 00:11:53,606 >>: दाऊद तो हाँ, अगर आप दयालु हैं 301 00:11:53,606 --> 00:11:55,406 गणित प्रकार के यह दो आधार लॉग इन करें. 302 00:11:55,406 --> 00:11:56,936 लेकिन, अगर आप चार लगता है बिलियन करने के लिए दो अरब 303 00:11:56,936 --> 00:11:58,626 एक अरब है, तो एक आधा एक अरब. 304 00:11:58,626 --> 00:12:01,556 मेरा मतलब है, कि वास्तव में whittles ही चला जाता है 305 00:12:01,556 --> 00:12:02,706 नीचे सुंदर झकना जल्दी. 306 00:12:02,706 --> 00:12:05,796 वास्तव में 32 halvings साथ phonebook के भी 307 00:12:05,796 --> 00:12:08,326 चार अरब से, मैं हूँ प्राप्त करने के लिए नीचे एक पृष्ठ. 308 00:12:08,326 --> 00:12:10,226 और कहा कि जब इस सामान शक्तिशाली हो जाता है, मुझे लगता है. 309 00:12:10,226 --> 00:12:12,146 कि जब इन विचारों को मजबूर हो 310 00:12:12,146 --> 00:12:14,436 जब आप एक चार हो सकते हैं अरब पृष्ठ समस्या 311 00:12:14,676 --> 00:12:18,376 और 32 चरणों में आप पा सकते हैं व्यक्ति आप के लिए देख रहे हैं. 312 00:12:18,476 --> 00:12:21,746 और इसलिए, कि हम क्या मतलब है, जब हम कहते हैं कि तुम सीख जाओगे कैसे 313 00:12:21,746 --> 00:12:23,986 के लिए और अधिक ध्यान से लगता है, algorithmically अधिक है, 314 00:12:23,986 --> 00:12:25,776 समझदारी से अधिक समस्याओं को सुलझाने के बारे में. 315 00:12:25,986 --> 00:12:28,266 और विशाल कर रहे हैं जब रिटर्न आप वास्तव में यह कर सकते हैं, 316 00:12:28,266 --> 00:12:29,856 और फिर, यह करने के लिए Googles के बिंदु 317 00:12:29,856 --> 00:12:31,756 दुनिया के Facebooks जो विलासिता है 318 00:12:31,756 --> 00:12:33,126 विशाल डेटासेट होने का. 319 00:12:33,456 --> 00:12:35,486 आप करने के लिए दृष्टिकोण है इन समस्याओं 320 00:12:35,486 --> 00:12:38,726 अन्यथा इस तरह से यह है में बस नहीं जा रही करने के लिए काम करते हैं. 321 00:12:39,136 --> 00:12:43,016 खैर, क्या क्या किया छात्र वास्तव में याद करते हैं? 322 00:12:43,676 --> 00:12:46,436 मैं, हम बातें करते हैं कि जैसे एक छोटा सा कर रहे हैं कभी कभी मूर्खतापूर्ण 323 00:12:46,436 --> 00:12:47,676 करने के लिए किनारे उतारने की तरह 324 00:12:47,676 --> 00:12:50,166 अन्यथा क्या है नई सामग्री का एक बहुत. 325 00:12:50,166 --> 00:12:53,166 और ऐसा है, वह वास्तव में इस है, पूर्व छात्र मुझे इस लिंक भेजा 326 00:12:53,166 --> 00:12:56,016 जो मैं आगे चला गया, बस के लिए kicks और फिर इसे पछतावा 327 00:12:56,016 --> 00:12:58,306 अंत में खींचा Utube पर यहाँ ऊपर. 328 00:12:58,306 --> 00:13:01,366 तो, मैंने सोचा कि मैं क्या हिस्सा होगा एक गैर कंप्यूटर वैज्ञानिक अर्थ 329 00:13:01,366 --> 00:13:03,736 जब वह एक phonebook आँसू छमाही में. 330 00:13:04,516 --> 00:13:25,959 [हंसना] 331 00:13:26,459 --> 00:13:47,902 [शांति] 332 00:13:48,402 --> 00:14:09,845 [अश्रव्य] 333 00:14:10,346 --> 00:14:15,396 >> आप 200 से अधिक पृष्ठों को पता है, अच्छा साफ लाइन, वैध आंसू. 334 00:14:15,696 --> 00:14:17,696 [हंसना] 335 00:14:17,996 --> 00:14:22,186 >>: दाऊद, इसलिए मुझे लगता है, अपने तरीके से भी काम करता है. 336 00:14:22,186 --> 00:14:27,216 तो, मैं क्या के इस बाहर हो गया बेशक उन सभी साल पहले है 337 00:14:27,426 --> 00:14:30,316 हाँ, Shuttleboy, और हाँ तो कंप्यूटर विज्ञान में एक डिग्री, 338 00:14:30,346 --> 00:14:31,976 और हाँ फिर एक पीएचडी कंप्यूटर विज्ञान में. 339 00:14:31,976 --> 00:14:32,976 और कहा कि नहीं हम क्या करने की कोशिश कर रहे हैं 340 00:14:32,976 --> 00:14:34,706 छात्रों के लिए सबसे बारी में इस पाठ्यक्रम में. 341 00:14:34,706 --> 00:14:37,186 इस में आप में से अधिकांश कोर्स के लिए जाना नहीं जा रहे हैं 342 00:14:37,186 --> 00:14:39,056 पर एक प्रमुख कंप्यूटर विज्ञान में. 343 00:14:39,056 --> 00:14:40,686 तुम में से कुछ हो सकता है छोटी, लेकिन कुछ के लिए 344 00:14:40,686 --> 00:14:42,146 आप इस का हो जाएगा एक टर्मिनल कोर्स है. 345 00:14:42,146 --> 00:14:44,856 और कहा कि बिल्कुल ठीक है क्योंकि इस पाठ्यक्रम है, वास्तव में, 346 00:14:44,856 --> 00:14:47,956 एक तरह से संरचित है जहाँ भी अगर तुम सिर्फ अपने बकाया भुगतान 347 00:14:47,956 --> 00:14:49,986 कई महीनों के लिए और क्या तुम सच में ध्यान 348 00:14:49,986 --> 00:14:53,746 और तुम सच के रूप में ले ज्यादा इस कोर्स से बाहर के रूप में आप कर सकते हैं, 349 00:14:53,996 --> 00:14:56,256 तुम, वास्तव में, हो जाएगा अच्छी तरह से वापस जाने के लिए सुसज्जित 350 00:14:56,336 --> 00:14:59,056 अर्थशास्त्र की अपनी दुनिया के लिए, जीव विज्ञान, मनोविज्ञान, 351 00:14:59,056 --> 00:15:02,326 लागू गणित, और वास्तव में क्या अंततः है का उपयोग करना 352 00:15:02,516 --> 00:15:04,806 दिलचस्प है एक पाठ्यक्रम के रूप में के रूप में हम conceptually उम्मीद 353 00:15:05,016 --> 00:15:07,426 के रूप में यह मौलिक है व्यावहारिक. 354 00:15:07,876 --> 00:15:11,056 और वह भी कुछ है कि बात यह है शायद एक बिट खोजने के लिए दुर्लभ. 355 00:15:11,056 --> 00:15:13,306 मैंने सोचा कि मैं कुछ हिस्सा था टिप्पणी है कि छात्रों को 356 00:15:13,306 --> 00:15:16,736 पिछले इस में डाल गिरने से पिछले साल जब पूछा क्यू गाइड 357 00:15:16,736 --> 00:15:18,766 क्या आप की तरह होता है के बारे में छात्रों के लिए भविष्य बताओ. 358 00:15:18,766 --> 00:15:20,386 वैसे, अगर आप पहले से ही नहीं है इन टिप्पणियों में देखा, 359 00:15:20,386 --> 00:15:23,166 एक छात्र ने कहा कि इस कोर्स एक उचित मात्रा में ले जाएगा 360 00:15:23,166 --> 00:15:23,786 अपने समय के लिए. 361 00:15:24,066 --> 00:15:26,966 लेकिन, अगर आप अपने काम में डाल एक पूरी नई दुनिया, एक पूरे, 362 00:15:26,966 --> 00:15:30,156 अगर आप काम डाला, तुम अगर में काम ठीक लगा, 363 00:15:30,156 --> 00:15:33,906 यह तो उसके व्याकरण मेरा नहीं है, इसलिए यदि आप रखा, काम में डाल दिया, 364 00:15:33,906 --> 00:15:36,176 एक नई पूरी दुनिया आप को खुलेगा. 365 00:15:36,176 --> 00:15:39,276 मैं कितना अद्भुत केवल 12 हफ्तों में सीखा है. 366 00:15:39,736 --> 00:15:42,606 एक अन्य छात्र ने लिखा, आप बेहतर यह लो 367 00:15:42,606 --> 00:15:43,686 या आप इसे पछतावा जा रहे हैं. 368 00:15:44,056 --> 00:15:48,196 एक और लिखा है, एक छोटे से अधिक साफ है, यह आपके गधा किक जाएगा 369 00:15:48,196 --> 00:15:49,296 और तुम बहुत अच्छा महसूस कर छोड़ देते हैं. 370 00:15:49,886 --> 00:15:53,596 और फिर अंत में, यह एक है शायद कुछ मैं ही कर सकते हैं 371 00:15:53,596 --> 00:15:56,976 लिखित रूप में दिखाने के लिए, लेकिन, यहाँ नीचे से दूसरा. 372 00:15:57,516 --> 00:16:03,626 [हंसना] 373 00:16:04,126 --> 00:16:06,436 तो, मुझे यकीन नहीं है अगर आप कई दोस्त हैं 374 00:16:06,436 --> 00:16:08,866 हम कौन इस पाठ्यक्रम लिया, लेकिन किस तरह की क्षति के एक बहुत कुछ किया 375 00:16:08,866 --> 00:16:10,716 पिछले वर्ष के छात्रों के लिए. 376 00:16:10,806 --> 00:16:14,166 हम शुरुआत में शुरू की, कई व्याख्यान, कुछ quizzes, 377 00:16:14,166 --> 00:16:16,426 कुछ समस्याओं के सेट, LOLcats की इस धारणा. 378 00:16:17,416 --> 00:16:19,066 आप नहीं देख सकते हैं क्या मैं यहाँ देख सकते हैं 379 00:16:19,066 --> 00:16:21,306 लेकिन तुम एक पल में देखेंगे एक जवान आदमी खुश बिल्ली का नाम 380 00:16:21,956 --> 00:16:25,076 जो नेता की है तथाकथित LOLcat. 381 00:16:25,076 --> 00:16:27,116 इस एक में से एक है इंटरनेट बेवकूफ आगे 382 00:16:27,116 --> 00:16:30,546 कि मैं सच में लगता है विरोधाभास 383 00:16:30,546 --> 00:16:32,996 इन दोनों के बीच सज्जनों यहाँ और अब हम क्या 384 00:16:32,996 --> 00:16:34,126 स्क्रीन पर शायद है. 385 00:16:34,126 --> 00:16:34,193 [हंसना] 386 00:16:34,193 --> 00:16:40,856 एक सबसे अनुपयुक्त के तिथि करने के लिए इस थिएटर के उपयोग करता है. 387 00:16:41,024 --> 00:16:44,604 और, हम क्यों नहीं एक छोटे से और अधिक वास्तविक एक छोटे से अधिक व्यक्तिगत 388 00:16:44,604 --> 00:16:48,494 वास्तव में हल के लिए इस धारणा एक और अधिक कुशलता से समस्या है. 389 00:16:48,494 --> 00:16:51,614 एक दिन एक साधारण समस्या किसी भी स्कूल के लिए नीचे बैठने के लिए है 390 00:16:51,694 --> 00:16:53,734 या खड़े हो जाओ और शुरू छात्रों को गिनती, 391 00:16:53,734 --> 00:16:55,054 एक तरह की सही रोल को बुलाओ. 392 00:16:55,054 --> 00:16:57,044 खैर, सबसे अनुभवहीन फिर भी, लेकिन 393 00:16:57,044 --> 00:17:01,054 बहुत सही दृष्टिकोण है कि एक शिक्षक ले सकता है एक, दो है, 394 00:17:01,104 --> 00:17:03,454 तीन, चार, पांच, छह, सात, 395 00:17:03,454 --> 00:17:05,014 और हम यहाँ होगी काफी कुछ समय है. 396 00:17:05,234 --> 00:17:07,274 तो, क्या एक सीमांत पर यह भी सुधार 397 00:17:07,274 --> 00:17:08,374 कि तुम हो सकता है एक बच्चे के रूप में किया है? 398 00:17:08,374 --> 00:17:09,904 तुम लोगों को तेजी से कैसे की गणना करते हैं? 399 00:17:11,064 --> 00:17:12,894 और, पढ़ना शुरू नहीं मेरे अपने निर्देश से दूर? 400 00:17:13,324 --> 00:17:14,404 तुम क्या होता है एक बच्चे के रूप में किया है? 401 00:17:14,774 --> 00:17:18,484 सही गिनती शुरू twos, पसंद तो मैं सुंदर दो में अच्छा कर रहा हूँ, 402 00:17:18,484 --> 00:17:19,914 चार, छह, आठ, दस, 12. 403 00:17:20,104 --> 00:17:22,094 तो, कि कुछ है दिलचस्प सही है. 404 00:17:22,154 --> 00:17:24,634 तो, एक का कितना सुधार है कि वहाँ? 405 00:17:26,074 --> 00:17:27,444 इसलिए, यह स्पष्ट रूप से दो में से एक कारक. 406 00:17:27,444 --> 00:17:29,004 यह मुझे बहुत समय के रूप में आधे से लेता है. 407 00:17:29,184 --> 00:17:31,234 लेकिन, तुम्हें पता है, हम करेंगे के रूप में इस सेमेस्टर भर मिल जाए, 408 00:17:31,584 --> 00:17:34,754 बड़ा सौदा है, की तरह अपनी तेजी सिर्फ एक पहलू द्वारा समय चल रहा है 409 00:17:34,754 --> 00:17:36,674 दो सब नहीं है कि दिलचस्प 410 00:17:36,674 --> 00:17:38,904 क्योंकि यहाँ अनुरूप कंप्यूटर में दुनिया है 411 00:17:38,904 --> 00:17:41,314 एक CPU है कि मैं कर रहा हूँ मैं एक हूँ अच्छी तरह बिल्ली, कंप्यूटर, 412 00:17:41,314 --> 00:17:43,604 अगर मैं सिर्फ 12 इंतजार महीने, 18 महीने, 413 00:17:43,604 --> 00:17:46,374 मैं सिर्फ कंप्यूटर होगा स्वभाव से संख्या से सक्षम है, 414 00:17:46,374 --> 00:17:48,174 मैं gigahertz की है में मेरे सक्षम होने के लिए 415 00:17:48,174 --> 00:17:49,884 में लोगों की गिनती इस कमरे में तेजी से. 416 00:17:50,094 --> 00:17:54,064 तो, के इन प्रकार, इन प्रकार कारक जैसे रैखिक speedups की 417 00:17:54,064 --> 00:17:57,064 तीन में से दो कारक, भी की दस, कौन परवाह करता है के कारक? 418 00:17:57,064 --> 00:17:59,334 ठीक है, हम फेंक कर सकते हैं समस्या पर हार्डवेयर. 419 00:17:59,334 --> 00:18:00,354 हम चीजों को बाहर प्रतीक्षा कर सकते हैं. 420 00:18:00,354 --> 00:18:01,764 हम तेजी से मशीनों को विकसित कर सकते हैं. 421 00:18:01,994 --> 00:18:04,544 लेकिन, बौद्धिक, हाँ, उस की तरह था चालाक 422 00:18:04,604 --> 00:18:06,564 लेकिन यह सच नहीं था मौलिक परिवर्तन 423 00:18:06,564 --> 00:18:07,124 समस्या है. 424 00:18:07,124 --> 00:18:09,814 मैं अभी भी बाएँ से जा रहा हूँ ठीक है, आगे पीछे करने के लिए. 425 00:18:10,034 --> 00:18:11,404 यह वास्तव में एक ही एल्गोरिथ्म है. 426 00:18:11,404 --> 00:18:12,924 लेकिन, मैं प्रस्ताव है कि हम बेहतर कर सकते हैं. 427 00:18:12,924 --> 00:18:14,654 हम इस से होशियार कर सकते हैं 428 00:18:14,654 --> 00:18:18,104 and do fundamentally a faster implementation. 429 00:18:18,104 ---> 00:18:19,204 But, to demonstrate this, 430 00:18:19,494 ---> 00:18:21,444 we need you to humor us for just a moment. 431 00:18:21,684 ---> 00:18:22,684 And it's at this point 432 00:18:22,684 ---> 00:18:25,164 where it'll be me talking less and you talking more. 433 00:18:25,164 ---> 00:18:27,704 But I do need you to execute step one together, 434 00:18:27,704 ---> 00:18:30,164 which is if you would humor us, please stand up. 435 00:18:31,634 ---> 00:18:34,494 The directions here on the board, you know are, okay, 436 00:18:34,494 ---> 00:18:36,514 a couple of you have to sit down. 437 00:18:37,284 ---> 00:18:41,404 Those of you in back, there we go, alright. 438 00:18:41,804 ---> 00:18:42,824 Thank you. 439 00:18:42,824 ---> 00:18:44,554 So, the program here is before you. 440 00:18:44,554 ---> 00:18:46,814 You are now the computers executing this program. 441 00:18:46,814 ---> 00:18:48,934 It's fairly self explanatory at this point. 442 00:18:48,934 ---> 00:18:50,754 Yes, you should be number one. 443 00:18:51,184 ---> 00:18:53,644 Get it? Right, many of you are probably thinking this already 444 00:18:53,644 ---> 00:18:54,994 anyway, first freshman year. 445 00:18:55,484 ---> 00:18:58,794 So, think to yourself, you're the number one. 446 00:18:58,794 ---> 00:19:01,574 So, step three here, pair off with someone standing, 447 00:19:01,764 ---> 00:19:03,784 add your two numbers together and adopt that sum 448 00:19:03,784 ---> 00:19:05,754 as your new number and we'll do a sanity check. 449 00:19:06,494 ---> 00:19:41,524 [ Noises from crowd ] 450 00:19:42,024 ---> 00:19:47,184 Do you know how many we have? 451 00:19:47,184 ---> 00:19:47,314 >> [Inaudible] 452 00:19:47,314 ---> 00:19:47,464 >> No [inaudible]. 453 00:19:47,784 ---> 00:19:57,014 >> We need to have an answer key. 454 00:19:57,014 ---> 00:19:57,214 [ Silence ] 455 00:19:57,214 ---> 00:19:57,954 >> Yeah. 456 00:19:58,494 ---> 00:20:17,534 [ Noises from crowd ] 457 00:20:18,034 ---> 00:20:20,454 >> David: At this point the algorithm should be 458 00:20:20,454 ---> 00:20:21,724 winding down. 459 00:20:22,494 ---> 00:20:32,544 [ Noises from crowd ] 460 00:20:33,044 ---> 00:20:46,024 Maybe we should have gone with my approach after all. 461 00:20:46,274 ---> 00:20:46,534 >> 43. 462 00:20:47,104 ---> 00:20:49,864 >> 163. 463 00:20:50,814 ---> 00:20:56,274 >> David: Ooh arithmetic in front of 300 plus people. 464 00:20:56,274 ---> 00:20:56,341 [ Laughter ] 465 00:20:56,341 ---> 00:21:00,964 What's our final tally going to be? 466 00:21:00,964 ---> 00:21:01,514 >> 180. 467 00:21:01,514 ---> 00:21:01,581 [ Laughter ] 468 00:21:01,581 ---> 00:21:02,474 >> 1,200. 469 00:21:03,934 ---> 00:21:08,224 >> 386. 470 00:21:09,344 ---> 00:21:14,114 >> David: 386, and are you the last one standing? 471 00:21:14,114 ---> 00:21:16,404 Is that everyone? 472 00:21:16,644 ---> 00:21:17,314 Do you know the answer? 473 00:21:17,314 ---> 00:21:17,524 >> What? 474 00:21:17,954 ---> 00:21:22,794 >> David: Do you know what the answer is? 475 00:21:22,924 ---> 00:21:25,194 We didn't bring an answer key with us so, 476 00:21:26,114 ---> 00:21:31,034 386 is in fact precisely the right answer for the first time. 477 00:21:31,517 ---> 00:21:33,517 [ Cheering ] 478 00:21:34,000 ---> 00:21:36,000 [तालियां] 479 00:21:36,484 ---> 00:21:37,024 That's okay. 480 00:21:37,024 ---> 00:21:37,091 [तालियां] 481 00:21:37,091 ---> 00:21:39,154 Very, very nicely done. 482 00:21:39,154 ---> 00:21:40,734 So, what was the takeaway 483 00:21:40,734 ---> 00:21:42,554 because that definitely felt a little slower 484 00:21:42,554 ---> 00:21:43,584 than my very simple 485 00:21:43,584 ---> 00:21:46,204 but nonetheless very correct approach of just going onesies 486 00:21:46,204 ---> 00:21:48,784 and twosies and just getting it done with from left to right. 487 00:21:49,104 ---> 00:21:50,664 But, what did we really just do there? 488 00:21:50,664 ---> 00:21:53,454 Well, if there were roughly, let's say, 400 of you standing 489 00:21:53,454 ---> 00:21:56,184 at one point, and then half of you, very quickly, 490 00:21:56,184 ---> 00:21:57,784 from what I could tell, wanted to sit down. 491 00:21:57,784 ---> 00:22:01,554 So, half of you sat down, we went from 400 to 200 then 492 00:22:01,554 ---> 00:22:05,154 to 100 then to 50 then to 25. 493 00:22:05,374 ---> 00:22:07,784 So again, there's that same divide 494 00:22:07,784 ---> 00:22:09,864 and conquer idea we had with the phonebook. 495 00:22:09,864 ---> 00:22:13,044 Again, with every iteration we halved the size of the problem, 496 00:22:13,044 ---> 00:22:14,104 we halved it, we halved it. 497 00:22:14,344 ---> 00:22:17,594 So, in theory, your algorithm should've been much faster 498 00:22:17,774 ---> 00:22:20,744 than my linear approach because my approach would've taken say 499 00:22:20,844 ---> 00:22:24,764 400 steps or maybe if I'm slightly clever 200 steps. 500 00:22:25,024 ---> 00:22:28,644 But, yours would've taken far fewer, right from 400 to 200, 501 00:22:28,644 ---> 00:22:34,634 100, 50, 25, 13, six; so fewer than ten steps 502 00:22:34,634 ---> 00:22:36,854 in the end versus my 200 or 400. 503 00:22:36,854 ---> 00:22:39,984 And there's the germ of a really interesting idea. 504 00:22:39,984 ---> 00:22:42,954 And yes, mathematically what you just did was something that's a 505 00:22:42,954 ---> 00:22:45,714 little logarithmic in nature by log base two, 506 00:22:45,714 ---> 00:22:47,194 we divided in two and two again. 507 00:22:47,194 ---> 00:22:48,974 And we'll revisit this later in this semester. 508 00:22:49,174 ---> 00:22:51,994 But therein lies again a very intelligent implementation. 509 00:22:51,994 ---> 00:22:53,664 And, we are just scratching the surface 510 00:22:53,664 ---> 00:22:57,744 of the very clever the very intelligent efficient approaches 511 00:22:58,064 ---> 00:23:00,164 to problems that we might ultimately solve. 512 00:23:00,484 ---> 00:23:04,494 So, who are the people you just chatted with if briefly? 513 00:23:04,494 ---> 00:23:07,674 A common concern in a course like this is that everyone 514 00:23:07,674 ---> 00:23:09,404 to the left of you and everyone to the right 515 00:23:09,404 ---> 00:23:12,014 of you must clearly know more than you. 516 00:23:12,014 ---> 00:23:13,604 Well, that's absolutely not the case. 517 00:23:13,604 ---> 00:23:14,744 And in fact, in recent years, 518 00:23:14,774 ---> 00:23:16,754 this course has made a concerted effort to reach 519 00:23:16,754 ---> 00:23:19,454 out to those less comfortable, so to speak. 520 00:23:19,634 ---> 00:23:22,174 And by that, we mean not people who've never touched a computer 521 00:23:22,174 ---> 00:23:24,074 before because that's really hard to find 522 00:23:24,074 ---> 00:23:26,504 around here these days, but folks who use email, 523 00:23:26,504 ---> 00:23:28,314 use Facebook, maybe even right now 524 00:23:28,314 ---> 00:23:31,644 but are not necessarily quite sure what to do 525 00:23:31,644 ---> 00:23:34,314 when something goes wrong or when they are asked 526 00:23:34,314 ---> 00:23:37,594 about anything technological, you know, the hands go up 527 00:23:37,714 ---> 00:23:39,144 or they kind of push the hardware 528 00:23:39,144 ---> 00:23:42,384 to a friend who's perhaps more versed in it than they. 529 00:23:42,384 ---> 00:23:45,794 Well, these are some statistics from last year's semester. 530 00:23:45,794 ---> 00:23:49,494 So, when asked, when we asked our 400 so students last year, 531 00:23:49,874 ---> 00:23:52,424 you know, what is your level of comfort coming into this class, 532 00:23:52,424 ---> 00:23:56,784 well 34% wrote themselves down as among those less comfortable. 533 00:23:56,784 ---> 00:23:59,654 So, if you have come into this room and are still thinking now, 534 00:23:59,904 ---> 00:24:02,554 that, you know what, this term less comfortable describes me, 535 00:24:02,804 ---> 00:24:04,994 know that you are in very good company. 536 00:24:04,994 ---> 00:24:06,994 But, realize too that, if you're coming in this course 537 00:24:06,994 ---> 00:24:10,254 with a background in computer science and you were really 538 00:24:10,254 ---> 00:24:13,194 that geek in middle school and high school who was writing code 539 00:24:13,194 ---> 00:24:15,314 and teaching yourselves languages, well that's fine too 540 00:24:15,314 ---> 00:24:17,884 because there's definitely a nontrivial sized audience 541 00:24:17,884 ---> 00:24:20,954 with that background as well, about 13%, last term. 542 00:24:21,104 ---> 00:24:23,144 And then, there's everybody else, sort of someone 543 00:24:23,144 ---> 00:24:24,784 who doesn't think they're less comfortable, 544 00:24:24,784 ---> 00:24:26,894 they definitely don't think they're more comfortable 545 00:24:26,894 ---> 00:24:29,364 but they're just in a course to get something out of it. 546 00:24:29,364 ---> 00:24:32,034 So, realize this course does draw quite the spectrum 547 00:24:32,034 ---> 00:24:32,584 of students. 548 00:24:32,714 ---> 00:24:36,034 And, to put this in more concrete terms, 71% of students, 549 00:24:36,034 ---> 00:24:38,514 last year, had zero courses behind them. 550 00:24:38,804 ---> 00:24:40,754 So, if you're entering this course thinking oh everyone 551 00:24:40,754 ---> 00:24:43,334 who takes CS50 was a computer science whiz 552 00:24:43,334 ---> 00:24:44,794 in high school, it's not the case. 553 00:24:44,934 ---> 00:24:47,554 Most people are presumably just interested in it. 554 00:24:47,554 ---> 00:24:50,094 And a few, yes, absolutely have taken some courses, some, 555 00:24:50,354 ---> 00:24:53,174 or at least one person last year had taken five 556 00:24:53,174 ---> 00:24:54,334 courses previously. 557 00:24:54,594 ---> 00:24:56,634 So, we definitely have some outliers but again the meat 558 00:24:56,634 ---> 00:24:59,674 of the curve is in those lower values altogether. 559 00:24:59,874 ---> 00:25:01,794 And another interesting statistic we shared 560 00:25:01,794 ---> 00:25:03,864 over the past couple of years is the gender ratio. 561 00:25:03,864 ---> 00:25:06,434 So, historically, at least in computer science, there is a bit 562 00:25:06,434 ---> 00:25:07,954 of a male female skew. 563 00:25:07,954 ---> 00:25:10,924 I couple of years ago it was much more marked than last year. 564 00:25:10,924 ---> 00:25:12,904 So, we're almost now at the %40 level. 565 00:25:12,904 ---> 00:25:15,994 And if I can throw down a gauntlet just for the sake 566 00:25:15,994 ---> 00:25:18,034 of having a third pie chart next year, 567 00:25:18,034 ---> 00:25:19,364 that's even more equitable. 568 00:25:19,534 ---> 00:25:22,014 I would point out that there's absolutely no reason 569 00:25:22,014 ---> 00:25:24,134 from the courses perspective that males 570 00:25:24,134 ---> 00:25:25,474 and females shouldn't be enrolling 571 00:25:25,474 ---> 00:25:26,284 in this kind of course. 572 00:25:26,534 ---> 00:25:29,714 In relatively equal numbers and realize to 38 percent, 573 00:25:29,744 ---> 00:25:32,464 48 percent, we're actually quite pleased to see that we're almost 574 00:25:32,464 ---> 00:25:37,014 at that, at least, statistically even value of 50%. 575 00:25:37,054 ---> 00:25:39,104 So, if you are, in fact, female, do rest assure too 576 00:25:39,104 ---> 00:25:41,804 that this is not, in fact, a male dominated class. 577 00:25:42,314 ---> 00:25:46,324 Well, this just so happens to be CS50's 20th birthday. 578 00:25:46,574 ---> 00:25:48,234 I, well thank you. 579 00:25:48,584 ---> 00:25:50,584 [ Cheering ] 580 00:25:50,934 ---> 00:25:52,934 [तालियां] 581 00:25:53,284 ---> 00:25:55,554 That's very nice of you because we brought cake 582 00:25:55,554 ---> 00:25:56,434 for you actually. 583 00:25:56,634 ---> 00:25:58,324 And so, when you exit here later today, 584 00:25:58,464 ---> 00:26:01,024 you'll actually get a chance to meet many 585 00:26:01,024 ---> 00:26:03,164 of the courses teaching fellows who'll be lingering 586 00:26:03,164 ---> 00:26:03,784 in the hallway. 587 00:26:03,784 ---> 00:26:06,924 And yes it'll be a nice sort of incentivized way 588 00:26:06,924 ---> 00:26:08,064 of meeting the teaching fellows. 589 00:26:08,284 ---> 00:26:11,354 But, we do take a trip up to a little bakery 590 00:26:11,354 ---> 00:26:14,434 and again consistent with the course is playful nature while 591 00:26:14,434 ---> 00:26:16,984 nonetheless is expecting nontrivial amount 592 00:26:16,984 ---> 00:26:18,714 of work while we're having that fun. 593 00:26:18,864 ---> 00:26:20,364 But, we do have one of these cakes for you. 594 00:26:20,364 ---> 00:26:20,431 [ Laughter ] 595 00:26:20,431 ---> 00:26:23,604 So, if you're laughing that's actually good because even 596 00:26:23,604 ---> 00:26:25,474 if you're among one of those less comfortable 597 00:26:25,474 ---> 00:26:26,754 at least you're aware of it. 598 00:26:27,244 ---> 00:26:31,184 Those of you in the 14 percent might prefer this flavor. 599 00:26:31,184 ---> 00:26:31,334 [ Laughter ] 600 00:26:31,334 ---> 00:26:35,354 And then, if you don't know what the hell is going on right now, 601 00:26:35,354 ---> 00:26:43,384 we also have this for the rest of you. 602 00:26:43,384 ---> 00:26:43,451 [ Cheering ] 603 00:26:43,451 ---> 00:26:43,518 [तालियां] 604 00:26:43,518 ---> 00:26:47,584 So, those are being chopped up into pieces outside as we speak. 605 00:26:47,584 ---> 00:26:49,614 So again, let's take things up a notch 606 00:26:49,614 ---> 00:26:52,514 and at least introduce some basic tenant 607 00:26:52,514 ---> 00:26:53,664 that we'll then take for granted 608 00:26:53,664 ---> 00:26:55,154 in the remaining of this semester. 609 00:26:55,154 ---> 00:26:58,524 So, we all probably know that computers ultimately boil 610 00:26:58,524 ---> 00:27:01,984 down somehow to zeros and ones, these things called bits. 611 00:27:01,984 ---> 00:27:02,694 What does that mean? 612 00:27:02,834 ---> 00:27:04,664 Well you can think of it frankly as a light bulb, 613 00:27:04,664 ---> 00:27:07,254 a bit is a light bulb that's either on or it's off. 614 00:27:07,254 ---> 00:27:09,484 It's a switch, it's either on or it's off. 615 00:27:09,484 ---> 00:27:11,564 Now, computer scientists generally think of off 616 00:27:11,564 ---> 00:27:13,884 as the number zero arbitrarily and the, 617 00:27:13,884 ---> 00:27:15,974 and the notion of on as one. 618 00:27:16,274 ---> 00:27:17,654 So, if you throw a light switch 619 00:27:17,654 ---> 00:27:20,234 on that's one turn it off that's a zero. 620 00:27:20,444 ---> 00:27:23,034 Or, equivalently, turn the light on that's the value 621 00:27:23,034 ---> 00:27:25,554 of true turn it off that's the value of false. 622 00:27:25,554 ---> 00:27:26,514 So, these are just synonyms. 623 00:27:26,724 ---> 00:27:30,984 At the end of the day, yes, all computation, all stuff that goes 624 00:27:30,984 ---> 00:27:33,984 on underneath the hood in a computer does ultimately boil 625 00:27:33,984 ---> 00:27:35,154 down to zeros and ones. 626 00:27:35,154 ---> 00:27:36,254 And, when you stop to think about it, 627 00:27:36,454 ---> 00:27:38,904 it's pretty dam remarkable what the world has done 628 00:27:39,114 ---> 00:27:41,034 with these basic building blocks including some 629 00:27:41,034 ---> 00:27:42,674 of the devices you're holding in your hand. 630 00:27:42,864 ---> 00:27:44,894 Well, why are zeros and ones useful? 631 00:27:44,894 ---> 00:27:46,314 My God, even in the real world we 632 00:27:46,314 ---> 00:27:48,474 at least have ten digits, zero through nine. 633 00:27:48,734 ---> 00:27:49,724 Why so limited? 634 00:27:49,904 ---> 00:27:51,954 Well in hardware terms it's very easy. 635 00:27:51,954 ---> 00:27:54,204 It's much easier to represent two states, right. 636 00:27:54,204 ---> 00:27:56,704 If computers are plugged into the wall, usually, 637 00:27:56,914 ---> 00:28:00,304 you have this easy source of binary nature. 638 00:28:00,304 ---> 00:28:01,284 It's either on or off. 639 00:28:01,284 ---> 00:28:03,194 Electricity is flowing or it's not. 640 00:28:03,374 ---> 00:28:05,224 So, that's kind of one of the initial reasons 641 00:28:05,224 ---> 00:28:07,414 that the world went with just zeros and ones in computers. 642 00:28:07,414 ---> 00:28:09,174 But, you can use them as building blocks. 643 00:28:09,454 ---> 00:28:12,304 So, this actually is a little small on the screen here 644 00:28:12,524 ---> 00:28:15,644 but we can count in binary or we can represent anything we want 645 00:28:15,644 ---> 00:28:18,704 in binary just as we can, say, decimal, just as we can, 646 00:28:18,704 ---> 00:28:20,354 even in fact, with alphabetical letters. 647 00:28:20,514 ---> 00:28:21,884 And so, here's the quick system. 648 00:28:21,884 ---> 00:28:24,964 In just a couple minutes time you'll now know how to count, 649 00:28:24,964 ---> 00:28:27,484 how to write, how to speak binary much 650 00:28:27,484 ---> 00:28:28,654 like your own laptop. 651 00:28:28,654 ---> 00:28:31,724 Well, you have, in the world of binary, sort of just 652 00:28:31,724 ---> 00:28:34,344 like grade school columns or values. 653 00:28:34,344 ---> 00:28:36,954 So, in grade school we learn this is the ones column this is 654 00:28:36,954 ---> 00:28:39,464 the tens column, the hundreds column and so forth. 655 00:28:39,674 ---> 00:28:42,084 In other words, why is the number we know 656 00:28:42,324 ---> 00:28:46,344 as 123 the number 123? 657 00:28:46,344 ---> 00:28:48,364 Well, my teacher taught me this is the ones column, 658 00:28:48,364 ---> 00:28:50,694 this was the tens, this was the hundreds. 659 00:28:50,914 ---> 00:28:51,884 Well what did that mean? 660 00:28:51,884 ---> 00:28:54,064 Well, to figure out what the total value is 661 00:28:54,064 ---> 00:28:56,594 of what is otherwise the string of digits, 662 00:28:56,594 ---> 00:28:57,884 just hash marks on the board. 663 00:28:58,214 ---> 00:29:02,024 Well, we have one 100, so that's 1 times 100 664 00:29:02,264 ---> 00:29:03,934 and then plus what two 10's 665 00:29:03,974 ---> 00:29:09,434 so that's 2 times 10 plus three ones, so that's 3 times 1, okay, 666 00:29:09,774 ---> 00:29:11,694 so I seem to have gotten back to where I started. 667 00:29:11,784 ---> 00:29:16,124 But, this very simple process of just multiplying the digits 668 00:29:16,354 ---> 00:29:19,344 by the value of the column is exactly what binary is 669 00:29:19,344 ---> 00:29:19,864 all about. 670 00:29:19,864 ---> 00:29:22,984 But, in binary you use powers of two not powers of ten. 671 00:29:23,224 ---> 00:29:25,194 So, here's a series of eight light bulbs. 672 00:29:25,474 ---> 00:29:29,064 Computer scientists like to use values like two and eight and 16 673 00:29:29,064 ---> 00:29:32,824 and 24 and 32 because they're all generally convenient values 674 00:29:32,824 ---> 00:29:33,164 to use. 675 00:29:33,404 ---> 00:29:35,074 So, when we talk about eight values 676 00:29:35,074 ---> 00:29:36,664 in sequence this is like called the byte. 677 00:29:37,084 ---> 00:29:39,424 And these days we rarely talk in just bytes, 678 00:29:39,424 ---> 00:29:42,554 we talk megabytes gigabytes and terabytes these days. 679 00:29:42,584 ---> 00:29:44,104 But it's all ultimately the same thing. 680 00:29:44,324 ---> 00:29:48,714 Here's eight bits AKA one byte, just simple jargon. 681 00:29:49,034 ---> 00:29:50,604 So, all of these light bulbs are off. 682 00:29:50,604 ---> 00:29:52,544 So, the math is actually really easy. 683 00:29:52,544 ---> 00:29:54,624 So there on the right, though it's small to see, 684 00:29:54,624 ---> 00:29:56,944 is the one's column, the twos, the fours, the eights, 685 00:29:57,004 ---> 00:29:59,664 the 16s, 32s, 64s, 128s. 686 00:29:59,934 ---> 00:30:01,644 Alright, maybe it's hard to memorize at first 687 00:30:01,644 ---> 00:30:03,784 but it's just multiplied by two from right to left. 688 00:30:03,784 ---> 00:30:05,044 So, you can always recreate this. 689 00:30:05,284 ---> 00:30:08,824 Well, they're all off so that's 0 times placeholder, 690 00:30:08,824 ---> 00:30:10,014 0 times placeholder. 691 00:30:10,184 ---> 00:30:13,804 So, this is the number 0 represented in binary. 692 00:30:13,804 ---> 00:30:16,244 In other words, how do you write the number we know 693 00:30:16,244 ---> 00:30:17,734 as 0 in binary? 694 00:30:18,034 ---> 00:30:22,514 Well, one, two, three, four, five, six, seven, eight, 695 00:30:22,784 ---> 00:30:24,304 and technically just like in decimal, 696 00:30:24,534 ---> 00:30:27,384 all of these leading zeros, they don't add anything 697 00:30:27,444 ---> 00:30:29,394 to the formula they're just there 698 00:30:29,394 ---> 00:30:31,304 because we arbitrarily decided we want eight 699 00:30:31,304 ---> 00:30:32,324 of these things in a row, right. 700 00:30:32,324 ---> 00:30:33,624 If they're physical objects, we have eight 701 00:30:33,624 ---> 00:30:34,764 so they've got to all be off. 702 00:30:34,764 ---> 00:30:36,524 So, we could've just gotten away with one zero. 703 00:30:36,814 ---> 00:30:38,324 Well how do you represent the number one? 704 00:30:38,594 ---> 00:30:40,794 Well, instinctively you're going to throw one of the switches. 705 00:30:40,794 ---> 00:30:41,894 You're going to turn a bulb on. 706 00:30:42,134 ---> 00:30:44,934 So, there is the number one because we now put a one, 707 00:30:45,294 ---> 00:30:48,054 a light bulb that's on, in the one's position. 708 00:30:48,234 ---> 00:30:49,474 How are we going to represent two? 709 00:30:49,474 ---> 00:30:52,354 Well, we're actually going to throw two switches now at least 710 00:30:52,354 ---> 00:30:53,794 versus this state, we have to turn 711 00:30:53,794 ---> 00:30:56,004 on the two's column turn off the ones column 712 00:30:56,284 ---> 00:30:59,644 and now we have the value of one in the twos column. 713 00:30:59,644 ---> 00:31:01,384 So, that's the total value of two. 714 00:31:01,704 ---> 00:31:04,034 Now, a quick mental exercise; what's going to happen 715 00:31:04,034 ---> 00:31:05,024 with the next sequence? 716 00:31:05,024 ---> 00:31:06,524 How do I present the number three? 717 00:31:06,824 ---> 00:31:08,364 Well, I need one from the twos column, 718 00:31:08,364 ---> 00:31:10,324 one from the threes column and ah ha. 719 00:31:10,324 ---> 00:31:11,964 So, now I've incremented that one. 720 00:31:12,174 ---> 00:31:13,824 And now, this same basic pattern repeats. 721 00:31:13,824 ---> 00:31:14,774 What's the number four? 722 00:31:14,874 ---> 00:31:17,014 Well let's see, I just need a one in the fours column 723 00:31:17,014 ---> 00:31:18,864 and then zeros in the twos and ones. 724 00:31:19,234 ---> 00:31:21,134 So then, it continues that way. 725 00:31:21,134 ---> 00:31:22,524 And, it's just this sequence of steps. 726 00:31:22,714 ---> 00:31:25,864 And in the notion of binary is really not all that complicated. 727 00:31:25,864 ---> 00:31:27,484 At the top there we have eight zeros. 728 00:31:27,854 ---> 00:31:29,874 Below that we have seven zeros and a one. 729 00:31:30,114 ---> 00:31:32,214 Below that we have six zeros, a one, 730 00:31:32,494 ---> 00:31:34,204 and a zero and that's binary. 731 00:31:34,454 ---> 00:31:38,164 Now, thankfully, we computer scientists, we programmers 732 00:31:38,164 ---> 00:31:41,674 by terms end are not going to often be writing in binary, 733 00:31:41,674 ---> 00:31:43,694 talking in binary, thinking in binary 734 00:31:43,894 ---> 00:31:47,204 because we've built many layers of the traction on top of that. 735 00:31:47,204 ---> 00:31:49,434 In fact, people rarely talk about bits except 736 00:31:49,434 ---> 00:31:51,344 in a networking context they talk about bytes 737 00:31:51,404 ---> 00:31:53,144 because one bit, not that useful, 738 00:31:53,354 ---> 00:31:55,444 eight bits these days still not that useful, 739 00:31:55,444 ---> 00:31:56,484 but at least eight bits, 740 00:31:56,484 ---> 00:31:59,914 one byte is at least getting us toward more useful units 741 00:31:59,914 ---> 00:32:00,484 of measure. 742 00:32:00,764 ---> 00:32:02,734 But, when we start looking underneath the hood, 743 00:32:02,814 ---> 00:32:05,324 when we do certain problems such as look at files 744 00:32:05,324 ---> 00:32:06,764 and look perhaps at network traffic, 745 00:32:07,014 ---> 00:32:08,304 it will become interesting 746 00:32:08,304 ---> 00:32:10,844 to know how you're representing data because you're going 747 00:32:10,844 ---> 00:32:13,774 to have to figure out how to display that same information. 748 00:32:13,774 ---> 00:32:16,954 And, in fact, we, if we only have zeros and ones, 749 00:32:17,164 ---> 00:32:21,744 how do we go about representing, say alphabetical letters? 750 00:32:21,744 ---> 00:32:23,994 Well, we're going to have to have some mapping 751 00:32:24,104 ---> 00:32:25,774 between binary and letters. 752 00:32:25,824 ---> 00:32:27,564 But that's as of yet unclear. 753 00:32:27,564 ---> 00:32:30,464 But to hammer this point home and to give me a break 754 00:32:30,464 ---> 00:32:33,614 from speaking at, I thought I'd pause for a moment and see 755 00:32:33,614 ---> 00:32:35,774 if we can't recruit eight volunteers, 756 00:32:36,134 ---> 00:32:37,344 one byte eight people. 757 00:32:37,674 ---> 00:32:41,224 Can I get eight people for whom it is not too awkward 758 00:32:41,224 ---> 00:32:41,754 to come on up. 759 00:32:41,804 ---> 00:32:45,384 good, good one, two, three, four, five, six, seven, 760 00:32:45,384 ---> 00:32:48,464 eight very enthusiastic eight, come on down. 761 00:32:49,024 ---> 00:32:51,584 So, you all, for just a moment here, oh and you have 762 00:32:51,644 ---> 00:32:53,914 to be willing to not be on the internet because there is 763 00:32:53,914 ---> 00:32:55,294 in fact a camera in the back of this room. 764 00:32:55,634 ---> 00:32:58,114 So, turn back now if you don't want to be on the, 765 00:32:58,374 ---> 00:33:00,314 hello mom, in perpetuity. 766 00:33:01,134 ---> 00:33:05,084 So, let's see, you here will be the 128th column. 767 00:33:05,344 ---> 00:33:08,504 And let me ask that you simply hold this before you. 768 00:33:08,504 ---> 00:33:10,124 And actually, if you could scooch this way just a little 769 00:33:10,124 ---> 00:33:12,484 bit, then I will get out of your way. 770 00:33:12,484 ---> 00:33:14,174 You'll be the 64's column, 771 00:33:15,074 ---> 00:33:18,164 you shall be the 32's column and the 16's. 772 00:33:18,424 ---> 00:33:25,444 32's, 16s, 8's, 4's, 2's and 1's. 773 00:33:25,444 ---> 00:33:26,134 All right. 774 00:33:26,134 ---> 00:33:28,414 So perfectly lined up with the place holders from before, 775 00:33:28,574 ---> 00:33:30,614 but we need a little bit of mapping, so a quick set up. 776 00:33:30,844 ---> 00:33:34,754 We just need an arbitrary way of mapping binary numbers, 777 00:33:34,754 ---> 00:33:37,314 which really could be converted very easily to decimal numbers. 778 00:33:37,314 ---> 00:33:39,734 So we need a way of converting numbers to letters 779 00:33:39,804 ---> 00:33:42,524 if our computers are actually going to show us emails 780 00:33:42,794 ---> 00:33:46,604 or type URL's or actually display non numeric information. 781 00:33:46,764 ---> 00:33:49,934 And, in fact, there is a system for that, it's called ASCII, 782 00:33:50,204 ---> 00:33:53,044 an acronym whose meaning is not 783 00:33:53,044 ---> 00:33:56,354 so interesting, but whose utility is. 784 00:33:56,554 ---> 00:33:58,984 This is just a mapping from letters to numbers 785 00:33:58,984 ---> 00:34:00,984 and there's actually a lot more numbers on the screen, 786 00:34:00,984 ---> 00:34:02,484 and you guys, don't worry, aren't going to have 787 00:34:02,524 ---> 00:34:04,174 to test yourselves with this in just a moment. 788 00:34:04,424 ---> 00:34:06,324 But there's a mapping between numbers and letters 789 00:34:06,324 ---> 00:34:07,884 and I'm just going to get us started by pointing 790 00:34:07,884 ---> 00:34:08,664 out a couple of these. 791 00:34:08,954 ---> 00:34:12,284 The numbers of interest right now are going to be, 792 00:34:12,284 ---> 00:34:14,084 whoops, are going to be this. 793 00:34:14,854 ---> 00:34:17,434 Whoops. So in this column here, I can't seem to zoom 794 00:34:17,434 ---> 00:34:19,124 in simultaneously, we have decimal. 795 00:34:19,194 ---> 00:34:19,964 Dec for decimal. 796 00:34:20,134 ---> 00:34:22,384 And then we have the character on the right hand side. 797 00:34:22,614 ---> 00:34:25,084 So if I hop over into this column, thought it's a bit small 798 00:34:25,084 ---> 00:34:28,834 on the screen, the number 65 represents what letter? 799 00:34:30,024 ---> 00:34:32,484 Capital A. And the number 97? 800 00:34:33,134 ---> 00:34:35,714 Lowercase A. All right. 801 00:34:35,714 ---> 00:34:38,644 So those two alone, right, so do not go home and try 802 00:34:38,644 ---> 00:34:39,854 to remember ASCII chart. 803 00:34:39,854 ---> 00:34:42,164 Come quiz time, do not try memorizing an ASCII chart. 804 00:34:42,374 ---> 00:34:45,864 Memorize two, 65 is capital A and 97 is lowercase A. 805 00:34:46,044 ---> 00:34:47,884 And from there you can bootstrap yourself to all 806 00:34:47,884 ---> 00:34:49,184 of the other alphabetical characters. 807 00:34:49,404 ---> 00:34:51,534 But all this chart says, and I just downloaded this chart 808 00:34:51,534 ---> 00:34:54,084 from ASCIItable.com, this is a standard that's been 809 00:34:54,084 ---> 00:34:55,544 around for many, many, many years, 810 00:34:55,684 ---> 00:34:57,224 but most computers still use it. 811 00:34:57,394 ---> 00:34:58,784 What we now have is a means 812 00:34:58,784 ---> 00:35:02,194 of encoding alphabetical information using what's 813 00:35:02,194 ---> 00:35:03,184 ultimately numeric. 814 00:35:03,184 ---> 00:35:05,814 So if these guys are just switches, light bulbs, 815 00:35:06,064 ---> 00:35:08,614 computers, we can actually convey messages. 816 00:35:08,904 ---> 00:35:10,974 So each of you has some hints on the back. 817 00:35:11,364 ---> 00:35:13,574 We're going to have three rounds here where these guys are going 818 00:35:13,574 ---> 00:35:15,884 to spell out in English, in ASCII, 819 00:35:16,104 ---> 00:35:18,014 a very short message, a three letter word. 820 00:35:18,754 ---> 00:35:21,364 It will involve them either raising their hand, 821 00:35:21,364 ---> 00:35:24,274 thereby representing a one or just standing there awkwardly, 822 00:35:24,274 ---> 00:35:25,994 thereby representing a zero. 823 00:35:26,484 ---> 00:35:28,754 So why don't we proceed immediately with round one 824 00:35:28,904 ---> 00:35:31,014 and you can either raise or not raise your hands. 825 00:35:31,704 ---> 00:35:35,064 So the audience doesn't get off the hook. 826 00:35:35,104 ---> 00:35:37,964 What number are they currently representing? 827 00:35:39,174 ---> 00:35:39,954 66. Right. 828 00:35:39,954 ---> 00:35:42,864 Not hard because we have a one, a hand up in the 64s column, 829 00:35:42,864 ---> 00:35:44,214 a hand up in the 2's column. 830 00:35:44,214 ---> 00:35:47,094 64 times one plus two times one is 66. 831 00:35:47,124 ---> 00:35:48,254 They're representing the number 6, 832 00:35:48,254 ---> 00:35:52,264 which means the first letter is B. So not too bad, right? 833 00:35:52,674 ---> 00:35:53,234 Round two. 834 00:35:53,314 ---> 00:35:56,654 First letter was a B. 835 00:35:56,654 ---> 00:35:56,824 [ Laughter ] 836 00:35:56,824 ---> 00:36:01,104 >> Seventy Nine. 837 00:36:02,454 ---> 00:36:04,374 >> David: Can someone second that? 838 00:36:04,374 ---> 00:36:04,924 Yes. All right. 839 00:36:04,924 ---> 00:36:10,084 So 79, which means it's now an O. So B,O. 840 00:36:10,084 ---> 00:36:10,984 There's a third letter. 841 00:36:10,984 ---> 00:36:13,284 Actually that is kind of, yeah. 842 00:36:14,114 ---> 00:36:14,644 Third round. 843 00:36:14,834 ---> 00:36:15,724 Third and final round. 844 00:36:15,864 ---> 00:36:19,594 What number is this? 845 00:36:22,244 ---> 00:36:23,374 I heard an 87. 846 00:36:23,674 ---> 00:36:24,394 Someone else agree? 847 00:36:25,434 ---> 00:36:25,924 All right, yeah. 848 00:36:26,134 ---> 00:36:27,764 This is in fact 87, which maps to, 849 00:36:27,764 ---> 00:36:30,984 and this is a very clever set up at 850 00:36:30,984 ---> 00:36:34,184 which point you all B, O, W, it's bow. 851 00:36:34,384 ---> 00:36:34,834 Very good. 852 00:36:35,104 ---> 00:36:37,194 So actually besides that little souvenir, 853 00:36:38,784 ---> 00:36:40,794 that was not a very enthusiastic applause, 854 00:36:40,794 ---> 00:36:42,004 so I'll take care of you. 855 00:36:42,254 ---> 00:36:44,074 So we do have a little something for these guys here now 856 00:36:44,074 ---> 00:36:44,764 that they just appeared 857 00:36:44,764 ---> 00:36:47,424 on center stage doing perhaps the geekiest thing they could. 858 00:36:47,914 ---> 00:36:49,894 So maybe if we could humor them if only 859 00:36:49,894 ---> 00:36:51,364 because I'm feeling a little bit awkward now. 860 00:36:51,364 ---> 00:36:52,954 A little round of applause for these guys here. 861 00:36:53,494 ---> 00:36:59,624 [तालियां] 862 00:37:00,124 ---> 00:37:00,764 All yours. 863 00:37:00,764 ---> 00:37:01,124 All right. 864 00:37:01,284 ---> 00:37:02,314 Thank you very much. 865 00:37:02,364 ---> 00:37:08,554 So, so, it turns out that we can take this one step further, 866 00:37:08,764 ---> 00:37:11,624 but you are now entering a community of people 867 00:37:11,794 ---> 00:37:13,954 who understand things like this. 868 00:37:14,494 ---> 00:37:23,164 [ Silence ] 869 00:37:23,664 ---> 00:37:25,344 It's slowly spreading, yes? 870 00:37:25,479 ---> 00:37:27,479 [ Laughter ] 871 00:37:27,614 ---> 00:37:29,274 It's not cool that you understand this now. 872 00:37:29,714 ---> 00:37:31,944 So we've already done some damage here today, but yes, 873 00:37:32,394 ---> 00:37:34,354 there is now such a thing as geek humor 874 00:37:34,354 ---> 00:37:36,864 that you might just catch a little bit more on to. 875 00:37:36,864 ---> 00:37:38,944 So what are we going to do throughout this semester? 876 00:37:39,154 ---> 00:37:44,044 So there's 12 weeks, zero index, so 13 weeks in total. 877 00:37:44,044 ---> 00:37:45,354 You'll find throughout the semester 878 00:37:45,354 ---> 00:37:48,244 that computer scientists tend to count starting from zero 879 00:37:48,244 ---> 00:37:49,964 for reasons that will soon become clear. 880 00:37:50,174 ---> 00:37:52,434 But what we're going to do this week, starting this Friday, 881 00:37:52,434 ---> 00:37:54,304 is introduce you to programming. 882 00:37:54,304 ---> 00:37:56,954 Now you may already be coming at this course with a background 883 00:37:56,954 ---> 00:37:58,644 in the same, and that's perfectly fine, 884 00:37:58,644 ---> 00:37:59,714 but we'll also be able 885 00:37:59,714 ---> 00:38:01,844 to introduce some more sophisticated topics 886 00:38:01,844 ---> 00:38:03,804 than are typically covered, things like events 887 00:38:03,804 ---> 00:38:05,774 and threading, so just to toss out a couple 888 00:38:05,774 ---> 00:38:07,264 of buzz words for those unfamiliar. 889 00:38:07,404 ---> 00:38:09,494 But what we're going to do is not dive 890 00:38:09,494 ---> 00:38:12,764 into what the typically traditional language like Java 891 00:38:12,764 ---> 00:38:17,084 or C++ or C sharp catch phrases that you might have heard 892 00:38:17,084 ---> 00:38:19,444 in the past, but we're going to use a programming environment, 893 00:38:19,444 ---> 00:38:21,034 a graphical programming environment 894 00:38:21,034 ---> 00:38:23,934 that was actually developed by MIT's media lab. 895 00:38:23,934 ---> 00:38:26,354 And this is an environment that allows you to program, 896 00:38:26,354 ---> 00:38:30,024 quite literally, by dragging and dropping puzzle pieces 897 00:38:30,024 ---> 00:38:31,444 that fit together logically 898 00:38:31,444 ---> 00:38:33,634 that lets you implement these things called loops 899 00:38:33,634 ---> 00:38:35,494 and conditions and Boolean expressions 900 00:38:35,734 ---> 00:38:38,664 and you can actually, on day one, after this Friday, 901 00:38:38,884 ---> 00:38:40,834 write a program that actually some 902 00:38:40,834 ---> 00:38:42,394 of your friends might care about. 903 00:38:42,484 ---> 00:38:43,604 So in yester year, say 904 00:38:43,604 ---> 00:38:46,674 when you've taken a computer science course in high school, 905 00:38:46,874 ---> 00:38:49,504 odds are one of your first programs was the equivalent 906 00:38:49,504 ---> 00:38:51,704 of hello world, like wow mom, 907 00:38:51,704 ---> 00:38:54,864 I just made the computer type some characters on the screen. 908 00:38:54,864 ---> 00:38:56,984 It's a very underwhelming experience. 909 00:38:57,294 ---> 00:39:00,824 Much more interesting is it to implement a little something 910 00:39:00,824 ---> 00:39:04,114 like this, as one of last year's students did. 911 00:39:04,644 ---> 00:39:07,114 So I give you the work of a former classmate. 912 00:39:07,434 ---> 00:39:10,954 It's a love story, of sorts, about dancing cookies. 913 00:39:11,494 ---> 00:40:25,544 [संगीत] 914 00:40:26,044 ---> 00:40:27,684 So this was actually from a student 915 00:40:27,714 ---> 00:40:29,004 who had never programmed before. 916 00:40:29,004 ---> 00:40:30,854 And just to give you a teaser of this interface, 917 00:40:30,854 ---> 00:40:33,104 and we're only going to use this for one week time, 918 00:40:33,104 ---> 00:40:35,114 really to get the comfort levels up 919 00:40:35,114 ---> 00:40:36,294 and to really get folks excited 920 00:40:36,294 ---> 00:40:38,484 about what you can actually make these machines do, 921 00:40:38,694 ---> 00:40:41,244 this is an environment where you'll be programming by, 922 00:40:41,244 ---> 00:40:43,034 for at least a week, just dragging 923 00:40:43,034 ---> 00:40:45,154 and dropping puzzle pieces that fit together, 924 00:40:45,334 ---> 00:40:47,144 as we'll see, in a logical fashion. 925 00:40:47,144 ---> 00:40:50,114 And it lets you do fun, silly things quickly. 926 00:40:50,114 ---> 00:40:52,554 And for any of you who are a little bit familiar with things 927 00:40:52,554 ---> 00:40:56,564 like Java and C++, it's usually a good semester or two 928 00:40:56,564 ---> 00:40:59,754 or three before you finally get to start writing something 929 00:40:59,754 ---> 00:41:02,884 that another person might actually enjoy watching. 930 00:41:02,884 ---> 00:41:06,674 Well, in week one of the course, or the second week, zero index, 931 00:41:06,834 ---> 00:41:09,214 where we dive into a little more traditional environment. 932 00:41:09,214 ---> 00:41:10,854 In this course we'll spend much of our time 933 00:41:10,854 ---> 00:41:13,454 on a language called C. This is one 934 00:41:13,454 ---> 00:41:15,634 of the earliest languages that, unlike Java, 935 00:41:15,914 ---> 00:41:19,924 actually gives us much greater access for better or for worse, 936 00:41:19,924 ---> 00:41:22,604 to manipulating hardware and actual memory, 937 00:41:22,604 ---> 00:41:24,204 and we can do a lot of damage with that. 938 00:41:24,384 ---> 00:41:27,974 In fact, any time you read of web servers being exploited 939 00:41:27,974 ---> 00:41:29,524 or computers being hacked into, 940 00:41:29,754 ---> 00:41:32,254 very often to this day it's the result 941 00:41:32,464 ---> 00:41:36,804 of people having run software in a language called C or C++ 942 00:41:37,164 ---> 00:41:41,334 without sufficient care given to what are called buffer overruns 943 00:41:41,334 ---> 00:41:44,934 or lengths of arrays, so some fairly technical concepts 944 00:41:44,934 ---> 00:41:46,544 that are not that hard to understand, 945 00:41:46,764 ---> 00:41:49,634 but there's been a lot of humans making a lot of mistakes 946 00:41:49,634 ---> 00:41:53,074 for years and with this language we'll actually understand some 947 00:41:53,074 ---> 00:41:55,514 of those security implications. 948 00:41:55,774 ---> 00:41:57,354 But each week, typically, 949 00:41:57,354 ---> 00:41:59,774 we'll introduce also an interesting domain 950 00:41:59,774 ---> 00:42:01,784 that will inspire that week's problem set. 951 00:42:01,784 ---> 00:42:06,004 So we'll also take a look this week at the field of cryptology, 952 00:42:06,244 ---> 00:42:10,074 cryptanalysis, the notion that you can encipher information 953 00:42:10,074 ---> 00:42:12,024 in such a way that people can't read your messages, 954 00:42:12,374 ---> 00:42:14,524 but if clever enough perhaps you can, in fact, 955 00:42:14,584 ---> 00:42:16,934 crack what are otherwise secret messages. 956 00:42:17,154 ---> 00:42:20,674 In week three we'll then look at some basic fundamentals 957 00:42:20,674 ---> 00:42:23,404 of computer science like searching and sorting 958 00:42:23,404 ---> 00:42:25,934 and we'll actually look at this notion 959 00:42:25,934 ---> 00:42:27,754 of recursion, how to debug things. 960 00:42:27,754 ---> 00:42:31,624 In short, we'll take things up to the level of problem solving 961 00:42:31,744 ---> 00:42:33,804 and not so much about mere syntax 962 00:42:34,084 ---> 00:42:36,754 and implementing short little cookie cutter programs. 963 00:42:36,754 ---> 00:42:40,114 In week four we'll introduce more sophisticated 964 00:42:40,114 ---> 00:42:40,834 problems still. 965 00:42:41,094 ---> 00:42:43,124 What does it mean to manage memory? 966 00:42:43,154 ---> 00:42:45,604 What does it mean to run out of memory? 967 00:42:45,604 ---> 00:42:48,424 What does it mean to actually segfault, 968 00:42:48,424 ---> 00:42:50,654 if you've heard this expression, and odds are you haven't, 969 00:42:50,654 ---> 00:42:52,304 but very bad things happen and frankly 970 00:42:52,304 ---> 00:42:55,174 by terms end you'll understand terms like my code segfaulted 971 00:42:55,404 ---> 00:43:00,084 which actually is generally not going to be a good thing. 972 00:43:00,084 ---> 00:43:02,414 But then again, we'll introduce some domain specific stuff. 973 00:43:02,414 ---> 00:43:03,014 So actually one 974 00:43:03,014 ---> 00:43:05,234 of my internships during graduate school was to work 975 00:43:05,234 ---> 00:43:08,374 for the local Middlesex County District Attorney's office doing 976 00:43:08,424 ---> 00:43:11,034 forensic investigations in a digital sense. 977 00:43:11,074 ---> 00:43:13,084 The local Mass state police would bring 978 00:43:13,084 ---> 00:43:16,514 to our office hard drives and floppy disks and sometimes 979 00:43:16,514 ---> 00:43:18,624 for no reason mice and keyboards. 980 00:43:18,624 ---> 00:43:21,624 And we would be tasked with finding evidence. 981 00:43:21,744 ---> 00:43:25,694 Now it turns out, maybe just an FYI, that the criminals 982 00:43:25,694 ---> 00:43:28,674 in Cambridge, Massachusetts, at least, 983 00:43:28,944 ---> 00:43:30,474 not necessarily that clever. 984 00:43:30,474 ---> 00:43:32,644 Very often our forensic analysis boiled 985 00:43:32,644 ---> 00:43:34,684 down to booting the computer up and double clicking 986 00:43:34,684 ---> 00:43:37,934 on the My Documents folder, and therein laid the evidence. 987 00:43:38,464 ---> 00:43:41,214 But what we'll do this week is give you a sense 988 00:43:41,214 ---> 00:43:43,164 of what it actually means to store information 989 00:43:43,164 ---> 00:43:44,954 on a hard drive, on a flash drive, 990 00:43:44,954 ---> 00:43:48,764 and why can't otherwise private information be disclosed 991 00:43:48,764 ---> 00:43:51,914 to third parties when you drop off a computer to be repaired 992 00:43:51,914 ---> 00:43:53,754 or even when you discard it. 993 00:43:53,804 ---> 00:43:55,394 Well someone might very well be sifting 994 00:43:55,394 ---> 00:43:57,364 through those hard drives and it's really not that hard 995 00:43:57,364 ---> 00:43:59,614 to find data if you know how to look for it. 996 00:43:59,814 ---> 00:44:01,674 Well, in week five we'll look 997 00:44:01,674 ---> 00:44:05,154 at more sophisticated data structures, tools and techniques 998 00:44:05,154 ---> 00:44:07,074 that you can use ala phone books 999 00:44:07,074 ---> 00:44:11,894 and ala searching huge data sets much more intelligently. 1000 00:44:11,894 ---> 00:44:14,524 And the week's problem set will task you competitively 1001 00:44:14,734 ---> 00:44:17,514 to see just how fast the code you can write is 1002 00:44:17,694 ---> 00:44:19,504 and how little memory you can use. 1003 00:44:19,774 ---> 00:44:23,294 Toward terms end though we'll take things up to a higher level 1004 00:44:23,294 ---> 00:44:26,024 in terms of programming languages and put C behind us 1005 00:44:26,254 ---> 00:44:28,614 and introduce a web programming language known as PHP, 1006 00:44:29,184 ---> 00:44:31,284 one of the popular languages these days. 1007 00:44:31,284 ---> 00:44:33,364 Much of Facebook is still written in PHP, 1008 00:44:33,364 ---> 00:44:36,514 at least outward facing, and it's just a very easy language 1009 00:44:36,514 ---> 00:44:39,524 to learn quickly once you already know another. 1010 00:44:39,524 ---> 00:44:42,134 So with PHP we'll be able to solve problems 1011 00:44:42,134 ---> 00:44:44,664 and implement websites that do interesting things. 1012 00:44:44,664 ---> 00:44:46,474 The news site I showed you, the events site, 1013 00:44:46,714 ---> 00:44:47,594 the shuttle boy site, 1014 00:44:47,594 ---> 00:44:50,454 all of those all happen to be written in PHP. 1015 00:44:50,454 ---> 00:44:52,314 But by no means is that prerequisite. 1016 00:44:52,314 ---> 00:44:54,174 What you'll also find throughout this course is 1017 00:44:54,174 ---> 00:44:57,564 that you're not going to exit this course knowing C. You're 1018 00:44:57,564 ---> 00:44:59,634 not going to exit this course knowing PHP. 1019 00:44:59,634 ---> 00:45:03,184 Those are not interesting skills to claim, but knowing how 1020 00:45:03,184 ---> 00:45:06,564 to program, knowing how to use data structures and algorithms 1021 00:45:06,564 ---> 00:45:09,244 in an interesting way, that's a compelling story. 1022 00:45:09,244 ---> 00:45:11,464 Even I, all these years later, throughout college 1023 00:45:11,464 ---> 00:45:14,804 and graduate school, the only time I ever learned a language 1024 00:45:15,054 ---> 00:45:18,744 was probably in CS50 where it was still taught in C and CS51, 1025 00:45:18,744 ---> 00:45:20,654 which is one of the successor courses. 1026 00:45:20,714 ---> 00:45:24,764 Everywhere along the way since has been go learn this language 1027 00:45:24,764 ---> 00:45:26,094 and then work on this problem set 1028 00:45:26,154 ---> 00:45:28,264 because computer science is not supposed to be 1029 00:45:28,264 ---> 00:45:31,324 about here's a language, let's spend seven weeks teaching you 1030 00:45:31,324 ---> 00:45:32,604 where the semi colons are. 1031 00:45:32,764 ---> 00:45:34,734 There are much more interesting ideas out there. 1032 00:45:34,804 ---> 00:45:35,804 Databases, for one. 1033 00:45:35,804 ---> 00:45:37,684 And in week two we'll introduce you 1034 00:45:37,684 ---> 00:45:41,384 to this query language called SQL that'll allow you 1035 00:45:41,594 ---> 00:45:43,114 to store information in databases 1036 00:45:43,114 ---> 00:45:45,124 and actually implement some fairly interesting 1037 00:45:45,404 ---> 00:45:46,244 final projects. 1038 00:45:46,274 ---> 00:45:47,394 The week after we'll look 1039 00:45:47,394 ---> 00:45:49,244 at what's called client side programming, 1040 00:45:49,244 ---> 00:45:52,074 doing interesting things on a user's computer, 1041 00:45:52,074 ---> 00:45:53,974 taking advantage of their CPU cycles, 1042 00:45:54,244 ---> 00:45:57,084 doing things ala Google maps and these websites 1043 00:45:57,084 ---> 00:45:58,774 that actually use JavaScript, 1044 00:45:58,774 ---> 00:46:00,354 which is actually a language we'll introduce 1045 00:46:00,354 ---> 00:46:03,224 to let you do client side things, make more interesting, 1046 00:46:03,224 ---> 00:46:05,874 more sophisticated user interfaces, but at the end 1047 00:46:05,874 ---> 00:46:08,374 of the day have to be really mindful when implemented 1048 00:46:08,564 ---> 00:46:11,794 of a lot of sticky issues like network speeds, 1049 00:46:11,794 ---> 00:46:13,584 network performance and security. 1050 00:46:13,814 ---> 00:46:16,684 So it's not about again just coding something up that's fun 1051 00:46:16,684 ---> 00:46:19,184 to use or pretty to look at, but actually thinking 1052 00:46:19,184 ---> 00:46:21,524 about the design that'll be the interesting process. 1053 00:46:21,664 ---> 00:46:24,844 And then, the end result aesthetically will often be a 1054 00:46:24,844 ---> 00:46:27,164 really neat toy to show yourself or a friend. 1055 00:46:27,164 ---> 00:46:29,604 And then we'll look at hardware. 1056 00:46:29,604 ---> 00:46:30,734 We're going to take for granted 1057 00:46:30,734 ---> 00:46:32,694 that there are these physical boxes throughout much 1058 00:46:32,734 ---> 00:46:35,934 of the semester that will do what we tell them to do. 1059 00:46:36,324 ---> 00:46:37,464 But how are they doing that. 1060 00:46:37,464 ---> 00:46:39,464 So we'll actually take a peak under the hood and talk 1061 00:46:39,464 ---> 00:46:42,984 about what a compiler really is, what a CPU really is 1062 00:46:42,984 ---> 00:46:46,324 and actually consider what's making all of this fanciness 1063 00:46:46,324 ---> 00:46:49,424 from stupid YouTube videos on down possible. 1064 00:46:50,014 ---> 00:46:51,254 So what are the expectations? 1065 00:46:51,254 ---> 00:46:52,584 Attending lectures and sessions, 1066 00:46:52,924 ---> 00:46:55,794 completing nine problem sets assigned roughly weekly, 1067 00:46:55,794 ---> 00:46:57,994 two quizzes, the final project and there is 1068 00:46:57,994 ---> 00:46:59,464 in fact no final exam. 1069 00:46:59,464 ---> 00:47:02,824 Grades, it's always a question, broken down as follows here. 1070 00:47:02,824 ---> 00:47:04,174 You can take the course pass-fail. 1071 00:47:04,174 ---> 00:47:06,994 But let me say it here, and I've said it many times. 1072 00:47:07,254 ---> 00:47:09,864 I personally care relatively little about grades. 1073 00:47:09,914 ---> 00:47:11,764 I think they are a wonderful, well, 1074 00:47:11,914 ---> 00:47:15,344 they are a useful pedagogical tool with which to motivate 1075 00:47:15,344 ---> 00:47:18,704 and unfortunately sometimes de-motivate, but you'll find 1076 00:47:18,704 ---> 00:47:22,494 in this course that at the end of the day it's more 1077 00:47:22,494 ---> 00:47:26,464 about seeing how far you can go from weeks zero to week 12, 1078 00:47:26,464 ---> 00:47:28,464 as we say in the syllabus than it is 1079 00:47:28,464 ---> 00:47:30,934 about absolutely ranking all students in this course. 1080 00:47:30,934 ---> 00:47:33,244 So if you're coming into this course among those less 1081 00:47:33,244 ---> 00:47:36,154 comfortable, though a large demographic do not assume 1082 00:47:36,344 ---> 00:47:39,404 that that's automatically putting you in the lower third 1083 00:47:39,564 ---> 00:47:41,194 of the so called distribution. 1084 00:47:41,194 ---> 00:47:44,464 At terms end do I sit down with the TF's and discuss each 1085 00:47:44,464 ---> 00:47:45,614 and every one of the students. 1086 00:47:45,784 ---> 00:47:48,984 We take into account where a student came from, 1087 00:47:49,184 ---> 00:47:51,574 what kind of trajectory they were actually on and so 1088 00:47:51,574 ---> 00:47:55,024 at the end of the day please focus more on, and I don't mean 1089 00:47:55,024 ---> 00:47:56,934 to sound too grand, the process of learning 1090 00:47:57,144 ---> 00:47:58,154 and less on the numeric's. 1091 00:47:58,254 ---> 00:48:00,604 And you'll actually see that we grade problem sets, 1092 00:48:00,604 ---> 00:48:04,074 in particular, very coarsely, whereby along three axis, 1093 00:48:04,074 ---> 00:48:07,634 you will get a score of 1, 2, 3, 4, or 5, 1094 00:48:07,674 ---> 00:48:09,354 where 3, is in fact good. 1095 00:48:09,604 ---> 00:48:13,574 3 is not C. 3 is good, 4 is better, 5 is best. 1096 00:48:13,574 ---> 00:48:16,344 But more on that as the problem sets are released. 1097 00:48:16,714 ---> 00:48:19,934 So the course's website is where you will find, as in most cases, 1098 00:48:19,934 ---> 00:48:23,504 a whole lot of useful things, if not silly things, too. 1099 00:48:23,684 ---> 00:48:25,414 And we have the luxury, as computer scientists 1100 00:48:25,414 ---> 00:48:27,244 of implementing it ourselves. 1101 00:48:27,244 ---> 00:48:27,924 So over the course 1102 00:48:27,924 ---> 00:48:30,234 of the semester you will see various new features 1103 00:48:30,234 ---> 00:48:30,754 rolling out. 1104 00:48:30,754 ---> 00:48:32,064 You'll find out over the course of the semester 1105 00:48:32,064 ---> 00:48:34,594 that the bulletin board is a wonderful place, 1106 00:48:34,594 ---> 00:48:35,914 certainly in the course of this size, 1107 00:48:35,914 ---> 00:48:38,384 to turn when you have questions about the problem set, 1108 00:48:38,544 ---> 00:48:41,394 questions about some computer science concept. 1109 00:48:41,394 ---> 00:48:43,844 You'll be able to check your grades, download all handouts 1110 00:48:44,034 ---> 00:48:46,514 in advance of lecture typically will I post the slides, 1111 00:48:46,514 ---> 00:48:48,144 if you're the type who wants to scribble on notes. 1112 00:48:48,414 ---> 00:48:51,154 But as you've seen, usually I shy away from long lists 1113 00:48:51,154 ---> 00:48:54,054 of details and more like pictures of cats 1114 00:48:54,284 ---> 00:48:56,284 and other visual cues. 1115 00:48:56,704 ---> 00:48:59,794 So you'll find, too, that we will provide printouts of code 1116 00:48:59,794 ---> 00:49:02,294 when we actually think it particularly advantageous 1117 00:49:02,294 ---> 00:49:03,554 to write right on the paper. 1118 00:49:03,844 ---> 00:49:07,204 Software, videos will be available, usually around 1 to 2 1119 00:49:07,204 ---> 00:49:09,254 to 3 days maximally after each lecture. 1120 00:49:09,504 ---> 00:49:12,114 So the courses are being filmed and every lecture will go online 1121 00:49:12,334 ---> 00:49:14,664 in various formats including QuickTime and MP3's 1122 00:49:14,664 ---> 00:49:16,534 for downloads to iPods and such. 1123 00:49:16,774 ---> 00:49:17,824 And also you will find a link 1124 00:49:17,824 ---> 00:49:19,584 to download what we call the virtual terminal room, 1125 00:49:19,824 ---> 00:49:22,324 which as you'll see is related to virtual office hours. 1126 00:49:22,634 ---> 00:49:25,044 Books are expensive and in the computer world also not 1127 00:49:25,044 ---> 00:49:25,644 that useful. 1128 00:49:25,894 ---> 00:49:30,104 They are on the shelves of the coop, although we're told 1129 00:49:30,104 ---> 00:49:33,214 that last year they ordered like 120 books for the course 1130 00:49:33,474 ---> 00:49:36,374 and 30 were actually purchased, but this perhaps speak 1131 00:49:36,554 ---> 00:49:39,344 to the fact that there are places like Amazon.com, 1132 00:49:39,344 ---> 00:49:42,764 so if you are the type who actually enjoys the sort 1133 00:49:42,764 ---> 00:49:45,564 of support structure that a book provides, if you like to read 1134 00:49:45,564 ---> 00:49:47,774 up more than say a course's typical materials offer, 1135 00:49:47,774 ---> 00:49:50,304 by all means, procure one or more of the books 1136 00:49:50,344 ---> 00:49:52,164 that we recommend here and discuss more 1137 00:49:52,164 ---> 00:49:53,354 in detail in the syllabus. 1138 00:49:53,604 ---> 00:49:55,454 But realize there are so many resources 1139 00:49:55,454 ---> 00:49:57,214 that this course provides in printed form 1140 00:49:57,214 ---> 00:49:58,804 and electronic form, and my God, 1141 00:49:58,804 ---> 00:50:00,114 there's the whole internet out there. 1142 00:50:00,364 ---> 00:50:02,314 Books are not something that are required 1143 00:50:02,314 ---> 00:50:03,404 for this particular course. 1144 00:50:03,984 ---> 00:50:05,844 Lectures, in general, will be Monday's and Wednesday's, 1145 00:50:06,064 ---> 00:50:08,784 except for this Friday and next Friday, 1146 00:50:09,044 ---> 00:50:10,964 simply because of shopping period and Labor Day. 1147 00:50:10,964 ---> 00:50:13,494 So we'll meet this Friday, next Wednesday, next Friday, 1148 00:50:13,694 ---> 00:50:16,214 but there after this is just a Monday, Wednesday course. 1149 00:50:16,514 ---> 00:50:18,934 So this little visual cue here is to remind me that yes, 1150 00:50:19,044 ---> 00:50:22,124 we do distribute videos in QuickTime formats, MP3's, 1151 00:50:22,174 ---> 00:50:25,034 fun ways that you can, if you're actually this type, 1152 00:50:25,194 ---> 00:50:27,714 maybe in the 14 percent, watch a computer science lecture 1153 00:50:27,714 ---> 00:50:35,204 on your iPod, but it reminded me that at terms end last year, 1154 00:50:35,204 ---> 00:50:37,124 the course culminates in final projects, 1155 00:50:37,124 ---> 00:50:39,354 in which students can design most anything they want, 1156 00:50:39,354 ---> 00:50:41,424 and we actually had some students tackle some 1157 00:50:41,424 ---> 00:50:42,504 iPhone applications. 1158 00:50:42,714 ---> 00:50:45,434 Some one of these at least is now in the Apple store. 1159 00:50:45,434 ---> 00:50:46,274 It's called Rover. 1160 00:50:46,394 ---> 00:50:48,894 It's been adopted essentially by Harvard agencies 1161 00:50:48,894 ---> 00:50:49,994 and it's the iPhone version 1162 00:50:49,994 ---> 00:50:51,974 of the unofficial guide to life at Harvard. 1163 00:50:51,974 ---> 00:50:53,104 They did a brilliant job. 1164 00:50:53,774 ---> 00:50:56,034 I bring this slide up too, just to point 1165 00:50:56,304 ---> 00:50:58,504 out what other technologies might very well be 1166 00:50:58,504 ---> 00:50:59,264 down the road. 1167 00:50:59,264 ---> 00:51:00,964 Some of you may have seen this before, 1168 00:51:00,964 ---> 00:51:03,094 but just to give you a teaser of apparently what's 1169 00:51:03,094 ---> 00:51:06,764 in the pipeline, I thought I would offer this brief 1170 00:51:07,354 ---> 00:51:09,654 distraction here. 1171 00:51:10,494 ---> 00:51:32,554 [संगीत] 1172 00:51:33,054 ---> 00:51:36,764 >> With the MacBook wheel, Apple has replaced the keyboard 1173 00:51:36,764 ---> 00:51:39,284 with a sleek, touch sensitive click wheel. 1174 00:51:39,504 ---> 00:51:42,344 Apple CEO Steve Jobs introduced the product yesterday 1175 00:51:42,614 ---> 00:51:43,974 at the annual Mac Expo. 1176 00:51:44,304 ---> 00:51:47,444 Senior product innovator says the MacBook wheel will make 1177 00:51:47,574 ---> 00:51:49,094 typing a thing of the past. 1178 00:51:49,094 ---> 00:51:51,534 >> At Apple our philosophy is create products that are simple 1179 00:51:51,534 ---> 00:51:54,474 to use and nothing's more simple than a single giant button. 1180 00:51:54,754 ---> 00:51:56,634 >> Gilman showed me how the revolutionary new 1181 00:51:56,634 ---> 00:51:57,344 computer works. 1182 00:51:57,704 ---> 00:52:00,414 >> Gilman: Just open the intuit-type alphabet menu here, 1183 00:52:01,064 ---> 00:52:04,794 scroll to the letter you need and center click to select it 1184 00:52:05,424 ---> 00:52:07,074 and click again to capitalize 1185 00:52:07,624 ---> 00:52:09,784 and repeat this process for each new letter. 1186 00:52:09,784 ---> 00:52:11,194 It couldn't be simpler. 1187 00:52:14,214 ---> 00:52:16,414 You could also let the predictive sentence technology 1188 00:52:16,534 ---> 00:52:17,564 complete the sentence for you. 1189 00:52:17,944 ---> 00:52:21,344 >> Gilman says the MacBook wheel has also simplified organization 1190 00:52:21,344 ---> 00:52:23,684 of files, so searching your hard drive will be a snap. 1191 00:52:24,204 ---> 00:52:26,444 >> Gilman: Just press both sides of the wheel concurrently 1192 00:52:26,794 ---> 00:52:29,124 and center click and there, you have an alphabetical list 1193 00:52:29,124 ---> 00:52:31,084 of every file on your hard drive. 1194 00:52:31,274 ---> 00:52:33,194 Everything is just a few hundred clicks away. 1195 00:52:33,414 ---> 00:52:36,174 >> Apple is calling the MacBook wheel the most intuitive product 1196 00:52:36,424 ---> 00:52:37,364 every designed. 1197 00:52:37,544 ---> 00:52:38,684 >> Here at Apple we like to think 1198 00:52:38,684 ---> 00:52:40,884 that we're giving customers features they don't even know 1199 00:52:40,884 ---> 00:52:41,624 they want yet. 1200 00:52:41,914 ---> 00:52:44,134 >> While the MacBook wheel won't hit the shelves for another 3 1201 00:52:44,134 ---> 00:52:46,784 to 15 months, many apple users already have it 1202 00:52:46,784 ---> 00:52:47,494 on their wish list. 1203 00:52:47,714 ---> 00:52:50,064 >> I'll buy almost anything [inaudible] and made by Apple. 1204 00:52:50,244 ---> 00:52:52,304 >> Alex [inaudible] was one of the lucky few to get to try 1205 00:52:52,304 ---> 00:52:55,424 out a MacWheel and spent 45 minutes typing an email 1206 00:52:55,424 ---> 00:52:56,004 to his friend. 1207 00:52:56,324 ---> 00:52:57,934 >> I never really realized how much I hated keyboards 1208 00:52:57,934 ---> 00:52:59,174 until I saw this thing. 1209 00:52:59,174 ---> 00:53:02,994 >> I like how it automatically says, sent with a MacBook Wheel, 1210 00:53:02,994 ---> 00:53:04,344 so people automatically know you have one. 1211 00:53:04,464 ---> 00:53:06,994 >> With a price tag of just under 2600 dollars 1212 00:53:07,024 ---> 00:53:09,704 for the lowest end MacBook Wheel, it is an investment. 1213 00:53:10,214 ---> 00:53:12,834 But the super thin laptop features numerous innovations, 1214 00:53:12,834 ---> 00:53:15,154 like the new ultra thin hummingbird battery, 1215 00:53:15,474 ---> 00:53:16,854 which can power the MacBook Wheel 1216 00:53:16,904 ---> 00:53:19,454 for a fill 19 minutes before needing to be recharged 1217 00:53:19,614 ---> 00:53:22,234 and the computer is virtually unbreakable unless dropped 1218 00:53:22,234 ---> 00:53:22,604 or hit. 1219 00:53:22,884 ---> 00:53:24,664 But Apple isn't resting on its laurels, 1220 00:53:24,664 ---> 00:53:26,904 Bryan Gilman says they're already hard at work 1221 00:53:26,904 ---> 00:53:28,774 on the next generation of the MacBook Wheel, 1222 00:53:28,774 ---> 00:53:31,344 which will be four ounces lighter due to its lack 1223 00:53:31,414 ---> 00:53:32,904 of streaming hard drive or wheel. 1224 00:53:32,904 ---> 00:53:35,214 For the Ugly news Network, I'm Jeff Tate. 1225 00:53:35,504 ---> 00:53:36,254 >> Thank you for that, Jeff. 1226 00:53:36,364 ---> 00:53:38,024 It remains to be seen if the wheel will catch 1227 00:53:38,234 ---> 00:53:40,504 on in the business world where people use computers 1228 00:53:40,504 ---> 00:53:43,024 for actual work and not just dicking around. 1229 00:53:43,274 ---> 00:53:44,774 Moving on, police warn. 1230 00:53:44,774 ---> 00:53:45,554 >> David: So I've seen that thing 1231 00:53:45,554 ---> 00:53:47,774 at least a half a dozen times now, including once 1232 00:53:47,774 ---> 00:53:51,064 at like two a.m. last night and I was scrolling down on YouTube 1233 00:53:51,064 ---> 00:53:52,514 and literally like an hour prior, 1234 00:53:52,514 ---> 00:53:55,514 some guy in all seriousness posted, just a wheel? 1235 00:53:55,514 ---> 00:53:57,484 That's the stupidest product I've ever seen. 1236 00:53:57,484 ---> 00:53:58,194 [ Laughter ] 1237 00:53:58,194 ---> 00:54:02,754 And then the rants ensued in the thread thereafter. 1238 00:54:03,084 ---> 00:54:05,464 So besides lectures there are also sections 1239 00:54:05,464 ---> 00:54:06,764 and it is your teaching fellow 1240 00:54:06,764 ---> 00:54:08,554 and the course's course assistants that you will get 1241 00:54:08,554 ---> 00:54:11,354 to know very well over the course of this semester. 1242 00:54:11,804 ---> 00:54:14,024 Sectioning won't begin for a week or so's time. 1243 00:54:14,024 ---> 00:54:15,784 More on that in the lectures to come. 1244 00:54:15,784 ---> 00:54:18,034 But know that the course will have several different tracks 1245 00:54:18,264 ---> 00:54:20,854 of sections, much like First Knight's has for music. 1246 00:54:21,114 ---> 00:54:24,164 Sections targeted more at those less comfortable, 1247 00:54:24,354 ---> 00:54:26,644 those more comfortable and those somewhere in between. 1248 00:54:26,824 ---> 00:54:30,254 And we also offer most Sunday nights before a problem set is 1249 00:54:30,294 ---> 00:54:33,784 due on the following Friday is what we call code walkthrough's 1250 00:54:33,784 ---> 00:54:36,574 where one of the course's teaching fellows will lead a 1251 00:54:36,574 ---> 00:54:39,424 session targeted specifically at the week's problem set 1252 00:54:39,424 ---> 00:54:41,964 and will help you answer the question where do I begin, 1253 00:54:42,094 ---> 00:54:43,174 how should I approach this? 1254 00:54:43,174 ---> 00:54:45,694 And that too will be filmed and made available online 1255 00:54:45,924 ---> 00:54:47,904 and always linked on the course's website. 1256 00:54:48,224 ---> 00:54:50,394 So this course has a huge staff. 1257 00:54:50,594 ---> 00:54:53,644 Our staff is larger than Harvard's average class size. 1258 00:54:53,644 ---> 00:54:55,824 We have over 50 people involved in the production 1259 00:54:55,824 ---> 00:54:57,264 of this course on a weekly basis. 1260 00:54:57,544 ---> 00:55:00,514 Some of them teaching fellows who hold sections, grade work, 1261 00:55:00,704 ---> 00:55:02,124 hold office hours and more. 1262 00:55:02,124 ---> 00:55:04,984 Course assistants who are former students, who are offering 1263 00:55:04,984 ---> 00:55:08,384 on a volunteer basis in fact multiple hours of office hours 1264 00:55:08,384 ---> 00:55:09,554 in the computer lab per week. 1265 00:55:09,864 ---> 00:55:11,534 System administrators, folks doing all 1266 00:55:11,534 ---> 00:55:12,984 of our AV and video production. 1267 00:55:12,984 ---> 00:55:14,824 Someone who will actually be taking notes for you. 1268 00:55:15,104 ---> 00:55:18,304 So it is actually my opinion that scribbling 1269 00:55:18,304 ---> 00:55:19,524 down almost every word that someone 1270 00:55:19,524 ---> 00:55:21,584 like me says is not a very good use of one's time. 1271 00:55:21,584 ---> 00:55:23,824 It's much more interesting I think to actually engage 1272 00:55:24,044 ---> 00:55:25,964 with what's on the screen, what's being presented. 1273 00:55:25,964 ---> 00:55:29,134 And so what we will do as a course is post PDF's online 1274 00:55:29,134 ---> 00:55:31,864 within a couple of days of lectures of scribe notes, 1275 00:55:31,864 ---> 00:55:33,834 which is essentially an authoritative version 1276 00:55:33,834 ---> 00:55:38,234 of course notes, unedited, but documenting what went 1277 00:55:38,234 ---> 00:55:41,544 on in lecture that day, thereby hopefully freeing your minds 1278 00:55:41,544 ---> 00:55:44,724 and pencils from jotting information down. 1279 00:55:44,904 ---> 00:55:46,014 We have some of our team here. 1280 00:55:46,014 ---> 00:55:47,924 Most of our team is actually shopping courses. 1281 00:55:47,924 ---> 00:55:49,774 But if a few of your guys would like to come on stage 1282 00:55:49,774 ---> 00:55:52,164 for a moment with our head teaching fellow 1283 00:55:52,164 ---> 00:55:53,534 and assistant head teaching fellow. 1284 00:55:53,684 ---> 00:55:56,914 Allow me to ask the latter to say a quick hello. 1285 00:55:57,494 ---> 00:56:02,624 And as these guys come up in absentia allow me to say 1286 00:56:02,624 ---> 00:56:06,144 that also on staff this year besides the folks you see here 1287 00:56:06,144 ---> 00:56:10,774 are Alex, Alice, Andrew, Batul, Charlotte, Chris, Dan, Dan, 1288 00:56:10,774 ---> 00:56:16,294 Daniel, David, David, David, Derek, Dev, Didi, Doug, Drew, 1289 00:56:16,294 ---> 00:56:21,374 Erica, Fil, Glen, Greg, Janice, Jason, Jean, Jeff, Jesse, John, 1290 00:56:21,374 ---> 00:56:25,394 John, Jonathan, Jordan, Josh, Karim, Kelly, Ken, Kent, 1291 00:56:25,654 ---> 00:56:30,194 Kyu Bok, Lee, Madhura, Marta, Matthew, Michael, Michelle, 1292 00:56:30,194 ---> 00:56:34,714 Mike, Mike, Nathan, Patrick, Peter, Peyton, Rose, Saba, 1293 00:56:34,924 ---> 00:56:38,794 Sanjay, Shannon, Stacey, Ted, Wellie, Yair and me. 1294 00:56:39,684 ---> 00:56:42,004 So our course is teaching fellows and course assistants, 1295 00:56:42,004 ---> 00:56:45,644 Cansu and Yuhki, would you like to say a quick hello? 1296 00:56:46,194 ---> 00:56:48,574 >> Hi. It's definitely a great honor 1297 00:56:48,574 ---> 00:56:50,624 to be back here for the third time. 1298 00:56:51,044 ---> 00:56:53,654 And if you're one of those who are like less comfortable. 1299 00:56:53,654 ---> 00:56:53,721 [ Laughter ] 1300 00:56:53,721 ---> 00:57:00,254 I think I can [inaudible]. 1301 00:57:00,654 ---> 00:57:00,754 Okay. 1302 00:57:00,754 ---> 00:57:00,821 [ Laughter ] 1303 00:57:00,821 ---> 00:57:03,444 If you're one of those [inaudible]. 1304 00:57:03,444 ---> 00:57:07,094 There's no need to be afraid. 1305 00:57:07,094 ---> 00:57:09,764 I walked in here two years ago with no experience what so ever, 1306 00:57:09,794 ---> 00:57:14,394 and I thought that I was like dumb and I was sure 1307 00:57:14,394 ---> 00:57:15,594 that I was going to fail the class. 1308 00:57:15,594 ---> 00:57:18,824 And I came back for the third time. 1309 00:57:18,904 ---> 00:57:21,184 I did not fail the class. 1310 00:57:22,544 ---> 00:57:25,554 This course is great because it has such a good community. 1311 00:57:25,554 ---> 00:57:30,274 As you can tell by the names listed by David. 1312 00:57:30,274 ---> 00:57:32,984 All the CA's and TF's are here to help you. 1313 00:57:32,984 ---> 00:57:36,574 So if you have any questions at all, just come up to us. 1314 00:57:36,574 ---> 00:57:40,564 Not taking this class because it's hard is not a good excuse. 1315 00:57:42,234 ---> 00:57:43,424 So, hi. 1316 00:57:43,424 ---> 00:57:45,034 >> [Inaudible]. 1317 00:57:45,034 ---> 00:57:51,224 >> Hi, so well both as a student and TF, 1318 00:57:51,224 ---> 00:57:55,254 I've really enjoyed being a part of this course. 1319 00:57:55,254 ---> 00:57:58,724 And even though it's a course that requires a lot of work 1320 00:57:58,774 ---> 00:58:01,274 from you, we've put a lot of work in to it for you as well 1321 00:58:01,274 ---> 00:58:03,874 to make it as enjoyable and as fun as possible. 1322 00:58:03,964 ---> 00:58:08,914 So, we really hope that all of you stay and take part 1323 00:58:09,104 ---> 00:58:11,174 in this very special experience. 1324 00:58:11,674 ---> 00:58:11,874 >> Thanks. 1325 00:58:11,874 ---> 00:58:14,044 >> David: So you will find, thank you, all of you, 1326 00:58:14,044 ---> 00:58:15,014 you will meet them in the hallway 1327 00:58:15,014 ---> 00:58:16,154 in just a few minutes as well. 1328 00:58:16,474 ---> 00:58:18,414 So you'll find that this course, perhaps more 1329 00:58:18,414 ---> 00:58:21,064 so than many is very much a shared experience. 1330 00:58:21,064 ---> 00:58:22,324 This is not a competitive course. 1331 00:58:22,324 ---> 00:58:23,714 This is not your premed course. 1332 00:58:23,994 ---> 00:58:26,084 This is a course which ultimately yes is 1333 00:58:26,084 ---> 00:58:28,564 about doing independent work, as you'll see each week 1334 00:58:28,604 ---> 00:58:29,714 by way of the problem sets. 1335 00:58:30,054 ---> 00:58:32,264 But you can't help but to get close to someone 1336 00:58:32,514 ---> 00:58:35,504 when you're fighting with some bug and banging your head 1337 00:58:35,544 ---> 00:58:39,714 against the computer screen proverbially to try 1338 00:58:39,714 ---> 00:58:41,084 to track down some bug. 1339 00:58:41,324 ---> 00:58:43,804 And I think you'll find that past students will concur 1340 00:58:43,804 ---> 00:58:45,614 that you exit this course with a lot 1341 00:58:45,614 ---> 00:58:48,494 of friends among students and also on staff. 1342 00:58:48,724 ---> 00:58:50,004 So where does that happen? 1343 00:58:50,244 ---> 00:58:51,844 Well, within office hours in the basement 1344 00:58:51,844 ---> 00:58:53,864 of the science center there's some large computer labs 1345 00:58:53,864 ---> 00:58:56,664 and we pretty much take them over five nights a week. 1346 00:58:56,834 ---> 00:58:59,454 These won't start for some time, and this, to be honest, 1347 00:58:59,494 ---> 00:59:00,854 is perhaps the most beautiful picture 1348 00:59:00,854 ---> 00:59:02,174 of the science center I've ever seen. 1349 00:59:02,604 ---> 00:59:04,604 [ Laughter ] 1350 00:59:05,034 ---> 00:59:07,024 It does not look like that on the inside. 1351 00:59:07,134 ---> 00:59:11,524 But it is a place where a good percentage of students do choose 1352 00:59:11,524 ---> 00:59:14,014 to spend time to get one on one assistance with each 1353 00:59:14,014 ---> 00:59:15,444 of the week's problem sets. 1354 00:59:15,444 ---> 00:59:19,504 Each week we will offer more than 100 hours of assistance one 1355 00:59:19,504 ---> 00:59:21,854 on one in the science center per the schedule 1356 00:59:21,854 ---> 00:59:23,144 that will eventually go online. 1357 00:59:23,394 ---> 00:59:26,344 And for those of you who live, say in the quad, or in Mather, 1358 00:59:26,344 ---> 00:59:28,044 or who just don't want to trek all the way 1359 00:59:28,044 ---> 00:59:29,894 to the science center to ask that quick question, 1360 00:59:30,144 ---> 00:59:32,624 we also offer what are called virtual office hours, 1361 00:59:32,624 ---> 00:59:35,134 much like remote technical support where you'll be able 1362 00:59:35,134 ---> 00:59:38,364 to log into a glorified chat room, in which yes, 1363 00:59:38,364 ---> 00:59:40,474 you can type back and forth with a TF or a CA, 1364 00:59:40,474 ---> 00:59:43,264 but you can also share your screen or share control 1365 00:59:43,264 ---> 00:59:45,224 of your mouse with them subject to your consent 1366 00:59:45,434 ---> 00:59:47,814 so that they can help you troubleshoot any problem 1367 00:59:47,814 ---> 00:59:49,654 or any question you have remotely. 1368 00:59:49,654 ---> 00:59:51,814 To give you a sense of what's involved in the course, 1369 00:59:52,084 ---> 00:59:53,724 these are statistics from last year. 1370 00:59:53,724 ---> 00:59:55,814 So you will, I think it's quite fair to say, 1371 00:59:55,814 ---> 00:59:57,414 work your ass off in this course. 1372 00:59:57,624 ---> 00:59:59,304 But per my promise from the start, 1373 00:59:59,584 ---> 01:00:01,744 this is one of those experiences 1374 01:00:01,984 ---> 01:00:04,544 that I don't think a typical student regrets. 1375 01:00:04,684 ---> 01:00:06,784 If you flip through, for instance, the Q Guide forms 1376 01:00:06,814 ---> 01:00:09,884 that are all on the course's website, you'll find that only 1377 01:00:10,134 ---> 01:00:12,074 by putting in the time to a course 1378 01:00:12,074 ---> 01:00:14,934 like this do you really exit having felt 1379 01:00:14,934 ---> 01:00:16,334 like you got something out of it 1380 01:00:16,334 ---> 01:00:19,704 and frankly might very well even have emerged even smarter. 1381 01:00:19,984 ---> 01:00:23,324 So what does it mean to actually write programs 1382 01:00:23,364 ---> 01:00:24,944 and implement problem sets? 1383 01:00:24,944 ---> 01:00:26,764 Well, the first problem set last year, 1384 01:00:27,054 ---> 01:00:28,244 a quick retrospective here, 1385 01:00:28,244 ---> 01:00:30,484 was to implement your very own programming scratch. 1386 01:00:30,684 ---> 01:00:32,534 And we spend just the first week there, and the goal is 1387 01:00:32,534 ---> 01:00:34,834 to implement your own game or animation or art 1388 01:00:35,064 ---> 01:00:37,104 or anything that appeals to you. 1389 01:00:37,104 ---> 01:00:40,214 In week one, then do you implement some basic C programs 1390 01:00:40,254 ---> 01:00:42,554 to get acclimated to some more traditional programming 1391 01:00:42,554 ---> 01:00:44,224 environments at the command line, 1392 01:00:44,224 ---> 01:00:47,004 at Linux so you get comfortable with some of these basics 1393 01:00:47,004 ---> 01:00:49,004 that will certainly serve you well in the long run. 1394 01:00:49,294 ---> 01:00:51,704 Last year's Problem Set 2 was about cryptography. 1395 01:00:51,944 ---> 01:00:55,274 We gave students the opportunity to implement some ciphers, 1396 01:00:55,274 ---> 01:00:57,684 some algorithms that let them encrypt information. 1397 01:00:57,914 ---> 01:01:00,424 And we also offered some students the opportunity 1398 01:01:00,424 ---> 01:01:01,284 to do the opposite. 1399 01:01:01,554 ---> 01:01:03,324 Each problem set, many problem sets, 1400 01:01:03,324 ---> 01:01:05,484 as you'll see are implemented in two editions. 1401 01:01:05,694 ---> 01:01:08,514 A standard edition that we expect almost everyone to do, 1402 01:01:08,514 ---> 01:01:09,734 say 90 percent of the class. 1403 01:01:10,194 ---> 01:01:12,974 And then a hacker edition, which presents the material 1404 01:01:12,974 ---> 01:01:14,564 from a more sophisticated angle, 1405 01:01:14,564 ---> 01:01:16,294 expects perhaps a bit more clever work 1406 01:01:16,294 ---> 01:01:17,654 for those more experienced, 1407 01:01:17,904 ---> 01:01:19,934 and for this one did those students get handed 1408 01:01:19,934 ---> 01:01:23,714 in the hacker edition pre existing user names 1409 01:01:23,714 ---> 01:01:26,304 and passwords in encrypted form and they had to figure 1410 01:01:26,494 ---> 01:01:27,824 out what those passwords for. 1411 01:01:27,824 ---> 01:01:30,844 We actually got into trouble for this a few years ago because all 1412 01:01:30,844 ---> 01:01:32,764 of the sudden FAS Computer Services saw 1413 01:01:32,764 ---> 01:01:38,904 like 50 people running a crack program on nice.fas.Harvard.edu, 1414 01:01:39,174 ---> 01:01:41,704 so they now have been given a heads up for programs like that. 1415 01:01:42,094 ---> 01:01:44,574 Last year students implemented the game of 15. 1416 01:01:44,794 ---> 01:01:46,824 Not all that much fun to play as a party favorite, 1417 01:01:46,824 ---> 01:01:48,484 moving the numbers up down, left, right, 1418 01:01:48,584 ---> 01:01:50,114 but a real stepping stone 1419 01:01:50,114 ---> 01:01:52,194 to implementing something interactive 1420 01:01:52,244 ---> 01:01:54,264 that involves a human and the hacker edition 1421 01:01:54,264 ---> 01:01:56,654 for this one had students implementing God mode, 1422 01:01:56,654 ---> 01:01:59,484 which actually solved this thing for the human, 1423 01:01:59,484 ---> 01:02:02,594 maybe cheat mode is the more apt term, in Sudoku, 1424 01:02:02,814 ---> 01:02:05,604 which was a step up toward that, where we provided the students, 1425 01:02:05,604 ---> 01:02:08,384 you, with a framework with a whole bunch of code 1426 01:02:08,384 ---> 01:02:11,184 that you needed to first understand before taking things 1427 01:02:11,184 ---> 01:02:13,044 the final mile and implementing some 1428 01:02:13,044 ---> 01:02:14,394 of the remaining functionality. 1429 01:02:14,644 ---> 01:02:17,034 And then we dabbled in forensics and this grew 1430 01:02:17,034 ---> 01:02:20,444 out of a real world experience between me and a friend. 1431 01:02:20,674 ---> 01:02:22,914 For this problem set last year, this buddy and I, 1432 01:02:22,914 ---> 01:02:25,044 who he being a particularly good photographer, 1433 01:02:25,284 ---> 01:02:29,604 strolled around campus and we shot photographs of unique, 1434 01:02:29,774 ---> 01:02:33,484 non obvious, but identifiable places on campus. 1435 01:02:33,484 ---> 01:02:34,904 And this was using his digital camera. 1436 01:02:34,904 ---> 01:02:36,324 All of these JPEGs got stored 1437 01:02:36,324 ---> 01:02:37,854 on a digital flash card or what not. 1438 01:02:38,134 ---> 01:02:40,754 And then I accidentally formatting the thing, 1439 01:02:40,754 ---> 01:02:41,474 or erased it. 1440 01:02:41,584 ---> 01:02:44,514 Well, it turns out formatting something or erasing something, 1441 01:02:44,514 ---> 01:02:45,914 usually means neither. 1442 01:02:45,914 ---> 01:02:48,134 It just means doing a little bit of work 1443 01:02:48,254 ---> 01:02:50,374 to make the human think their data has been erased, 1444 01:02:50,374 ---> 01:02:51,974 when in reality it hasn't. 1445 01:02:52,384 ---> 01:02:53,604 It's just been forgotten. 1446 01:02:53,934 ---> 01:02:56,624 And so we tasked last year's students with writing a program 1447 01:02:56,624 ---> 01:03:01,214 in C to actually recover these photos for my friend. 1448 01:03:01,214 ---> 01:03:03,294 We gave everyone a forensic image, so to speak, 1449 01:03:03,294 ---> 01:03:06,104 a big file representing that compact flash card, and they had 1450 01:03:06,104 ---> 01:03:08,114 to recover the several dozen photographs. 1451 01:03:08,114 ---> 01:03:10,314 And they also had to solve this little murder mystery. 1452 01:03:10,604 ---> 01:03:12,624 We provided folks with this image here. 1453 01:03:13,714 ---> 01:03:17,384 Those of you who've seen this before might be doing 1454 01:03:17,384 ---> 01:03:19,654 that squinting thing right now where you're trying to look 1455 01:03:19,754 ---> 01:03:22,184 through the picture, well you look pretty awkward, 1456 01:03:22,184 ---> 01:03:23,764 because this is not a magic eye puzzle. 1457 01:03:23,764 ---> 01:03:25,314 This is just random red noise 1458 01:03:25,314 ---> 01:03:29,484 that actually has behind it an actual message. 1459 01:03:29,484 ---> 01:03:33,844 And it turns out, I think it was Colonel, let's see, 1460 01:03:33,844 ---> 01:03:35,014 I've got my little solution here. 1461 01:03:35,014 ---> 01:03:36,724 Last year it was Colonel Mustard 1462 01:03:36,784 ---> 01:03:38,734 in the study with the candlestick. 1463 01:03:38,884 ---> 01:03:41,634 And this was the murder message recovered by students 1464 01:03:41,634 ---> 01:03:42,784 who wrote code to do so. 1465 01:03:42,784 ---> 01:03:44,694 And then in Problem Set 6 last year. 1466 01:03:44,694 ---> 01:03:45,604 We challenged students 1467 01:03:45,604 ---> 01:03:48,504 with implementing the fastest spell checker possible. 1468 01:03:48,504 ---> 01:03:49,414 What do we mean by that? 1469 01:03:49,774 ---> 01:03:54,054 Well, we handed the students a big text file containing 140 1470 01:03:54,114 ---> 01:03:58,424 plus thousand English words, and we said write a program 1471 01:03:58,424 ---> 01:04:01,914 that loads all of these words into memory, but very quickly 1472 01:04:01,914 ---> 01:04:05,024 and very efficiently can tell us yea or nay, 1473 01:04:05,214 ---> 01:04:08,274 is this document perfectly spelled or are there errors? 1474 01:04:08,274 ---> 01:04:10,694 And what we provided was a testing framework, a harness, 1475 01:04:11,004 ---> 01:04:14,144 that students, if they wanted to compete, could run their code 1476 01:04:14,144 ---> 01:04:16,914 against some benchmarks, against some testing programs 1477 01:04:16,944 ---> 01:04:17,604 that we wrote. 1478 01:04:17,814 ---> 01:04:20,394 And then, ranked on the course's website from fastest 1479 01:04:20,394 ---> 01:04:23,274 to slowest were the running times, 1480 01:04:23,424 ---> 01:04:25,614 the amount of time it took for each student's code 1481 01:04:25,614 ---> 01:04:28,094 to actually execute, complete opt in. 1482 01:04:28,094 ---> 01:04:29,274 It's by no means required. 1483 01:04:29,484 ---> 01:04:32,814 And we took a bullet for the team and made sure that one 1484 01:04:32,814 ---> 01:04:35,694 of our own teaching fellows intentionally, I think, 1485 01:04:35,694 ---> 01:04:37,294 was at the very bottom of the list. 1486 01:04:37,694 ---> 01:04:39,204 So, there was definitely a lower bound. 1487 01:04:39,204 ---> 01:04:41,984 But the odd, the funny thing was we saw this 1488 01:04:41,984 ---> 01:04:45,734 in the cue guide evaluation, this problem set of all things, 1489 01:04:45,974 ---> 01:04:48,764 was apparently the one that people sunk the most time into. 1490 01:04:48,984 ---> 01:04:51,624 Not because it took any longer than all the other p sets, 1491 01:04:51,854 ---> 01:04:54,444 but they would come back from like dinner, look at the board, 1492 01:04:54,444 ---> 01:04:57,074 and realize dam my friend, my roommate just ever 1493 01:04:57,074 ---> 01:04:59,984 so slightly inch higher than me and so it incentivized people 1494 01:04:59,984 ---> 01:05:02,524 if only to one up their friends and roommates. 1495 01:05:03,164 ---> 01:05:05,684 In Problem Set 7, last year, we asked students 1496 01:05:05,684 ---> 01:05:08,964 to implement their own E*Trade like website, whereby you had 1497 01:05:08,964 ---> 01:05:10,194 to create a website using 1498 01:05:10,194 ---> 01:05:12,864 that language call PHP a database called mysql 1499 01:05:13,374 ---> 01:05:17,224 that actually lets people log in and then manage a portfolio 1500 01:05:17,224 ---> 01:05:19,124 of stocks, buy stocks quote unquote, 1501 01:05:19,204 ---> 01:05:21,344 sell stocks quote unquote, get stock quotes. 1502 01:05:21,344 ---> 01:05:21,974 And from where? 1503 01:05:22,194 ---> 01:05:24,504 Well, we have the students; we had the student patch 1504 01:05:24,504 ---> 01:05:27,394 into Yahoo Finance where they grabbed merely the Real time 1505 01:05:27,394 ---> 01:05:29,974 stock quotes to actually simulate the process 1506 01:05:30,334 ---> 01:05:31,844 of buying and trading stocks. 1507 01:05:31,844 ---> 01:05:35,004 Unfortunately some students, perhaps some economics majors 1508 01:05:35,004 ---> 01:05:37,174 or just folks with too much free time figured 1509 01:05:37,174 ---> 01:05:38,644 out last year how to gain the system. 1510 01:05:38,904 ---> 01:05:41,414 So, even though we gave everyone 10,000 virtual dollars, 1511 01:05:41,694 ---> 01:05:46,044 I think our winner turned teaching fellow this year 1512 01:05:46,044 ---> 01:05:49,754 actually, right don't push them away make them one of your own, 1513 01:05:49,894 ---> 01:05:52,634 for a billion dollars something like that ridiculous. 1514 01:05:53,084 ---> 01:05:54,774 Turns out we weren't really checking whether 1515 01:05:54,774 ---> 01:05:56,534 or not people were trading after hours. 1516 01:05:56,794 ---> 01:06:00,204 And it turns out that also, Yahoo stalk quotes are not 1517 01:06:00,204 ---> 01:06:02,044 in fact perfectly Real time which means 1518 01:06:02,044 ---> 01:06:04,794 if you just have a real E*Trade account you can see the future 1519 01:06:05,004 ---> 01:06:06,484 and see where the stocks are going. 1520 01:06:06,484 ---> 01:06:06,551 [ Laughter ] 1521 01:06:06,551 ---> 01:06:11,974 So, apparently you can exploit that if you put your mind to it. 1522 01:06:12,174 ---> 01:06:13,394 and then, in Problem Set 8, 1523 01:06:13,394 ---> 01:06:15,364 the course's final problem set last year, 1524 01:06:15,614 ---> 01:06:18,744 we had students implement a mash up where they take Google News 1525 01:06:18,744 ---> 01:06:22,514 and Google Maps and mash them together using JavaScript, 1526 01:06:22,514 ---> 01:06:25,674 PHP and SQL in such a way that they had a website 1527 01:06:25,674 ---> 01:06:27,724 that they could find all of the local news 1528 01:06:27,724 ---> 01:06:31,174 from whether it's zip code 02138 or 90210. 1529 01:06:31,174 ---> 01:06:34,334 And, you would actually pull the local current even articles 1530 01:06:34,604 ---> 01:06:36,794 by this thing called XML and integrate it 1531 01:06:36,794 ---> 01:06:38,434 into the view of a Google Map. 1532 01:06:38,904 ---> 01:06:42,404 And then, at very course's end was the true climax 1533 01:06:42,404 ---> 01:06:42,954 of the course. 1534 01:06:42,984 ---> 01:06:45,174 This course culminates in final projects, 1535 01:06:45,174 ---> 01:06:47,014 which ultimately will be your opportunity 1536 01:06:47,014 ---> 01:06:49,894 to design your very own piece of software, designed by you 1537 01:06:50,124 ---> 01:06:51,644 or two or three friends. 1538 01:06:51,824 ---> 01:06:55,594 And the course then climaxes with the new and improved, 1539 01:06:55,594 ---> 01:06:59,024 with the second annual computer science 50 fair 1540 01:06:59,024 ---> 01:07:01,084 which last year was an exhibition across the street 1541 01:07:01,084 ---> 01:07:02,344 in one of the engineering buildings 1542 01:07:02,594 ---> 01:07:06,484 with 300 laptops atop tables, popcorn was popping, 1543 01:07:06,484 ---> 01:07:08,484 music was playing, stress balls 1544 01:07:08,484 ---> 01:07:10,774 with CS50's logo were being thrown around. 1545 01:07:11,074 ---> 01:07:13,324 And this was an opportunity for our 300 plus students 1546 01:07:13,324 ---> 01:07:16,364 to exhibit their final projects not only to each other but also 1547 01:07:16,364 ---> 01:07:19,724 to some 900 attendees in total. 1548 01:07:19,724 ---> 01:07:21,774 And we also invited some recruiters as well. 1549 01:07:21,774 ---> 01:07:24,044 So, that is what you have to look forward in this course. 1550 01:07:24,234 ---> 01:07:27,024 You also have cake to look forward to in the hallway. 1551 01:07:27,284 ---> 01:07:29,934 This is CS50 and we'll see you on Friday. 1552 01:07:30,494 ---> 01:07:38,498 [तालियां]