[موسيقى] هذا هو CS50-- هارفارد مقدمة الجامعة إلى المثقف شركات علوم الحاسوب وفن البرمجة. واسمي ديفيد مالان، و كنت أفكر في هذا الصباح، انها كانت مذهل 20 عاما اليوم منذ المرة الأخيرة التي جلس فيها يا رفاق تفعل الآن. كان عليه عام 1996. كنت في السنة الثانية، وكنت آخذ CS50 للمرة الأولى. وأنا لم حتى وصلت حتى العصب أعتبر نفسي طالبة سنة، جزئيا بسبب الوقت. علوم الكمبيوتر لي هو نوع من تحب، مه. لقد شعرت بشيء من المهوس ينمو ، ولكن لم أكن حقا لديك أي مثقف الفائدة في ما يبدو أن تكون مجرد مجموعة كاملة من الناس البرمجة في كل وقت. وكنت خائفا أن نكون صادقين. وبطبيعة الحال، وعلوم الكمبيوتر أكثر كان عموما وإلى حد ما، لا يزال لديه هذه السمعة من حقل ل حذار، إلا إذا كان بسبب الكثير منا لم يعتادوا على ذلك وغير متأكد من ذلك. وكان حقا لا حتى أنا بالتسوق هذه الفئة التي طالبة fall-- وحتى ذلك الحين، التحقت فقط لأن professor-- واحدة من أول زملائي الموجهين، بريان كيرنيغان الآن في Princeton-- سمح لي أن تمرير الطبقة تفشل. وبالفعل، هذا هو السبب اليوم سمحنا وتشجيع الطلاب على اتخاذ هذه الفئة جلس / unsat. وبعد ذلك فقط، قبل نهاية الفصل الدراسي لم أكن أدرك مثل، نجاح باهر، وهذا لم يكن مثل حقل غير مألوف. في الواقع، كان هذا تمكين جدا المجال، وأكثر من ذلك المثير، خصوصا في وقت لاحق، كما أخذت دورات في الفنون المسرحية 101 واللاتينية و ثم في النهاية علم الآثار المدرسة غراد، أنا لم تبدأ فعلا لرؤية تقاطعات هذا المجال، والكمبيوتر العلم، مع العلوم الإنسانية، العلوم الطبيعية والفنون، والطب، وما شابه ذلك. وهذا ما فقط حتى أنيق حول علوم الكمبيوتر في نهاية المطاف، كما نأمل عليك see-- هو تطبيقه لهذه المجالات الأخرى، وكيف يمكن يستغرق بعض من اليوم والفصل الدراسي الأفكار والمهارات العملية العودة إلى المجال الخاص بك، وفعلا استكشاف هذا التقاطع من الفنون الحرة والعلوم. حتى 73٪ من لكم، وإذا آخر السنة أي إشارة، اتخذت أبدا CS بطبيعة الحال من قبل. إذا كان الأمر كذلك، مثلي، وأنت الشعور قليلا خائفة، أو بصراحة كنت لا متأكدا لماذا أنت حتى هنا. ربما كنت اتبعت فقط بعض أصدقاء الى ساندرز الآن. وهذا جيد تماما. والهدف هنا هو ربط أنت وأن أؤكد لكم أنه إذا لم ننظر إلى اليسار وإلى اليمين، وأنت تسير لرؤية زملاء الدراسة مع كما خبرة قليلة أو قدر أن أنت نفسك تكون لديكم. وبالفعل، فإننا سوف حصة في وقت لاحق بعض الإحصاءات اليوم لماذا التركيبة السكانية لل الطبقة تبدو عادة مثل. وكما أضاف reassurance-- وهذا نحن لا يعني منذ أن توليت على مدى بعض السنوات ago-- في منهج الدورة ل غير this-- أن ما في نهاية المطاف الأمور في هذه الدورة ليس كثيرا حيث ينتهي بك تصل نسبة إلى زملائك، ولكن أين كنت في الأسبوع 11، ونهاية فصل دراسي، وينتهي نسبة إلى نفسك في الأسبوع 0، وهو حيث نحن هنا اليوم. وهذا ما أدركت كل تلك السنوات الماضية. وأنا أعرف الكثير من وتقول الدراسة هذا، ولكنها ل خصوصا صحيح في علوم الكمبيوتر. في نهاية اليوم، هذا المجال هو غير مألوف كما كان لي ويمكن أن يكون لك، هو في الحقيقة فقط حول حل المشكلة. وعلى هذا النحو، فإنه لا يكون هذا تطبيق للحصول على غيرها من المجالات. وفي الواقع، إذا حاولنا لاستخلاص ما يعنيه هذا، هذا هو حل المشكلة في جوهرها، ونحسب. هناك input-- ذلك كل ما هو أنك تحاول حلها. هناك الإخراج، وهو أمل الحل لهذه المشكلة. وبعد ذلك، كما كنا يقول في علوم الكمبيوتر، هناك هذا الصندوق الأسود في وسط ما تفعله ليس بالضرورة من الضروري أن نهتم كيف يعمل. أنت نفسك في نهاية المطاف ربما تنفيذ ما يدور في داخل هذا المربع. ولكن لأغراض اليوم وأكثر من ذلك عموما في الحياة، كل ما يهمني غير أن هذه المشاكل تحصل على حلها. وما هي هذه الدورة في نهاية المطاف عن تستكشف تقاطع هذه المدخلات والمخرجات، وهذه ما يسمى ب الخوارزميات، كما سنرى قريبا، أن تنفيذ ما هو تحت هناك، غطاء محرك السيارة. ولكن هذه المدخلات وهذه outputs-- ماذا يعني ذلك في الواقع؟ حسنا، في نهاية المطاف، ونحن بحاجة بعض سيلة لتمثيل المعلومات. هذا ينطبق بشكل خاص في هذا الكمبيوتر، والتي كما يتوهم ومعقدة لأنها قد يبدو، هو جهاز غبية جدا. فإنه يأخذ electricity-- سواء من كابل أو بطارية كما input-- وبعد ذلك تنتج بعض ردود preprogramed على الشاشة. ولكن كيف نحصل عليها من البداية وحتى النهاية هناك؟ حسنا، ما هو مشكلة يجب حلها؟ حسنا، ربما أننا ربما، في بداية أي فصل دراسي، في محاولة لاتخاذ الحضور في غرفة من هذا القبيل. ولذا فإنني قد تفعل مثل واحد، اثنان، ثلاثة. أو ربما، إذا فعلت ذلك إلى نوع من تتبع من myself-- لتتبع things-- أنا يمكن أن تصل بسرعة للخروج من الأصابع. ولذا فإنني قد تجعل مجرد بعثرة marks-- واحد شخص، اثنان، ثلاثة، أربعة، خمسة، ستة، سبعة ثمانية. وعلينا جميعا ربما فعلت ذلك، سواء على يديك أو على قطعة من الورق. وهذا هو في الواقع فقط ما يسمى notation-- أحادي حيث إذا كان لديك فقط حرف واحد في الخاص بك الأبجدية، التجزئة واحد أو علامة في هذه الحالة، لكل الإدخال الذي تريد العد، تحتاج لاخماد واحدة من هذه letters-- واحدة من هذه العلامات. حسنا. هذا كل شيء على ما يرام وجيد و ليس كل ما معقدة. ولكن أجهزة الكمبيوتر ليست كلها أن معقد أكثر من ذلك بكثير. في الواقع، فإن معظم ربما كنت تعرف حتى لو كنت قد لا حقا يعتبر ما يعني هذا، أن أجهزة الكمبيوتر يفهمون إلا الأصفار وones-- ما يسمى النظام الثنائي. نحن البشر، على النقيض من ذلك، وذلك أكثر تعقيدا بكثير بقدر ونحن نفهم الأصفار من خلال ضعيته. ولكن حتى لو ثنائي هو، في البداية لمحة، وليس كل ما مألوفة، اتضح انها مجرد مثل أنظمة والأفكار التي لدينا بالفعل. هكذا على سبيل المثال، النظر في هذا. هذا هو مجرد تسلسل الرموز. ولكم جميعا، عندما نظرة عابرة في ذلك، على الأرجح أعتقد 123-- شيء حقا مثيرة للاهتمام هناك. ولكن لماذا هو هذا العدد، 123؟ هذه هي رموزا فقط على وscreen-- أنماط فقط أن شخصا ما قد رسمها أو كتابتها. ولكن إذا كنت مثلي، وكنت ربما نتذكر من المدارس الابتدائية أن هناك نوعا من الأعمدة أو الأماكن هنا. هناك مكان واحد و مكان عشرة ومكان مائة و. والسبب أن هذا هو 123 و ليس فقط وجود نمط من ثلاثة رموز لأنه، بطبيعة الحال، إذا نحن لديهم واحدة في مكان مئات، كنت تفعل الرياضيات من 100 مرة واحدة، ثم اثنين في مكان عشرة ل. ذلك أن 10 مرات 2، ثم ثلاثة في مكان واحد وهذا هو 1 3 مرات. وعند إضافة كل من تلك التي تصل من بالطبع، يمكنك الحصول على 100 زائد 20 زائد 3. لذلك بدأنا مع مجرد نمط من symbols-- على alphabet-- ولكن بعد ذلك رسمناها معنى على ذلك عن طريق هذه الأعمدة. حسنا، اتضح أن أجهزة الكمبيوتر هي في الحقيقة ليست تختلف عن تلك التي لي ولكم. ولكن بدلا من استخدام الصلاحيات من 10، وذلك لspeak-- 1، 10، 100، 1000، 10000 مكان وهكذا forth-- أنها في الواقع مجرد استخدام صلاحيات 2-- حتى واحد، 2، 4، ومن ثم إذا وضعنا أرقام أكثر، 8، 16، 32، 64، 128، وهكذا دواليك. وحتى هذا هو كيف يمكن لجهاز الكمبيوتر سيمثل الرقم 0، مثلما نحن البشر. 0، 0، 0-- وربما يمكنك تخمين ما نمط من الآحاد والأصفار و، إذا كان الكمبيوتر لا يمكن إلا أن الكلام 0 أو 1-- ما النمط تسير لتمثيل عدد نحن البشر يعرفون ك 1؟ Yeah-- 0، 0، 1. حسنا. لذلك 0، 0، 1 هي الطريقة التي نمثلها 1، لذلك قد يميل ثم تمثل عدد 2، إذا كان لديك الأربعة في مكان ومكان اثنين الخاص كما مكان واحد، قد نقول، حسنا، إذا كان لدينا 1 في مكان واحد، والآن نريد أن عد لتصل إلى 2، كنت قد القيام بذلك، وترك هذا ليكون صفر. ولكن بالطبع هذه ليست الطريقة يعمل النظام العشري سواء. إذا وضعت رقما في كل من هذه الأعمدة، كنت قد حصلت على القيام الحساب. وماذا في ذلك عدد لم أنا صدفة تمثل؟ لذلك فمن 3، ل2 ​​مرات 1 زائد 1 مرات 1، بالطبع، يمنحنا الثلاثة. ولذلك فإن هذا من شأنه أن يكون اثنين. بت نوع من تقلب، إذا جاز التعبير، و0 تصبح واحدة، مثل الكثير من 9 أدوار على ويصبح 0 عند حمل 1. هذا فلن يكون ثلاثة بالطبع. Four-- شيء آخر مثير للاهتمام يحدث، حيث لفة منها على وأنت تحمل 1، إذا جاز التعبير. لذلك هذا، بالطبع، هو 4. ولكن إذا كنت سريع إلى الأمام الآن، ما هو أكبر عدد الذهاب ليكون ذلك جهاز كمبيوتر يمكن أن تمثل؟ حتى انها مجرد سبعة في هذه الحالة، أليس كذلك؟ لأن لديك واحدة في أربعة، واحد من كل اثنين، واحد في واحد. ذلك أن 4 زائد 2 زائد 1. بحيث يمنحك سبعة. والواقع، انه سيكون يبدو للوهلة الأولى أن أجهزة الكمبيوتر يمكن الاعتماد أي أعلى من ذلك. ولكن هذا بالطبع ليس صحيحا. ماذا نحن البشر تفعل عندما نريد لحساب أعلى من مثل 999؟ فقط حمل واحد وفقط إضافة الرقم الرابع إلى اليسار. وهكذا بالفعل استطعنا. نحن يمكن أن يكون لها ثمانية ل وضع ومكان ل16، و و32 في مكان، 64، 128-- ولك يمكن فقط الاستمرار على ما يصل إلى ما لا نهاية. لذلك فان هذه الأصفار وones-- ما يسمى system-- ثنائي هم ما من شأنه عالم الكمبيوتر استدعاء عموما قليلا، أو ثنائي الرقم. ولكن الآن، كيف نحصل عليها من مفهوم أو الرسومات من هذه الأشياء إلى الكمبيوتر الفعلي؟ يبدو أننا تخطي خطوة هنا. حسنا، وإدخال الوحيد في نهاية اليوم، إلى جهاز الكمبيوتر المحمول هنا هذا هو تدفق الكهرباء. حتى لو انها كانت منذ فترة طويلة الوقت منذ كنت فكرت أو يفكر مطلقا كيف يعمل الكهرباء، هناك الإلكترونات المتدفقة في أو خارج، وهذا هو بلدي نوع من المدخلات. حتى إذا كان هذا هو كل ما نحن الحصول على كمدخل هنا، ماذا يمكننا أن نفعل مع هذه المعلومات؟ حسنا، ربما نفكر في صفر كما مجرد غياب الكهرباء. ليس هناك ما هو flowinw، لا شيء تتحرك، لا شيء يحدث. هذا مجرد الافتراضي state-- الصفر. ولكن إذا كان هناك تدفق الكهرباء، لماذا نحن لا فقط بشكل تعسفي، ولكن على مستوى العالم باستمرار، والدعوة التي واحدة. ذلك ببساطة عن طريق عدم وجود السلطة، لدينا صفر، نعم السلطة، لدينا احدا-- ولا قوة، نعم السلطة. وبهذه الطريقة، وذلك باستخدام شيء أكثر مادية أو الكترونية نبدأ في تنفيذ هذه الفكرة من كون شيء واحد أو صفر. في الواقع، يمكننا أن نفعل ذلك فقط أكثر من هنا. حتى هنا، وأنا لم ثلاثة ولكن ثمانية المصابيح الكهربائية، كل واحدة منها يوجد مفتاح خاص به. وهكذا إذا أردت أن تمثل الرقم سبعة هنا، وأود أن تشغيل هذه المصابيح الثلاثة. وبالفعل، داخل جهاز الكمبيوتر الخاص بي هو الملايين، المليارات من الأشياء التي هي مجرد أصغر من ذلك، ودعا الترانزستورات، مفاتيح، انك تشغيل وإيقاف. لذلك فان هذه هي big-- نسبيا مفاتيح big-- داخل بلدي laptop-- الكثير والكثير، الكثير، العديد من مفاتيح. ولكن كل ما يفعلونه هو بالضبط هكذا- يضرب تحويل شيء على، تتحول شيئا خارج. وعلى هذا النحو، جهاز كمبيوتر يمكن أن تمثل، مع تلك الملايين أو المليارات من الترانزستورات، والكثير و الكثير من الآحاد والأصفار و. وهناك أجهزة أخرى لا يزال أن يسمح لك بتخزين المعلومات على المدى الطويل، ذلك أنه عند سحب المكونات، لا تفقد ذلك. ولكن هذه قصة ليوم آخر. ذلك ما يمكن أن نقوم به مع هذه القطع؟ قد علينا فقط أن تأخذ الضغط عن me-- قد شخص يريد أن يأتي هنا وتقديم ما يصل التجريبي؟ رأيت هذا مباشرة. ما اسمك؟ MADAY: Maday. DAVID مالان: Maday، وتأتي على ما يصل. تشرفت بمقابلتك. MADAY: لطيف لمقابلتك. DAVID مالان: تعال بهذه الطريقة. أنا لن يكون على الشفاه لكم. حسنا. حتى هنا، لدينا، notice-- واحد، two-- سنقوم تحرير تلك out-- واحد، اثنان، أربعة، ثمانية، 16، 32، 64، 128. هذا هو متعمد. هناك ثمانية بت here-- ثنائي الأصفار digits-- ومنها. وقليلا هو وحدة مفيدة لmeasure-- ليست مفيدة وحدة القياس على نفسها. وعادة ما تريد على الأقل ثمانية من هذه الأشياء، ويعرف أيضا باسم بايت. لذلك لدينا بايت بت هنا. لذلك إذا أردنا أن تحدي لك، على سبيل المثال، توضح، في ثنائي، هذه القيمة here-- 42. تريد أن تأخذ طعنة في ذلك؟ MADAY: [غير مسموع]. DAVID مالان: نعم، مجرد الضغط على قليلا مفاتيح بيضاء في الجبهة. وتريد توضيح من 42، ولقمة سائغة هو هذا التوتر CS50 الكرة إذا كنت تحصل على هذا. حسنا. حتى يكون لديك 32. ونحن في طريقنا إلى حاجة 42. ذلك أن ثمانية، ذلك أن 40. وفعل excellent-- متقن. شكرا. [تصفيق] حسنا. لذلك لدينا أكثر واحد الكرة الإجهاد. دعونا نفعل ذلك مرة أخرى إذا كنا قد. واحد المتطوعة الأخرى؟ الكرة الإجهاد الحرة، خالية من الإجهاد الكرة. حسنا. هنا في الوسط، هل تريد أن ينزل؟ حسنا. اعرف. هناك نذهب. حتى الأرقام تأتي here-- نزولا. ما اسمك؟ DAVEY: ديفي. DAVID مالان: ديفي. حسنا. تأتي على ما يصل، ديفي. تشرفت بمقابلتك. وما نحن ذاهبون أن يكون لك spell-- إذا كنت يمكن أن نطيل هناك لاللحظات، واحد فقط هو رقم 50. ولكن، ولكن، ولكن ولكن ولكن، وهذه هي المغناطيس الصف المدرسي لسبب ما. حصلت للتو أصعب قليلا، كل الحق؟ لا يزال هناك ثمانية. حسنا. فماذا لدينا هناك؟ لدينا 32. لطيف. 32 زائد 16 يعطينا 48-- قريبة جدا. ورائع. تهنئة الى ديفي كذلك. [تصفيق] حسنا. حتى نتمكن من القيام بذلك طوال اليوم، و انها لا تحصل على كل ما أكثر من ذلك بكثير مثيرة للاهتمام وأكثر تحديا. ولكن هذا حقا point-- هي الطريقة بسيطة نسبيا هو، في نهاية المطاف، ما الكمبيوتر لا لتخزين المعلومات، لتخزين المدخلات وفي نهاية المطاف تخزين أو تمثل هذه النواتج. لكن الأرقام وحدها لا كل ذلك مثيرة للاهتمام. حتى البشر، منذ عدة سنوات، قررت، أنت تعرف لماذا؟ سيكون من الجميل لو كانت أجهزة الكمبيوتر ليس فقط الآلات الحاسبة لعلم الحساب العمليات، ولكن في الواقع يمكن تفعل أشياء مثل معالجة النصوص، أو البريد الإلكتروني، أو التجسيد الأكثر حداثة هذه الأنواع من التقنيات. وهكذا قرر العالم اعتباطا بل عالميا، أنه إذا كنت تريد تخزين العاصمة الحرف A في الكمبيوتر، وانت تعرف ماذا؟ دعونا نتفق جميعا لتخزين بعض نمط من الأصفار وones-- bits-- أنه في نهاية المطاف يمثل الرقم العشري 65. سنقوم فقط نتفق جميعا على ذلك. 66 سيمثل B، 67 سيمثل C، وهناك باقات من أنماط أخرى من الآحاد والأصفار و، أو الأرقام الأساسية، التي من شأنها أن تمثل رسائل أخرى لا يزال. حتى إذا كنت من النوع عقليا استيعاب هذه لحظة، أنا وضعت عمدا من A إلى الأول، حيث H 72 وأنا هو 73. إذا كان جهاز الكمبيوتر ثم، في سياق برنامج معالجة النصوص أو البريد الإلكتروني، كشف تحت غطاء محرك السيارة لديك هذه الأنماط من نمط bits-- البتات تمثل 72، ثم 73، ثم 33-- ما قد هذا توضيح في هذا البرنامج؟ لذلك مرحبا، وبعد ذلك شيء. نحن لا نعرف بالضرورة، ولكن في الواقع 33-- لا على الرسم البياني earlier-- كان مجرد علامة تعجب. لذلك كان 72 ه، 73 هو أنا، 33 يحدث أن تعجب من ذلك. ولكن هذا كل شيء على ما يرام وجيدة، في واقع الأمر في الوقت الحاضر، بدلا من مجرد استخدام سبعة أو ثمانية بت، وذلك بفضل لشيء دعا يونيكود بدلا إلى ASCII مرة في اليوم، ونحن في الواقع يمكن أن تمثل أكثر شخصيات مثيرة للاهتمام من مجرد هذه اللغة الإنجليزية الأصلية منحازة الحروف. ولكن يمكننا أيضا أن تمثل حتى أشياء أكثر إتقانا مثل الألوان. إذا كنت قد سمعت اختصار RGB، الأحمر، الأخضر، الأزرق، أن يعني فقط ان جهاز كمبيوتر عادة ما يستخدم ثلاث مجموعات من bits-- بعض عدد البتات التي تمثل عدد لكم أحمر تريد، مجموعة أخرى من بت ل كم الأخضر تريد، وعدد آخر مجموعة ل كم الأزرق تريد. ذلك يعني عدد كبير الكثير من أحمر، عدد قليل يعني عدم وجود اللون الأحمر. وبالتالي فإن هذه هي نوع القيم المتوسطة هنا. حتى تعطيني بعض أحمر، أعطني بعض الأخضر، وتعطيني قليلا من اللون الأزرق. وإذا خلط تلك الظلال الثلاثة من اللون معا، في هذه الحالة، يمكنك الحصول على هذه الظل المظلم من الأصفر أو البني. ولكن هذا النمط من ثمانية زائد ثمانية زائد eight-- حتى 24 bits-- من اليسار إلى اليمين، هو كيف يمكن لجهاز الكمبيوتر سيمثل أن لون معين. الآن هذا هو مجرد نقطة على الشاشة. إذا نظرتم الى وثيقة حقا في التلفزيون الخاص بك كمبيوتر، سترى النقاط أو بكسل. وإذا كان لديك شبكة كاملة من بكسل، أفقيا وعموديا، لديك صور. وبعد ذلك إذا كنت تأخذ صورة ثم يغسل تظهر نفسك صورة أخرى، وآخر صورة، صورة أخرى، صورة أخرى، بسرعة حقا، وكنت بالطبع بوجود أفلام. وهكذا تلاحظ حيث بدأنا. بدأنا مع هذه الآحاد والأصفار و. لقد عملنا من هناك إلى عشري أرقام، وكيف أننا نمثل لهم. الآن لدينا الحروف الأبجدية. ولكن في سياقات أخرى تنتظر، يمكننا استخدام عدد قليل من أكثر بت وتمثيل الألوان. بأسرع ما لديك القدرة على تمثيل الألوان، لديك القدرة على تمثيل والصور، وصور متحركة وشخصيات أخرى من هذا القبيل على الشاشة. وعندما يكون لديك مجموعة كاملة من الصور التي ترفع بها الإنسان في آن واحد، يبدو أن الصور المتحركة، وهكذا يمكنك الحصول على أشرطة الفيديو أيضا. وذلك باستخدام هذه جدا البدائيون بسيطة تفعل نحن لديهم طريقة لتمثيل في النهاية كل هذه أشكال وسائل الإعلام. ولقد المستخرجة من جديد ومرارا وتكرارا، حتى نحن الحصول من أدنى مستوى لهذا أعلى مستوى. حتى يعطينا هذا فكرة عامة عن التجريد. ولكن بدأنا هنا. هنا الآن، ونحن قد تمثل في الكمبيوتر أرائنا مع الآحاد والأصفار و، مخرجات لدينا في الآحاد والأصفار و، ولكن ما يدور داخل منطقة الجزاء؟ حيث ان الكمبيوتر العلم يحصل مثيرة للاهتمام. هذا هو المكان الذي يؤدي في واقع بك عقول الخاصة لتحمل على حل المشاكل. يمكننا الآن تشترط، ل بقية الفصل الدراسي، نعم. أنا أعرف كيف يعمل الثنائية. أتذكر كيف أسكي أو Unicode-- التعيين إلى letters-- الأعمال. وانها تقف بالتأكيد لسبب أننا يمكن أن تمثل الأحمر والأخضر و الأزرق، وتمثل الوسائط المتعددة أيضا. ولكن هذه هي الاشياء المثيرة للاهتمام. وهذا هو ما يجعل شخصا قادر على حل المشاكل. واحدة من هذه المشكلة نحب القيام به، في الواقع، وأخذ الحضور، أو القيام بذلك حسابيا. ومرة أخرى، وأنا قد تفعل هذا. وأود أن تفعل واحد، اثنان، ثلاثة، أربعة خمسة، ستة، سبعة، ثمانية تسعة. وأنا لا يمكن الكتابة عليه وصولا الى تتبع ذلك. ولكن هذه هي الطريقة فقط أود تمثيل المعلومات. أو يمكن أن أفعل هذا faster-- سنتين وأربع سنوات، ستة، ثمانية، عشرة، 12، 14، 16، 18، 20، 22-- بدا الامر وكأننا مرتين أسرع وقت لكنه ما زال سيستغرق الكثير من الوقت كله. ولكن تبين، إذا كنا الاستفادة بعد resource-- وبالفعل أجهزة الكمبيوتر آخر في هذه الأيام وحدات المعالجة المركزية أو أدمغة متعددة. اتضح أجهزة الكمبيوتر يمكن تفعل الكثير من الأشياء في وقت واحد، والواقع أننا، في هذه الغرفة، قد يمثل هذا بالضبط. لذلك فمن قليلا اجتماعيا محرجا، ولكن لو تفضلتم الفكاهة لي لمجرد عملية من ثلاث خطوات، واسمحوا لي أطلب من الجميع في مكان وهناك فقط للوقوف للحظة واحدة. انهض. لذلك اعتقد لنفسك، عدد احدا-- لذلك كل شخص في هذه الغرفة، باستثناء الأشخاص الذين لم إلزام، تفكر رقم واحد. حتى لا يكون رقمك الآن. هذا هو الخطوة الأولى، أو على شكل عالم الكمبيوتر أو مبرمج سوف تفعل عادة، ونحن في طريقنا لبدء العد عند مستوى الصفر. إذا كان أقل عدد ما في وسعنا تمثل مع تلك المصابيح الكهربائية صفر، فقط عن طريق تركهم مقابل كل ذلك، وأنا قد وكذلك فقط بدء العد من الصفر هو بدلا من واحدة. وهذا ما علماء الكمبيوتر القيام به. هكذا خطوة الصفر، والوقوف و التفكير في رقم واحد. والخطوة التالية هي this-- زوج قبالة مع شخص دائمة وإضافة أرقام معا. رائع. حتى في هذه اللحظة في الوقت المناسب، حرفيا الجميع المشاركة يفكر عدد 2، باستثناء لشخص غريب واحد اذا كان لدينا عدد فردي من شخص في الغرفة. والآن الخطوة الثالثة هنا هو الذهاب الى أن this-- واحد منكم يجب الجلوس. واحد منكم يجب أن نجلس، وإذا كنت لا يزال قائما، العودة إلى خطوة واحدة. حسنا. حسنا. من الناس أكثر وأكثر يجب أن يكون الجلوس. لاحظ أن هذا قد يتسبب وloop-- نوعا من دورة. يجب أن يكون البعض منكم عالقة برعونة، ذهابا وإيابا بين خطوة واحدة واثنين، واحد واثنين، واحد واثنين. هذا حسن. لدينا خلل الأول. نحن سنتعامل مع ذلك. حسنا. واسمحوا لي في محاولة لتحفيز الأشياء على طول. من الناحية النظرية، شخص واحد فقط يقف كما يستمر الجميع لإقران قبالة. ولكن اسمحوا لي تسريع الامور مع الشعب لا يزال قائما. ما عدد تفكر من؟ 46. حسنا. المضي قدما والجلوس. يا رفاق لا يزال قائما. من الذي لا يزال قائما؟ ما عدد تفكر من؟ حسنا. ولذا فإننا سوف يعود لكم. في الظهر؟ ما هذا؟ 22. موافق شخص آخر حتى top-- نعم؟ 34. حسنا. هنا في بلدي right-- هنا؟ 132، لطيفة جدا. 22؟ حسنا. والذي لا يزال قائما؟ هنا؟ 46، لطيفة جدا. 72. لا أستطيع أن المماطلة وقتا أطول. بلى؟ 30، لطيفة. هنا؟ 23؟ 23. وأعتقد أن هذا الجميع إلا يا رفاق، أي ضغط. اه انتظر. 28؟ ثمانية فقط. حسنا. ثمانية فقط. هنا بالأسفل؟ 30. 23. 24. 18. هذا هو أسوأ تنفيذ هذه الخوارزمية من أي وقت مضى. حسنا. لذلك أي شخص آخر؟ اي شخص اخر؟ حسنا. واحد أكثر من ذلك. 16؟ حسنا. 16. حسنا. حتى لو كنت لم تفوت أي شخص في على مرأى ومسمع هنا، عندما كنت هاهنا، سنرى، حسابيا، و العدد الإجمالي للأشخاص في ساندرز. لأنه مرة أخرى، فهو كما لو أن كل شخص كما كنت جلست، أصدر عدد قبالة الخاص إلى شخص آخر، لشخص آخر، إلى شخص آخر، لذلك من الناحية النظرية، في النهاية، واحد فقط محرجا شخص ينبغي أن يترك الوقوف. ولكن هذا شيء طيب. نحن اسرعت الامور يدويا. من الصعب خصوصا لرؤية في هذا الفضاء معين. والعدد الإجمالي للأشخاص نحن نعتقد أن هناك هنا هو 546. كنت العدد الإجمالي سلم من قبل زملاء التدريس، من فعل ذلك القديم المدرسة بطريقة بطيئة، كان 820. [يضحك] [تصفيق] هذا حسن. لذلك بالتأكيد بعد ذلك، هناك هذه الأخطاء. وهذا شيء طيب. وحتى التفكير مرة أخرى على هذا المرة الأولى، شيئ تكتب لا يعمل بالضرورة. وهذا ما حدث لي هنا كذلك. ولكن دعونا ننظر الآن كيف يمكننا تطبيق هذه الفكرة نفسها إلى شيء كنت قد رأيت من قبل، والتي هذا here-- التكنولوجيا المدرسة القديمة دليل الهاتف كبيرة حقا. ونفترض أن هذا دليل الهاتف لديها 1000 صفحة و 1000 أسماء وأرقام أبجديا داخل منه. حسنا، يمكننا النوع من تطبيق مشابه فكرة لهذه المشكلة المادية جدا، فقط باستخدام لي. أنا مجرد نوع من خداع من خلال الاستفادة من كل واحد منكم مع الكثير والكثير من وحدات المعالجة المركزية مختلفة أو العقول تنفيذ بعض خوارزمية. ولكن لو كان مجرد قليلا القديم لي، أنا لا تزال الاستفادة من نفس جوهر فكرة تقسيم وقهر تلك المشكلة مرارا وتكرارا، حيث نصف لك، نصف لك، نصف لك، نصف لك، نظريا أبقى جالسا، حتى أننا قد تركت، من الناحية النظرية، مع شخص واحد فقط. حتى في هذه المدرسة القديمة technology-- نحن لا تحتاج هذه map-- هذا التكنولوجيا المدرسة القديمة، أننا قد تبدأ تبحث عن شخص ما مثل مايك سميث، صفحة واحدة في وقت واحد. وأنا أرى أن لا، مايك ليس هنا. ما زلت في الفرع ألف. في نهاية المطاف، وأجد نفسي في الفرع باء. وهذا هو algorithm-- خطوة بخطوة التعليمات. تبدأ في بداية واحدة في الصفحة في وقت، والبحث عن مايك سميث. هذا correct-- هذا خوارزمية أو النهج؟ نعم، انها صحيحة. إذا مايك هنا، في نهاية المطاف سأحضر له. ولكنها ليست فعالة. أنه من الواضح أنه بطيء جدا. حتى أتمكن من الاستفادة من نفس النهج twosies. يمكنني القيام به نوع من اثنين، أربعة، ستة، ثمانية، 10، 12. انها أسرع مرتين. انا ذاهب للوصول إلى مايك أسرع إذا كان هناك. هل هذا صحيح؟ نعم، ولكن سمعت لا little--. الآن سمعت لا. بلى. هناك علة محتملة. ربما مايك يحصل فقط عن طريق الخطأ تقع بين صفحتين، لأنني تتطاير هذا اثنين في وقت واحد. لذا على الأقل نحن بحاجة الى بعض نوع من الإصلاح المشروط. أريد أن أقول، مهلا، لو ضرب شخص الذي يبدأ الاسم مع T بدلا من S، أنا أفضل مضاعفة الظهر صفحة واحدة على الأقل. عربات التي تجرها الدواب لذلك في البداية، ولكن يمكن حلها. ولكن لا أحد منا تسير للبحث عن مايك سميث من خلال الهاتف 1000 صفحة الكتاب صفحة واحدة في وقت واحد. ما هو شخص عادي تنوي القيام به؟ وأنت تسير أن يذهب إلى ال S، إذا كنت تعرف أين ال S. كنت قد يذهب تقريبا إلى منتصف أو تميل قليلا نحو النهاية. وأنا أتطلع إلى هنا و أنا في قسم M. ولكن ماذا تعرف حول هذه المشكلة الآن، أن لم نكن نعرف بالضرورة قبل مع كل واحد منا فقط عد أنفسنا مكافئ؟ حسنا، مايك يجري بوضوح أن يكون هذا الشوط من الكتاب اذا كان هنا على الإطلاق لأنه تم فرزها. وحتى تتمكن من dramatically-- جدا [يلهث] اعرف. [تصفيق] انها في الواقع من السهل حقا إذا يمكنك أن تفعل ذلك أسفل العمود الفقري هناك. ولكن يمكنك ثم رمي نصف المشكلة بعيدا. الآن، أنا تركت مع نفسه problem-- تجد مايك سميث في الهاتف book-- ولكن الآن يبدأ الكتاب الهاتف في M ويذهب إلى الياء، ولكنه نصف كبير. ولكن هذا هو ما هو مثير للإعجاب. مثلما هو الحال في نظرية، يا رفاق، عندما لكم جميعا جلس نصف فقط في وقت واحد، حصلت مشكلة نصف كبير، نصف كبير مثل، مرارا وتكرارا. لذلك فقد هذه المشكلة تصبح نفس المشكلة ولكن نصف كبير. الآن انها مشكلة 250 صفحة. وسرعان ما أدرك، أوه، أنا في قسم T عن طريق الخطأ. لقد ذهبت بعيدا جدا. أستطيع رمي نصف من دفتر الهاتف بعيدا. الآن، أنا وصولا الى ربع المشكلة. ويمكنك تكرار، أكرر، كرر حتى، من الناحية النظرية، كنت غادر مع صفحة واحدة فقط. وإذا مايك على تلك الصفحة، أستطيع الآن أن حل هذه المشكلة. ولكن كيف بسرعة لم أكن حلها؟ في الحالة الأولى، استغرق مني مثل ربما 1000 خطوات ليجد مايك سميث. قد تكون قد اتخذت me-- التقطت دليل الهاتف وبدأت أبحث صفحة واحدة في وقت واحد، وربما يكون مايك في وقت لاحق 1000 صفحة. النهج الثاني ربما يأخذني 500 خطوة، لأنني أطير من خلال اثنين في وقت واحد. والنهج الثالث الرغم من ذلك، انها قوية بشكل خاص. ولكن دعونا نتأمل ما نحن في الواقع فعلت مع هذا النهج الثالث. سآخذ ما اسميه فقط هذه البيانات هنا، واحد في وقت واحد. التقاط دفتر الهاتف. فتح في منتصف دفتر الهاتف. ننظر في الأسماء. وبعد ذلك الامور قليلا أكثر فكريا مثيرة للاهتمام، إذا كان لا يزال بسيط. إذا سميث من بين أسماء على تلك الصفحة الحالية، ثم تفعل شيئا مشروط. انها مثل شوكة في الطريق. اتصل مايك. إذا مايك هو من بين الأسماء في تلك الصفحة، ودعا مايك. ولكن هل فقط خط أربعة إذا خط شجرة، إذا صح التعبير، هو الصحيح. الجواب على هذا السؤال هو نعم. الا اذا سميث في وقت سابق من book-- وبعبارة أخرى، إذا أنا في قسم M وأنا أبحث عن شخص ما ل اليسار، ثم ما ينبغي القيام به هو شيء مشابه جدا. ثم أود أن فتح إلى منتصف من النصف الأيسر من الكتاب. لذلك يذهب اليسار، ومن ثم نعود إلى الخطوة الثانية. نظرة على الأسماء هناك. لذلك وبعبارة أخرى، تفعل الشيء نفسه، ولكن على المشكلة التي تم النصف. أنت تعرف ماذا؟ إذا سميث في وقت لاحق في كتاب يستند إلى صفحة أنا أبحث في، مفتوحة للوسط النصف الأيمن من الكتاب ثم نعود مرة أخرى إلى الخطوة الثانية، else-- هناك إمكانية الرابعة هنا. أما مايك هنا أو إلى اليسار أو إلى اليمين أو لا هناك. وهنا نعتبر أفضل هذا. وفي الواقع، إذا كنت من أي وقت مضى جهاز الكمبيوتر الخاص بك فقط تحطم عليك، أن في بعض الأحيان، ولكن ليس دائما، نتيجة لمجرد مبرمج البشري لا تحقيق، يا اطلاق النار، وهناك في الواقع هذا السيناريو الرابع. وإذا لم يكن لكتابة التعليمات البرمجية للتعامل مع هذا السيناريو، أحيانا كنت لا تعرف ما قد يفعله الكمبيوتر. وبالفعل قد يتعطل البرنامج. ولكن في هذه الحالة، فكرت حول هذا الموضوع، وقلت، وإلا ترك، لأن هذا هو رابع سيناريو منطقي ممكن. الآن، دعونا فقط إضافة بعض المفردات لذلك نحن يمكن أن تبدأ لإرم حول المصطلحات التي هي على خلاف ذلك بديهية جدا. كل الأشياء عندي فقط باللون الأصفر هنا، أنا مجرد الذهاب الى وظائف أو إجراءات. انهم مجرد نوع من الإجراءات. حتى التقاط مفتوحة ل، والبحث في، والدعوة، وفتح، فتح، quit-- هذه الإجراءات فقط، أو أننا سوف ندعو لهم أكثر رسميا، وظائف. وفي الوقت نفسه، الآن باللون الأصفر، لقد أبرز الأشياء هكذا- يضرب دعونا بدء الدعوة لهم الظروف أو الفروع. وهذه هي نقطة القرار حيث كنت قد يذهب بهذه الطريقة، وبهذه الطريقة، أو بعض الاتجاه الآخر لا يزال. حتى تلك ستكون الظروف. والآن هذا واحد مربي الحيوانات قليلا. دعونا نطلق على هذه الأسئلة التعبيرات المنطقية، بعد ان قام شخص يحمل اسما آخر منطقية. وتعبير منطقي هو مجرد شيء هذا إما صحيحة أو خاطئة، نعم أو لا. لذلك هو السؤال الذي يجيب لك يهمني، وذلك لفي حالة جعل decision-- نعود جوابا، وانتقل بعد ذلك اليمين أو اليسار، أو شيء آخر تماما. ثم أخيرا، هذه خطوط تذهب here-- الظهر إلى الخطوة الثانية، والعودة إلى الخطوة two-- يمكننا أن تنفيذ هذه الفكرة بطرق مختلفة. ثم تلك التي كنت مع خبرة في البرمجة قد فعلت أو يمكن تصور عمل ذلك بطريقة مختلفة. ولكن لأغراض اليوم، انها مجرد فكرة أن يهم. وهذا ما حمل ما وسوف ندعو عموما وloop-- نوعا من دورة، ل انها يجعل لي أن تفعل شيئا مرة أخرى. وحتى الآن، دعونا النظر كيف جيدة هذه الخوارزمية. انه صحيح. إذا مايك في الكتاب، انها واحدة من هؤلاء الأربعة scenarios-- مرارا وتكرارا ومرة أخرى، فإننا سنجد له. ولكن كيف جيدة هو؟ حسنا، ليس لدينا إلى أن تكون رسمية جدا هنا. ولكن دعونا فقط مؤامرة شيء، x و y، للحصول على الشعور شكل من هذه المشكلة. على محور س هنا هو حجم مشكلتي. ولديهم المحور الصادي هنا سيكون الوقت المناسب لحلها. ولذلك ربما يكون هذا هو عدد الصفحات. ربما هذا هو ثوان أو الصفحة turns-- أيا كان. ولكن هل تريد عدها غير ما سيمثل هذه الصورة. وأن الخوارزمية الأولى، وانا ذاهب وصفه بأنه مجرد خط مستقيم. إذا كان هناك ن الصفحات في دفتر الهاتف، ثم قد يستغرق ما يصل لي كخطوات ن أن يجد مايك. إذا فيريزون أو شركة الهاتف يضيف صفحة واحدة أكثر في العام المقبل، قد يستغرق لي واحد أكثر step-- واحد أكثر حدة من الوقت للعثور مايك. ولذلك لا يوجد فقط هذا واحد إلى نسبة واحد. انها منحدر خط مستقيم. وفي الوقت نفسه، أن الثانية algorithm-- إذا أنا الذهاب اثنين في time-- اثنين، أربعة، ستة، ثمانية، أو double-- الذهاب من خلال صفحات مرتين في وقت واحد، اثنين في وقت واحد، انها لا تزال خط مستقيم. هناك الآن 01:59 نسبة، ولكن فقط أقل قليلا. حتى إذا كان هناك العديد من هذه الصفحات على الرسم البياني هنا باللون الأصفر، والذي قد يأخذ مني هذا العديد من الخطوات أو ثانية، وإلا فإنه سيكون ليأخذني ضعف هذا العدد على الخط الأحمر. ولكن الخط الأخضر هو الوجبات الجاهزة الحقيقية. هذا هو ما نحن عموما استدعاء سجل logorithm-- من n، حيث n هو عدد الصفحات. ولكن هذا الشكل الذي يهم اليوم، لأننا لم يكن لديك حتى التفكير في التآمر نقطة. التفكير في السيناريو المتطرف. لنفترض فيريزون غدا يضاعف عدد الصفحات في هذا الكتاب الهاتف، من 1000 إلى 2000. في الخوارزمية الأولى، وأنا قد تضيع اضافي 1000 خطوات تبحث عن مايك، لمجرد فيريزون تضاعف حجم الكتاب. والثاني أنه قد algorithm-- يأخذني إلى 500 خطوة إضافية. 1000 صفحات أكثر، أنا أذهب اثنين في time-- 500 مزيد من الخطوات لإيجاد مايك. ولكن هذا خوارزمية الثالثة هو نوع من السحرية. فيريزون يضاعف عدد صفحات من 1000 إلى 2000، ولكن كم من المزيد من الخطوات يفعل يستغرق لي للبحث عن مايك؟ انها مجرد واحدة، لأنني يمكن فقط تمزيق الكتاب هاتف واحد لمزيد من الوقت من مشكلة 2000 الصفحة ل 1000 مشكلة الصفحة، وفويلا. لقد اتخذت لدغة كبيرة للخروج منه. وإذا ذهبت المدقع حقا، لنفترض أن دليل الهاتف كانت شركة شيء مجنون مثل دليل الهاتف 4000000000 الصفحة. حسنا عدد الخطوات قد يستغرق العثور على مايك سميث في 4000000000 دليل الهاتف الصفحة؟ إنه رقم كبير، ولكن فقط 4 مليارات ل 2000000000-1000000000 إلى 500 مليون دولار، 250 million-- لا يزال يبدو وكأنه بأعداد كبيرة، ولكن أنا بسرعة جدا الحصول على قيم أصغر. في واقع الأمر، إذا كنت تفعل الرياضيات الحق، وأنا يمكن تقسيم فقط 4000000000 قبل ما يقرب من 32 مرات من قبل أنا ننكب على واحد فقط. حتى لو كان هذا دليل الهاتف 4 مليار صفحات طويلة، ليست صفقة كبيرة. في غضون ثوان قليلة، ربما 32 ثانية، أنا يمكن تقسيمها إلى نصفين وتجد في نهاية المطاف مايك أو استنتاج أنه ليس هناك. وهذا هو جوهر ل algorithm-- خوارزمية جيدة. وهذا هو واحد من أهداف فئة من هذا القبيل، وفي محاولة لمعرفة كيف يمكنني حل المشكلة ليس فقط بشكل صحيح، وكأني كنت دائما أعرف كيفية القيام بذلك واحدة الصفحة في time-- ولكن بشكل صحيح وجيد. كيف يمكنني تصميم جيدة حلول للمشاكل؟ لذلك دعونا نتوقف لحظة هنا وتعطيك إحساسا الآن من CS50 الدورة itself-- إدخال الموظفين دورة قليل ل. قبل 02:00، وسوف نقوم تأخذ استراحة قصيرة ذلك أن أولئك منكم الذين التسوق يمكن بطة خارج واتخاذ نلقي نظرة على بعض فئة أخرى ومشاهدة بقية هذا على الانترنت. لكنه الآن، اسمحوا لي أن أعرض CS50، الفئة نفسها، وعلى وجه الخصوص ما هو جديد. حتى الربيع الماضي، ونحن أمضى قليلا جدا من time-- موظفي بالطبع والتفكير I-- حول ما هو عليه نريد CS50 أن يكون، والعودة إلى البداية مبادئ، إذا جاز التعبير، للنظر في ما هو عليه نريد هذا بالطبع لتبدو وكأنها ويكون مثل لطلابها. وهكذا سترى في مشكلة وضع الصفر أيضا، دعوة لنلقي نظرة على ذلك URL الذي يلخص بعض الدوافع وراء الخصائص التالية من سقوط 2016. حتى كنت قد استقاها من TL: صدقة DR، المنهج اليوم وكذلك من كتالوج بالطبع، هذا العام في CS50، كنت المتوقع أن يحضر فقط اليوم- حتى المهمة بشكل جيد done-- والمحاضرة الأخيرة في 21 نوفمبر. وكنت موضع ترحيب ولكن ليس من المتوقع أن حضور تلك المحاضرات في الوسط، لأن ما نقوم به هذا العام، هو اطلاق النار في الوقت الحقيقي مواد الدورة و. لذلك كل شيء سيبقى الحالية وأدرجت كما أفضل ما can-- الأحداث الجارية وربما الأحاديث أن الناس يكون لها في الصناعة في العالم، ولكن جعل تلك المواد المتاحة، ونتيجة لذلك، حتى earlier-- كاملة مع النصوص النص الكامل وقابلية البحث و وصلات إلى الموارد الأخرى. وبالفعل، كنا يدعي لبعض الوقت ونحن لا نعتقد الآن هذا، أننا يمكن أن تخلق، رقميا، أكثر غامرة، وأكثر إلحاحا الخبرات التعليمية، في مقابل لجمع هنا بعض 23 مرة شخصيا، والاستماع الى شخص مثلي التحدث ببساطة عن علوم الكمبيوتر، بدلا من الانخراط بنشاط أكبر. لذا سترى في منهج الدورة ل رسم تخطيطي للفصل الدراسي هنا، جنبا إلى جنب مع الوقت سوف تبدأ المحاضرات يتم تصويره، التي كنت ترحيب ولكن ليس من المتوقع، وعندما سوف يتم الافراج على الموقع الإلكتروني للدورة و. وما سنقوم به هنا الأربعاء اعتبارا من الأسبوع المقبل، هو أكثر من ذلك بكثير وثيق، مع فقط هؤلاء الناس الذين يرغبون في المشاركة، هو ما يسمى المشي من خلال، حيث أنا ورؤساء وبالطبع ل سوف تجعل في الواقع أشياء قليلا أكثر حميمية هنا في الأوركسترا القسم، لا تزال لديها بعض التكنولوجيا والمشي من خلال مجموعة مشكلة الأسبوع الحالي، ونقدم لكم particularly-- إذا بين من هم أقل comfortable-- جميع أكثر التوجيه التي قد ترغب أو الحاجة إلى التحدي هذا الأسبوع. وبالمثل، بالنسبة لأولئك الذين لا يستطيعون حضور تلك شخصيا، لا صفقة كبيرة. وسوف يكون هناك بقيادة مماثل واحدة من كبار موظفي بالطبع، و Zamalya، نفس الفرصة جزءا لا يتجزأ من في مشكلة يحدد أنفسهم. مشكلة تعيين هذا العام سيصدر يوم الجمعة ولم تعد تفعل بعد سبعة أيام، ولكن 10 أيام later-- عمدا تداخل مع كل مشكلة مجموعة، وذلك لاستيعاب أفضل، نأمل، المد والجزر في جداول الطلاب، وخصوصا عندما النصفية أو ألعاب القوى أو الأكاديميين أو extracurriculars تميل إلى أن تأتي وتذهب خصوصا في منتصف الفصل الدراسي. يجب أن تعطيك أكثر قليلا تقدير ما إذا كنت أمام تحميل الأسبوع مع CS50 أو تحميل الخلفي في عطلة نهاية الأسبوع التالي بدلا من ذلك. فانظر إلى منهج الدورة ل هنا للجدول الزمني لها. وستلاحظ أيضا بين التغييرات هذا العام، بالنسبة لأولئك أكثر دراية البرمجة في الماضي، سنبدأ الفصل الدراسي كما ونحن اليوم في خدش، لا سيما التركيز على اللغة يسمى C، ومن ثم الانتقال لا لPHP، ولكن للغة تسمى الثعبان في نهاية الفصل الدراسي في سياق برمجة الويب، جنبا إلى جنب مع SQL وجافا سكريبت، HTML، CSS، وبعد أكثر. وردا على مجموعة من الأسئلة، انها في الواقع حالة أن CS ليست مخيفة كما كنت مرة واحدة اعتقد انه كان، وإنما هو كما الكثير من العمل كما كنت قد سمعت أنه قد يكون. ولكن هذه هي الكلمة التي هي هنا بعض إحصاءات من سقوط 2015 الجسم الطلابي، حيث خطوط زرقاء الأفقية يمثل متوسط ​​عدد ساعات ذكرت. وسترى في المتوسط ستة إلى 10 إلى 12-- ربما 16 أو نحو ذلك، وهكذا دواليك، ولكن مع تباين عالية لتكون واضحة. وهكذا ندرك أن ليس هناك فقط الطلاب أكثر راحة وأقل مريحة في الدورة، لكن الدعم المقابلة هيكل للحصول هؤلاء الطلاب خلال الفصل الدراسي بنجاح. في الواقع، في الإجابة على مجموعة من الأسئلة، ينبغي كنت تأخذ CS50 باعتباره العام الأول؟ إطلاقا. في واقع الأمر، أنا لا يندم لم تجد طريقي أو وجدت حقل جديد أن السنة الأولى أيضا. ويجب أن تأخذ CS50 مع دورات أخرى، وبالتأكيد كما well-- والنصيحة العامة أننا ربما إعطاء الطلاب، أن CS50 على الارجح ليس ذلك النوع من الطبقة أو الفئة مقدمات التي يجب أن تأخذ مع ثلاثة البعض أو الأربعة الأخرى الطبقات مجموعة P. ولكن إذا كنت تأخذ اثنين آخرين ف مجموعة الطبقات، شيء آخر، وCS50، التحكم تماما. لقد كان كثير من الطلاب في الماضي فعلت ذلك بنجاح كبير. ولتحصل على نحو ذلك الانتهاء من خط بنجاح، لا سياق لها sections-- مسارات مختلفة للطلاب أقل راحة، وأكثر راحة، وفي مكان ما بين، حيث في أثناء ل أول مجموعة المشكلة، سيطلب منك أن تصف نفسك. وإذا كنت من بين أولئك الذين هم أقل مريحة، انها نوع من الشيء انك بدلا أعرف. والواقع، وهذا ما كان ل تزايد الديموغرافية في CS50 لسنوات غير قليلة. اعتبارا من الخريف الماضي ل سبيل المثال، 58٪ من الطبقة وصفوا أنفسهم بأنهم بين هؤلاء أقل راحة، مع 9٪ بين من هم أكثر مريحة، ومن ثم الطلاب الآخرين هناك في الأحمر تصف نفسها كما في مكان ما بين. وسترى هنا المواضيع بشكل عام والجدول الزمني للأقسام، كل منها وتقدم في شخص، في في الوقت الحقيقي، مع مسار ل الموظفين مذهلة من الزملاء التدريس ومساعدين بطبيعة الحال، بعض منهم سوف تجتمع في لحظة فقط. أقسام أنفسهم، كما سترى، سوف يكون الاثنين والثلاثاء والأربعاء، وذلك للسماح لك للغوص في بعد الاشتباك، إذا كنت لذلك اختيار، في سياق ل محاضرة في وقت سابق من هذا الأسبوع. وبعد ذلك ساعات العمل، والتي بالتأكيد، مع مرور كل سنة، لم تكن اقل من تحدي للدورة. وهذا العام، نحن نخطط لا فقط لشغل الوظائف hours-- واحد في واحدة من الفرص للمساعدة ل الطلاب يوم الأربعاء الخميس والأحد، وكان آخر تلك يجري في فترة ما بعد الظهر حسب التصميم للحد من بعض التوتر الذي ينشأ دائما مع وقت متأخر من الليل ف settting مع مهلة looming-- لكن ساعات العمل كما سيتم تقديم أيام الاثنين والثلاثاء و الأربعاء والجمعة والسبت، بفضل أصدقائنا في HSA. CS50 لديها الآن مساحة خاصة بها للطلاب والموظفين CS50، فوق 67 جبل شارع أوبورن، هناك حق في ساحة هارفارد. الرؤية التي هي أن CS50 ل TFS والمصدقة على مدار الأسبوع، الى حد كبير في معظم أنحاء أيام، وسوف تكون هناك لدعم. حتى إذا كنت قد حصلت على بعض سؤال حول ف مجموعة أو كنت تشعر قليلا منعت أو بشيء من الارتباك، وهيك، كنت قد حصلت على ساعة أو نصف ساعة بين الطبقات، يمكن خصوصا في square-- لك موسيقى البوب ​​في وقد أجبت على هذا السؤال من يكون هذا الارتباك clarified-- كثيرا جدا في الروح، كنت على دراية، من الرياضيات قسم نفسه وسط أسئلة الرياضيات، ولكن الى حد كبير على مدار الساعة في [؟ Gcal؟] أن نحن سيتم نشر على الانترنت. الدروس الخصوصية هو متاح لمن هم أيضا الطلاب وبحرية من الدورة ل موظفو بك إذا كنت ترغب أكثر حميمية واحد على واحد، أو اثنين أو ثلاثة زملاء فقط، والعمل مع واحد من الموظفين وبالطبع ل. وبالفعل، هذه هنا فقط بعض الموظفين الدورة، و عدد قليل منهم عليك تجتمع في لحظة فقط. في الواقع، في CS50 الخاصة زميل التدريس الرأس، وبالطبع رئيس مساعد ومؤدب، يمكن أن تأتي على ما يصل، والسماح لهم التحية. [تصفيق] سرور 1: [غير مسموع]. [تصفيق] المتحدث 2 [غير مسموع]. [تصفيق] المتحدث 3: [غير مسموع]. [تصفيق] DAVID مالان: وتسمح لنا جلب على متن اثنين من لCS50 أكثر كبار الموظفين، روب وZamayla كذلك. [تصفيق] في الواقع، كان كل من روب و وقد Zamayla معنا لفترة طويلة، أن كنت قادرا للذهاب إلى المحفوظات CS50 ل وتجد هذه SD جدا لقطات من هذه المشاركة على خشبة المسرح نفسها قبل بضع سنوات. ROB: [غير مسموع]. [تصفيق] ZAMAYLA: [غير مسموع] [تصفيق] DAVID مالان: شكرا لك. وذلك بالإضافة إلى هذه أعضاء الفريق هنا، CS50 لديها فريق من ما يقرب من 100 الموظفين، وجميعهم سوف تكون متاحة للأقسام وأكثر من ساعات العمل وغير ذلك الكثير. وكما يقول روب جدا، وهذا هو اصلاح أهم من CS50 في السنوات ال 10 التي لقد كنت في [غير مسموع]. [غير مسموع] ركز خاصة في توفير هيكل الدعم، تقليم بعيدا الكثير من الجزء الأكبر وهذا ما كان تراكمت في 10 سنوات تطورات متكررة على مجموعات مشكلة بالطبع ل. هذا العام، وليس فقط في الدرجة ولكن أيضا في شكل مشكلة بالطبع ل مجموعات، ويجب أن تجد الأشياء ل يكون أكثر تنظيما، والانتهازي، والكثير أكثر قابلية للإدارة من في السنوات الماضية، ونحن إلقاء بعض من الأمتعة هذا التي وضعتها الطبيعة من العام المتطور بعد عام وبالتكرار. لذا جديدة ومحسنة يبدأ اليوم. سوف يجتمع بعض أكثر من الموظفين بالطبع للخروج في [غير مسموع] في الساعة 2:30، حيث نقوم على خدمتهم، وفقا للتقاليد، كعكة. هناك أكثر قليلا كعكة من ذلك، ولكن عليك لقاء ايرين وتوبياس وغيرها لا يزال. واسمحوا لي أن أقدم لكم جولة قبل أن نسمع من بعض الموظفين الآخرين في الصف، ما ينتظر كذلك. في الواقع، ونحن دائما البدء في CS50 الفصل الدراسي هذا المقبلة السبت، مع ما يسمى CS50 لغز يوم. عليها أن تفعل مع أي شيء علوم الكمبيوتر في حد ذاته، ولكن مع حوالي المشكلة حل أكثر عموما. وإذا اخترت ذلك للمشاركة، في بعض الدعوات، كنت قد رأيت الباب إسقاط أو على المسرح هنا، إنها فرصة في فرق اثنين أو ثلاثة أو أربعة، للمشاركة الالغاز والبيتزا والجوائز وmore-- هذا السبت، لا تنزعج لأكثر من ذلك. سوف تجد أيضا أن كل الجمعة، في النار والجليد، لا تجلب CS50 ل مجموعة كاملة من الطلاب لتناول الغداء، لجعل كبيرة الطبقة يشعر أكثر حميمية، وجلب عموما معا الخريجين والأصدقاء من صناعة للحديث عن ما قمت تم حتى منذ تخرجه. وبالمثل، هذا العام، سوف نحن افتتاح أول CS50 50 الترميز contest-- في منتصف الفصل الدراسي إتاحة الفرصة أمام الجميع على التقيد في الأساس، لديها تحدي الذكاء ضد زملاء الدراسة، مرة أخرى في فرق من اثنين أو ثلاثة أو أربعة، وذلك باستخدام فقط أن البرمجة الدهاء الذي لديك ثم تحت حزامك بعد فقط ستة أو سبعة أسابيع من الطبقة، والمشاركة في هذا النوع من المنافسة online-- إذا كنت ترغب في صقل بنفسك مهارات جميع أكثر في هذا التحدي. في نهاية الفصل الدراسي هو ما يسمى CS50 Hackathon-- فرصة أن يبدأ في الساعة 7:00 PM ينتهي في الساعة 7:00 صباحا، وعلى طول الطريق هي 12 ساعات المساء التي الغوص في project-- نهائي دورة ل فرصة لتصميم و تنفيذ معظم أي شيء من الاهتمام لك مع التعليم الخاص التوجيه الزميل. حول 09:00 هل نحن عادة خدمة البيتزا، 01:00، فيليب، وقليل منا الذين لا يزالون مستيقظين في الساعة 5:00 صباحا، نقلهم بحافلات لمكوك أسفل الطريق إلى بيت الصلاة العالمي لتناول الافطار. في وقت لاحق وبعد ذلك بضعة أيام هو ما يسمى CS50 fare-- نهاية المعرض فصل دراسي في الاحتفال إلى أي مدى الكثير من CS50 قد حان الطلاب من الأسبوع الصفر على طول الطريق إلى أسبوع، ومع الأخذ في الاعتبار أن 73٪ من تلك زملاء ولك هذا العام لديها أبدا أخذت فئة CS قبل. في الواقع، لاعادة التأكيد بقدر هنا هو عدد قليل من أكثر الوجوه من الموظفين CS50 ل. المتحدث 4: [غير مسموع]. المتكلم 5: [غير مسموع]. سرور 6: [غير مسموع]. المتحدث 7: [غير مسموع]. المتحدث 8: [غير مسموع] المتحدث 9: [غير مسموع]. المتحدث 4: [غير مسموع]. سرور 10: [غير مسموع]. سرور 11: [غير مسموع]. سرور 12: [غير مسموع]. سرور (13): [غير مسموع] سرور (14): [غير مسموع]. سرور (13): [غير مسموع]. سرور 15: [غير مسموع] سرور 16: [غير مسموع]. سرور 11: [غير مسموع] المتكلم 5: [غير مسموع]. DAVID مالان: بعض من فريق هم أنفسهم التسوق الطبقات. ولكن إذا كان هؤلاء الأعضاء الموظفين CS50 هنا، يمكن أن تأتي على ما يصل لمجرد لحظة. CS50 في TFS والمصدقة و[؟ الموظفين؟] أعضاء here-- هذه ليست سوى عدد قليل من faces-- واحد منهم أنت فقط رأيت، وعدد قليل other-- وعدد قليل من الآخرين لا يزال. لماذا لا نذهب إلى الأمام والسماح يا رفاق استراحة خمس دقائق. إذا كنت بحاجة إلى بطة إلى دروس متجر، وهذا على ما يرام. وبعد خمس دقائق، ونحن سوف تستأنف، نلقي نظرة على Scratch-- الأول من لغة البرمجة لدينا، وتلبية موظفي بالطبع هنا بعض أكثر، والتركيز في نهاية المطاف على مشكلة تحديد الصفر. ولذا فإننا سوف تكون العودة في غضون خمس دقائق. [تصفيق] حسنا. لذلك نحن الى الوراء. وتبقى لدينا الوقت اليوم، والهدف هو تمهيد الملعب من حيث بعض المصطلحات، من حيث بعض الأفكار. لأنه في الواقع، وفقا ل بعض المخططات في وقت سابق، هناك سيكون مجموعة من مستويات الخبرة في الصف، بعض الذين الطلاب اتخذت بعض البرمجة من قبل، بعضهم لم تفعل ذلك. وحتى مع هذه المشكلة الأولى وضع ومع هذه اللغة الأولى هل لدينا فرصة لبدء لمفروغا منها بعد اليوم بعض المفردات المشتركة وفكرة. ونحن سوف نفعل ذلك عن طريق languages-- أول دورة ل بالإضافة إلى جيم وبيثون و جافا سكريبت و SQL و HTML و CSS، نحن سوف يكون التركيز في البداية وفقط لمجموعة مشكلة الصفر على هذه اللغة الرسومية، ودعا الصفر، وضعت من قبل مختبر وسائل الإعلام معهد ماساتشوستس للتكنولوجيا على الطريق، للمساعدة الطلاب والاطفال خاصة التعبير عن أنفسهم algorithmically-- بطريقة أكثر اتساقا مع ما يمكن أن نسميه التفكير الحسابي. وانها لغة مفيدة ل بسرعة كبيرة الأسبوع المقبل في أسبوع واحد، هل نحن ننتقل لمرحلة أكثر اللغة التقليدية وغامضة تسمى C، الذي هو محض النصية. لك فقط استخدام لوحة المفاتيح في لكتابة تعليمات مثل هذه التي تظهر على الشاشة. ولكن حتى لو كنت لم أر قط لغة برمجة من قبل، في مجرد نظرة عابرة على هذا، يكون كل ما خفي، ربما يمكنك تخمين أن ربما يطبع مرحبا العالم. ولكن هناك الكثير من النفقات العامة النحوي هناك. هناك تجزئة غريبة رمز أو التجزئة العلامة يصل أعلى. هناك أقواس زاوية، وبعض الأقواس، الأقواس المجعدة، شبه colon-- هناك فقط الكثير البصرية الجملة التي تحصل في الطريق. نبدأ طبعا مع الصفر وذلك للحصول الماضي كل تلك فكريا الانحرافات رتيبا، والتركيز بدلا من ذلك على الأفكار. في الواقع، قد يكون هذا من قبل. هذا، لهذا، يجب أن يكون بعد أسبوع. هذا، في هذه رسومية خدش اللغة، هو كيف سيكون تنفيذ هذا نفسه program-- برنامج عند تشغيل، ببساطة تقول مرحبا العالم. وما هو جميل عن سكراتش هو انه من هذه البرمجة الرسومية بيئة يستخدم قطع اللغز أو كتل، والتي تتشابك معا فقط إذا كان من المنطقي منطقي للقيام بذلك. ومع خدش يمكنك تطوير الرسوم المتحركة والألعاب التفاعلية والفن، وأي عدد من الأشياء التي قد يتصور الخاصة بك في الاعتبار، وتنفيذها ببساطة عن طريق سحب وإسقاط القطع اللغز. وبالفعل، سيكون لدينا القدرة للتعبير عن بعض من نفس الأفكار أنا فقط ذكرت لحظة قبل في سياق مايك سميث والبحث أشياء الهاتف book-- مثل الوظائف والأعمال فقط، أشياء مثل الحلقات التي تفعل الأمور مرة أخرى ومرة ​​أخرى، المتغيرات، وهو شيء ونحن سوف أعرض، لكنه على دراية ربما من algebra-- مجرد نوع من النائب لتخزين بعض القيمة التي قد تحتاج التعبيرات المنطقية later--، حيث تلك نعم أو لا يصدق أسئلة خاطئة من قبل. الشروط هي تلك الشوك في road-- هذه الفروع إذا جاز التعبير. وبعد ذلك هناك بعض مربي الحيوانات ميزات سنرى حتى اليوم، دعا المصفوفات والمواضيع و الأحداث، التي سنقوم بعد ذلك إعادة النظر في مدى الوقت في لغات مختلفة. لكن خدش يسمح لنا لاستكشاف كل هذه. حتى هنا في خدش، وهذا الأرجواني كتلة ما هي وظيفة عادة الذهاب لتبدو وكأنها. هذا الأرجواني قطعة اللغز الذي لديه بعض كلمة مثل القول، وهو العمل، وبعد ذلك قد يكون له حجة أو parameter-- بعض الطريق من نوع من التخصيص ما أن كتلة لا بحيث انها ليست محددة مسبقا من قبل معهد ماساتشوستس للتكنولوجيا ما يقول هذا كتلة الأرجواني. في الواقع، سترى في اللحظة التي أنا قادرة على كتابة كلمات مثل مرحبا العالم، أو مرحبا ديفيد، أو مرحبا Zamayla، أو كل ما أريد، في حجة لهذا اللغز piece-- مربع أبيض هناك. وفي الوقت نفسه، إذا أريد حلقة، وسوف نقوم نرى أن هناك قطع اللغز الذي ننظر قليلا البرتقال من هذا القبيل. وشكلها نوع من يشير إلى أن شيء يحدث مرارا وتكرارا في الدورة. حتى لو كنت التفاف مرحبا كتلة العالم يقول مع منع الأبد في خدش، انها مجرد الذهاب للحفاظ قائلا مرحبا العالم إلى الأبد، بكل معنى الكلمة. وفي الوقت نفسه، هناك آخر نوع من حلقة في سكراتش أننا سوف see-- تكرار block-- حيث، إذا كنت تعرف مسبقا كم مرة كنت ترغب في حلقة لتنفيذ عدد محدود من المرات في fact-- لك ويمكن تحديد ذلك عن طريق كتابة في عدد أو حتى يسد في متغير، مثل X أو Y كما سنرى. في الواقع، والمتغيرات مثل أنا في هذه الحالة، التي هو الاسم الشائع ل متغير عدد صحيح فقط بتخزين number-- قد يكون صحيحا، لاستخدام هذه الكتلة البرتقال هنا ل تعيين متغير كأنني إلى الصفر. وفيما يلي مثال باللون الأخضر ل تعبير منطقي في خدش. على الرغم من أن هذا يبدو وكأنه الرياضيات الصيغة، عدم المساواة الرياضيات مثل هذا هي في الواقع تعبيرات منطقية. إما صحيحة أو خاطئة هذا. أنا أقل من 50. انها إما نعم أو لا إجابة أو إجابة صحيحة أو خاطئة. وسوف ندعو عموما تلك التعبيرات المنطقية. وليس من الضروري أن يكون 50. ويمكن أن يكون س أقل من ذ، أكبر من ذ، أي ما يعادل y-- أي عدد من الآخر قد يطلب الأسئلة. الآن، للوهلة الأولى، قد تبدو فجأة جريئة جدا هنا، وغير ذلك. ولكن مفهوم الحكمة، انها مألوفة جدا من قبل. إذا كان x أقل من ذ، من القول بقدر. آخر إذا كان x أكبر من ص، ثم نقول قدر. ويقول آخر س يساوي ذ. لذلك لدينا مثال هناك من scenario-- الثالث وpossibility-- الثالث الوحيد x هو إما أكبر من أو أقل من أو يساوي. لذلك لدينا شوكة ثلاثية في الطريق. وتلاحظ ما هو بارد here-- خدش، على ما يبدو، للتو لغز واحد قطعة، في هذه الحالة، في حال كتلة آخر. وبعد فإن ذلك يبدو ان هذا يعني يمكنك لا تملك إلا مفترق اتجاهين في الطريق. يمكنك الذهاب إلى اليمين أو اليسار، ولكن ماذا عن أن السيناريو الثالث؟ ما إذا كان x يساوي ذ؟ ليس مهما. خذ قطعة واحدة اللغز، وضعت داخل آخر واحد منه لخلق ما يعادل الدلالي إذا، إلا إذا، else-- والآن أنت يكون لديك شوكة ثلاثية في الطريق. وكما سنرى، و قطع الصفر لغز يمكن أن تمتد وتنمو، لذلك كما أن الإلزام المزيد من الأشياء في نفوسهم. لم يكن لديك لتناسب كل شيء في الحجم الافتراضي لها. هذا شيء سنقوم نرى قريبا ما يسمى مجموعة. انها مثل list-- وسيلة لل تخزين أجزاء متعددة من المعلومات في متغير، وليس مجرد رقم. هذه سنرى ممثل شيء يسمى متعدد خيوط. في الواقع، كل الخاص بك أجهزة ماكينتوش وأجهزة الكمبيوتر في هذه الأيام دعم متعدد خيوط، مما يعني أنه يمكنك حرفيا تفعل أشياء متعددة في وقت واحد. هل يمكن أن يكون مايكروسوفت وورد حتى في المقدمة، والعمل على بعض المقالات. قد يكون لديك مستعرض في افتتاح الخلفية G الإلكتروني أو الفيسبوك أو ما شابه ذلك. الكمبيوتر يمكن أن تفعل أشياء متعددة اليوم لأنه متعددة الخيوط، وبرامج انهم في في على وجه الخصوص هي أيضا متعددة الخيوط. هناك أشياء تسمى الأحداث كما جيدا في العالم من الصفر، ثم هناك طريقة للغاية، لجعل منطقتنا قطع اللغز عرف اذا كانت الامور لا وجود لها في الواقع مقدما. لذلك دعونا تحفيز هذا على النحو التالي. قبل بضع سنوات، عندما كنت اكتشفت لأول مرة خدش، عندما كنت في الواقع طالب دراسات عليا في معهد ماساتشوستس للتكنولوجيا، ونحن تم تكليف أنفسنا لجعل الواجبات المنزلية. وأنا implemented-- الذي، في وقت لاحق، كان قرارا سيئة للغاية لأنه الأغنية الأكثر المثيرة للغضب في العالم للاستماع لمدة ثماني ساعات بينما كان يعمل على homework-- الخاص بك ولكن شيئا كنت قد دعا أوسكار الوقت، وهو ربما أغنية مألوفة. CS50s تملك الأردن هاياشي، واحدة من لدينا أكثر من كبار الموظفين، ورفع مستواها لعام 2015 و الآن عام 2016، منذ مرة في اليوم، كان كل شيء مجرد الذهاب في سلة المهملات أوسكار. الآن نحن ندعم إعادة التدوير وسماد. ولكن لرسم الصورة ما يمكننا القيام به هنا ولتحفيز بعض الأمثلة مستوى أقل، يمكن أن نحصل على الآخر المتطوعين لتوها على ما يصل ولعب لقائي الأول واجب منزلي من أي وقت مضى؟ تعال الى هنا. ما اسمك؟ هنري: هنري. DAVID مالان: هنري، وتأتي على ما يصل. تعال الى هنا. يتوجه اي من الاتجاهين، و سترى في لحظة، انا ذاهب الى المضي قدما وضرب العلم الأخضر في أعلى اليد اليمنى الزاوية، وهو ما يعني ذهاب. رمز علامة تذكر المحطة وسأقول توقف، وهذا عند بدء تشغيل ووقف البرنامج. تشرفت بمقابلتك. حسنا. لذلك نحن ذاهبون لرؤية تعليمات على الشاشة في لحظة فقط. وفقط عن طريق هذه اللعبة لعدد قليل seconds-- ثق بي، نحن لن تريد أن تلعب على طول الطريق إلى end-- شئت الحصول على شعور ما يقوم به البرنامج. وأكثر من التركيز فقط على هنري يجري جيدة أو سيئة في هذه اللعبة، والتركيز وكيف تم تنفيذها من قبل لي أصلا ومن ثم عن طريق الأردن. وبعبارة أخرى، أين هي المتغيرات؟ أين هي الحلقات؟ أين هي وظائف؟ وسنرى إذا كنا لا نرى تلك تحت غطاء محرك السيارة. فقط انقر واسحب القمامة لبن المناسب. [موسيقى] حسنا. هذا جيد جدا. لماذا لا نتوقف هناك. شكرا. مبروك لهنري. شكرا. [تصفيق] ولكم أن تتخيلوا تصحيح هذا البرنامج. إذا كان هناك مشكلة اثنين في أغنية لولكن حتى دقيقة ما الذي يحدث هنا حقا؟ معقدة كما أنه قد البدء في الحصول على ما يبدو مع مرور الوقت، في الواقع أكثر وأكثر بدأ الاشياء السقوط، ما هو المثير للاهتمام حول هذا النوع من example-- وسنرى عدد قليل بالآخرين هو أنه إذا كنت ننظر الى الماضي تعقيد أو في تطور اللعبة، هناك مبنى بسيط جدا الكتل التي play-- كل منها، إذا كنت استخلاص لهم تلك كتل بناء، يمكن الوصول إليها جدا وقابلة للتنفيذ في حد ذاتها. على سبيل المثال، فإنه من كانت بعض الوقت، ولكن أنا متأكد ما أود في البداية فعلت عندما مما يجعل هذه اللعبة لأول مرة وكنت مثل تماما ماطلت. أنا لم يركز على الإطلاق على منطق أو قطع اللغز، أنا ركزت على الرسومات والنتيجة في آخر الشارع وسلة المهملات وذلك كله. ولكن تلك كانت المطلوب المكونات في البداية. وعندما انتهيت من المماطلة و وضع خارج الإطار الجامع، قررت، اسمحوا لي أن يجعل واحدة كسفا من القمامة من السماء. وسنرى خدش يدعم الأشياء تسمى الأحرف التي يمكن أن sprites-- لدينا ازياء مختلفة على ما هم يبدو مختلفا. وحتى أضع القمامة زي على واحد مثل هذا العفريت. وأنا فقط الحاجة إليه ليسقط من السماء. وهكذا اتضح، خدش، مثل معظم لغات البرمجة، يدعم أرقام عشوائية أو أرقام عشوائية شبة الكود من الناحية الفنية، بحيث عن طريق سحب و اسقاط بعض قطع اللغز، وكنت قادرا أن يكون سلة المهملات تأتي من الجهة اليسرى في البداية. ثم في المرة القادمة انخفض من اليمين ثم من الوسط. ولم كان كل لعبة فقط لدينا القمامة يسقط من السماء. لا يمكن أن نشير في ذلك أو انقر على ذلك. أنت لا تستطيع أن فتح سلة المهملات. أنت لا تستطيع أن تفعل أي شيء. ولكنه كان خطوة صغيرة نحو رؤيتي في نهاية المطاف. وبعد ذلك، وأنا في الواقع نفذت نوع الاستشعار بحيث إذا لم انقر واسحب على قطعة من القمامة أكثر من سلة المهملات، وأوسكار سيكون غطاء فتح وإغلاق. لن يحدث شيء إلى سلة المهملات، ولكن على الأقل غطاء من شأنه أن تفتح وتغلق. حتى ذلك الحين تحقق، الخطوة الثانية من اثنين. وهذا هو ما سيكون المفتاح في كل مشكلة تعيين الصفر وفي البرمجة بشكل عام، هو اتخاذ هذه الخطوات طفل مدروسة جدا. لأنه ليس فقط أنها لا تسمح لك ل يشعر إنجاز بصراحة أكثر من ذلك بكثير quickly-- انها أسوأ شيء في العالم في محاولة لتنفيذ كل من أوسكار الوقت، ثم ضرب ساعات في وقت لاحق العلم الأخضر، ولا شيء يعمل كما هو متوقع لأن أين كنت حتى البدء في التصحيح أو ل استكشاف هذا البرنامج؟ انها مجرد ساحق. وهكذا حقا احتضان هذه الفكرة اتخاذ خطوات طفل steps-- مرة أخرى وagain-- بناء شيء وهذا، في النهاية، حقا مؤثرة ومعقدة، ولكن في البداية، هو ليس ما يقرب من ذلك بكثير. في الواقع، دعونا نفعل هذا. اسمحوا لي أن المضي قدما and-- خدش نفسه موجود على شبكة الإنترنت في Scratch.MIT.edu، وعليك أن يقال كما مرة أخرى من ذلك بكثير في مشكلة وضع الصفر، مواصفات وهو بالفعل على موقع CS50 ل. ولكن هذا هو ما اخدش حد ذاته. وهناك في الحقيقة مجرد ثلاثة مجالات رئيسية. في الجزء العلوي يقم هناك هي مرحلة ما يسمى. هذا هو خدش. الزي الافتراضي هو القط. وهذا هو العالم مستطيلة في والتي يمكنك move-- إلى أعلى أو أسفل، يسار، الحق وبعض الأشياء الأخرى. في منتصف هنا مقولاتنا أو لدينا المنصات من قطع اللغز، وألوان مختلفة يعني أشياء مختلفة. وإذا كنت كزة حولها، وسترى أشياء مثل الحلقات والشروط والمتغيرات وغيرها من المكونات. ثم هنا هو مجال البرامج النصية. هذا هو المكان الذي يمكنك سحب وإسقاط تلك القطع اللغز أن تفعل أشياء. لذلك دعونا نفعل شيء من هذا القبيل واحد. اسمحوا لي أن المضي قدما and-- وأنا أعرف أين هو. لذلك أنا ذاهب إلى الضغط على الفور حيث أعلم أن الأمور جاهزة لتكون، لكن الإشارة والنقر و بدس حول حتمية. لذلك عندما ينقر العلم الأخضر، ماذا أريد أن أفعل؟ انا ذاهب للقيام بذلك. انا ذاهب الى سحب هذا اللغز الأرجواني قطعة ويقول مرحبا لمدة ثانيتين، واسمحوا لي في التكبير. وانا ذاهب الى تغيير هذا أن يكون ما أريد أن be-- مرحبا العالم لمدة ثانيتين على ما يرام. الآن، انا ذاهب الى فوق الراية الخضراء، أو إذا كنت تريد حقا، يمكنني ملء الشاشة ومن ثم أعود. أنها سوف تبقي فقط كل شيء في إطار واحد. الأخضر flag-- مرحبا العالم. حسنا. ليس كل ما مثيرة للاهتمام. لذلك اسمحوا لي نمضي قدما ونفعل هذا. اسمحوا لي أن محاولة واحدة أخرى. عندما علم أخضر clicked-- دعونا تفعل شيئا مثل صوت. وتلاحظ أن من مربع مجانا تحصل صوت القط، كما هو العفريت الافتراضية. وحتى الآن اسمحوا لي أن المضي قدما في ضرب العلم الأخضر الآن. [تموء] فصيل عبد الواحد. هذا محبب. أنا البرمجة. وذلك ما فعلت؟ وهذا هو ما يعادل البرنامج. من الواضح فائقة بسيط. أنها لم تأخذ حقا كل ذلك بكثير الجهد ومعهد ماساتشوستس للتكنولوجيا فعل أكثر من عمل، ولكن لقد دعوت وظيفة. ولقد استخدمت وظيفة. لقد اتخذت بعض الإجراءات، وذلك باستخدام فقط أن أحد الأرجواني قطعة اللغز. حسنا، إذا كنت تريد أن تفعل ثلاثة meows في صف واحد؟ اسمحوا لي أن نمضي قدما ونفعل اثنين وثلاثة. ولاحظ أنه عند تحوم في مكان قريب قطعة اللغز، يظهر خط أبيض صغير نوع من مغناطيسيا، وسوف المفاجئة معا عند ترك. دعونا نرى ما يحدث هنا. [تموء] هناك خلل. أسمع سوى مواء واحد. لماذا يمكن أن يكون؟ بلى؟ بلى. نحن لا نسمع حقا، ولكن هذا الحدس الجيد. انهم يلعبون جميعا في نفس الوقت. لماذا؟ حسنا، الكمبيوتر هو مجرد الذهاب أن تفعل ما أقول أن تفعله. حتى إذا كنت أقول، لعب الصوت، تشغيل الصوت، تشغيل الصوت، ولكنك لا أقول ذلك للعب حتى الانتهاء من ذلك، ولعب حتى الانتهاء من ذلك، انه سيكون لتفجير خلال برنامج سريع حقا ولا فقط ما كنت أقول أن تفعله. لذلك أنا فعلا بحاجة إلى إصلاح هذا في عدة طرق. أنا فقط يمكن أن تفعل هذا، التخلص من هذا. اسمحوا لي أن أحاول هذا اللغز الآخر piece-- لعب مواء الصوت حتى القيام به، ثم سحب ثلاثة من هذه وانقر فوق تشغيل. [تموء] انها ليست حقا very-- أشكر you-- طبيعي جدا. فلماذا لا I-- السماح لي بالذهاب للسيطرة على هنا. لطيف. انتظر ثانية واحدة، والآن اسمحوا لي أن أعود للأصوات، وصوت اللعب حتى القيام به، ثم اسمحوا لي أن الحصول الانتظار ثانية واحدة. ثم اسمحوا لي ان اذهب واحصل على واحد أكثر الصوت، وهنا نذهب. [تموء] قليلا أكثر طبيعية، ولكن هذه ليست فعالة جدا. وكأني كنت الحصول على بالملل، كل من لفترة وجيزة، والنقر فوق ذهابا وإيابا وحقا تكرار بلدي work-- الى حد كبير النسخ واللصق. في الواقع، إذا كنت التحكم النقر أو الحق النقر عليها، أنا يمكن أن يكون مجرد نسخ ولصق. ما يمكن أن يكون أفضل بناء للاستخدام؟ ما الفكرة من قبل؟ نعم، لذلك حلقة. وفي الواقع، إذا كنا مطعون حولها، قد نجد ذلك بالضبط. اسمحوا لي أن أذهب إلى الأحداث أو بالأحرى التحكم. repeat-- لذلك أنا لا تريد أن تكون 10 مرات. ما يجري في الحصول على مزعج بسرعة. ولكنني لن أكرر ثلاث مرات. واسمحوا لي أن أعود إلى الصوت و تشغيل الصوت حتى يتم ذلك. واسمحوا لي أن أعود إلى مراقبة وليس علينا سوى الانتظار ثانية واحدة. والإشعار، كنت قد أعتقد أنه لا يصلح، ولكن مرة أخرى إذا مغناطيسيا كنت اتركها المفاجئة في مكان، وسوف تنمو لملء الفراغ. ما أن تقوم به الآن؟ [تموء] حسنا. لطيف. وهذا هو ما يمكن أن يسمى برنامج هذا أيضا صحيح. ومن meowed ثلاث مرات إلى حد ما وبطبيعة الحال، لكنها مصممة على نحو أفضل. أنا باستخدام أقل التكرار. لم أكن نسخ ولصق أي شيء. كنت مجرد فكرة أفضل. الآن، وهذا لا يزال ليس كل ما مثيرة للاهتمام مع خدش لا تفعل اى شى. لذلك دعونا نفعل شيئا آخر بدلا من ذلك. دعونا نفعل شيئا إلى الأبد. وتعلم ماذا؟ يبدو حركة مثيرة للاهتمام. دعونا يكون له نقل 10 ضربت الخطوات واللعب الآن. حسنا. حسنا يمكننا النوع من السحب له مرة أخرى، وانه لا يزال تشغيل لأنه يفعل هذا إلى الأبد. حتى الحلقة يقوم به ما تقوله القيام به، ولكن هذا ليس كل ما مثيرة للاهتمام. دعونا نفعل ذلك. اسمحوا لي أن أضيف كتلة تحكم، واستخدام واحد من هذه الشروط لأول مرة. لذلك سيكون لنقل 10 steps-- 10 نقاط، 10 بكسل على screen-- ثم انه سيكون لطرح هذا السؤال. إذا كان هناك شيء غير صحيح، ثم القيام شيء داخل هذه الكتلة. لذلك تبين الاستشعار لديه كلها مجموعة من expressions-- منطقية أسئلة نعم أو لا يصدق كاذبة form-- اسمحوا لي أن تفعل هذا. إذا touching-- وبعد ذلك هناك هذا الانخفاض القليل من القائمة المنسدلة. أستطيع أن بالحدود ذلك. إذا لمس edge-- دعونا تفعل شيئا من هذا القبيل. حتى إذا لمس edge-- اسمحوا لي أن أعود إلى الحركة. ولماذا لا نحن فقط يستدير 180 درجة؟ حسنا. كذلك إلى الأبد، نقل 10 خطوات. إذا كنت لمس الحافة، وتحول 180 درجة. وهذه ليست نهاية البرنامج لأنك في منع الأبد، لذلك سيذهب مرة أخرى و مرة أخرى، ومرة ​​أخرى ومرة ​​أخرى. لذلك دعونا نرى ما سيحدث. حسنا. عربات التي تجرها الدواب قليلا، ولكن نوع من بارد. ويمكننا أن نضيف إلى هذا بعض أشياء سخيفة ليست كل ما فكريا مثير للإعجاب. ولكن إذا ضربنا هذا القليل ميكروفون button-- أوتش. اسمحوا لي أن تنظيف هذا. اسمحوا لي أن تعزيز هذا النحو كانوا يقولون على شاشة التلفزيون. تنظيف ما يصل، حفظ، و اذهب الآن إلى النصوص. والآن، اسمحوا لي أن أذهب للصوت. اسمحوا لي أن تعطيه اسما. سأتصل هذا أوتش. وتلعب الآن أوتش الصوت. لاحظ أنه يظهر في انخفاض قليل من القائمة المنسدلة. دعنا نرى. [أوتش] [يضحك] ولكن يمكننا تغيير ر له على الطاير. يمكننا أن نكون مرتين مزعج كما. [أوتش] او اذا كان لجعله مثل 1000 خطوات في time-- حسنا. لذلك نحن ذاهبون إلى ترك هذا واحد وحده. ذلك مرة أخرى، وبناء أنا blocks-- بدأت مع شيء بسيط السوبر، ثم أضفت ميزة، إضافة ميزة، إضافة ميزة. وأنا لم تعد هناك حاجة للقلق حول كيف هي الأولى من تلك الميزات تم تنفيذها خلال أواصل لطبقة الأشياء على القمة. ذلك في الواقع، اسمحوا لي أن تفعل الآخر هنا. اسمحوا لي أن المضي قدما وفتح ملف احضرت مقدما، ودعا الأغنام. ذلك أن لديها مختلفة قليلا الحرف الذي يبدو مثل هذا. واسمحوا لي أن نرى ما اذا كان لا أستطيع تفعل شيئا باستخدام عداد في هذا case-- متغير يسمى. انا ذاهب الى المضي قدما وتحت Events-- اسمحوا لي أن الحصول النقر العلم الأخضر. ثم اسمحوا لي أن انتقل إلى بيانات، والتي أعلم من مجرد اللعب حولها من قبل، حيث هي المتغيرات. وانا ذاهب الى المضي قدما وسحب هذا. ما يسمى متغير العداد، و انا ذاهب الى تهيئة إلى الصفر. أنا يمكن أن نسميها anything-- x أو ذ أو z-- لكن في البرمجة، داعيا شيء في غويا طريقة مفيدة، مثل العداد، أن يصف ما هو عليه، انها أسهل كثيرا لقراءة التعليمات البرمجية الخاصة بك في وقت لاحق. اسمحوا لي أن المضي قدما والحصول وإلى الأبد منع هنا. واسمحوا لي أن أذهب إلى النظرات الصفحة والقيام كتلة قل. ولكن ما هو بارد حول المتغيرات هو أنا لم يكن لديك لكتابة فقط في شيء مثل مرحبا العالم، والتي قمنا بالفعل القيام به، ويمكن بدلا من الذهاب إلى البيانات وسحب متغير بلدي، وحتى على الرغم من أن الشكل لا ليس تماما تبدو وكأنها يجب أن يصلح، انها سوف تنمو لملء الفراغ. وأنا أقول العداد واحد spoiler-- second-- انه ذاهب الى العد. سوف نقوله لثانية واحدة. ثم انا ذاهب للذهاب و يكون له الانتظار لثانية واحدة، لذلك لا تعول ما يصل بسرعة كبيرة. ثم أخيرا، تغيير العداد بواسطة احدا-- وبعبارة أخرى، زيادة العداد من جانب واحد قيمة إضافية والقيام بذلك إلى الأبد. حتى الغنم أيضا، مثل مبرمج، بحساب من 0. وإذا انتظرنا فترة طويلة بما فيه الكفاية، وقال انه سيفعل هذا إلى الأبد. ولكن هذا ليس صحيحا تماما، لأن في الواقع، كما سنكتشف في أسبوع واحد، الأعداد الصحيحة وأجهزة الكمبيوتر بشكل عام، لدينا من الناحية الفنية فقط بئر finite--، بدلا أجهزة الكمبيوتر، عندما أنها تمثل الأعداد الصحيحة، ليس لدي سوى عدد محدود من البتات. تلك المصابيح هناك يمكن الاعتماد فقط عالية جدا قبل كنت خارجا من المصابيح الكهربائية. وجهاز كمبيوتر للغاية، ليس لديها سوى الكثير من الذاكرة، ليس لديها سوى هذا العدد الكبير من الترانزستورات، لذلك يمكن الاعتماد فقط عالية جدا. لذلك تبين أن الخراف، أعتقد، يمكن الاعتماد على 2000000000 أو شيئا كبيرا جدا. لذلك نحن لن انتظر لهذا أن يحدث. ولكن في نهاية المطاف فإن بعض الخلل يحدث يمكن أن يكون لها بعض العالم الحقيقي جدا تداعيات. ولكن أبعد من الأغنام، أن يقدم مجرد متغير. دعونا نمضي قدما وفتح شيء يتم في وقت مبكر هنا تسمى الحيوانات الأليفة في Cat-- الحيوانات الأليفة القط أكثر من هنا. ويلاحظ هنا أنه من القلائل كتل، ولكن عندما علم أخضر النقر، والقيام إلى الأبد ما يلي. إذا كنت لمس الماوس pointer-- ذلك المؤشر على الشاشة، المسرحية arrow-- مواء الصوت ومن ثم الانتظار لمدة ثواني. ومجرد القيام بذلك إلى الأبد. ليس علينا سوى الانتظار باستمرار لمعرفة ما إذا كان pointer-- إذا كان القط لمس المؤشر. لذلك أنا ضرب اللعب. لا شيء يحدث. ولكن كما قلت حرك المؤشر فوق القط، [تموء] وإذا قمت بنقلها بعيدا، وليس الملاعبة القط بعد الآن. وحتى بعض المنطق المشروط متداخلة داخل حلقة. ماذا عن هذا المثال، عمدا ودعا لا الحيوانات الأليفة القط؟ ما هذا فاعلون؟ [تموء] لماذا يجب ألا الحيوانات الأليفة القط؟ [تموء] حسنا. لذلك هذا هو مثال إذا آخر. انها نقطة القرار و لأنه يجلس في حلقة، انهم على حد سواء الحصول على التحقق. هل هذا صحيح؟ هل هذا صحيح؟ هل هذا صحيح؟ هل هذا صحيح؟ وفي نهاية المطاف، واحدة من تلك هو الذهاب الى تطبيق وهكذا تسمع إما مواء أو هدير الأسد في هذه الحالة. حسنا، دعونا نفعل واحد أكثر قليلا الهوى الذي أدليت به مقدما too-- المواضيع. ولذلك فإن موضوع هو مجرد واحد الشيء الذي جهاز كمبيوتر يمكن القيام به. ولذلك فإن برنامج متعدد الخيوط هو برنامج التي يمكن أن تفعل أشياء متعددة في وقت واحد. وجميع هذه الأمثلة لقد كان حتى الآن برنامج نصي واحد فقط، وذلك لspeak-- برنامج واحد هذا مثل هنا. ولكن لاحظ هذا البرنامج لديه اثنين من العفاريت، وهما حرفا. هو واحد من الطيور. واحد هو القط. وتلاحظ عند النقر على هذه أسفل اليسار، أنها تمتلك كل نصوصهم الخاصة أو البرامج المرتبطة بها. وكلا من تلك برامج، اشعار، بداية مع العلم clicked-- عندما الأخضر دعونا ننظر في cat-- عندما ينقر العلم الأخضر. وهكذا في الواقع، عندما ضرب اللعب الآن، شيئين ستحدث في وقت واحد. القط والطيور على حد سواء الذهاب للعمل في وقت واحد لخلق هذا الأثر. وكنت قد تخيل ما يحدث. هناك حلقة والطيور والقط وفي حلقة. الطيور هو مجرد كذاب مثل كنت قبل عندما قلت أوتش. ولكن القط بشكل واضح ميزة. هناك كتلة الاستشعار آخر يشير القط عمدا إلى الطيور في هذه الحالة هنا. حتى نتمكن من ندف وبصرف النظر، عن طريق النظر من خلال تلك الكتل، ما يحدث. ولكن العنصر الرئيسي هنا هو واحد. الطيور، وذلك أن هذه اللعبة ليست boring-- تماما أو هذا animation-- يبدأ في اتجاه عشوائي. والكمبيوتر قطف عدد يتراوح بين 90 و 180 أساسا، بحيث انها قليلا مختلف الرسوم المتحركة في كل مرة. ومن ثم لاحظ هنا، إذا كان القط لمس الطيور، ثم لعب الأسد أربعة sound-- هدير. لكن في الوقت نفسه في الطيور لوحة، لدينا هذا. إلى الأبد، إن لم يكن لمس القط، فقط الحفاظ على التحرك ثلاث خطوات. ثم هنا آخر قطعة اللغز. إذا كنت على الحافة، وترتد. حتى الطيور هو مجرد نوع من التدبير أعمالها الخاصة، فقط تحلق حولها و كذاب، وانها حقا القط الذي كان منطق مشروط لتحديد ما إذا كان قد اشتعلت الطيور. حسنا. لذلك دعونا نفعل الآخر هنا، هذا واحد يجري ودعا مرحبا مرحبا مرحبا. وهذا واحد هنا فقط لا هذا في حلقة إلى الأبد. لكن notice-- كيف نوقف هذا البرنامج مزعج جدا؟ اضغط على مفتاح المسافة. لأنه إذا فعلت ذلك، اليسار program-- اليد لاحظت انها باستمرار listening-- هو الصحافة الفضاء الرئيسي. إذا ضغطت على شريط الفضاء، وإذا كان الأمر كذلك، ماذا يفعل؟ وهو يفعل تقنية شائعة جدا. ويحدد متغير يساوي قيمة ما. ولكن تبديل تلك القيمة. [؟ حتى ظهور؟] على أساس أنا shape-- لديك متغير بأنني كتب مقدما تسمى كتم الصوت، والتي تقول فقط بنعم أو لا. هو الصوت خافتا أو لا؟ صحيحة أو خاطئة؟ والإشعار، أنا أقول this-- إذا صامتة صفر، ثم تغيير واحد، آخر مجموعة البكم إلى الصفر. ذلك الوجه فقط القيمة من صفر إلى واحد. أنا يمكن أن يكون done-- تغييره من سنتين إلى ثلاث و01:57 أو 4-5 أو 4-6. ولكن لا يهم ما أرقام يمكنني استخدام، طالما أظل تغيير الوضع ليصبح العكس. ومعظم أي مبرمج من شأنه فقط اختيار الصفر واحدا-- كاذبة وحقيقية، قبالة وon-- لتمثيل هذا. وهذا لا يزال قيد التشغيل. لو ضرب شريط الفضاء مرة أخرى [SEAL SOUNDS] البرنامج لا يزال قيد التشغيل. لأنه لا يوجد هذا السيناريو الآخر أن يقول، إلى الأبد القيام بما يلي. إذا كان المتغير صامتة يساوي zero-- حتى إذا كنت لا صامتة هو logic-- اذا كان كاذب أو لا، ثم لعب الصوت، لأنك عدم كتم. يجب تشغيل الصوت ثم أعتقد مرحبا مرحبا مرحبا لمدة ثانيتين وبعد ذلك الانتظار، ونفعل ذلك مرة أخرى، ومرة ​​أخرى ومرة ​​أخرى. وحتى في هذه الطريقة لدينا وسيلة ل الناس ل-- لبرامج للتفاعل. وأنهم لا يملكون ل على النحو مؤرخة في الآخرين. في الواقع، بدس around-- لا يقصد التوريه-- قضى شخص كمية كبيرة من الوقت على الانترنت تنفيذ PokemonGo في خدش. حتى أنه geolocates لك في كامبريدج أو ألستون] هنا. حتى إذا كنت تريد أن ترى أيضا ما الناس يمكن القيام به هو this-- القائمة يتوهم جدا. انقر هنا. هذا هو لي مع مفاتيح الأسهم بلدي الآن. انا ذاهب للذهاب بعد ذلك. انقر. والآن النقر فوق PokeBall. يعني أنا أعتقد أنك من المفترض فوق PokeBall. حسنا. هكذا فعلت ذلك. أستطيع أن أمضي أكثر من هنا. وهذا الشخص ينفذ بعض أكثر PokeBalls على here-- ثلاثة PokeBalls. سنقوم بعد وصلة لهذه على الانترنت حتى تتمكن من اللعب. لكن إشعار هناك فقط بعض اللبنات الأساسية. يبدو مربي الحيوانات كثيرا، وغير ذلك. هذا أمر مثير للإعجاب وأكثر من كنا عادة نتوقع، وبالتأكيد لمشكلة وضع الصفر. ليس لدي أي فكرة متى هذا الشخص قضى على الانترنت. ولكن الأمر كله مجرد حلقة. هناك لعب الصوت. هناك نوع من حلقة الاستماع لما إذا أنا ضرب السهم لأعلى أو لأسفل السهم أو اليسار واليمين، ثم إذا كان الأمر كذلك، فإنه يتحرك كان بعض عدد من بكسل. ثم إذا كنت اضغط على شبح آخر، هناك نوع من اذا كان الشرط هناك. نعم، هذا هو الحصول على مكثفة جدا. ونحن في طريقنا لوقف. انها كل تلك اللبنات الأساسية. لا توجد غيرها من المكونات الأخرى من تلك التي كنا قد بحثت في بالفعل. وبعد هنا، اسمحوا لي أن تفعل مجموعة واحدة النهائي من الأمثلة أن يرسم صورة للغاية ما يمكنك القيام به هنا. وهنا برنامج بسيط جدا أن لا مجرد this-- السعال والسعال والسعال. وتستند فقط على ما لقد نظرت حتى الآن، أين هو واضح فرصة للتحسين. هذا البرنامج هو الصحيح. ومن السعال ثلاث مرات، وهو ما نويت. لكنها سيئة التنفيذ. انها مصممة بشكل سيئ. لماذا؟ بلى. انها ليست حلقة. وانها ليست الكثير من انها ليست حلقة، فهو أن هناك الكثير من التكرار. يتم نسخ هناك و كود لصق، إذا جاز التعبير. والحل ربما هو في الواقع حلقة. لذلك اسمحوا لي المضي قدما وتحسين بناء على ذلك. وانا ذاهب الى سحب هذه أكثر من هنا. اسمحوا لي أن المضي قدما والحصول على تكرار كتلة تغيير هذا إلى ثلاثة. انا ذاهب الى رمي بعيدا بعض من تلك الكتل. وستلاحظ أنها بديهية جدا. يمكنك سحب وإسقاط والأشياء تظهر وتختفي في نهاية المطاف. وأستطيع أن مجرد سحب هذا هنا، و الآن لدي نسخة أنظف يزال. ولكن هل تعرف لماذا؟ هناك هذه الفرصة الآن لabstraction-- للبدء في تحديد مفردات جديدة أن معهد ماساتشوستس للتكنولوجيا لم توقع. هناك الانتظار وتكرار وإلى الأبد، وإذا، ولكن ماذا لو أريد أن أعرض كلمة السعال ككتلة؟ ماذا لو كنت تريد قطعة اللغز الغرض الذي في الحياة هو أن السعال؟ حسنا، دعونا ننظر في هذا الإصدار هنا، والذي أدليت به على النحو التالي. سحرية، لقد خلق هذا اللغز قطعة هنا، والذي يسمح لك أن تفعل خدش. وبالفعل C وبيثون وجافا سكريبت ل الذهاب للسماح لك أن تفعل ذلك أيضا. يمكنك إنشاء المخصصة الخاصة بك القطع التي يمكنك استدعاء ما تريد. في هذه الحالة، يشعر السعال مثل تعريف معقول. ثم مع هذه القطع أسفل هنا يمكنك تحديد ما يعنيه. أنا جر وانخفض من هذه اللوحة أكثر here-- blocks-- هذا الأرجواني كبيرة كتلة، حيث كنت كتبته في السعال مثل اسم بلدي قطعة اللغز الجديد. ثم أنا أقول أي وقت المستخدم ويدعو هذا الجديد السعال قطعة اللغز، القيام مثلا والانتظار. وحتى هنا في تكرار الإهتمام، يمكنني فقط السعال ثلاث مرات. وأنا أزعم، خصوصا إذا الآن يمكنك إخفاء هذه التفاصيل. من يهتم كيف يتم تنفيذ السعال؟ كل ما يهمني باعتباره مبرمج أستطيع أن السعال. لا يهمني كيف يتم تنفيذ يقولون. أنا فقط أهتم أن القط يستطيع أن يقول شيئا. يمكنني مجردة بعيدا أن التفاصيل و التركيز فقط على ما هو على الشاشة هنا. ولكن يمكنني أن أغتنم هذه خطوة أخرى إلى الأمام. لاحظ أن هنا، لا بد لي تنفيذ حلقة ثلاث مرات. ولكن ماذا لو بدلا من ذلك الاستيلاء على هذه النسخة؟ وماذا لو بدلا من ذلك في هذا الإصدار هنا، أنا فقط اغير قطعة اللغز لاتخاذ حجة والمدخلات في حد ذاته؟ وهذا المدخل يمكن أن يكون عدد مثل الثلاثة. وحتى الآن، إذا أنا أكتب برنامج وأريد القط السعال، استطيع ان اقول فعلا اللغز قطعة كم مرة على السعال، لأنه في أسفل هنا، ومربي الحيوانات نسخة من هذه القطع لغز مخصصة يتيح لي بتحديد أن السعال يأخذ في الواقع وinput-- يأخذ حجة من هذا القبيل. وتعلم ماذا؟ ربما أدرك، انتظر لحظة. السعال هو same-- انها في الأساس نفس الفكرة كما العطس. انها مجرد مختلفة كلمة على الشاشة. يمكنني مجردة بعيدا أبعد من ذلك وتنفيذ هذا الإصدار الأخير من السعال، والتي لأول وهلة هي طريقة أكثر تعقيدا تبحث. ولكن لاحظ ما فعلته. لدي الآن generalized-- genericized really-- هذا اللغز قطعة ليتم استدعاؤها يقول كلمة n مرة. والآن لدي اثنين من قطع اللغز جديدة إلى هنا تحديد السعال ن مرات. وماذا تفعل وظيفة السعال؟ ماذا عادتي قطعة اللغز تفعل؟ انها مجرد تدعو كتلة مثلا، يمر في كلمة أنا أريد أن أقول، يمر في عدد من المرات وأنا أريد أن أقول. لأنه الآن لا أستطيع تنفيذ العطس ببساطة قائلا achoo، في هذه الحالة، وبعض عدة مرات. لذا فإنني طبقات وطبقات. ومرة أخرى، والمفتاح هنا هو ليس كيف تنفيذه، ولكن الحقيقة أنه إذا أنا فقط حرفيا نقل هذه خارج الشاشة، ننظر كيف بسيط إن لم يكن جميلة برنامجي يبدو الآن. لأنه يفعل ما يقول، لقد تستخرج بعيدا ما هو داخل هذا الصندوق الأسود. يحدث أن يكون مربع الأرجواني هنا، ولكن لقد عرقلت بعيدا عما يدور في داخل لأنه لا يهمني كيف يعمل. أنا فقط أهتم الآن أنه يعمل. وبالفعل، في مشكلة وضع الصفر، وهذا هو بالضبط هذا النوع من طبقات من الأفكار التي سوف لديك الفرصة لاستكشاف. وهذا هو بالضبط الفرصة ل تطبيق تقنيات حل المشكلات، لماذا ربما ل بيئة غير مألوفة. وإذا كنت قد لا مبرمجة قبل أو مبرمجة من قبل، ستجد أن هناك شيئا قليلا في هذه البيئة للجميع. ومع مشكلة تحديد واحدة في غضون اسبوع، سنكون انتقلت إلى التركيز على لغة عالية المستوى يسمى C-- أو بالأحرى أقل مستوى اللغة تسمى C-- هذا أكثر قوية، على الرغم من انها أكثر من ذلك بقليل خفي للوهلة الأولى. وعليك أن تدرك في TL اليوم: DR، أن هذه المشكلة مجموعة لديها أقصر نافذة من الوقت من أزمات في المستقبل، وذلك ببساطة لأنك يجب أن تجد إلى حد ما يمكن الوصول. ولا داعي للقلق إذا إضافة طبقة في وقت متأخر. سنقوم معالجة ذلك قبل فترة طويلة. وقبل أن أرفع لكعكة، دعونا تنتهي مع مجرد نظرة لمدة دقيقتين في ما ينتظركم هنا في CS50. [موسيقى] حسنا. هذا كل شيء لCS50. سوف نراك قريبا. يتم تقديم كعكة الآن. [موسيقى] سرور 17: هل سمعت من التفرغ، رئيس؟ سرور 18: ربما هناك أكثر تحت غطاء محرك السيارة.