1 00:00:49,610 --> 00:00:52,910 ديفيد مالان: هذه هي دورة CS50، 2 00:00:52,910 --> 00:00:55,310 مقدِّمة إلى المشروعات الفكرية لعلوم الكمبيوتر 3 00:00:55,310 --> 00:00:56,810 وفن البرمجة المعتمَدة من جامعة هارفارد. 4 00:00:56,810 --> 00:00:59,480 اسمي ديفيد مالان، وإذا كنتَ من بين هؤلاء 5 00:00:59,480 --> 00:01:03,300 الموجودين في الغرفة الذين يفكرون، في سبب وجودهم في صف دراسي خاص بعلوم الكمبيوتر، 6 00:01:03,300 --> 00:01:05,750 فاعلم أني شعرتُ بالشعور نفسه أيضًا. 7 00:01:05,750 --> 00:01:07,460 في الواقع، في سنتي الأولى، لم أكن 8 00:01:07,460 --> 00:01:10,820 لأقدم على خوض هذه الدورة أو علوم الكمبيوتر بشكلٍ أعمّ، 9 00:01:10,820 --> 00:01:13,530 وكان ذلك لحد كبير لأني كنت أرتعب من ذلك. 10 00:01:13,530 --> 00:01:14,680 لقد كنت متوترًا قليلاً. 11 00:01:14,680 --> 00:01:16,590 كان شعورًا جيدًا أن أخرج من نطاق اطّلاعي المألوف. 12 00:01:16,590 --> 00:01:19,860 ولم أكن حقيقةً أعرف في نهاية المطاف حقيقة ما كان عليه الأمر. 13 00:01:19,860 --> 00:01:22,280 ولكن اعلم إذا كنتَ، أنت أيضًا، تشعر بالقليل من ذلك الشعور، 14 00:01:22,280 --> 00:01:24,140 أو حتى إذا كنتَ من بين هؤلاء الأكثر اطّلاعًا الذين 15 00:01:24,140 --> 00:01:26,270 مارسوا مهاراتهم في مجال علوم الكمبيوتر أو البرمجة، 16 00:01:26,270 --> 00:01:29,180 فاعلم أن هناك الكثير من الفراغات التي يمكننا ملؤها على طول الطريق 17 00:01:29,180 --> 00:01:31,510 بحيث إنه وبنهاية الفصل الدراسي، سيشعر كل شخص 18 00:01:31,510 --> 00:01:34,280 أنه على قدم المساواة مع الآخرين. 19 00:01:34,280 --> 00:01:38,870 وحتى ذلك الحين، تأكد أن 68٪ من الأشخاص الذين يجلسون عن يمينك 20 00:01:38,870 --> 00:01:40,940 وشمالك وخلفك وأمامك 21 00:01:40,940 --> 00:01:45,230 لم يسبق لهم قط أن درسوا دورةً تدريبيةً في علوم الكمبيوتر، وهو ما قد يكون جيدًا جدًا 22 00:01:45,230 --> 00:01:47,000 كتركيبة أفراد تناسبك. 23 00:01:47,000 --> 00:01:50,330 ولكن اعلم، أيضًا، بأنه ومع هيكل دعم مدهش كهذا 24 00:01:50,330 --> 00:01:53,820 بالعديد من ساعات العمل والأقسام والمواد وغيرها الكثير، 25 00:01:53,820 --> 00:01:56,120 فاعلم أنه في هذه الدورة التدريبية ليس المهم بدرجة كبيرة في النهاية 26 00:01:56,120 --> 00:01:59,180 أين سينتهي بك المطاف مقارنةً بزملائك في الصف الدراسي 27 00:01:59,180 --> 00:02:03,530 في الأسبوع العاشر، أسبوعنا الأخير، لكن ما يهم كثيرًا هو أين سينتهي بك المطاف مقارنةً بك أنت 28 00:02:03,530 --> 00:02:04,400 في الأسبوع صفر. 29 00:02:04,400 --> 00:02:06,050 وبالفعل، هذه هي النقطة التي نوجد فيها الآن. 30 00:02:06,050 --> 00:02:08,810 وكما يتضح، يبدأ علماء الكمبيوتر العد من الصفر. 31 00:02:08,810 --> 00:02:11,690 وهكذا وعلى مدار الأحد عشر أسبوعًا التالية، سنأخذك 32 00:02:11,690 --> 00:02:14,060 من بين هؤلاء الذين يشعرون براحةٍ أقل أو ربما 33 00:02:14,060 --> 00:02:16,120 في مكان ما بين مَن هم أقل راحة وأكثر راحة 34 00:02:16,120 --> 00:02:20,510 للشعور براحة أكبر وثقة وقدرة أكثر من ذلك. 35 00:02:20,510 --> 00:02:23,990 لكن للوصول إلى هذا، يجب أن نفهم ما الذي يعنيه علم الكمبيوتر حقًا. 36 00:02:23,990 --> 00:02:26,870 وهذا شيءٌ لم أفهمه حتى وضعت قدمي في قاعة 37 00:02:26,870 --> 00:02:27,530 مثل هذه. 38 00:02:27,530 --> 00:02:31,160 وأجرؤ على القول إننا نستطيع استخلاص علم الكمبيوتر من هذه الصورة فقط. 39 00:02:31,160 --> 00:02:33,290 يدور علم الكمبيوتر حول حل المشكلات. 40 00:02:33,290 --> 00:02:36,440 وأنا أعلم أن الدورات التدريبية في المدرسة الثانوية عادةً ما ترسم 41 00:02:36,440 --> 00:02:38,270 صورةً مضللة تدور فقط بشكل كامل 42 00:02:38,270 --> 00:02:40,910 حول البرمجة والأشخاص الذين ينكبّون على 43 00:02:40,910 --> 00:02:44,270 العمل في الرموز في مختبرات الكمبيوتر بصورة غير اجتماعية إلى حد ما، 44 00:02:44,270 --> 00:02:47,270 لكن الحقيقة هي أن الأمر برمته يدور حول حل المشكلات، وغالبًا، 45 00:02:47,270 --> 00:02:51,140 حل المشكلات بشكل تعاوني سواء بشكل شخصي أو عن طريق تفعيل الرموز، 46 00:02:51,140 --> 00:02:53,240 أو البرامج التي كتبها آخرون في الماضي. 47 00:02:53,240 --> 00:02:54,980 وما الذي يعنيه حل مشكلة ما؟ 48 00:02:54,980 --> 00:02:56,440 حسنًا، أنت تحتاج إلى مدخلات. 49 00:02:56,440 --> 00:02:58,280 لذلك هناك مشكلة تحاول أن تصل إلى حلها. 50 00:02:58,280 --> 00:02:59,150 هذا هو المدخل. 51 00:02:59,150 --> 00:02:59,990 وأنت بحاجة إلى مُخرَج. 52 00:02:59,990 --> 00:03:01,800 أنت تريد حلاً لهذه المشكلة. 53 00:03:01,800 --> 00:03:03,830 وسر الخلطة في علم الكمبيوتر 54 00:03:03,830 --> 00:03:06,140 سيكون كل شيء في هذا الصندوق الأسود الشهير 55 00:03:06,140 --> 00:03:08,440 في المنتصف خلال الأسابيع القليلة القادمة، 56 00:03:08,440 --> 00:03:12,090 حينما تبدأ في فهم ما يمكنك القيام به بالضبط مع ذلك. 57 00:03:12,090 --> 00:03:15,050 لكن لبدء حل المشكلات، نحن بحاجةٍ فقط 58 00:03:15,050 --> 00:03:18,290 إلى أن نقرر كمجموعة كيف سنمثل هذه المشكلات 59 00:03:18,290 --> 00:03:19,780 وماذا يمكن أن تكون المشكلة. 60 00:03:19,780 --> 00:03:21,350 حسنًا، في هذه القاعة، هناك مجموعة كاملة من الأشخاص. 61 00:03:21,350 --> 00:03:24,650 أذا أردنا أن نأخذ الحضور أو نحصي عدد الأشخاص في هذه القاعة، 62 00:03:24,650 --> 00:03:28,040 فقد أحتاج إلى البدء في حفظ تتبع مسارات الأشخاص الذين أراهم. 63 00:03:28,040 --> 00:03:30,700 ولكن كيف أقوم بتمثيل عدد الأشخاص الذين أراهم؟ 64 00:03:30,700 --> 00:03:34,070 حسنًا، يمكنني فعل ذلك بالطريقة التقليدية ويمكنني فقط إخراج قطعة من الطباشير 65 00:03:34,070 --> 00:03:35,320 أو أي شيء وأقول، حسنًا. 66 00:03:35,320 --> 00:03:38,260 أنا أرى 1، 2، 3، 4، 5. 67 00:03:38,260 --> 00:03:40,220 يمكنني إجراء القليل من المحادثات الأسلوبية مثل هذه 68 00:03:40,220 --> 00:03:42,290 لتوفير مساحة وتذكير نفسي. 69 00:03:42,290 --> 00:03:45,840 6، 7، 8، 9، 10، وما إلى ذلك. 70 00:03:45,840 --> 00:03:48,860 أو يمكنني، بالطبع، أن أحسب فقط على يدي. 71 00:03:48,860 --> 00:03:52,730 1، 2، 3، 4، 5، وما إلى ذلك. 72 00:03:52,730 --> 00:03:57,350 لكن بوضوح، كم يمكنني أن أصل في العد على يد واحدة فقط؟ 73 00:03:57,350 --> 00:04:00,110 يمكنك التفكير في 5، لكن هذا فقط لأننا لم 74 00:04:00,110 --> 00:04:01,760 نفكر مليًا في هذه المشكلة. 75 00:04:01,760 --> 00:04:04,850 اتضح أنه فقط باستخدام الخمس أصابع هذه، ناهيك عن هذه الخمسة، 76 00:04:04,850 --> 00:04:08,360 يمكنني أن أحصي أكثر لأنه وفي نهاية المطاف، نظام 77 00:04:08,360 --> 00:04:10,310 علامات الإحصاء الذي أستخدمه على اللوحة أو فقط 78 00:04:10,310 --> 00:04:13,550 باستخدام أصابعي هو مجرد إبقاء أصابعي منخفضة 79 00:04:13,550 --> 00:04:16,190 أو رفعها لتمثيل الأشخاص، بالفعل. 80 00:04:16,190 --> 00:04:19,160 ولكن ماذا لو أخذت في الاعتبار ترتيب أصابعي 81 00:04:19,160 --> 00:04:22,860 وبدلتهم نوعًا ما، إن جاز التعبير، لتكون بالفعل أنماطًا من الأصابع 82 00:04:22,860 --> 00:04:24,860 تمثل عدد الأشخاص في هذه القاعة، 83 00:04:24,860 --> 00:04:27,660 وليس مجرد وجود إصبع يصعد ويهبط. 84 00:04:27,660 --> 00:04:29,480 بعبارة أخرى، يمكن أن يظل هذا صفرًا. 85 00:04:29,480 --> 00:04:31,130 ويمكن أن يكون هذا واحدًا. 86 00:04:31,130 --> 00:04:34,250 ولكن ماذا لو كان اثنان ليس هذا فقط، كما هو واضح؟ 87 00:04:34,250 --> 00:04:36,140 لكن ماذا لو كان هذا فقط؟ 88 00:04:36,140 --> 00:04:38,660 لذا رفع إصبع واحد فقط، إصبعي الثاني. 89 00:04:38,660 --> 00:04:41,180 ماذا لو كان ثلاثة هو هذا، إذًا؟ 90 00:04:41,180 --> 00:04:44,420 لذا نحن لدينا 0، 1، 2، 3. 91 00:04:44,420 --> 00:04:47,150 هذا سيقودنا إلى أربعة إلى حدٍ ما. 92 00:04:47,150 --> 00:04:51,140 لكن إذا بدأنا بالقفز مباشرةً إلى خمسة، قد يمكنني الآن 93 00:04:51,140 --> 00:04:52,790 تبديل هذا الأصبع وهذا الأصبع لأعلى. 94 00:04:52,790 --> 00:04:56,120 وإذا أردت الآن أن أمثل ستة، يمكنني القيام بذلك. 95 00:04:56,120 --> 00:04:56,910 والآن سبعة. 96 00:04:56,910 --> 00:04:59,870 وبعبارة أخرى، لقد عبّرت عن العديد من الأنماط على يدي بالفعل 97 00:04:59,870 --> 00:05:01,910 وإذا استمررنا في القيام بذلك، أعتقد أنه يمكنني بالفعل 98 00:05:01,910 --> 00:05:06,740 أن أمثل ربما 32 نمطًا مختلفًا، وبالتالي 99 00:05:06,740 --> 00:05:09,380 32 شخصًا مختلفًا، على يدي فقط. 100 00:05:09,380 --> 00:05:11,690 أو 31 شخصًا إذا كنتُ أبدأ العد من الصفر. 101 00:05:11,690 --> 00:05:13,750 إذًا ما هذا-- ما هي العلاقة 102 00:05:13,750 --> 00:05:14,960 وكيف وصلنا حتى إلى هنا؟ 103 00:05:14,960 --> 00:05:17,810 حسنًا، اتضح أن أجهزة الكمبيوتر بسيطة نوعًا ما، 104 00:05:17,810 --> 00:05:19,400 بالضبط كما تبدو أيدينا هنا. 105 00:05:19,400 --> 00:05:21,940 في نهاية المطاف، يتم توصيل جهاز الكمبيوتر الخاص بك في الجدار 106 00:05:21,940 --> 00:05:24,980 أو يكون به بطارية، لذلك فإما أن يكون به كهرباء أو لا. 107 00:05:24,980 --> 00:05:27,140 وفي نهاية الأمر، فذلك هو المورد المادي 108 00:05:27,140 --> 00:05:30,030 الذي يحرك هذه الأشياء وهواتفنا وجميع التقنيات اليوم. 109 00:05:30,030 --> 00:05:33,650 لذا إذا كان الأمر إما هناك كهرباء أو لا، فهذا يوضح بسهولة 110 00:05:33,650 --> 00:05:35,810 فكرة وجود إصبع أو عدم وجوده. 111 00:05:35,810 --> 00:05:39,350 وبالفعل، فأجهزة الكمبيوتر، كما تعلمون تتكلم فقط أي لغة؟ 112 00:05:39,350 --> 00:05:40,980 أي أبجدية، إذا جاز التعبير؟ 113 00:05:40,980 --> 00:05:41,480 نعم. 114 00:05:41,480 --> 00:05:41,990 النظام الثنائي. 115 00:05:41,990 --> 00:05:42,890 Bi تعني اثنين. 116 00:05:42,890 --> 00:05:46,160 وبالفعل، يشير هذا إلى حقيقة أنه في النظام الثنائي في أجهزة الكمبيوتر، 117 00:05:46,160 --> 00:05:48,050 لديك فقط رقمان-- 118 00:05:48,050 --> 00:05:49,200 صفر وواحد. 119 00:05:49,200 --> 00:05:53,440 نحن البشر، بالطبع، لدينا 0، 1، 2، 3، 4، 5، 6، 7، 8، 9، 120 00:05:53,440 --> 00:05:55,570 ومن ثم يمكننا دمج هذه الأرقام للعد أكثر. 121 00:05:55,570 --> 00:05:57,950 لكن أجهزة الكمبيوتر لديها فقط 0، و1، وانتهى الأمر. 122 00:05:57,950 --> 00:05:59,910 لأنه في نهاية المطاف، هناك في الواقع 123 00:05:59,910 --> 00:06:04,290 اقتران مباشر بين إيقاف الطاقة وبين كونها صفرًا أو كونها قيد التشغيل 124 00:06:04,290 --> 00:06:07,770 وكونها واحدًا، أو بعض الإلكترونات أو أيًا كان ما يتدفق من البطارية 125 00:06:07,770 --> 00:06:08,980 أو من الجدار. 126 00:06:08,980 --> 00:06:12,240 ولهذا السبب تميل أجهزة الكمبيوتر إلى التحدث بالنظام الثنائي فقط، 127 00:06:12,240 --> 00:06:14,760 لأنها في نهاية المطاف، تقترن بطريقة بسيطة حقًا 128 00:06:14,760 --> 00:06:18,360 بما هي عليه، وبما يمدها بالطاقة في المقام الأول. 129 00:06:18,360 --> 00:06:19,920 ولكن كيف يكون هذا مفيدًا بالفعل؟ 130 00:06:19,920 --> 00:06:23,280 إذا كانت أجهزة الكمبيوتر تحتوي فقط على الأصفار والأحاد، فكيف يمكنها فعل أي شيء مفيد؟ 131 00:06:23,280 --> 00:06:28,030 حسنًا، فكر في عالمنا البشري، حيث قد يكون لديك هذا النمط من الرموز. 132 00:06:28,030 --> 00:06:31,050 هذا رقم عشري، عشري يعني 10 لأن لديك من 0 إلى 9. 133 00:06:31,050 --> 00:06:33,270 وهذا بالطبع، 123. 134 00:06:33,270 --> 00:06:33,960 لكن لماذا؟ 135 00:06:33,960 --> 00:06:36,330 إذا لم تكن قد فكرت في هذا بعض الوقت، 136 00:06:36,330 --> 00:06:40,200 هذا حقًا مجرد نمط من ثلاثة رموز، واحد واثنين وثلاثة أشكال، 137 00:06:40,200 --> 00:06:41,520 أو الرموز، على الشاشة. 138 00:06:41,520 --> 00:06:44,850 ولكن نحن البشر، منذ المدرسة الابتدائية، بدأنا ننسب معنىً 139 00:06:44,850 --> 00:06:46,310 لكل من هذه الأرقام، أليس كذلك؟ 140 00:06:46,310 --> 00:06:49,710 إذا فكرت مرة أخرى، فهذا عمود الأحاد، وهذا عمود العشرات، 141 00:06:49,710 --> 00:06:53,300 وهذا عمود المئات، وهكذا، ويمكننا الاستمرار. 142 00:06:53,300 --> 00:06:57,450 ولماذا هذا النمط-- واحد، اثنان، ثلاثة-- يعني 123؟ 143 00:06:57,450 --> 00:06:59,620 حسنًا، هذا لأن جميعنا بنوع من البديهة 144 00:06:59,620 --> 00:07:04,860 هذه الأيام نقوم بسرعة بحساب 100 ضرب 1 زائد 10 ضرب 145 00:07:04,860 --> 00:07:11,430 2 زائد 1 ضرب 3، والذي بالطبع يعطينا 100 زائد 20 زائد ثلاثة، 146 00:07:11,430 --> 00:07:15,210 لذا فنحن نعرف الرقم رياضيًا على النحو 123. 147 00:07:15,210 --> 00:07:18,510 لكننا جميعًا نفعل هذا بسرعة جدًا، فأنت لم تعد تفكر حقًا في هذا الموضوع. 148 00:07:18,510 --> 00:07:21,040 حسنًا، تعمل أجهزة الكمبيوتر بشكل أساسي بالطريقة نفسها. 149 00:07:21,040 --> 00:07:22,410 ليس لديهم الكثير من الأرقام-- 150 00:07:22,410 --> 00:07:24,030 من 0 إلى 9-- كما لدينا. 151 00:07:24,030 --> 00:07:26,080 لديهم فقط أصفار وأحاد. 152 00:07:26,080 --> 00:07:28,290 لذا إذا كانوا سيخزنون قيمًا، فأنت 153 00:07:28,290 --> 00:07:29,790 سترى فقط الأصفار والأحاد على الشاشة، 154 00:07:29,790 --> 00:07:31,950 ولكن تلك الأصفار والأحاد فقط تعني أشياءً مختلفةً. 155 00:07:31,950 --> 00:07:34,530 بدلاً من وجود مكان للأحاد، والعشرات، والمئات، 156 00:07:34,530 --> 00:07:39,210 فسيكو لديهم مكان للأحاد، ومكان للأثناء، ومكان للأربعاوات، 157 00:07:39,210 --> 00:07:41,410 ثم الثمانيات و 16 وما بعدها. 158 00:07:41,410 --> 00:07:42,060 الآن، لماذا؟ 159 00:07:42,060 --> 00:07:46,250 حسنًا، واحد و 10 و 100، يتضح أن هؤلاء من قوى الـ 10. 160 00:07:46,250 --> 00:07:48,580 10 بالنسبة إلى 0 هي تقنيًا 1. 161 00:07:48,580 --> 00:07:50,340 10 بالنسبة إلى 1 هي مجرد 10. 162 00:07:50,340 --> 00:07:51,750 10 بالنسبة إلى 2 هي 100. 163 00:07:51,750 --> 00:07:55,140 وهذا سبب أن لدينا أحاد، وعشرات ومئات، وآلاف، وهكذا. 164 00:07:55,140 --> 00:07:57,720 وعلى ما يبدو أن أجهزة الكمبيوتر تستخدم قوى الرقم 2. 165 00:07:57,720 --> 00:07:58,440 ليس من المستغرب. 166 00:07:58,440 --> 00:07:59,580 فثنائي-- تعني اثنين. 167 00:07:59,580 --> 00:08:04,410 لذا، إذا كان لديك فقط أحاد، وأثناء، وأربعاوات كعناصر نائبة، 168 00:08:04,410 --> 00:08:08,190 إذا كان الكمبيوتر يخزن هذه الأرقام-- 169 00:08:08,190 --> 00:08:12,990 0، 0، 0-- فهذا الكمبيوتر من المفترض أنه يخزن أي عدد حتى الآن حسب ما 170 00:08:12,990 --> 00:08:14,680 نفهم نحن البشر؟ 171 00:08:14,680 --> 00:08:16,560 حسنًا، هذه هي الكيفية التي يخزن بها الكمبيوتر الصفر. 172 00:08:16,560 --> 00:08:19,800 إذا كان الكمبيوتر حرفيًا يخزن 0، 0، 0، فقط 173 00:08:19,800 --> 00:08:22,590 كما هو الحال في عالمنا البشري، فهذا أيضًا 0، لكن هذا تقنيًا 174 00:08:22,590 --> 00:08:26,940 لأنه 4 ضرب 0 زائد 2 ضرب 0 زائد 1 ضرب صفر، يساوي بوضوح 175 00:08:26,940 --> 00:08:27,600 صفرًا. 176 00:08:27,600 --> 00:08:30,870 بينما إذا كان الكمبيوتر في الواقع لا يخزن فقط، 177 00:08:30,870 --> 00:08:35,790 لنقل، 0، 0، 0، ولكن بدلاً من ذلك يخزن هذه "القيمة" في نظام ثنائي، 178 00:08:35,790 --> 00:08:38,190 فبماذا يرتبط هذا في الأرقام العشرية؟ 179 00:08:38,190 --> 00:08:39,120 إذًا هذا واحد. 180 00:08:39,120 --> 00:08:46,640 والآن، لماذا، إذا قمنا بتغيير هذا الـ 0 والـ 1 إلى هذه "القيمة" هنا، يساوي اثنين؟ 181 00:08:46,640 --> 00:08:49,030 حسنًا، رياضيًا، للأسباب نفسها بالضبط. 182 00:08:49,030 --> 00:08:52,290 لذا في البداية، كان لدي خمسة أصابع، ولكن إذا كنت تنظر فقط إلى الثلاثة الأولى، 183 00:08:52,290 --> 00:08:56,310 عندما فعلت ذلك ورفعت إصبعًا واحدًا، وكنت أمثل اثنين. 184 00:08:56,310 --> 00:08:59,550 وإذا كنت أريد تمثيل ثلاثة، أذكر أنني رفعت الإصبع الثاني. 185 00:08:59,550 --> 00:09:02,760 ولهذا فإن سبب قيامي بتمثيل ثلاثة بشكل جيد 186 00:09:02,760 --> 00:09:07,110 هو أن كل ما كنت أفعله باستخدام يدي البشرية كان العد في نظام ثنائي. 187 00:09:07,110 --> 00:09:09,160 وكان يمكنني الاستمرار في العد أكثر وأكثر وأكثر. 188 00:09:09,160 --> 00:09:14,110 وهكذا إذا كان لدي خمسة أصابع أو خمسة وحدات بت، والبت يعني الأرقام الثنائية، 189 00:09:14,110 --> 00:09:16,200 فأستطيع أن أعد، كما يتضح، إذا حسبنا الأمر، 190 00:09:16,200 --> 00:09:19,200 ما يصل إلى 31 إذا بدأنا من الصفر. 191 00:09:19,200 --> 00:09:22,530 سيكون من الصعب القيام بهذا جسديًا، ولكننا استطعنا. 192 00:09:22,530 --> 00:09:24,280 إذًا لماذا هذا مفيد؟ 193 00:09:24,280 --> 00:09:26,150 في نهاية المطاف، يمكن للكمبيوتر، لذلك، 194 00:09:26,150 --> 00:09:30,750 أن يمثل أي عدد من "القيم" من 0 إلى 1 إلى 2 إلى 3 إلى بعض الأرقام، 195 00:09:30,750 --> 00:09:31,910 أكثر من ذلك بكثير للغاية. 196 00:09:31,910 --> 00:09:34,740 كل ما يحتاجه هو قدر كافٍ من وحدات البت، والأصفار والأحاد. 197 00:09:34,740 --> 00:09:35,940 حسنًا، ما هي وحدات البت تلك؟ 198 00:09:35,940 --> 00:09:40,050 حسنًا، على سبيل المثال، لدى كلٌ منا هذه الأيام مصادر ضوء في هواتفنا. 199 00:09:40,050 --> 00:09:43,050 لذا يمكنني أن أقول بالفعل أن هذا الجهاز الجسدي في الوقت الحالي-- 200 00:09:43,050 --> 00:09:44,490 قد يكون من الصعب عليه فعل هذا-- 201 00:09:44,490 --> 00:09:47,440 إنه يحتوي على الكشّاف وهو متوقف تقنيًا في الوقت الحالي. 202 00:09:47,440 --> 00:09:51,200 لكن إذا قمت بتشغيل هذا الكشّاف، وبالتالي استخدام بعض الكهرباء، 203 00:09:51,200 --> 00:09:52,860 الآن، أنا أُخزن واحدًا. 204 00:09:52,860 --> 00:09:53,940 وهكذا فإن الهاتف في وضع التشغيل. 205 00:09:53,940 --> 00:09:54,870 والآن، في وضع إيقاف التشغيل. 206 00:09:54,870 --> 00:09:55,620 الآن، في وضع التشغيل. 207 00:09:55,620 --> 00:09:56,600 وإذا رأيت-- 208 00:09:56,600 --> 00:09:58,270 هل يمكنني استعارة هاتف شخصٍ ما بسرعة؟ 209 00:09:58,270 --> 00:09:59,140 هل يمكنني؟ 210 00:09:59,140 --> 00:09:59,640 حسنًا. 211 00:09:59,640 --> 00:10:00,700 والكشّاف. 212 00:10:00,700 --> 00:10:02,560 كيف أقوم بتشغيل الكشّاف؟ 213 00:10:02,560 --> 00:10:03,060 أوه. 214 00:10:03,060 --> 00:10:03,560 يعمل بالهز. 215 00:10:06,900 --> 00:10:07,560 لا بأس. 216 00:10:07,560 --> 00:10:08,060 حسنًا. 217 00:10:08,060 --> 00:10:09,340 شكرًا لك. 218 00:10:09,340 --> 00:10:09,840 أوه. 219 00:10:09,840 --> 00:10:10,260 شكرًا لك. 220 00:10:10,260 --> 00:10:10,710 حسنًا. 221 00:10:10,710 --> 00:10:11,410 هذا رائع. 222 00:10:11,410 --> 00:10:13,560 الآن. يمكنني العد أكثر. 223 00:10:13,560 --> 00:10:17,790 الآن، هذا يمثل الرقم، ماذا لو كان لديّ مصباحان أو مفتاحان يعملان 224 00:10:17,790 --> 00:10:19,180 في الوقت الحالي؟ 225 00:10:19,180 --> 00:10:19,680 أجل. 226 00:10:19,680 --> 00:10:20,170 ثلاثة. 227 00:10:20,170 --> 00:10:22,050 لأن لدي واحدًا، لدي واحدًا، وأنا 228 00:10:22,050 --> 00:10:24,150 لدي اثنين، وهذا بالطبع سيصل في النهاية إلى ثلاثة. 229 00:10:24,150 --> 00:10:27,090 وإذا التقطت هاتفًا ثالثًا بطريقة ما، يمكن أن أعدّ أكثر من ذلك. 230 00:10:27,090 --> 00:10:29,570 من الناحية الفنية، إذا كان لدي ثلاثة مصابيح في وضع التشغيل-- 231 00:10:29,570 --> 00:10:32,350 واحد،وواحد، وواحد-- ماذا ستكون تلك القيمة؟ 232 00:10:32,350 --> 00:10:32,850 سبعة. 233 00:10:32,850 --> 00:10:36,010 لأنه أربعة زائد اثنين زائد واحد، وهكذا دواليك. 234 00:10:36,010 --> 00:10:38,020 شكرًا جزيلاً لعفويتك. 235 00:10:38,020 --> 00:10:42,780 لذا لماذا لم يؤدِ هذا إلى وضع حدودٍ لنا؟ 236 00:10:42,780 --> 00:10:45,120 يمكنني العد بأرقام عشرية بقدر ما أريد. 237 00:10:45,120 --> 00:10:48,540 يمكنني الآن العد في نظام ثنائي بقدر ما أريد، طالما لدي ما يكفي من الأجزاء. 238 00:10:48,540 --> 00:10:52,310 لكن كيف يمكنني في الواقع تمثيل معلوماتٍ أخرى؟ 239 00:10:52,310 --> 00:10:57,250 حسنًا، إذا كنت أريد أن أمثل شيئًا كحرف مثلاً، كيف أصل إلى هذا؟ 240 00:10:57,250 --> 00:11:01,540 إذا كانت أجهزة الكمبيوتر لديها كهرباء فقط وتستخدم النظام الثنائي للعد، 241 00:11:01,540 --> 00:11:04,300 ومع ذلك وبطريقة ما فإنها أكثر فائدة من مجرد إجراء الحسابات-- 242 00:11:04,300 --> 00:11:08,050 فيمكنهم الحصول على رسائل نصية ورسائل بريد إلكتروني ومواقع ويب ومقاطع فيديو وغير ذلك الكثير-- 243 00:11:08,050 --> 00:11:11,140 كيف يمكننا الانتقال من الأصفار والأحاد إلى الحروف؟ 244 00:11:11,140 --> 00:11:12,400 حسنًا، نحن-- أجل. 245 00:11:15,120 --> 00:11:15,620 معذرة. 246 00:11:15,620 --> 00:11:18,140 أعلى قليلاً. 247 00:11:18,140 --> 00:11:18,650 أجل. 248 00:11:18,650 --> 00:11:20,630 نحن بحاجة فقط إلى نوع من الربط بين الأرقام والحروف. 249 00:11:20,630 --> 00:11:23,510 وبعبارة أخرى، جميع الأشخاص في هذه الغرفة يحتاجون فقط إلى أن يقرروا في مرحلةٍ ما 250 00:11:23,510 --> 00:11:24,410 هذا، أتعلم ماذا؟ 251 00:11:24,410 --> 00:11:27,200 إذا أردنا أن نمثل شيئًا ما مثل الحرف الكبير A، 252 00:11:27,200 --> 00:11:29,180 نحتاج فقط أن نقرر نمط وحدات البت، 253 00:11:29,180 --> 00:11:31,730 نمط الأصابع، الذي سيمثل A. 254 00:11:31,730 --> 00:11:34,670 واتضح أن البشر منذ سنوات ومن طرف واحد 255 00:11:34,670 --> 00:11:39,840 قرروا جعل الرقم 65 الرقم العشري الذي يمثل الحرف الكبير A. 256 00:11:39,840 --> 00:11:43,700 وهل بإمكانك تخمين الرقم العشري الذي يمثل الحرف الكبير B؟ 257 00:11:43,700 --> 00:11:44,420 66. 258 00:11:44,420 --> 00:11:46,500 ومن ثم الحرف C يمثله 67 وهكذا دواليك. 259 00:11:46,500 --> 00:11:50,630 وهناك تخطيط لما يشبه 128 وحتى 256 من القيم المحتملة 260 00:11:50,630 --> 00:11:52,880 لجميع المفاتيح التي قد تراها على لوحة المفاتيح النموذجية 261 00:11:52,880 --> 00:11:54,680 لتمثيل الحروف. 262 00:11:54,680 --> 00:11:58,260 الآن، كيف يميز الكمبيوتر، بالرغم من ذلك، بين الأرقام والحروف؟ 263 00:11:58,260 --> 00:11:59,680 حسنًا، يعتمد فقط على السياق. 264 00:11:59,680 --> 00:12:01,880 إذا كنت تستخدم برامج مثل برنامج الآلة الحاسبة على Mac 265 00:12:01,880 --> 00:12:05,600 أو الكمبيوتر الشخصي أو iPhone أو Android، حسنًا، فإن الكمبيوتر، أو الجهاز، 266 00:12:05,600 --> 00:12:09,050 سيتعرف على السياق فقط، دعوني أفسر هذا النمط من الأصفار 267 00:12:09,050 --> 00:12:11,330 والأحاد كأرقام فعلية لإجراء الحسابات. 268 00:12:11,330 --> 00:12:14,880 ولكن إذا كنت تستخدم تطبيق الرسائل القصيرة SMS أو تطبيق الرسائل على هاتفك، 269 00:12:14,880 --> 00:12:17,060 ستكون في الواقع في سياق النص، 270 00:12:17,060 --> 00:12:20,380 ومن ثم سيقوم هاتفك بتفسير النمط نفس من الأصفار والأحاد، 271 00:12:20,380 --> 00:12:23,780 أو إيقاف تشغيل مصابيح الإضاءة، أو، في نهاية الأمر، الترانزستورات، 272 00:12:23,780 --> 00:12:27,450 القطع الصغير من الأجهزة وأجهزة الكمبيوتر التي إما تعمل أو لا تعمل-- 273 00:12:27,450 --> 00:12:30,470 ستفسر هذه الأنماط كما تمثل مجرد حرف. 274 00:12:30,470 --> 00:12:34,220 إذا كنت في سياق النص الخاص بتطبيق المراسلة أو برنامج Microsoft Word 275 00:12:34,220 --> 00:12:38,180 أو محرر مستندات Google أو ما شابه ذلك، يعتمد الأمر تمامًا على السياق. 276 00:12:38,180 --> 00:12:41,780 توصل البشر إلى نظام يُدعى أسكي ( ASCII)، الشفرة القياسية الأمريكية 277 00:12:41,780 --> 00:12:43,100 لتبادل المعلومات. 278 00:12:43,100 --> 00:12:46,760 الاسم ليس مثيرًا للاهتمام، لكن حقيقة أننا اتفقنا منذ سنوات 279 00:12:46,760 --> 00:12:50,210 أن الرقم 65 وما إلى ذلك هو الأمر المهم. 280 00:12:50,210 --> 00:12:52,800 وعلى سبيل المثال، إذا نظرنا إلى هذا التوضيح هنا 281 00:12:52,800 --> 00:12:56,340 الذي يمثل أول عدد قليل فقط من الحروف، ماذا يعني هذا؟ 282 00:12:56,340 --> 00:13:00,920 إذا كنت سأحصل على رسالة نصية الآن ولدي القدرة بطريقةٍ ما 283 00:13:00,920 --> 00:13:04,190 للنظر في أساسها، إذا جاز التعبير، على نمط الأصفار والآحاد 284 00:13:04,190 --> 00:13:06,890 التي كتبها شخصٌ لي، وهذا النمط، 285 00:13:06,890 --> 00:13:12,230 إذا قمت بتحويله إلى عشري، يقال من الناحية الفنية، دعنا نقل، 72 و 73-- 286 00:13:12,230 --> 00:13:13,970 حتى أحصل على مجموعة كاملة من الأصفار والأحاد. 287 00:13:13,970 --> 00:13:17,480 وقمت ببعض الحسابات وأدركت، حسنًا، لقد تلقيت للتو 72 و73، 288 00:13:17,480 --> 00:13:20,690 ولكنها رسائل نصية، وهكذا فهي ليست مجرد أرقام يرسلها لي صديقي. 289 00:13:20,690 --> 00:13:21,690 إنها رسالة. 290 00:13:21,690 --> 00:13:27,840 ما الذي سأفهمه من رسالة أرسلها صديقي إذا قام هو أو هي بإرسال 72 ومن ثم 73؟ 291 00:13:27,840 --> 00:13:28,370 نعم. 292 00:13:28,370 --> 00:13:28,860 مرحبًا. 293 00:13:28,860 --> 00:13:31,280 H-I. لأنه إذا قفزت إلى اليمين هنا، 294 00:13:31,280 --> 00:13:36,720 يصادف هذا أن يكون في خريطة أسكي (ASCII) بين 72 و73، H و I. 295 00:13:36,720 --> 00:13:40,240 من الناحية الفنية، إذا احتوت الرسالة على بايت ثالث، إذا صح التعبير. 296 00:13:40,240 --> 00:13:43,090 بايت، إذا تسائلت من قبل، فهو عبارة عن ثمانية أجزاء. 297 00:13:43,090 --> 00:13:45,260 من السهل عدم التحدث من حيث وحدات البت المفردة، 298 00:13:45,260 --> 00:13:48,440 حيث لا يمكنك العد بأرقامٍ كبيرة، لكن مع البايت، أو 8 وحدات بت، 299 00:13:48,440 --> 00:13:49,700 يمكنك العد أكثر. 300 00:13:49,700 --> 00:13:53,600 وهكذا يتضح أنه إذا تلقيت بايت ثالث، تسلسل آخر من ثمانية 301 00:13:53,600 --> 00:13:55,520 أصفار وأحاد معًا-- 302 00:13:55,520 --> 00:13:56,150 33. 303 00:13:56,150 --> 00:13:59,490 كيف نعرف مضمون هذه الرسالة الآن؟ 304 00:13:59,490 --> 00:13:59,990 نعم. 305 00:13:59,990 --> 00:14:01,640 وهكذا يتضح لك أنك لن تعرف هذا إلا 306 00:14:01,640 --> 00:14:04,430 من خلال التخمين أو البحث من خلال Google أو مجرد تعلم هذه المعرفة. 307 00:14:04,430 --> 00:14:05,360 هذه الآن "مرحبًا!" 308 00:14:05,360 --> 00:14:09,020 مع علامة تعجب لأن 33 ترمز إلى، إذا نظرت إلى التوضيح في الأعلى، 309 00:14:09,020 --> 00:14:12,180 علامة التعجب، أيضًا. 310 00:14:12,180 --> 00:14:14,360 الآن، إذا نظرنا بالفعل إلى النظام الثنائي لهذا، 311 00:14:14,360 --> 00:14:16,610 سنرى في الواقع هذا النمط من الأصفار والأحاد. 312 00:14:16,610 --> 00:14:18,920 هذه طريقة تمثيل 72 في النظام الثنائي. 313 00:14:18,920 --> 00:14:20,690 وهذه طريقة تمثيل 73. 314 00:14:20,690 --> 00:14:22,820 وهذه طريقة تمثيل 33. 315 00:14:22,820 --> 00:14:26,810 ولاحظ أني استخدمت واحدة، اثنتان، ثلاث، أربع، خمس، ست وحدات بت، 316 00:14:26,810 --> 00:14:30,200 على الرغم من أنه من الناحية الفنية نتلقى الأشياء في وحدات من 8، 317 00:14:30,200 --> 00:14:31,220 وحدات من البايت. 318 00:14:31,220 --> 00:14:37,770 لكن لماذا لم أزعج نفسي بكتابة 00 آخرين هنا و 0 آخر هنا؟ 319 00:14:37,770 --> 00:14:40,660 هل يختلف الوضع إذا كتبت هذه الأشياء؟ 320 00:14:40,660 --> 00:14:41,160 لا. 321 00:14:41,160 --> 00:14:41,670 ليس تمامًا. 322 00:14:41,670 --> 00:14:46,010 كما في اللغة الإنجليزية، في عالمنا البشري، إذا كنتَ تريد كتابة واحد، اثنان، ثلاثة، 323 00:14:46,010 --> 00:14:47,280 فهذه 123. 324 00:14:47,280 --> 00:14:50,850 إذا كنتَ تريد كتابة 0، 1، 2، 3، فلا تزال 123. 325 00:14:50,850 --> 00:14:53,670 لذلك و على الرغم من أننا نميل إلى وضعها في مجموعات من 8، 326 00:14:53,670 --> 00:14:56,660 لا نحتاج بالضرورة إلى كتابة الثمانية عندما نتحدث عنهم فقط. 327 00:14:56,660 --> 00:14:57,540 إذًا ماذا فعلنا؟ 328 00:14:57,540 --> 00:15:00,160 حسناً، دعوني أعرض كلمة أفضل تُعرف الآن باسم التجريد. 329 00:15:00,160 --> 00:15:03,480 التجريد هو مجرد مصطلح عام يُستخدم في علوم الكمبيوتر وسنقوم قريبًا 330 00:15:03,480 --> 00:15:07,530 برؤيته في البرمجة لأخذ بعض المستويات المنخفضة-- حرفيًا مستوى منخفض-- 331 00:15:07,530 --> 00:15:11,700 من تفاصيل التنفيذ، حتى التفاصيل الدقيقة، وفهمها 332 00:15:11,700 --> 00:15:15,450 في مرحلةٍ ما، ولكن تحديد ذلك ليس مفيدًا من الناحية النظرية 333 00:15:15,450 --> 00:15:16,750 للتفكير في المشكلات. 334 00:15:16,750 --> 00:15:20,280 أنا حقًا لا أريد حل المشاكل في هذا العالم من ناحية التفكير في 0 و1. 335 00:15:20,280 --> 00:15:23,910 أفضل التفكير في هذه الأشياء من الناحية العشرية على الأقل، أو أفضل من ذلك حتى، 336 00:15:23,910 --> 00:15:26,640 في سياق الحروف إذا كنت أتلقى نصًا بالفعل، أو حتى 337 00:15:26,640 --> 00:15:28,110 بعض طرق التمثيل الآخرى. 338 00:15:28,110 --> 00:15:32,040 وبهذا يدور التجريد حول التفاصيل منخفضة المستوى نوعًا ما 339 00:15:32,040 --> 00:15:35,980 وتبسيطها فقط حتى نتمكن من إجراء محادثة أكثر فائدة 340 00:15:35,980 --> 00:15:39,300 وألا نقلق مجددًا بشأن مصدر الكهرباء. 341 00:15:39,300 --> 00:15:42,730 يمكننا الاشتراط فقط على الكمبيوتر الخاص بي بتمثيل الأصفار والأحاد. 342 00:15:42,730 --> 00:15:44,230 لذلك، يمكنه تمثيل الأرقام. 343 00:15:44,230 --> 00:15:47,010 لذلك، يمكن أيضًا أن يمثل أسكي (ASCII) أو الحروف. 344 00:15:47,010 --> 00:15:50,850 ويمكننا المضي قدمًا وبدء حل مشاكل أكثر إثارة للاهتمام. 345 00:15:50,850 --> 00:15:56,700 ولكن يبدو أننا لا نستطيع حل جميع المشاكل لأن في لوحة المفاتيح لدي 346 00:15:56,700 --> 00:16:00,300 هنا، لوحة المفاتيح الأمريكية هذه، هناك مجموعة كاملة من الرموز، 347 00:16:00,300 --> 00:16:03,810 تقريبًا 100 أو 200 ربما على وجه الإجمال إذا ضغطنا فوق مفتاح shift وoption وجميع 348 00:16:03,810 --> 00:16:04,560 ذلك. 349 00:16:04,560 --> 00:16:07,170 لكن ما لاتراه هو بعض الحروف الشائعة جدًا. 350 00:16:07,170 --> 00:16:09,010 على وجه الخصوص بالنسبة للجمهور الدولي، 351 00:16:09,010 --> 00:16:12,490 ما الذي لا يمكننا إلى حدٍ ما كتابته على لوحة المفاتيح هذه؟ 352 00:16:12,490 --> 00:16:13,410 أي أنواع الرموز؟ 353 00:16:13,410 --> 00:16:15,000 حسنًا. 354 00:16:15,000 --> 00:16:16,190 أي شيء بشكلة. 355 00:16:16,190 --> 00:16:18,240 إذا كانت لديك شكلات فوق الحروف المتحركة أو حروف أخرى. 356 00:16:18,240 --> 00:16:19,740 ماذا أيضًا؟ 357 00:16:19,740 --> 00:16:20,810 معذرةً. 358 00:16:20,810 --> 00:16:22,560 علامات تغيير الصوت أو علامات أخرى فوق الحروف. 359 00:16:22,560 --> 00:16:23,060 أجل. 360 00:16:25,200 --> 00:16:26,170 مثل رمز الشباك؟ 361 00:16:26,170 --> 00:16:26,670 أوه. 362 00:16:26,670 --> 00:16:27,710 مثل رمز الجنيه البريطاني. 363 00:16:27,710 --> 00:16:28,210 بالتأكيد. 364 00:16:28,210 --> 00:16:29,340 وبلدان أخرى، أيضًا. 365 00:16:29,340 --> 00:16:30,790 أي عدد من اللغات الآسيوية. 366 00:16:30,790 --> 00:16:33,410 هناك الكثير من الرموز التي لم يتم تصويرها على لوحة المفاتيح هذه، 367 00:16:33,410 --> 00:16:36,630 ومع ذلك وبطريقةٍ ما، يمكننا جميعًا بكل تأكيد التعبير عن أنفسنا باستخدام 368 00:16:36,630 --> 00:16:38,410 لوحات المفاتيح أو الهواتف الدولية. 369 00:16:38,410 --> 00:16:42,180 لكن هذا لأن الهواتف وأجهزة الكمبيوتر هذه الأيام لا تستخدم فقط نظام أسكي (ASCII). 370 00:16:42,180 --> 00:16:45,030 يستخدم نظام أسكي (ASCII) فقط ثماني وحدات بت في المجمل. 371 00:16:45,030 --> 00:16:47,290 من الناحية الفنية سبعة، ولكن بعد ذلك، في نهاية المطاف، ثمانية حقًا. 372 00:16:47,290 --> 00:16:49,380 ومع ثماني وحدات بت، إذا كنت بالفعل تجري الحسابات-- 373 00:16:49,380 --> 00:16:51,750 إذا كان لديك ثماني وحدات بت أو ثمانية أصابع، يمكنك 374 00:16:51,750 --> 00:16:56,130 تبديلهم فقط 256 مرة بطريقةٍ محتملة تمامًا، أي 375 00:16:56,130 --> 00:17:01,620 أنه يمكنك فقط تمثيل 256 حرفًا باستخدام نظام ASCII مع الأرقام 376 00:17:01,620 --> 00:17:03,930 غير الظاهرة، وهذا ليس كافيًا لتمثيل 377 00:17:03,930 --> 00:17:06,220 العديد من الرموز المختلفة مثل تلك المذكورة هنا. 378 00:17:06,220 --> 00:17:08,850 لا يمكنك تمثيل أيٍ من الشكلات التي يمكنك وبالرغم من ذلك 379 00:17:08,850 --> 00:17:11,400 كتابتها على أجهزة Mac وأجهزة الكمبيوتر لديك وبالتأكيد 380 00:17:11,400 --> 00:17:13,740 لا يمكنك كتابة هذه الأشياء، الرائجة إلى حدٍ كبير جدًا. 381 00:17:13,740 --> 00:17:17,520 على الرغم من أنها صور، فهي في الواقع مجرد حروف. 382 00:17:17,520 --> 00:17:22,020 لأنه اتضح منذ بضع سنوات، أن العالم قرر أن ثماني وحدات بت ليست كافية. 383 00:17:22,020 --> 00:17:25,020 لنبدأ باستخدام شيء ما يسمى اليونيكود (Unicode)، حيث تستخدم بالفعل 384 00:17:25,020 --> 00:17:28,200 واحدة أو اثنتين أو ثلاث أو حتى أربع وحدات بايت. 385 00:17:28,200 --> 00:17:33,450 لذلك ثماني وحدات بت، أو 16 بت، أو 24 بت، أو حتى 32 بت لتمثيل الحروف. 386 00:17:33,450 --> 00:17:35,940 والآن، لدينا القدرة لتمثيل آلاف أو حتى 387 00:17:35,940 --> 00:17:37,440 ملايين الحروف. 388 00:17:37,440 --> 00:17:42,540 وبصراحة، أظن، النتيجة من هذا الكم الهائل من التوافر 389 00:17:42,540 --> 00:17:45,340 هو جزئيًا سبب وجود هذا العدد الكبير من هذه الأشياء الآن. 390 00:17:45,340 --> 00:17:48,540 وهم يواصلون صنع المزيد لأن هناك الكثير جدًا من الأرقام المختلفة 391 00:17:48,540 --> 00:17:49,320 المتاحة لنا. 392 00:17:49,320 --> 00:17:52,950 لذلك يكون Unicode في الغالب إصدارًا محددًا منه يسمى UTF-8، 393 00:17:52,950 --> 00:17:54,210 والتي سنراها قريبًا. 394 00:17:54,210 --> 00:17:56,060 لكن دعوني أطرح هذا السؤال هنا. 395 00:17:56,060 --> 00:18:01,710 هذا وجه يبكي بفرح، أعتقد أنه هكذا يسمى. 396 00:18:01,710 --> 00:18:03,830 إذًا كما يتضح، وفقا لـ Apple أو iOS، 397 00:18:03,830 --> 00:18:06,420 فإن هذا هو الرمز التعبيري الأكثر شعبية والذي يرسله على الأقل مستخدمو 398 00:18:06,420 --> 00:18:07,710 هاتف iPhone، لبعضهم البعض. 399 00:18:07,710 --> 00:18:10,710 إذن عندما تتلقى هذا، رغم ذلك، إذا كان يمكن أن نشعر حقًا بالمرح 400 00:18:10,710 --> 00:18:14,860 من هذا، فما هو نمط وحدات البت الذي تتلقاه فعليًا من صديقك؟ 401 00:18:14,860 --> 00:18:17,580 إنه يحاول أو إنها تحاول بوضوح التعبير عن بعض المشاعر، 402 00:18:17,580 --> 00:18:24,030 ولكن في الحقيقة، ما يرسله صديقك إليك-- هو الرقم العشري 128514. 403 00:18:24,030 --> 00:18:26,670 أو حقيقةً، إذا نظرت إلى الأصفار والآحاد القادمة 404 00:18:26,670 --> 00:18:29,220 إليك عبر الإنترنت أو موجات الأثير، فأنت 405 00:18:29,220 --> 00:18:33,540 تحصل على هذا النمط من الأصفار والآحاد، والذي يكون مرحًا بالكاد أو 406 00:18:33,540 --> 00:18:36,060 وصفيًا بالكاد، ولكن كل ما يفعله هاتفك أو جهاز الكمبيوتر لديك 407 00:18:36,060 --> 00:18:38,040 هو رؤية هذا النمط من وحدات البت، 408 00:18:38,040 --> 00:18:40,530 والبحث عنه في ما يشبه ورقة غش صغيرة، وقول، أوه. 409 00:18:40,530 --> 00:18:44,220 وقتما رأيتُ هذا النمط من وحدات البت في سياق نص مثل المراسلة النصية، 410 00:18:44,220 --> 00:18:47,490 فينبغي عليّ في الواقع عرضه على شكل تلك الصورة. 411 00:18:47,490 --> 00:18:50,550 الآن، تلك الصورة تحتوي على الكثير من الألوان الصفراء وغيرها 412 00:18:50,550 --> 00:18:53,050 فيها، ولكن كيف وصلنا إلى هذه النتيجة؟ 413 00:18:53,050 --> 00:18:55,410 حسنًا، يتضح أن هذا النمط نفسه من الأرقام-- 414 00:18:55,410 --> 00:19:00,040 72، 73، 33--والذي للتأكد فقط، منذ لحظة واحدة، ماذا كان يعني؟ 415 00:19:00,040 --> 00:19:00,540 مرحبًا. 416 00:19:00,540 --> 00:19:04,650 في سياق برنامج نصي مثل Microsoft Word، ومستندات Google، والرسائل النصية، 417 00:19:04,650 --> 00:19:05,940 هذا يعني مرحبًا. 418 00:19:05,940 --> 00:19:09,900 لكن ماذا لو رأيت هذا النمط من وحدات البت نفسه-- 419 00:19:09,900 --> 00:19:11,820 ومجددًا، قد يمكننا رسم الأصفار والأحاد، 420 00:19:11,820 --> 00:19:13,820 لكن هذا لم يعد مثيرًا للاهتمام، لذا سنقوم 421 00:19:13,820 --> 00:19:15,540 بتثبيته على المستوى العشري. 422 00:19:15,540 --> 00:19:17,450 إذا حصلت على هذا النمط من الأصفار والأحاد نفسه 423 00:19:17,450 --> 00:19:21,060 أو أرقام في سياق مثل برنامج الفوتوشوب أو المتصفح 424 00:19:21,060 --> 00:19:24,900 أو نوعٍ ما من برامج الصور، حسنًا، قد يكون هذا منطقيًا 425 00:19:24,900 --> 00:19:28,660 إن تم تفسيره ليس كنص، ولكن كصور، كنوع من الألوان. 426 00:19:28,660 --> 00:19:31,120 حسنًا، يتضح أن هناك نظامًا آخر في العالم-- 427 00:19:31,120 --> 00:19:32,820 ربما قد تكون رأيت هذا الاختصار من قبل-- 428 00:19:32,820 --> 00:19:35,560 والذي يُدعى (RGB)-- أحمر، أخضر، أزرق. 429 00:19:35,560 --> 00:19:38,980 وهذه مجرد طريقة وحدها البشر منذ 430 00:19:38,980 --> 00:19:39,940 سنواتٍ مضت أتعلم ماذا؟ 431 00:19:39,940 --> 00:19:42,910 إذا أردنا أن نمثل نقطة على شاشة شخصٍ ما، بما يعرف باسم 432 00:19:42,910 --> 00:19:44,950 وحدة البكسل، وهي مربع صغير على شاشة 433 00:19:44,950 --> 00:19:47,880 الهاتف، أو الكمبيوتر المحمول، أو حتى التلفزيون الآن، 434 00:19:47,880 --> 00:19:49,900 سنستخدم ثلاث وحدات بايت-- 435 00:19:49,900 --> 00:19:54,010 وحدة بايت لتحديد مقدار الأحمر الذي يجب أن يكون في ذلك البكسل المحدد، 436 00:19:54,010 --> 00:19:57,940 وبايت آخر لتحديد مقدار الأخضر الذي يجب أن يتم دمجه مع الأحمر لتشكيل 437 00:19:57,940 --> 00:20:00,400 هذا البكسل، ومن ثم بايت آخر، بايت ثالث، 438 00:20:00,400 --> 00:20:03,550 لتمثيل مقدار اللون الأزرق الذي سيدمج مع هذين اللونين الآخرين 439 00:20:03,550 --> 00:20:05,620 لصنع لون جديد معًا. 440 00:20:05,620 --> 00:20:09,230 لذلك هو نوع من دمج الدهانات، ما عدا في هذه الحالة، 441 00:20:09,230 --> 00:20:13,810 فإنه في الواقع موجات ضوء للحصول على لون معين باستخدام فقط 442 00:20:13,810 --> 00:20:16,510 الأحمر، والأخضر، والأزرق كلوحة ألوان. 443 00:20:16,510 --> 00:20:20,180 ولذا إذا رأينا هذا النمط الأحمر، والأخضر، والأزرق وقلنا، 444 00:20:20,180 --> 00:20:20,770 أتعلم ماذا؟ 445 00:20:20,770 --> 00:20:25,780 أعطني 72 من الأحمر، و73 من الأخضر، و33 من الأزرق. 446 00:20:25,780 --> 00:20:30,490 إذا كان إجمالي المدى الممكن كما ألمحت سابقًا هو مثلاً 0 من إلى 256، 447 00:20:30,490 --> 00:20:35,770 أو فنيًا من 0 إلى 255 إذا بدأت العد في علوم الكمبيوتر من الصفر، 448 00:20:35,770 --> 00:20:38,590 هذا تقريبًا كمية متوسطة من الأحمر، وكمية متوسطة من الأخضر، 449 00:20:38,590 --> 00:20:42,140 والقليل من اللون الأزرق، إذا كان النطاق يتراوح من 0 إلى 255. 450 00:20:42,140 --> 00:20:44,100 لذلك إذا قمت بدمج هؤلاء الثلاثة معًا 451 00:20:44,100 --> 00:20:46,790 وتريد أن تعرف ما اللون الذي ستحصل عليه-- 452 00:20:46,790 --> 00:20:47,770 حسنًا. 453 00:20:47,770 --> 00:20:50,840 فالنتيجة هي نوع من الأصفر الفاتح الذي يشبه هذا. 454 00:20:50,840 --> 00:20:54,360 لذلك إذا كان الكمبيوتر يخزّن نقطة واحدة على الشاشة 455 00:20:54,360 --> 00:20:57,720 والتي تصادف أن تكون باللون الأصفر، فما يخزنه الكمبيوتر بالفعل 456 00:20:57,720 --> 00:21:00,640 ليس هذه النقطة بصورةٍ مادية، لكنه نمط من ثلاث 457 00:21:00,640 --> 00:21:03,600 وحدات بايت-- مقدار اللون الأحمر، والأخضر، والأزرق الذي يجب أن يعرضه 458 00:21:03,600 --> 00:21:05,560 الكمبيوتر في هذه النقطة بالذات. 459 00:21:05,560 --> 00:21:10,230 لذلك إذا نظرنا إلى هذا الوجه الذي يبكي من الفرح وقمنا بتعزيزه أو تكبيره 460 00:21:10,230 --> 00:21:14,320 هنا، يمكنك في الواقع رؤية أنه يبدأ في التقطّع، إذا جاز التعبير، 461 00:21:14,320 --> 00:21:15,660 حيث بإمكانك رؤية النقاط. 462 00:21:15,660 --> 00:21:17,970 إذا قمت بتكبيره أكثر، الآن يمكنك حقًا 463 00:21:17,970 --> 00:21:20,170 رؤية النقاط على الشاشة. 464 00:21:20,170 --> 00:21:22,230 وإذا قمت بتكبيره أكثر من هذا، يمكنك في الواقع 465 00:21:22,230 --> 00:21:26,250 رؤية المربعات الصغيرة جدًا التي تشكل هذه الصورة، ومعظمها 466 00:21:26,250 --> 00:21:29,430 على مستوى التكبير تعتبر صفراء، ولكن مجموعة منها سوداء، 467 00:21:29,430 --> 00:21:33,310 ومجموعة منها ذات لون أسود فاتح أو أصفر داكن. 468 00:21:33,310 --> 00:21:35,790 وهذا ما يُشكل هذه الصورة في نهاية المطاف. 469 00:21:35,790 --> 00:21:39,990 هذا يعني أنه إذا كنت تعد كل وحدات البكسل الموجودة على الشاشة 470 00:21:39,990 --> 00:21:43,260 ثم تضربها في وحدة بايت واحدة، أو اثنتين، أو ثلاث، أي 471 00:21:43,260 --> 00:21:46,950 كم عدد وحدات البايت أو الكيلوبايت أو الميغابايت، إذا كنتَ قد سمعتَ عن تلك المصطلحات، 472 00:21:46,950 --> 00:21:51,670 الذي سيتم تخزينه على جهاز الكمبيوتر الخاص بك فقط لتمثيل صورة. 473 00:21:51,670 --> 00:21:56,130 إذًا انتقلنا من الكهرباء إلى الأسفل هنا، إذا جاز التعبير، إلى الأصفار والأحاد، 474 00:21:56,130 --> 00:21:58,050 إلى الأرقام العشرية، والآن إلى الألوان. 475 00:21:58,050 --> 00:22:00,300 حسنًا، مع الألوان، يمكنك الحصول على صور. 476 00:22:00,300 --> 00:22:01,540 ما الذي يأتي بعد الصور؟ 477 00:22:01,540 --> 00:22:05,280 حسنًا، شاهدنا جميعًا مقاطع فيديو أو أفلام رقمية بالتأكيد هذه الأيام. 478 00:22:05,280 --> 00:22:07,530 حسنًا، ما هو الفيلم أو ملف الفيديو؟ 479 00:22:07,530 --> 00:22:09,220 كيف يمكن تنفيذ ذلك؟ 480 00:22:11,770 --> 00:22:13,380 قلها بصوتٍ أعلى قليلاً. 481 00:22:13,380 --> 00:22:13,880 أجل. 482 00:22:13,880 --> 00:22:15,120 هو مجموعة من الصور. 483 00:22:15,120 --> 00:22:16,910 إذا كنت قد سمعت من قبل عن الإطارات في الثانية-- 484 00:22:16,910 --> 00:22:20,750 مثل الأفلام تتكون من 24 لقطة في الثانية أو 30 لقطة في الثانية-- 485 00:22:20,750 --> 00:22:23,510 هذا يعني أن الفيلم العادي، كل ثانية 486 00:22:23,510 --> 00:22:26,810 يعرض لك 24 أو 30 صورة في الثانية 487 00:22:26,810 --> 00:22:29,240 وهم يمرون بسرعة لدرجة أنك بالفعل 488 00:22:29,240 --> 00:22:31,970 لا تلاحظ أنك تشاهد تسلسلاً من الصور الثابتة. 489 00:22:31,970 --> 00:22:35,270 إنه يشبه الطفل في هذا، إذا كان لديك في وقتٍ ما الكتب الورقية تلك حيث يوجد 490 00:22:35,270 --> 00:22:38,060 العديد من الرسومات، وأثناء التنقل عبر الصفحات، 491 00:22:38,060 --> 00:22:40,770 ترى الأشياء تتحرك، ولكن هذا فقط لأن عينيك 492 00:22:40,770 --> 00:22:45,230 ترى لقطات صغيرة بسرعة لشيء يتحرك على الورق. 493 00:22:45,230 --> 00:22:47,010 هذه هي حقيقة ملف الفيديو في الواقع. 494 00:22:47,010 --> 00:22:49,850 لذا إذا كان لديك جهاز iPhone وكنت قد سبق ولعبت بهذه الرموز المتحركة، 495 00:22:49,850 --> 00:22:53,180 إذا جاز التعبير، حسنًا، كل هؤلاء هم ملفات فيديو صغيرة 496 00:22:53,180 --> 00:22:55,700 تتألف من الكثير والكثير والكثير من الصور 497 00:22:55,700 --> 00:23:00,060 التي قمت بحفظها على هاتفك أو قمت بإرسالها إلى شخص آخر. 498 00:23:00,060 --> 00:23:03,150 وإذا كنّا نفكر فقط، أننا الآن عند نقطة الفيديو، ولكن هذا جيد. 499 00:23:03,150 --> 00:23:04,700 فالفيديو عبارة عن مجموعة من الصور. 500 00:23:04,700 --> 00:23:06,380 والصور عبارة عن مجموعة من الألوان. 501 00:23:06,380 --> 00:23:07,940 والألوان عبارة عن أنماط من وحدات البت. 502 00:23:07,940 --> 00:23:09,650 ووحدات البت، في نهاية الأمر، هي فقط 503 00:23:09,650 --> 00:23:12,800 نتاج الكهرباء التي تدخل إلى جهازي أو الترانزستورات 504 00:23:12,800 --> 00:23:14,570 التي تقوم بالتشغيل وإيقاف التشغيل. 505 00:23:14,570 --> 00:23:18,170 تقريبًا، يجب علينا جميعًا استيعاب الأمر بأكمله، لكن لا أحد منا 506 00:23:18,170 --> 00:23:21,710 أبدًا سيحتاج حقًا إلى التفكير بشأن النظام الثنائي في سياق مقاطع الفيديو 507 00:23:21,710 --> 00:23:25,400 لأن مقطع الفيديو هو فقط عبارة عن تجريد أعلى مجموعة من الصور، 508 00:23:25,400 --> 00:23:29,430 والصور هي فقط عبارة عن تجريد أعلى مجموعة من البيكسلات، وهكذا. 509 00:23:29,430 --> 00:23:31,550 لذا يمكننا الاستمرار في رسم هذا التسلسل الهرمي الذي 510 00:23:31,550 --> 00:23:34,010 يسمح لنا فقط بالتحدث عن الأشياء على مستوى أكثر فائدة، 511 00:23:34,010 --> 00:23:35,930 والسبب في إجراء هذه المحادثة هو 512 00:23:35,930 --> 00:23:38,480 فقط لأننا كنا بحاجة إلى طريقة لتمثيل 513 00:23:38,480 --> 00:23:41,440 المدخلات والمخرجات للمشاكل. 514 00:23:41,440 --> 00:23:46,400 اسمحوا لي أن أتوقف ثانية فقط لمعرفة ما إذا كان هناك أي أسئلة. 515 00:23:46,400 --> 00:23:48,830 أي شيء على الإطلاق؟ 516 00:23:48,830 --> 00:23:49,460 لا؟ 517 00:23:49,460 --> 00:23:49,960 حسنًا. 518 00:23:49,960 --> 00:23:52,480 إذًا، ما الذي يوجد داخل هذا الصندوق الأسود؟ 519 00:23:52,480 --> 00:23:56,080 حسنًا، تبين أن هذا هو المكان حيث يبدأ العمل المثير للاهتمام حقًا 520 00:23:56,080 --> 00:23:58,100 في الحدوث ويبدأ الفكر في الظهور. 521 00:23:58,100 --> 00:24:01,810 هذه هي الخوارزميات المشهورة، الإرشادات خطوة بخطوة 522 00:24:01,810 --> 00:24:03,160 لحل بعض المشاكل. 523 00:24:03,160 --> 00:24:05,410 وقد يكون البعض منكم قد حل هذه المشكلة من قبل، 524 00:24:05,410 --> 00:24:07,480 إما رقميًا أو نصيًا، ولكن بالطبع، 525 00:24:07,480 --> 00:24:09,770 إذا كان لديكم جهات اتصال في هواتفكم هذه الأيام 526 00:24:09,770 --> 00:24:11,650 ولديكم مجموعة من الأصدقاء والعائلة، 527 00:24:11,650 --> 00:24:14,040 فالاحتمالات هي أن يتم ترتيبهم أبجديًا حسب الاسم الأول أو الأخير. 528 00:24:14,040 --> 00:24:16,540 ولديكم الإكمال التلقائي هذه الأيام، لكن في الحقيقة إنها مجرد 529 00:24:16,540 --> 00:24:18,300 قائمة طويلة من الأسماء والأرقام. 530 00:24:18,300 --> 00:24:20,890 وهذا ليس كل ما يختلف عن تنفيذ السنة الماضية 531 00:24:20,890 --> 00:24:24,640 للمشكلة نفسها، والتي كانت أن هذا الشيء هنا، دليل الهاتف. 532 00:24:24,640 --> 00:24:28,120 الآن، قد يشتمل دليل الهاتف هذا على صديق لنا فيه، ولنقل محمد محمود 533 00:24:28,120 --> 00:24:30,490 والذي يبدأ اسمه الأخير بحرف م وبإمكاني، بالطبع، 534 00:24:30,490 --> 00:24:32,800 إذا جربت العثور على محمد محمود أن أبدأ بالبحث 535 00:24:32,800 --> 00:24:37,780 في الصفحة الأولى، الصفحة الثانية، الصفحة الثالثة، الصفحة الرابعة 536 00:24:37,780 --> 00:24:39,790 وفي النهاية، على أمل العثور على محمد محمود. 537 00:24:39,790 --> 00:24:42,640 في الواقع، هل هذه الخوارزمية، هذه العملية التي تجري خطوة بخطوة، 538 00:24:42,640 --> 00:24:45,710 صحيحة للعثور على شخص ما مثل محمد محمود؟ 539 00:24:45,710 --> 00:24:46,210 نعم. 540 00:24:46,210 --> 00:24:46,940 إنها صحيحة. 541 00:24:46,940 --> 00:24:48,970 إنها غبية وبطيئة ربما لأنها 542 00:24:48,970 --> 00:24:51,430 ستأخذ باستمرار في دليل هاتف بهذا الحجم، 543 00:24:51,430 --> 00:24:54,390 لكنها صحيحة لأنه إذا كان محمد هنا، ففي الواقع، سأعثر عليه. 544 00:24:54,390 --> 00:24:55,520 لكن يمكنني القيام بذلك بشكل أفضل. 545 00:24:55,520 --> 00:24:57,140 يمكنني القيام بقلب صفحتين في كل مرة. 546 00:24:57,140 --> 00:25:00,880 إذًا، اثنتان، أربع، ست، ثماني، 10--أو بشكل غير كامل-- 547 00:25:00,880 --> 00:25:02,560 10 و12 و14. 548 00:25:02,560 --> 00:25:04,450 هل هذا أسرع؟ 549 00:25:04,450 --> 00:25:06,640 من الواضح، أنها تسير بسرعة مضاعفة. 550 00:25:06,640 --> 00:25:08,470 هل هذا صحيح؟ 551 00:25:08,470 --> 00:25:08,970 لا. 552 00:25:08,970 --> 00:25:10,640 لماذا هو غير صحيح؟ 553 00:25:10,640 --> 00:25:11,140 نعم. 554 00:25:11,140 --> 00:25:12,260 قد أفوته، أليس كذلك؟ 555 00:25:12,260 --> 00:25:15,560 وفي النهاية، قد يصبح محمد محصورًا الآن بين صفحتين بدون قصد 556 00:25:15,560 --> 00:25:18,380 وأحظى بتجربة سيئة الحظ فقط لمجرد تفويته. 557 00:25:18,380 --> 00:25:19,430 الآن، هل هذا قابل للإصلاح؟ 558 00:25:19,430 --> 00:25:20,030 نعم. 559 00:25:20,030 --> 00:25:24,440 ربما يمكنني، على سبيل المثال بمجرد أن أصل إلى قسم ين أو و-- 560 00:25:24,440 --> 00:25:26,690 يمكنني أن أقول فقط، من الواضح، أنني قد ذهبت بعيدًا جدًا عن محمد. 561 00:25:26,690 --> 00:25:28,830 اسمحوا لي بالعودة صفحة واحدة أو مجرد بضع صفحات. 562 00:25:28,830 --> 00:25:30,030 إذًا، هذا قابل للإصلاح. 563 00:25:30,030 --> 00:25:33,380 وما دمت قد وفرت الوقت، من خلال تصفح هذا مرتين أسرع، 564 00:25:33,380 --> 00:25:37,310 هل يمكنني على الأقل تحمل بذل بضع خطوات إضافية في النهاية فقط 565 00:25:37,310 --> 00:25:38,420 للعثور على محمد محمود؟ 566 00:25:38,420 --> 00:25:39,920 ولكن لا أحدًا منّا سيفعل ذلك. 567 00:25:39,920 --> 00:25:42,440 وأجهزة أندرويد وأبل لدينا بالتأكيد 568 00:25:42,440 --> 00:25:44,330 لن تفعل ذلك من أجل الكفاءة اليوم. 569 00:25:44,330 --> 00:25:48,210 الاحتمالات هي أن معظمنا سيفعل ما يجعلنا نعثر على شخص ما في أي كتاب مثل هذا؟ 570 00:25:48,210 --> 00:25:48,710 نعم. 571 00:25:48,710 --> 00:25:51,740 قم بالفتح نحو المنتصف تقريبًا أو ربما نميل نحو النهاية 572 00:25:51,740 --> 00:25:53,090 لأن م بعد المنتصف. 573 00:25:53,090 --> 00:25:55,340 لكن تعلم، أنا هنا في منتصف دليل الهاتف. 574 00:25:55,340 --> 00:25:58,730 والآن، إذا كنت أعلم أن محمدًا موجودًا في قسم م وبالتالي فهو هنا، 575 00:25:58,730 --> 00:26:01,260 فأين أعرف أنه ليس موجودًا؟ 576 00:26:01,260 --> 00:26:03,200 ليس موجودًا في البداية ويمكنني حرفيًا 577 00:26:03,200 --> 00:26:07,670 تمزيق مشكلة مثل هذه إلى نصفين، وإلقاء بشكل مجازي وحرفي نصف 578 00:26:07,670 --> 00:26:11,540 المشكلة بعيدًا، والبقاء بشكل أساسي مع المشكلة نفسها، 579 00:26:11,540 --> 00:26:12,470 لكن النصف كبير. 580 00:26:12,470 --> 00:26:13,670 لقد انتقلت من--أيًا كان-- 581 00:26:13,670 --> 00:26:17,300 1000 صفحة إلى 500 صفحة، ويمكنني الآن تكرار هذه الخوارزمية. 582 00:26:17,300 --> 00:26:18,160 أنظر إلى الكتاب. 583 00:26:18,160 --> 00:26:19,120 أنا بعيد نوعًا ما. 584 00:26:19,120 --> 00:26:20,450 أنا في قسم ش الآن. 585 00:26:20,450 --> 00:26:20,990 حسنًا. 586 00:26:20,990 --> 00:26:25,010 يمكنني ثانيةً تمزيق المشكلة إلى نصفين، وإلقاء هذا النصف بعيدًا، 587 00:26:25,010 --> 00:26:29,180 التخلص من 500 صفحة بايت، و250 صفحة بايت، والآن أنا سأبقى 588 00:26:29,180 --> 00:26:31,040 مع فقط 250 صفحة أخرى. 589 00:26:31,040 --> 00:26:32,720 ولاحظ مدى السرعة التي وصلت بها هنا. 590 00:26:32,720 --> 00:26:39,260 أوصلتني أول خورازميتين من 1000 إلى 999 إلى 998 أو من 1000 إلى 998 591 00:26:39,260 --> 00:26:40,910 إلى 996. 592 00:26:40,910 --> 00:26:43,760 ولكن هنا، أنا انتقلت من 1000 إلى 500 إلى 250. 593 00:26:43,760 --> 00:26:45,660 يبدو أننا نكسب وقتًا هنا. 594 00:26:45,660 --> 00:26:47,540 وبالفعل، إذا استمررت في تكرار هذه العملية، 595 00:26:47,540 --> 00:26:50,390 فآمل، أن أبقى فقط مع صفحة واحدة من الكتاب 596 00:26:50,390 --> 00:26:55,100 حيث محمد موجود فيها أو لا، عند هذه النقطة، سأتصل به. 597 00:26:55,100 --> 00:26:58,850 وهكذا، بأمانة فربما تفيد هذه الخوارزمية حدسنا 598 00:26:58,850 --> 00:27:01,130 والمزيد مما ستكون عليه البرمجة، 599 00:27:01,130 --> 00:27:04,480 هو التفكير بشأن مشكلة مثل هذه، ومعرفة كيفية تقسيمها 600 00:27:04,480 --> 00:27:06,500 والتغلب عليها، ومن ثم التعبير عن نفسك بطريقة 601 00:27:06,500 --> 00:27:09,030 يمكن للكمبيوتر بعدها حل هذه المشكلة لك. 602 00:27:09,030 --> 00:27:12,530 ولرسم صورة فقط إلى أي مدى تعتبر هذه الخوارزمية أفضل، حسنًا، 603 00:27:12,530 --> 00:27:15,890 إذا كان هذا هو مجرد مخطط تجريدي موجود لدينا على 604 00:27:15,890 --> 00:27:18,530 المحور الرأسي أو محور ص، فما الوقت المستغرق لحل مشكلة، 605 00:27:18,530 --> 00:27:21,260 وعلى المحور الأفقي ما مدى حجم هذه المشكلة-- 606 00:27:21,260 --> 00:27:24,330 لذا، كلما ذهبت أبعد في هذا الاتجاه، زادت الصفحات في المشكلة، 607 00:27:24,330 --> 00:27:25,670 وزادت الصفحات في دليل الهاتف. 608 00:27:25,670 --> 00:27:28,070 وكلما ذهبت لأعلى هنا، زاد عدد الثواني أو الصفحات 609 00:27:28,070 --> 00:27:29,270 المنقلبة التي يستغرقها الأمر. 610 00:27:29,270 --> 00:27:32,720 فالخوارزمية الأولى هي فقط تشبه منحدر خطي، 611 00:27:32,720 --> 00:27:35,660 إذا جازالتعبير، لأن مقابل كل صفحة إضافية في الكتاب، 612 00:27:35,660 --> 00:27:37,190 قد يستغرق مني الأمر ثانية أخرى. 613 00:27:37,190 --> 00:27:38,670 يمين، أعلى. 614 00:27:38,670 --> 00:27:41,700 إنها مجرد علاقة واحد مقابل واحد بالنسبة للصفحات. 615 00:27:41,700 --> 00:27:43,820 الخوارزمية الثانية، إذا قمت برسمها، حيث 616 00:27:43,820 --> 00:27:45,530 أنتقل خلالها بسرعة مضاعفة، كيف 617 00:27:45,530 --> 00:27:47,070 سيبدو هذا الخط بدلاً من ذلك؟ 618 00:27:51,430 --> 00:27:51,930 أجل. 619 00:27:51,930 --> 00:27:53,550 سيبدو أدنى من هذا الخط. 620 00:27:53,550 --> 00:27:56,550 سيظل يبدو خطًا مستقيمًا لأن الآن، هناك علاقة اثنين إلى 621 00:27:56,550 --> 00:27:59,580 واحد، ولكن إذا كان لديك دليل هاتف فيه هذا الكم من الصفحات، 622 00:27:59,580 --> 00:28:02,910 وفي الخوارزمية الأولى، يستغرق الأمر مدة طويلة، هنا، 623 00:28:02,910 --> 00:28:07,410 حسنًا، في الخوارزمية الثانية، سيأخذ نصف الخطوات، زائد أو ناقص 624 00:28:07,410 --> 00:28:09,840 واحد أو اثنين إذا كنت حقًا بحاجة إلى العودة إلى الخلف قليلاً. 625 00:28:09,840 --> 00:28:12,660 ولكن الخوارزمية الثالثة هي ما سندعوها لوغاريتمي. 626 00:28:12,660 --> 00:28:15,030 إذا كان ع هو عدد الصفحات في دليل الهاتف، 627 00:28:15,030 --> 00:28:16,890 فإن الخوارزمية الأولى، في أسوء الأحوال، 628 00:28:16,890 --> 00:28:18,640 قد تستغرق كل ع من الصفحات للعثور على محمد محمود. 629 00:28:18,640 --> 00:28:21,470 الخوارزمية الثانية ستستغرق نصف عدد الخطوات لأنني 630 00:28:21,470 --> 00:28:22,920 أقلب خلالها صفحتين في وقت واحد. 631 00:28:22,920 --> 00:28:26,250 لكن الخوارزمية الثالثة، ستبدو وتظهر بهذا الشكل. 632 00:28:26,250 --> 00:28:30,720 ستكون منحنية وسترتفع وترتفع وترتفع ببطء شديد جدًا، 633 00:28:30,720 --> 00:28:33,950 ما يترتب على هذا هو... إذا كانت Verizon أو شركة الهاتف 634 00:28:33,950 --> 00:28:35,790 ستضاعف عدد الصفحات في دليل الهاتف 635 00:28:35,790 --> 00:28:39,090 السنة القادمة لأن كامبريدج وسومرفيل اندمجا معًا في دليل 636 00:28:39,090 --> 00:28:41,230 الهاتف، ولدينا الآن 2000 صفحة. 637 00:28:41,230 --> 00:28:45,150 حسنًا،كم عدد الخطوات الإضافية التي ستأخذها الخوارزمية الثالثة لدي؟ 638 00:28:45,150 --> 00:28:45,690 واحدة فقط. 639 00:28:45,690 --> 00:28:48,300 لأنني يمكنني أن أستبعد 1000 صفحة من المشكلة 640 00:28:48,300 --> 00:28:52,140 باستخدام هذه الخوارزمية الذكية، في حين أن الخوارزمية الأولى والثانية لدي تستغرق 641 00:28:52,140 --> 00:28:54,150 صفحة أو صفحتين فقط في كل مرة. 642 00:28:54,150 --> 00:28:58,740 بعبارة أخرى، علينا أن نزيد حجم هذه المشكلة على نحو كبير 643 00:28:58,740 --> 00:29:03,450 فقط ليزداد عدد الثواني أو تقليب الصفحة زيادة فعلية ملموسة. 644 00:29:03,450 --> 00:29:05,490 وهكذا وبمجرد أن نبدأ في تعلم البرمجة، 645 00:29:05,490 --> 00:29:08,670 فإنها ستفيد، مجدّدًا، حدسنا من أجل 646 00:29:08,670 --> 00:29:13,260 حل المشاكل بشكل فعلي والترميز بشكل أكثر فاعلية أكثر مما 647 00:29:13,260 --> 00:29:17,820 قد نفعله دون هذا الحدس بمفرده. 648 00:29:17,820 --> 00:29:19,560 لذا دعونا نصوغ هذا الآن. 649 00:29:19,560 --> 00:29:22,920 كانت هذه نوعًا ما طريقة بديهية جدًا لتقسيم المشكلة والتغلب عليها. 650 00:29:22,920 --> 00:29:24,750 فالأمر منطقي نوعًا ما عندما تنتقل إلى المنتصف، 651 00:29:24,750 --> 00:29:26,940 وتقطعه، ثم تنتقل إلى النصف الأول أو النصف الآخر 652 00:29:26,940 --> 00:29:29,010 وتقطعه، وهكذا. 653 00:29:29,010 --> 00:29:33,990 لكن جهاز الكمبيوتر، حتى لو كان لطيفًا مثل أليكسا ومساعد جوجل المنزلي وكل ذلك، 654 00:29:33,990 --> 00:29:36,120 لا يمكنك في الحقيقة الكلام معه كأي إنسان آخر 655 00:29:36,120 --> 00:29:37,800 وجعله يقوم بتنفيذ الأشياء بشكل صحيح. 656 00:29:37,800 --> 00:29:41,400 أنا أعاني للحصول على سيري لتعيين مؤقِّت على هاتفي. 657 00:29:41,400 --> 00:29:43,950 نحن لم نصل إلى هذه الدرجة بعد، نحن ما زلنا في العصر 658 00:29:43,950 --> 00:29:46,830 حيث علينا أن نكون أكثر دقة مع أجهزة الكمبيوتر، 659 00:29:46,830 --> 00:29:50,430 أو الصوت الذي تم تفعيله أو غير ذلك أو إدخال السودوكود حتى الآن. 660 00:29:50,430 --> 00:29:52,560 ليس للسودوكود تعريف رسمي. 661 00:29:52,560 --> 00:29:57,000 إنها مجرد طريقة للتحدث تستخدم بناء الجملة الشبيه بالإنجليزية أو أي لغة منطوقة 662 00:29:57,000 --> 00:30:00,210 للتعبير عن نفسك بشكل مختصر وصحيح 663 00:30:00,210 --> 00:30:03,090 بحيث يمكن لكمبيوتر أو إنسان آلي أو حتى شخص آخر 664 00:30:03,090 --> 00:30:05,640 فهم ما تحاول قوله. 665 00:30:05,640 --> 00:30:08,340 لذا هنا، أقترح، خوارزمية مكتوبة 666 00:30:08,340 --> 00:30:11,650 بالسودوكود، بناء الجمل شبيه بالإنجليزية، يجعل هذا وجهة نظري تصل. 667 00:30:11,650 --> 00:30:13,530 ويمكنني كتابة هذا بأي عدد من الطرق. 668 00:30:13,530 --> 00:30:16,680 لقد قمت بترقيم الخطوات من صفر تصاعديًا، فقط من أجل المناقشة، 669 00:30:16,680 --> 00:30:18,900 ولكن قد يبدو هذا صورة لما فعلته من قبل. 670 00:30:18,900 --> 00:30:20,220 التقط دليل الهاتف. 671 00:30:20,220 --> 00:30:21,840 افتح على منتصف دليل الهاتف. 672 00:30:21,840 --> 00:30:22,710 انظر في الأسماء. 673 00:30:22,710 --> 00:30:25,260 إذا كان محمود بين الأسماء، اتصل بمحمد. 674 00:30:25,260 --> 00:30:27,660 وإلا، إذا كان محمد محمود في بداية الكتاب، 675 00:30:27,660 --> 00:30:31,050 انتقل إلى اليسار، وتحديدًا منتصف النصف الأيسر للكتاب، 676 00:30:31,050 --> 00:30:32,910 ثم قم بالرجوع إلى الخطوة الثانية. 677 00:30:32,910 --> 00:30:35,650 لأنني بالفعل، كنت أفعل الشيء نفسه مرارًا وتكرارًا، 678 00:30:35,650 --> 00:30:38,350 والسبب في أنني لم أفعل ذلك باستمرار هو أنني في كل مرة كنتُ 679 00:30:38,350 --> 00:30:42,060 أقوم بتكرار الأمر بالفتح والتمزيق، كنت أقوم بتقليص المشكلة. 680 00:30:42,060 --> 00:30:44,850 ويمكنني فقط تقليص مشكلة ذات حجم محدد وثابت 681 00:30:44,850 --> 00:30:47,220 مرات عديدة حتى أحصل على صفحة واحدة، وهكذا 682 00:30:47,220 --> 00:30:51,060 إذا تابعت بهذه النظرة المنطقية إلى اليمين أو إلى اليسار أو فقط التوقف، 683 00:30:51,060 --> 00:30:53,460 إذا لم أعثر على محمد على الإطلاق في الصفحة الأخيرة، 684 00:30:53,460 --> 00:30:56,700 فقد يبدو هذا التقاطًا لتلك التعليمة البرمجية بدقة أكبر. 685 00:30:56,700 --> 00:30:59,640 حسنًا، دعونا نقتبس الآن من هذا بعض المفاهيم 686 00:30:59,640 --> 00:31:01,980 ثم نبدأ تطبيقها على الرمز الفعلي. 687 00:31:01,980 --> 00:31:05,730 ما تم تمييزه بالأصفر هنا، أجرؤ على القول إنه، جميع الأفعال أو الإجراءات. 688 00:31:05,730 --> 00:31:08,550 هذه هي الوظائف، كما سنبدأ بتسميتها، 689 00:31:08,550 --> 00:31:09,330 في هذه الخوارزمية. 690 00:31:09,330 --> 00:31:12,480 الوظيفة هي مجرد خطوة محددة، إجراء محدد 691 00:31:12,480 --> 00:31:15,600 تقوم به من أجل القيام بشيء ما. 692 00:31:15,600 --> 00:31:19,800 ولذا المميز بالأصفر هنا-- التقط، افتح على، انظر في، اتصل، افتح، أنهِ 693 00:31:19,800 --> 00:31:20,940 جميعها أفعال أو إجراءات. 694 00:31:20,940 --> 00:31:23,400 من الآن فصاعدًا، سنُطلق عليها وظائف. 695 00:31:23,400 --> 00:31:27,450 وفي الوقت نفسه، أبرزت باللون الأصفر هنا-- if, else if, else if, else. 696 00:31:27,450 --> 00:31:29,320 هذا نوع من البدايات في طرح الأسئلة. 697 00:31:29,320 --> 00:31:32,620 ما يمكن أن يُطلق على هذا إذا كان لديك بعض المعرفة؟ 698 00:31:32,620 --> 00:31:33,120 حسنًا. 699 00:31:33,120 --> 00:31:35,490 يتضح أن العديد من لغات البرمجة، إذا كنت قد اطلعت على أي لغة من قبل، 700 00:31:35,490 --> 00:31:36,650 تطلق على هذه "الشروط". 701 00:31:36,650 --> 00:31:39,060 فهي تفرعات، أو نقاط فاصلة في الطريق. 702 00:31:39,060 --> 00:31:40,840 إذا كان هذا صحيحًا، فاذهب في هذا الاتجاه. 703 00:31:40,840 --> 00:31:44,160 وإلا، ربما اذهب إلى هذا الاتجاه الآخر، أو لربما اتجاه ثالث أو رابع 704 00:31:44,160 --> 00:31:45,030 تمامًا. 705 00:31:45,030 --> 00:31:48,630 في غضون ذلك، إذا نظرنا فعليًا إلى هذه العبارات المظللة-- 706 00:31:48,630 --> 00:31:51,420 إذا كان أحمد من بين الأسماء أو إذا ذُكر أحمد سابقًا في الكتاب 707 00:31:51,420 --> 00:31:52,710 أو سيُذكر أحمد في وقت لاحق في الكتاب-- 708 00:31:52,710 --> 00:31:56,440 هذه هي الأسئلة المحددة التي نطرحها لاتخاذ هذا القرار. 709 00:31:56,440 --> 00:31:59,130 وتعرف هذه باسم التعبيرات البولينية، والتي سُميت نسبة إلى رجل محترم 710 00:31:59,130 --> 00:32:01,170 حسب الاسم الأخير لبولي قبل بضع سنوات. 711 00:32:01,170 --> 00:32:03,120 وبالتالي فإن التعبير البوليني هو مجرد سؤال 712 00:32:03,120 --> 00:32:07,340 تكون الإجابة عليه إما بنعم أو لا، صح أو خطأ، صفر أو واحد 713 00:32:07,340 --> 00:32:08,710 إذا صح التعبير. 714 00:32:08,710 --> 00:32:11,340 وهذا تخطيط رائع لما تكون أجهزة الكمبيوتر جيدة حقًا فيه. 715 00:32:11,340 --> 00:32:13,420 حتى في ظل "الشروط"، تكون لديك "التعبيرات البولينية" 716 00:32:13,420 --> 00:32:16,680 لتحديد الاتجاه الذي تريد اتخاذه. 717 00:32:16,680 --> 00:32:18,510 ثم أخيرًا، الموضح باللون الأصفر هنا 718 00:32:18,510 --> 00:32:21,210 هو العودة إلى الخطوة 2 في مكانين. 719 00:32:21,210 --> 00:32:23,940 وهذا ما أنتج، إلى حد ما، نوعًا من دورة أو "حلقة" 720 00:32:23,940 --> 00:32:27,750 تخبر الكمبيوتر أن يفعل شيئًا مرارًا وتكرارًا. 721 00:32:27,750 --> 00:32:31,620 هكذا وباختصار، يكون لدينا هذه الكتل البنائية بالفعل من الناحية النظرية. 722 00:32:31,620 --> 00:32:34,260 وكما تبين، يمكننا الآن بدأ ترجمة هذه 723 00:32:34,260 --> 00:32:36,220 إلى لغة برمجة فعلية. 724 00:32:36,220 --> 00:32:38,310 أول لغة من اللغات سنقدمها في CS50 725 00:32:38,310 --> 00:32:39,830 هو شيئًا يسمى سكراتش. 726 00:32:39,830 --> 00:32:41,670 اتضح أن هذه ليست لغة تستند إلى نص، 727 00:32:41,670 --> 00:32:44,130 كما هو الحال في "السودوكود" باللغة الإنجليزية لديّ، ولكنها رسوم بيانية 728 00:32:44,130 --> 00:32:46,680 وتبدو الأشياء مثل قطع اللغز التي يمكنك سحبها وإفلاتها 729 00:32:46,680 --> 00:32:48,870 وتترابط فيما بينها إذا كان من المنطقي لها القيام بذلك. 730 00:32:48,870 --> 00:32:51,390 وفي واقع الأمر، بعضكم قد يكون لعب هذا قديمًا عندما كان طفلاً 731 00:32:51,390 --> 00:32:54,030 أو حتى في الآونة الأخيرة بسبب أنها تستهدف في الواقع عادة 732 00:32:54,030 --> 00:32:55,910 الطلاب في برامج بعد المدرسة 733 00:32:55,910 --> 00:33:00,170 الذين يريدون أن يتعلموا بشكل أكثر منهجية، أو أكثر حسابية، أو التفكير الحسابي. 734 00:33:00,170 --> 00:33:02,930 ونحن بصدد استخدامها لاستكشاف ليست كتل البيانات البنائية هذه فحسب 735 00:33:02,930 --> 00:33:04,940 ولكن بعض من الأخرى، كذلك. 736 00:33:04,940 --> 00:33:08,600 ويبدو أن اللغات الأخرى التي سنستكشفها في CS50 وما بعده، 737 00:33:08,600 --> 00:33:12,560 لغات مثل C التي سنقوم في الواقع الانتقال إلىها في أسرع وقت في الأسبوع المقبل، 738 00:33:12,560 --> 00:33:16,580 ثم لترجمة ما نفعله هذا الأسبوع في سكراتش الى الاسبوع المقبل في C. 739 00:33:16,580 --> 00:33:18,590 وفي لغات مثل Python وJavaScript 740 00:33:18,590 --> 00:33:21,650 و SQL، التي سنستكشفها أيضًا، هل لدينا قدرات أخرى-- 741 00:33:21,650 --> 00:33:24,020 القدرة على تخزين البيانات في المتغيرات، إذا صح التعبير، 742 00:33:24,020 --> 00:33:27,830 لاستخدام مؤشرات الترابط، مما يعني جعل الكمبيوتر يقوم بعدة أشياء دفعة واحدة، 743 00:33:27,830 --> 00:33:30,920 الأحداث، لقصد الاستماع لأشياء تحدث، مثل نقرة 744 00:33:30,920 --> 00:33:33,920 على الصفحة أو كتابة بشرية أو حتى قول شيء ما. 745 00:33:33,920 --> 00:33:36,050 وسنكون قادرين على القيام بكل الأشياء التي تأخذها 746 00:33:36,050 --> 00:33:38,180 كأمر مُسلم به في الهواتف الخاصة بك. 747 00:33:38,180 --> 00:33:41,040 وسنفعل هذا لأول مرة عن طريق هذا الرجل. 748 00:33:41,040 --> 00:33:44,060 إذًا هذا هو الاسكراتش، القط الافتراضي الذي يأتي مع هذه لغة البرمجة هذه 749 00:33:44,060 --> 00:33:45,890 من مختبر الوسائط في معهد ماساتشوستس للتكنولوجيا. 750 00:33:45,890 --> 00:33:48,990 وعبر لغة سكراتش يمكننا أن نبدأ في برمجته للتحريك للأعلى، 751 00:33:48,990 --> 00:33:52,550 للأسفل، لليسار، لليمين، قوّل شيئًا ما، لفظ شيًا ما، وأوامر أخرى 752 00:33:52,550 --> 00:33:53,580 معًا. 753 00:33:53,580 --> 00:33:56,720 في الواقع، اسمحوا لي بالمتابعة وتبديل السياقات هنا 754 00:33:56,720 --> 00:33:59,200 لعرض لك أول شيء كتبته بلغة سكراتش. 755 00:33:59,200 --> 00:34:01,370 تعود إلى يوم حينما كنت في مرحلة الدراسات العليا 756 00:34:01,370 --> 00:34:03,720 وكان قد تم اختراع لغة "سكراتش" للتو من قِبل معهد ماساتشوستس للتكنولوجيا. 757 00:34:03,720 --> 00:34:05,540 لذا دعوني أمضي قُدمًا وافتح هذا. 758 00:34:05,540 --> 00:34:08,710 وأطلقت عليه اسم أوسكار تايم. 759 00:34:08,710 --> 00:34:11,630 وإذا كان بإمكاننا أن يكون لدينا متطوع فليأتِ للحظة. 760 00:34:11,630 --> 00:34:14,180 يجب أن تكون مرتاحًا على المسرح وعلى الإنترنت. 761 00:34:14,180 --> 00:34:15,590 هل يمكن أن يأتي الشخص صاحب القميص الأبيض؟ 762 00:34:15,590 --> 00:34:16,550 رأيت يدك أولاً. 763 00:34:16,550 --> 00:34:18,020 تعال. 764 00:34:18,020 --> 00:34:19,460 إذًا هذا هو أوسكار تايم. 765 00:34:19,460 --> 00:34:21,740 تم تنفيذه بلغة تسمى سكراتش. 766 00:34:21,740 --> 00:34:25,850 وفي نهاية الأمر، إن كل ما سيكون في أساس هذا البرنامج 767 00:34:25,850 --> 00:34:29,190 هو الوظائف والحلقات والشروط وعدد قليل من هذه المفاهيم الأخرى. 768 00:34:29,190 --> 00:34:29,690 مرحبًا. 769 00:34:29,690 --> 00:34:30,080 ما اسمك؟ 770 00:34:30,080 --> 00:34:30,870 أفيفا: أفيفا. 771 00:34:30,870 --> 00:34:31,280 ديفيد مالان: أفيفا. 772 00:34:31,280 --> 00:34:31,710 ديفيد. 773 00:34:31,710 --> 00:34:32,410 تشرفت بمقابلتك. 774 00:34:32,410 --> 00:34:33,980 تعالي هنا. 775 00:34:33,980 --> 00:34:37,070 وبعد لحظات، سأمضي قُدمًا وسأنقر فوق 776 00:34:37,070 --> 00:34:39,230 العلم الأخضر في أعلى الزاوية اليسرى، والذي 777 00:34:39,230 --> 00:34:40,460 سيُشغِّل هذه اللعبة. 778 00:34:40,460 --> 00:34:42,330 وسنرى الإرشادات على الشاشة. 779 00:34:42,330 --> 00:34:45,810 [MUSIC PLAYING] 780 00:34:45,810 --> 00:34:50,300 أوسكار: (يغني) أوه، أنا أحب النفاية. 781 00:34:50,300 --> 00:34:54,500 أي شيء وسخًا أو قذرًا أو مُتربًا. 782 00:34:54,500 --> 00:34:58,670 أي شيء رثًا أو عفنًا أو صدئًا. 783 00:34:58,670 --> 00:35:02,710 نعم، أنا أحب النفاية. 784 00:35:02,710 --> 00:35:05,300 إذا كنت تريد حقًا أن ترى شيئًا رديئًا، فانظر إلى هذا. 785 00:35:05,300 --> 00:35:09,400 لدي هنا حذاء رياضي وهو ممزق وبالٍ. 786 00:35:09,400 --> 00:35:13,340 إنه مليء بالثقوب وأربطته ممزقة. 787 00:35:13,340 --> 00:35:17,710 هدية من والدتي في يوم مولدي. 788 00:35:17,710 --> 00:35:21,270 أنا أحبه لأنه نفاية. 789 00:35:21,270 --> 00:35:25,650 نعم، أنا أحب النفاية. 790 00:35:25,650 --> 00:35:29,880 أي شيء وسخًا أو قذرًا أو مُتربًا. 791 00:35:29,880 --> 00:35:34,190 أي شيء رثًا أو عفنًا أو صدئًا. 792 00:35:34,190 --> 00:35:37,290 نعم، أنا أحب النفاية. 793 00:35:37,290 --> 00:35:40,610 إليك المزيد من الأشياء العفنة. 794 00:35:40,610 --> 00:35:43,370 لدي هنا بعض الصحف منذ 13 شهرًا. 795 00:35:43,370 --> 00:35:44,330 ديفيد مالان: حسنًا. 796 00:35:44,330 --> 00:35:46,950 فلتصفقوا جميعًا لأفيفا للصعود على المسرح. 797 00:35:46,950 --> 00:35:47,750 شكرًا لكِ. 798 00:35:47,750 --> 00:35:48,250 تعالي. 799 00:35:48,250 --> 00:35:48,750 أفيفا. 800 00:35:48,750 --> 00:35:51,230 [APPLAUSE] 801 00:35:51,230 --> 00:35:53,180 كرة ضغط صغيرة من CS50. 802 00:35:53,180 --> 00:35:56,150 يكفي أن أقول، إذا كنت تعبت من هذه الأغنية، 803 00:35:56,150 --> 00:35:59,900 ففكر في التعب الذي أصابني بعد ثماني ساعات من اكتشاف أخطاء هذا البرنامج وتصحيحها 804 00:35:59,900 --> 00:36:00,590 وكذلك بنائه. 805 00:36:00,590 --> 00:36:02,090 لكن لننظر إلى ما رأيناه للتو. 806 00:36:02,090 --> 00:36:05,610 إنها تلك اللعبة التفاعلية ذات الأشياء المتحركة والموسيقى التي تعمل. 807 00:36:05,610 --> 00:36:09,560 ولكن إذا كنت تركز على تفكيك، إذا صح التعبير، هذا البرنامج إلى 808 00:36:09,560 --> 00:36:13,520 كتل البناء الأساسية فقط، فهذا مجرد نوع كبير من التجريد على بعض من قطع المستوى 809 00:36:13,520 --> 00:36:15,380 السفلية للوظيفة. 810 00:36:15,380 --> 00:36:16,580 مثل سلة المهملات هذه هنا. 811 00:36:16,580 --> 00:36:18,830 في هذه اللحظة، إنها مجرد صورة، وفي بعض الأحيان، 812 00:36:18,830 --> 00:36:21,580 بمجرد أن أسقطت أفيفا شيئًا ما في سلة المهملات، ظهر الغطاء 813 00:36:21,580 --> 00:36:24,680 وظهر أوسكار، وقال شيئًا ما، ثم عاد إلى أسفل. 814 00:36:24,680 --> 00:36:26,720 لكن هذه الرسوم المتحركة فائقة التبسيط. 815 00:36:26,720 --> 00:36:31,490 فهي مجرد تسلسل من 1، 2، 3، أو حتى عرض الصور ثم 816 00:36:31,490 --> 00:36:33,920 العودة إلى أسفل لخلق وهم الرسوم المتحركة. 817 00:36:33,920 --> 00:36:36,290 بينما، في كل مرة قال أوسكار شيئًا ما، 818 00:36:36,290 --> 00:36:39,320 كان هذا يتتبع درجتها في ما يسمى "المتغير". 819 00:36:39,320 --> 00:36:42,900 في الجبر، لديك x وy وz ، ولكن في البرمجة، لديك الفكرة نفسها، 820 00:36:42,900 --> 00:36:45,530 ولكن عادةً ما تزداد الفائدة بتسميتهم بشكل أكثر وصفية، 821 00:36:45,530 --> 00:36:46,370 مثل درجاتك. 822 00:36:46,370 --> 00:36:48,620 ولذلك ربما يوجد متغير في هذه اللعبة يسمى 823 00:36:48,620 --> 00:36:51,290 "الدرجة" والذي كان فقط يلاحظ عدد المرات 824 00:36:51,290 --> 00:36:53,240 التي أسقطت فيها أفيفا شيئًا في سلة المهملات. 825 00:36:53,240 --> 00:36:57,650 بينما، سلة المهملات نفسها والحذاء والصحيفة-- وحتى المزيد 826 00:36:57,650 --> 00:37:00,470 من الأشياء التي تحدث في النهاية-- كانت تسقط من السماء 827 00:37:00,470 --> 00:37:03,680 من مواقع عشوائية نوعًا ما، وهذا لأنني برمجت اللعبة 828 00:37:03,680 --> 00:37:06,230 لإسقاط النفاية من هنا أو من هنا، فقط 829 00:37:06,230 --> 00:37:08,950 لجعلها أكثر تحديًا بصورة صغيرة كلما نشطت اللعبة. 830 00:37:08,950 --> 00:37:11,540 في واقع الأمر، تبدأ الأشياء بالوقوع أسرع وأسرع مع مرور الوقت، 831 00:37:11,540 --> 00:37:14,550 كلعبة نموذجية، تزداد صعوبة أكثر وأكثر. 832 00:37:14,550 --> 00:37:16,830 إذًا كيف نصل إلى شيء كهذا؟ 833 00:37:16,830 --> 00:37:19,130 حسنًا، اسمحوا لي بالمتابعة وفتح لغة سكراتش نفسها 834 00:37:19,130 --> 00:37:21,240 وعرض بيئة العمل. 835 00:37:21,240 --> 00:37:24,200 إذًا في سكراتش، لديك بشكل أساسي ثلاث مناطق عامة. 836 00:37:24,200 --> 00:37:26,660 وهو يعتمد على الويب، لذا يمكنك إجراء هذا على أي جهاز كمبيوتر. 837 00:37:26,660 --> 00:37:29,510 وفي الجانب الأيسر هنا، لديك قطع اللغز تلك 838 00:37:29,510 --> 00:37:30,920 التي أشرت إليها في وقت سابق. 839 00:37:30,920 --> 00:37:36,140 تمثل قطع اللغز تللك تخطيطًا للوظائف أو الحلقات أو الشروط 840 00:37:36,140 --> 00:37:38,140 أو المتغيرات، الأشياء التي رأيناها من قبل، وسأكون 841 00:37:38,140 --> 00:37:41,180 قادرًا على سحبها وإفلاتها في المنتصف 842 00:37:41,180 --> 00:37:43,040 للتوصيل بينها وكتابة برنامجي، 843 00:37:43,040 --> 00:37:44,430 الذي سنفعله في غضون لحظة واحدة. 844 00:37:44,430 --> 00:37:48,330 في هذه الأثناء، يعيش سكراتش في هذه المرحلة، هذا العالم، حيث يمكنه الحركة لأعلى، 845 00:37:48,330 --> 00:37:49,250 لأسفل، لليسار، لليمين. 846 00:37:49,250 --> 00:37:50,870 يمكنك تغيير شكل سكراتش. 847 00:37:50,870 --> 00:37:53,300 يمكنك إضافة سمات أخرى، تُعرف أيضًا باسم الرموز المتحركة، 848 00:37:53,300 --> 00:37:55,140 لتكون لديك أمور متعددة تحدث في وقت واحد. 849 00:37:55,140 --> 00:37:56,680 وبالطبع، يمكنك ملء الشاشة بها. 850 00:37:56,680 --> 00:38:00,410 وهكذا كانت لعبة أوسكار تايم منذ لحظة في الواقع مجموعة كاملة من الرموز المتحركة. 851 00:38:00,410 --> 00:38:02,250 كانت سلة مهملات أوسكار واحدة. 852 00:38:02,250 --> 00:38:04,640 كانت كل قطعة من النفاية رمزًا متحركًا آخرًا. 853 00:38:04,640 --> 00:38:07,050 كانت الصحيفة عبارة عن رمز متحرك، وما إلى ذلك. 854 00:38:07,050 --> 00:38:11,250 وهكذا كل واحد منها كان عبارة عن برامج منفصلة تعمل بالتوازي في الوقت نفسه. 855 00:38:11,250 --> 00:38:13,110 لذلك دعونا حقًا نجعله يفعل شيئًا. 856 00:38:13,110 --> 00:38:16,770 ويتضح أنه إذا انتقلت إلى، لنقل، أحداث، 857 00:38:16,770 --> 00:38:18,770 سأرى واحدة من أكثر الكتل قوةً 858 00:38:18,770 --> 00:38:22,000 من get go، والتي تظهر عند نقر العلم الأخضر. 859 00:38:22,000 --> 00:38:24,000 هذا في الواقع كيف بدأت اللعبة مع أفيفا، 860 00:38:24,000 --> 00:38:27,260 من خلال النقر فقط فوق هذا العلم الأخضر أعلى عالم سكراتش. 861 00:38:27,260 --> 00:38:29,030 وإذا أردت أن أوقفها، كما فعلت، يمكنك 862 00:38:29,030 --> 00:38:31,130 النقر فوق علامة التوقف الحمراء لتقول توقف. 863 00:38:31,130 --> 00:38:34,730 وفي الوقت نفسه، بالعلم الأخضر، يمكنني باستمرار 864 00:38:34,730 --> 00:38:37,220 الاستماع إليه عن طريق سحب قطعة اللغز هذه وإسقاطها. 865 00:38:37,220 --> 00:38:39,710 عندما يتم النقر على العلم الأخضر، ماذا أريد أن أفعل؟ 866 00:38:39,710 --> 00:38:41,470 حسناً، دعونا ننتقل إلى الأشكال. 867 00:38:41,470 --> 00:38:43,140 وهذه مجرد فئات مختلفة. 868 00:38:43,140 --> 00:38:45,180 ويمكننا التمرير خلال جميع الكتل الملونة المختلفة، 869 00:38:45,180 --> 00:38:47,240 لكنها إلى حد كبير فقط تفعل ما يقولون. 870 00:38:47,240 --> 00:38:50,370 سأنتقل إلى الأشكال، حيث أعرف أن هناك كتلة تسمى 871 00:38:50,370 --> 00:38:53,990 قل، وسأذهب إلى الأمام وأكتب أكثر شيء متعارف عليه في 872 00:38:53,990 --> 00:38:55,500 علوم الكمبيوتر-- مرحبًا بالعالم-- 873 00:38:55,500 --> 00:38:56,160 في هذا المربع. 874 00:38:56,160 --> 00:38:58,550 لذلك لاحظ أن الوظائف نفسها يمكن في الواقع 875 00:38:58,550 --> 00:39:01,610 أخذ المدخلات والمدخل لهذه الوظيفة، على سبيل المثال، 876 00:39:01,610 --> 00:39:03,080 سيكون مرحبًا بالعالم. 877 00:39:03,080 --> 00:39:06,530 إذا انتقلت الآن إلى العلم الأخضر وضغطت عليه-- 878 00:39:06,530 --> 00:39:07,530 مرحبًا بالعالم. 879 00:39:07,530 --> 00:39:08,030 حسنًا. 880 00:39:08,030 --> 00:39:11,000 ليس صعبًا على الإطلاق. ليس مثيرًا للاهتمام للغاية. 881 00:39:11,000 --> 00:39:14,810 ولكنه في الواقع أنجز المهمة، ولذلك فإن برنامجي هو بالفعل هكذا. 882 00:39:14,810 --> 00:39:17,060 حسنًا، كيف يمكنني أن أجعل هذا أكثر إثارة للاهتمام قليلاً؟ 883 00:39:17,060 --> 00:39:19,730 مجرد قول، مرحبًا بالعالم طوال الوقت ليس جذابًا لدرجة كبيرة. 884 00:39:19,730 --> 00:39:20,620 حسنًا، أتعلم ماذا؟ 885 00:39:20,620 --> 00:39:21,170 دعني أفكر. 886 00:39:21,170 --> 00:39:22,550 دعني أتراجع عن هذا. 887 00:39:22,550 --> 00:39:24,380 دعني أمرر لأسفل إلى الاستشعار. 888 00:39:24,380 --> 00:39:25,880 ولاحظوا هذا. 889 00:39:25,880 --> 00:39:28,490 يمكن للوظائف أيضًا أن تأخذ مدخلاً من إنسان 890 00:39:28,490 --> 00:39:32,270 ويمكن للوظائف أيضًا أن تعطيك قيمة، ما تسمى بقيمة العودة. 891 00:39:32,270 --> 00:39:35,090 إذًا هذه الكتلة هنا، اسأل شيئًا-- بشكل افتراضي، تقول، 892 00:39:35,090 --> 00:39:36,500 ما اسمك وانتظار-- 893 00:39:36,500 --> 00:39:39,350 هي وظيفة أخرى مضمنة في سكراتش تسمح لي أن أفعل هذا. 894 00:39:39,350 --> 00:39:41,420 لذلك سأمضي قُدمًا وأسحب هذا هنا 895 00:39:41,420 --> 00:39:43,950 وسأتركه يقول، ما اسمك؟ 896 00:39:43,950 --> 00:39:46,990 لاحظ الآن أن أسفل هذه الكتلة توجد كتلة خاصة، 897 00:39:46,990 --> 00:39:48,650 مهما كان ما سترده الكتلة. 898 00:39:48,650 --> 00:39:51,560 لذا فإن الإجابة هي ما سيكتبه الشخص مهما كان. 899 00:39:51,560 --> 00:39:56,060 وإذا أردت الآن أن أقول ما كتبه الشخص، اسمحوا لي أن أعود إلى الأشياء. 900 00:39:56,060 --> 00:39:57,060 انتقل للحديث. 901 00:39:57,060 --> 00:39:59,150 ولاحظ أن هذه الكتل مغناطيسية نوعً ما. 902 00:39:59,150 --> 00:40:00,340 إنها تريد أن تلتحم معًا. 903 00:40:00,340 --> 00:40:02,130 لذلك سأمضي قُدمًا وللنتقل إلى هناك. 904 00:40:02,130 --> 00:40:05,160 و إذا عدت إلى الاستشعار وسحبت الإجابة، 905 00:40:05,160 --> 00:40:07,730 لاحظ أنه على الرغم من أنها ليست الحجم نفسه، 906 00:40:07,730 --> 00:40:09,740 إلا أنها ستنمو لملء مكانها، والآن، أستطيع 907 00:40:09,740 --> 00:40:12,890 أن أجعل البرنامج لدي يسأل المستخدم ما اسمه أو اسمها ثم 908 00:40:12,890 --> 00:40:14,930 مهما كانت هذه الإجابة. 909 00:40:14,930 --> 00:40:18,020 لذا دعوني أمضي قُدمًا وأتوقف وأنقر فوق تشغيل مجدّدًا. 910 00:40:18,020 --> 00:40:21,020 لاحظ أنه يسألني عن اسمي، دعني أتابع وأكتب ديفيد. 911 00:40:21,020 --> 00:40:22,020 إدخال. 912 00:40:22,020 --> 00:40:22,520 حسنًا. 913 00:40:22,520 --> 00:40:24,770 إنها طريقة غريبة قليلاً لتحية شخص ما. 914 00:40:24,770 --> 00:40:25,790 ديفيد. 915 00:40:25,790 --> 00:40:28,490 لذلك سيكون من الرائع تنظيف ذلك قليلاً. 916 00:40:28,490 --> 00:40:29,330 لذلك أتعلم ماذا؟ 917 00:40:29,330 --> 00:40:31,380 أنا أعرف هذا فقط من تدقيقه من قبل. 918 00:40:31,380 --> 00:40:33,230 ليس كل هذا واضحًا للوهلة الأولى. 919 00:40:33,230 --> 00:40:36,320 ولكن اتضح أنه ضمن المشغلين، الفئة، 920 00:40:36,320 --> 00:40:39,070 يوجد هذا الشيء هنا-- اجمع التفاح والموز. 921 00:40:39,070 --> 00:40:40,320 والتي تكون مجرد قيم افتراضية. 922 00:40:40,320 --> 00:40:41,460 يمكنك تغييرها. 923 00:40:41,460 --> 00:40:42,710 لأن ما الذي أريد أن أفعله؟ 924 00:40:42,710 --> 00:40:47,720 أريد أن أقول مرحبًا، ديفيد، أو أي شخص، لذلك أريد أن أقول مرحبًا، فاصلة، 925 00:40:47,720 --> 00:40:49,710 ثم، ديفيد-- مهما كان الشخص المكتوب. 926 00:40:49,710 --> 00:40:51,090 وهذا ما يسمح الجمع لك بفعله. 927 00:40:51,090 --> 00:40:54,880 إنه يسمح لك بجمع أو توصيل جملتين تكونان بطريقة أو بأخرى 928 00:40:54,880 --> 00:40:56,140 مقدمتين عن طريقك أو عن طريق المستخدم. 929 00:40:56,140 --> 00:40:58,690 لذا دعوني أخرج هذا، الإجابة. 930 00:40:58,690 --> 00:41:00,750 اسمحوا لي بالمضي قُدمًا وسحب كتلة الجمع. 931 00:41:00,750 --> 00:41:02,650 لاحظ أنها، أيضًا، ستنمو لملء الفراغ. 932 00:41:02,650 --> 00:41:09,010 دعني أمضي قُدمًا، وأقول مرحبًا، فاصلة، مسافة، والآن، اسحب الإجابة إلى هناك. 933 00:41:09,010 --> 00:41:11,770 ولاحظ هذا البناء. 934 00:41:11,770 --> 00:41:12,520 مثلما في الرياضيات. 935 00:41:12,520 --> 00:41:14,360 بناء الوظائف هذا. 936 00:41:14,360 --> 00:41:18,700 يمكنني أولاً جمع الترحيب والإجابة من خلال أخذ هذين الأمرين كمدخل 937 00:41:18,700 --> 00:41:20,710 ثم تمريرهما إلى القول كمدخل آخر 938 00:41:20,710 --> 00:41:22,480 لأن هذه الطبقات يتم وضعها في الأعلى. 939 00:41:22,480 --> 00:41:26,420 والآن، إذا أوقفت هذا وقمت بتشغيله مجدّدَا وقلت، ديفيد-- 940 00:41:26,420 --> 00:41:27,250 مرحبًا، ديفيد. 941 00:41:27,250 --> 00:41:30,700 الآن، لدينا ما يؤهلنا لبرنامج تفاعلي ممتع بشكل أكبر 942 00:41:30,700 --> 00:41:32,290 وليس مجرد ترميز ضمني. 943 00:41:32,290 --> 00:41:38,080 بالطبع، ليس سمعيًا مثل شيء ما مثل أوسكار تايم منذ لحظة. 944 00:41:38,080 --> 00:41:39,380 لذا دعوني أمضي قُدمًا وأفعل هذا. 945 00:41:39,380 --> 00:41:43,660 اسمحوا لي أن أبدأ من جديد تمامًا وأعمل سكراتش بصفته قط كما هو 946 00:41:43,660 --> 00:41:45,570 وابدأ الصوت الذي يطلق عليه مواء. 947 00:41:45,570 --> 00:41:48,130 إذًا يتضح أن هناك فئة من الكتل تسمى صوت، 948 00:41:48,130 --> 00:41:50,740 وداخل الصوت، يوجد تشغيل بعض الأصوات الافتراضية. 949 00:41:50,740 --> 00:41:52,400 لذلك أبدأ صوت المواء. 950 00:41:52,400 --> 00:41:54,070 والآن، ستصبح الأشياء ألطف قليلاً. 951 00:41:54,070 --> 00:41:55,480 [MEOW] 952 00:41:55,980 --> 00:41:56,940 أوه. 953 00:41:56,940 --> 00:41:58,010 والآن، مرة أخرى. 954 00:41:58,010 --> 00:41:59,010 [MEOW] 955 00:41:59,510 --> 00:42:03,200 ويمكنني أن أحاول محاكاة قطة [MEOW] بالوقوف هنا لفترة من الوقت 956 00:42:03,200 --> 00:42:04,610 والاستمرار في النقر فوق هذا الزر. 957 00:42:04,610 --> 00:42:05,360 ولكن أتعرف ماذا؟ 958 00:42:05,360 --> 00:42:07,890 اسمحوا لي أن أجعله يصدر صوت مواء بضع مرات لأن ذلك أكثر واقعية. 959 00:42:07,890 --> 00:42:09,580 لذلك اسمحوا لي بسحب الثانية والثالثة. 960 00:42:09,580 --> 00:42:11,570 ويمكنك الحصول على عدد لا حصر له من الكتل. 961 00:42:11,570 --> 00:42:12,230 دعوني أضغط على تشغيل. 962 00:42:12,230 --> 00:42:13,620 [MEOW] 963 00:42:16,490 --> 00:42:17,320 يبدو أن هناك خطأ. 964 00:42:17,320 --> 00:42:17,990 لنجرب مجددًا. 965 00:42:17,990 --> 00:42:18,780 تشغيل. 966 00:42:18,780 --> 00:42:20,140 [MEOW] 967 00:42:21,050 --> 00:42:23,570 هذا هو أول خطأ لي، أو غلطة. 968 00:42:23,570 --> 00:42:24,710 هذا يبدو صحيحًا. 969 00:42:24,710 --> 00:42:28,700 يقول عندما يتم النقر فوق العلم الأخضر، ابدأ صوت مواء، ابدأ صوت مواء 970 00:42:28,700 --> 00:42:30,020 ابدأ صوت مواء. 971 00:42:30,020 --> 00:42:33,490 لماذا أسمع صوت مواء مرة واحدة فقط؟ 972 00:42:33,490 --> 00:42:34,980 نعم. 973 00:42:34,980 --> 00:42:37,960 إنها نوعًا ما في الوقت نفسه أو قريبة من الوقت نفسه 974 00:42:37,960 --> 00:42:41,050 لذا فالأصوات نوعًا ما تتعثر فوق بعضها البعض أو تتداخل فقط، 975 00:42:41,050 --> 00:42:41,550 هل هذا صحيح؟ 976 00:42:41,550 --> 00:42:43,720 تقول الكتل حرفيًا، ابدأ صوت مواء. 977 00:42:43,720 --> 00:42:45,120 لكن أجهزة الكمبيوتر سريعة حقًا. 978 00:42:45,120 --> 00:42:48,030 إذا كنت قد سمعت التعبير جيجاهيرتز، الذي يمثل وحدة قياس. 979 00:42:48,030 --> 00:42:52,300 وإذا كان جهاز الكمبيوتر لديك يحتوي على CPU، أو وحدة معالجة مركزية، أو عقل بسعة واحد غيغاهرتز 980 00:42:52,300 --> 00:42:55,660 مما يعني أنه يمكنه حرفيًا القيام بمليار شيء في الثانية. 981 00:42:55,660 --> 00:42:59,200 يمكنه بالتأكيد بدء ثلاث أصوات بسرعة فائقة. 982 00:42:59,200 --> 00:43:02,200 واذا كانوا يحدثون جميعًا على نحو فعّال واحدًا تلو الآخر 983 00:43:02,200 --> 00:43:05,290 قبل أن ينتهي الصوت حتى، وأنت تسمع تأثير واحد نقي. 984 00:43:05,290 --> 00:43:06,680 إذًا كيف يمكننا إصلاح هذا؟ 985 00:43:06,680 --> 00:43:09,880 حسنًا، يمكنني أن أنتقل في الواقع وأصلح هذا مع هذه الكتلة هنا-- 986 00:43:09,880 --> 00:43:15,550 تشغيل صوت المواء حتى الانتهاء. 987 00:43:15,550 --> 00:43:16,240 و الآن. 988 00:43:16,240 --> 00:43:18,510 [MEOWING] 989 00:43:18,510 --> 00:43:19,010 حسنًا. 990 00:43:19,010 --> 00:43:20,890 إن هذا القطة الاستثنائي، حزين قليلاً، 991 00:43:20,890 --> 00:43:22,730 ولكنها على الأقل الآن صحيحة بدرجة أكبر. 992 00:43:22,730 --> 00:43:25,420 و، كما يتضح، إذا انتقلت إلى التحكم-- 993 00:43:25,420 --> 00:43:26,100 هل تعلم؟ 994 00:43:26,100 --> 00:43:28,770 توجد هذه الكتلة هنا-- انتظر بضع ثوانٍ. 995 00:43:28,770 --> 00:43:30,940 يمكنني المُضي قدمًا وإدراج هذا هنا. 996 00:43:30,940 --> 00:43:32,560 دعني أقوم بواحدة أخرى هنا. 997 00:43:32,560 --> 00:43:33,510 والآن، اضغط على تشغيل. 998 00:43:33,510 --> 00:43:36,910 [MEOWING] 999 00:43:38,730 --> 00:43:40,170 هل تعلم، هذا ليس سيئًا. 1000 00:43:40,170 --> 00:43:43,230 إنه يبدو الآن أكثر واقعية قليلاً. 1001 00:43:43,230 --> 00:43:45,510 ولكن بصراحة، إذا واصلتُ القيام بهذا-- أو هل تعلم؟ 1002 00:43:45,510 --> 00:43:47,840 يمكنك بالفعل النقر بزر الماوس الأيمن أو النقر على زر التحكم على الكتل، 1003 00:43:47,840 --> 00:43:51,020 وتكرارها، ومجرد النسخ واللصق أكثر من ذلك إذا كنتَ تريدها. 1004 00:43:51,020 --> 00:43:55,440 لذلك إذا كان لي أن أفعل هذا، الآن، فإنها سوف تنتقل فقط ست مرات. 1005 00:43:55,440 --> 00:43:57,390 وبعد ذلك سيمكنني نسخها مرة أخرى والانتقال 12 مرة. 1006 00:43:57,390 --> 00:43:59,140 ولكن يجب أن توجد طريقة أفضل، أليس كذلك؟ 1007 00:43:59,140 --> 00:44:00,480 هذه الآن برمجة سيئة. 1008 00:44:00,480 --> 00:44:01,770 هذا تصميم سيء. 1009 00:44:01,770 --> 00:44:04,620 لأنني حرفيًا أقوم بالنسخ واللصق، وإن كان، بشكل بياني. 1010 00:44:04,620 --> 00:44:07,170 لكننا رأينا بالفعل كتلة بنائية 1011 00:44:07,170 --> 00:44:09,390 يمكننا تصميم هذا البرنامج باستخدامها بشكل أفضل. 1012 00:44:09,390 --> 00:44:11,190 هذا صحيح، ولكنه ليس مصممًا بشكل جيد. 1013 00:44:11,190 --> 00:44:15,820 ما الذي ستكون عليه الكتلة البنائية إن احتجتُ لجعل هذا منظمًا أكثر قليلاً؟ 1014 00:44:15,820 --> 00:44:16,320 حسنًا. 1015 00:44:16,320 --> 00:44:16,860 تكرار حلقي رباعي. 1016 00:44:16,860 --> 00:44:18,150 لا توجد تمامًا في سكراتش. 1017 00:44:18,150 --> 00:44:21,300 لكن الحلقة في الأساس تقوم بشيء ما بشكل دوري. 1018 00:44:21,300 --> 00:44:23,980 وفي الواقع، إذا انتقلتُ ضمن نطاق التحكم وبدأتُ في التدقيق، 1019 00:44:23,980 --> 00:44:26,910 ستلاحظ وجود عدد قليل من الكتل التي قد تنطبق هنا. 1020 00:44:26,910 --> 00:44:29,010 توجد كتلة التكرار لعدد من المرات 1021 00:44:29,010 --> 00:44:32,400 أو الكتلة المستمرة، واللتان تبدوان كتكرارات حلقية، أو دورات. 1022 00:44:32,400 --> 00:44:35,460 لذلك فكما هو متوقع، دعوني أمضي قدمًا هنا وسيمكنني التخلص من الكتل 1023 00:44:35,460 --> 00:44:37,110 فقط عن طريق سحبها إلى اليسار. 1024 00:44:37,110 --> 00:44:40,080 دعوني أسحب هذه لثانية. 1025 00:44:40,080 --> 00:44:44,460 ثم قل فقط تشغيل هذا الصوت باستمرار، ثم انتظر للحظة. 1026 00:44:44,460 --> 00:44:47,070 لذا فالآن، يبدو برنامجي هكذا. 1027 00:44:47,070 --> 00:44:50,360 [MEOWING] 1028 00:44:53,770 --> 00:44:56,770 كما تعلمون، لن نعرف أبدًا ما إذا كان صحيحًا من الناحية التقنية لأنه فقط 1029 00:44:56,770 --> 00:45:00,130 سوف ينتقل، كما نعتقد، باستمرار، لكن يبدو أن هذا صحيح. 1030 00:45:00,130 --> 00:45:02,320 ولقد كان تعليمة برمجية أقل بدرجة كبيرة وصار أسهل كثيرًا 1031 00:45:02,320 --> 00:45:05,260 الاحتفاظ به لأنني إذا أردتُ منه نوعًا من النعاس، 1032 00:45:05,260 --> 00:45:09,150 فيمكنني حينئذ أن أقول ثانيتان بدلاً من ذلك. 1033 00:45:09,150 --> 00:45:10,560 [MEOW] 1034 00:45:11,060 --> 00:45:13,730 كما تعلم، ويمكننا ضبط هذا بسرعة فائقة أثناء تنقلنا. 1035 00:45:13,730 --> 00:45:15,710 لكن دعونا نبدأ بدمج بعض من هذه الأفكار 1036 00:45:15,710 --> 00:45:19,460 الآن وتغيير ماهية التأثير النهائي. 1037 00:45:19,460 --> 00:45:22,310 دعوني أمضي قدمًا وأفتح مثالاً قدمتُه مسبقًا. 1038 00:45:22,310 --> 00:45:24,260 ويسمى هذا المثال باسم Count Zero "عدّ الصفر". 1039 00:45:24,260 --> 00:45:27,510 وسنضع هذا على موقع الويب لاحقًا بحيث يمكنك اللعب به إذا أردت ذلك. 1040 00:45:27,510 --> 00:45:29,630 وهذا يعتبر نوعًا عكس عدّ الخراف. 1041 00:45:29,630 --> 00:45:32,180 بدلاً مني أنا أو شخص ينام أثناء عدّ الخراف، 1042 00:45:32,180 --> 00:45:34,440 ستقوم هذه الخراف بعدّ نفسها. 1043 00:45:34,440 --> 00:45:37,130 لذا دعوني أمضي قدمًا وألعب فقط. 1044 00:45:37,130 --> 00:45:41,720 وبشكل مثير للإعجاب، يبدو أنه فقط يعد 1، 2، 3. 1045 00:45:41,720 --> 00:45:42,800 ولكن لماذا ذلك؟ 1046 00:45:42,800 --> 00:45:44,420 إنه سيقوم فقط بالعدّ باستمرار. 1047 00:45:44,420 --> 00:45:47,330 ولكن دعونا ننظر إلى الكتل التي يقوم بالعدّ باستخدامها باستمرار. 1048 00:45:47,330 --> 00:45:49,420 عند النقر على العلم الأخضر، اضبط العداد. 1049 00:45:49,420 --> 00:45:51,720 يتضح أن المربع البرتقالي هو ما أطلقنا عليه اسم متغير. 1050 00:45:51,720 --> 00:45:53,570 لذا في الجبر، سيكون مثل س أو ص أو ع. 1051 00:45:53,570 --> 00:45:54,780 تلك القيم ليست وصفية. 1052 00:45:54,780 --> 00:45:58,490 بدلاً من ذلك قمتُ بتسمية عداد واحد، لكني سميتُه س أو ص أو ع. 1053 00:45:58,490 --> 00:46:03,080 من ثم أنطق العداد باستمرار لثانية واحدة، ثم أنتظر لثانية أخرى، 1054 00:46:03,080 --> 00:46:04,910 ثم أقوم بتغيير العداد بآخر، والذي 1055 00:46:04,910 --> 00:46:06,410 يعني من الناحية التقنية زيادته فقط. 1056 00:46:06,410 --> 00:46:07,430 أضف إليه 1. 1057 00:46:07,430 --> 00:46:10,190 وستقوم الخراف بالتالي بالعدّ تصاعديًا أكثر فأكثر فأكثر. 1058 00:46:10,190 --> 00:46:11,900 الآن، إنه أمر ممل قليلاً، لكن ذلك 1059 00:46:11,900 --> 00:46:15,120 هو نوع نقطة عدّ الخراف، طبعًا، للخلود إلى النوم. 1060 00:46:15,120 --> 00:46:18,960 ولكن ماذا لو كانت الخراف نوعًا ما أعجبها العدّ بشكل أسرع قليلاً بالفعل؟ 1061 00:46:18,960 --> 00:46:21,500 حسنًا، دعني أنتقل أسفل عوامل التشغيل هنا. 1062 00:46:21,500 --> 00:46:24,860 تبدو عملية الضرب وكأنها قد تجعلنا نصل للأماكن بشكل أسرع. 1063 00:46:24,860 --> 00:46:27,260 ودعوني أن أمضي قدمًا وأنتقل إلى المتغيرات. 1064 00:46:27,260 --> 00:46:29,830 وبدلاً من تغيير العداد بآخر، 1065 00:46:29,830 --> 00:46:32,290 دعوني أمضي قدمًا وأن أستمر فقط في ضبطه لعدد آخر. 1066 00:46:32,290 --> 00:46:33,530 لذا دعوني أقوم بسحب هذا وإفلاته. 1067 00:46:33,530 --> 00:46:38,360 اضبط العداد لعدد ما في عدد ما، خاصةً 1068 00:46:38,360 --> 00:46:44,810 العداد في اثنين، بالتالي الضعف، الضعف، الضعف، الضعف. 1069 00:46:44,810 --> 00:46:47,250 يبدو أنها تزداد، إذا جاز التعبير، بسرعة أكبر. 1070 00:46:47,250 --> 00:46:49,400 لنرَ. 1071 00:46:49,400 --> 00:46:54,210 1، 2، 4. 1072 00:46:54,210 --> 00:46:56,780 إذن فهو يَعد أسرع، لكن ما زال الأمر نوعًا ما مملاً. 1073 00:46:56,780 --> 00:46:58,640 ماذا لو قمنا بهذا بدلاً من ذلك؟ 1074 00:46:58,640 --> 00:47:02,660 دعونا نتوقف عن الانتظار ونمضي قدمًا و، بالنظر، 1075 00:47:02,660 --> 00:47:06,960 لا ننطق العداد لثانية واحد، ولكن دعونا ننطق العداد بسرعة. 1076 00:47:06,960 --> 00:47:08,300 لذا سأنطق العداد. 1077 00:47:08,300 --> 00:47:09,290 عذرًا. 1078 00:47:09,290 --> 00:47:13,460 سأنطق العداد، ثم سأقوم بضبطه بضربه في 2. 1079 00:47:13,460 --> 00:47:14,560 إذن إليك المكان الذي نقف عنده. 1080 00:47:14,560 --> 00:47:18,950 ابدأ، أو اضبط العداد على 1 بدايةً، وانطقه، ثم ضاعفه، 1081 00:47:18,950 --> 00:47:21,930 ثم ضاعفه، ثم ضاعفه، مع نطقه أثناء ذلك. 1082 00:47:21,930 --> 00:47:23,690 ها نحن ذا ننطلق. 1083 00:47:23,690 --> 00:47:26,720 هذا مثير للإعجاب. 1084 00:47:26,720 --> 00:47:32,320 إذن تم حتى الآن عدّ الخراف وصولاً إلى 10 وحتى رقم 60. 1085 00:47:32,320 --> 00:47:34,160 10 إلى رقم 100. 1086 00:47:34,160 --> 00:47:34,660 حسنًا. 1087 00:47:34,660 --> 00:47:39,370 الآن، هذا لا يتناسب حتى مع فقاعة الكلام، لكنه ما يزال مستمرًا. 1088 00:47:39,370 --> 00:47:41,380 إلى أي مدى يمكنه الوصول؟ 1089 00:47:41,380 --> 00:47:45,970 ما هو أكبر رقم يمكنك العدّ إليه في جهاز كمبيوتر؟ 1090 00:47:45,970 --> 00:47:49,410 هل يرغب أحد أن يخمّن؟ 1091 00:47:49,410 --> 00:47:51,400 قد يكون هنا لبعض الوقت. 1092 00:47:51,400 --> 00:47:54,130 10 إلى رقم 270 الآن. 1093 00:47:54,130 --> 00:47:57,530 لأي مدى يمكنك العدّ، أو بالأحرى-- 1094 00:47:57,530 --> 00:47:58,030 حسنًا. 1095 00:47:58,030 --> 00:48:01,010 إذن لقد استسلمنا وأطلقنا عليه ما لا نهاية. 1096 00:48:01,010 --> 00:48:03,340 لذا يتضح أن ما لا نهاية لها قيمة دقيقة-- 1097 00:48:03,340 --> 00:48:05,680 10 إلى رقم 250 أو نحو ذلك. 1098 00:48:05,680 --> 00:48:07,150 لكن ماذا يحدث هنا؟ 1099 00:48:07,150 --> 00:48:09,490 حسنًا، نظرًا لأن أجهزة الكمبيوتر، في نهاية المطاف، 1100 00:48:09,490 --> 00:48:12,700 تقوم فقط بتخزين المعلومات رقميًا-- ولكن تلك المعلومات المخزنة رقميًا 1101 00:48:12,700 --> 00:48:15,640 يجب أن يتم تخزينها ماديًا باستخدام الكهرباء، باستخدام محولات خفض المستوى 1102 00:48:15,640 --> 00:48:16,990 هذه المسماة بأجهزة الترانزستور. 1103 00:48:16,990 --> 00:48:20,200 في نهاية الأمر، يكون لهاتفي، أو جهاز الكمبيوتر المحمول الخاص بي، وأي جهاز معني 1104 00:48:20,200 --> 00:48:22,510 مقدار محدود فقط من تلك الأشياء. 1105 00:48:22,510 --> 00:48:24,380 أنا لدي عدد محدود من الأصابع. 1106 00:48:24,380 --> 00:48:26,800 باستخدام النظام الأحادي، نهج المدرسة القديمة لعلامة التجزئة لديّ، 1107 00:48:26,800 --> 00:48:28,360 يمكنني العدّ إلى خمسة على هذه اليد. 1108 00:48:28,360 --> 00:48:32,380 باستخدام النظام الثنائي، زعمتُ أني أستطيع العد إلى 31 على هذه اليد. 1109 00:48:32,380 --> 00:48:33,610 لكنه ما يزال محدودًا. 1110 00:48:33,610 --> 00:48:37,270 لا يمكنني العدّ إلى ما لا نهاية على هذه اليد لأن لدي فقط خمسة أصابع. 1111 00:48:37,270 --> 00:48:40,570 وبالمثل، فالكمبيوتر به فقط أجهزة ترانزاستور كثيرة جدًا أو 1112 00:48:40,570 --> 00:48:43,240 وحدات بايت أو وحدات بت كثيرة جدًا في الذاكرة، وعند نقطة معينة، 1113 00:48:43,240 --> 00:48:45,790 يتعين على المبرمج أن يفكر فيما سيفعله 1114 00:48:45,790 --> 00:48:48,580 أو ستفعله عندما يريد المستخدم العدّ لمدى مرتفع جدًا 1115 00:48:48,580 --> 00:48:51,080 لا يمكنك مواءمته ماديًا بعد ذلك. 1116 00:48:51,080 --> 00:48:54,310 عليك أن تستسلم مثل هذا وأن تقول شيئًا بشكل شبه دقيق 1117 00:48:54,310 --> 00:48:57,980 أو عليك معالجة تلك المسألة بطريقة أخرى معينة. 1118 00:48:57,980 --> 00:49:01,180 وسنرى عندما نصل إلى C أن كيفية معالجتك لهذه المشكلة ليست 1119 00:49:01,180 --> 00:49:03,730 بالضرورة مباشِرة، والكثير من البرامج في الواقع 1120 00:49:03,730 --> 00:49:05,610 هناك لا تتعامل مع هذه المشكلة. 1121 00:49:05,610 --> 00:49:07,660 والاحتمالات هي، أننا جميعًا لدينا برامج إذا 1122 00:49:07,660 --> 00:49:10,180 قمتَ بكتابة كلمات كبيرة بما يكفي أو أرقام كبيرة بما يكفي فيها، 1123 00:49:10,180 --> 00:49:12,970 فإنها قد تنقطع أو تتعطل أو تتوقف بشكل كبير جدًا 1124 00:49:12,970 --> 00:49:16,600 ذلك لأن البشر، على عكس MIT (معهد ماساشوستس للتكنولوجيا)، لم يتوقعوا أن ذلك قد 1125 00:49:16,600 --> 00:49:17,890 يحدث بالفعل ويعالجوه. 1126 00:49:17,890 --> 00:49:19,310 حسنًا، دعوني أمضي قدمًا وأقوم بذلك. 1127 00:49:19,310 --> 00:49:22,780 دعوني أفتح هذا البرنامج وأرى ما إذا لم نتمكن من قراءة التعليمة البرمجية الآن. 1128 00:49:22,780 --> 00:49:28,330 وهذا يسمى Pet Zero وهذا برنامج يحاكي ملاطفة الحيوانات. 1129 00:49:28,330 --> 00:49:31,630 لذا إذا قمتُ بالنقر فوق تشغيل ولم ألمس لوحة المفاتيح، 1130 00:49:31,630 --> 00:49:35,350 فيبدو ألا شيء سيحدث، ولكن إذا قمتُ الآن بتحريك المؤشر نحو القط-- 1131 00:49:35,350 --> 00:49:36,800 [MEOW] 1132 00:49:36,800 --> 00:49:37,770 ياللأسف. 1133 00:49:37,770 --> 00:49:38,590 إنه نوع لطيف. 1134 00:49:38,590 --> 00:49:39,280 [MEOW] 1135 00:49:39,280 --> 00:49:42,790 حتى الآن، إنه ليس أكثر من مواء عند الطلب عندما تقوم بملاطفة القط. 1136 00:49:42,790 --> 00:49:43,480 لماذا؟ 1137 00:49:43,480 --> 00:49:45,640 حسنًا، لاحظ أنني أضفتُ بعض الكتل البنائية الأخرى. 1138 00:49:45,640 --> 00:49:48,130 لم نستخدم هذا من قبل، لكنه بديهيًا 1139 00:49:48,130 --> 00:49:49,630 قد يخلق شعورًا واضحًا جدًا. 1140 00:49:49,630 --> 00:49:52,660 عندما يتم النقر على العلم الأخضر، فقم بما يلي باستمرار. 1141 00:49:52,660 --> 00:49:56,070 إذا كان القط يلمس مؤشر الماوس-- فإن هذا الشيء باللون الأزرق 1142 00:49:56,070 --> 00:49:58,030 هو ما أطلقنا عليه من قبل اسم تعبير منطقي. 1143 00:49:58,030 --> 00:50:00,760 وتكون له إجابة نعم/لا، صح/خطأ، واحد/صفر. 1144 00:50:00,760 --> 00:50:03,560 ويكون لمس مؤشر الماوس هو أحد الخيارات الموجودة في القائمة الصغيرة 1145 00:50:03,560 --> 00:50:05,150 المنسدلة هنا إذا قمت بالعبث بها. 1146 00:50:05,150 --> 00:50:08,290 لذا فإذا كان القط يلمس مؤشر الماوس، فحينئذ وحينئذ فقط، 1147 00:50:08,290 --> 00:50:10,450 قم بتشغيل صوت المواء حتى الانتهاء. 1148 00:50:10,450 --> 00:50:14,200 إذن لقد قمنا الآن بدمج الدوالّ بتكرارات حلقية ذات شرط. 1149 00:50:14,200 --> 00:50:16,330 لكن لماذا التكرار الحلقي؟ 1150 00:50:16,330 --> 00:50:19,390 يقوم القط بالمواء مرة واحدة عندما ألاطفه. 1151 00:50:19,390 --> 00:50:21,580 لماذا أقوم بأي شيء باستمرار هنا؟ 1152 00:50:24,490 --> 00:50:25,530 شخص ما-- أجل. 1153 00:50:28,600 --> 00:50:29,100 أجل. 1154 00:50:29,100 --> 00:50:32,910 قد أرغب بملاطفته ثانيةً، لذا فأنا أريد من البرنامج توقع ذلك. 1155 00:50:32,910 --> 00:50:36,480 وبصراحة، فلو أني حذفتُ الكتلة المستمرة هذه وبدا برنامجي 1156 00:50:36,480 --> 00:50:39,130 بدلاً من ذلك كمثل هذا-- 1157 00:50:39,130 --> 00:50:40,890 فدعوني إذن أتخلص من هذا وذاك-- 1158 00:50:40,890 --> 00:50:45,780 ثم نقرتُ على تشغيل، والآن، فأنا أتحرك فوقه، 1159 00:50:45,780 --> 00:50:47,550 فلماذا لا تعمل حتى ولو لمرة واحدة؟ 1160 00:50:51,540 --> 00:50:52,090 انطقها مرة أخرى. 1161 00:50:56,700 --> 00:50:57,200 أجل. 1162 00:50:57,200 --> 00:51:00,740 فأنا أعني إذن، عند هذه النقطة، إذا أمكنني الإيجاز، 1163 00:51:00,740 --> 00:51:03,080 أن الكمبيوتر سريع للغاية، لدرجة أن هذا قد حدث بالفعل 1164 00:51:03,080 --> 00:51:07,190 في وقت تحريكي للمؤشر نحو القط، وفي اللحظة التي 1165 00:51:07,190 --> 00:51:10,220 قمتُ فيها بالنقر فوق تشغيل، لم ألمس القط. 1166 00:51:10,220 --> 00:51:12,780 تم تنفيذ تلك الكتل، إذا جاز التعبير، من الأعلى للأسفل. 1167 00:51:12,780 --> 00:51:13,970 هذا هو كل شيء للبرنامج. 1168 00:51:13,970 --> 00:51:16,970 لذا عندما أقوم بتحريك المؤشر نحو القط، ينتهي البرنامج. 1169 00:51:16,970 --> 00:51:17,760 إنه ليس استماعًا. 1170 00:51:17,760 --> 00:51:21,960 وهكذا باستمرار، بهذه الطريقة يمكنني بالفعل الاستماع بشكل متواصل إلى شيء ما 1171 00:51:21,960 --> 00:51:23,430 يحدث بالفعل. 1172 00:51:23,430 --> 00:51:26,000 ماذا لو كنت أريد القيام بشيء ما ليس فقط إذا ما كان الشيء صحيحًا، 1173 00:51:26,000 --> 00:51:27,300 لكن يتعامل مع الحالتين؟ 1174 00:51:27,300 --> 00:51:28,340 إذا وإلا. 1175 00:51:28,340 --> 00:51:31,130 حسنًا، دعوني أمضي قدمًا وأفتح Pet One. 1176 00:51:31,130 --> 00:51:32,870 وهذا مثال آخر. 1177 00:51:32,870 --> 00:51:37,310 وهل يمكن لشخص ما أن يصف، بعد قراءة هذه التعليمة البرمجية، ما 1178 00:51:37,310 --> 00:51:38,810 سيفعله هذا البرنامج بدلاً من ذلك؟ 1179 00:51:42,290 --> 00:51:42,790 أجل. 1180 00:51:53,790 --> 00:51:54,300 بالضبط. 1181 00:51:54,300 --> 00:51:55,750 دعوني ألخص شفهيًا على نحو أكبر. 1182 00:51:55,750 --> 00:51:59,590 إذن إذا كنتَ هذه المرة، تلمس القط، فإنه سيقوم بالزئير بدلاً من ذلك. 1183 00:51:59,590 --> 00:52:01,950 وإلا، سيقوم بالمواء بشكل لطيف. 1184 00:52:01,950 --> 00:52:05,830 إذن هذه المرة، سيقوم بالمواء بشكل مستمر مرة واحدة كل ثانية، 1185 00:52:05,830 --> 00:52:08,850 لكن إذا لمستَ هذا القط الاستثنائي، فلن يعجبه ذلك. 1186 00:52:08,850 --> 00:52:09,660 إذن شغّل. 1187 00:52:09,660 --> 00:52:10,570 [MEOW] 1188 00:52:10,570 --> 00:52:11,070 مواء. 1189 00:52:11,070 --> 00:52:12,310 [MEOW] 1190 00:52:12,310 --> 00:52:13,130 مواء. 1191 00:52:13,130 --> 00:52:14,350 [MEOW] 1192 00:52:14,350 --> 00:52:15,360 والآن. 1193 00:52:15,360 --> 00:52:16,320 [ROAR] 1194 00:52:16,320 --> 00:52:17,640 لا تلمس القط. 1195 00:52:17,640 --> 00:52:20,160 الآن إذن، قد نتفاعل بطريقتين مختلفتين 1196 00:52:20,160 --> 00:52:22,970 بسلوك طريقين مختلفين يمكنك الانتقال خلالهما. 1197 00:52:22,970 --> 00:52:25,560 حسنًا، دعونا حقًا نفعل شيئًا تفاعليًا بدرجة أكبر بقليل. 1198 00:52:25,560 --> 00:52:27,730 دعوني أمضي قدمًا وأفتح مثالاً آخر. 1199 00:52:27,730 --> 00:52:29,850 وهذا يطلق عليه اسم Bounce Zero "الارتداد للصفر" لأنه يمكننا الآن، 1200 00:52:29,850 --> 00:52:33,690 الآن أن نبدأ في مشاهدة بعض عناصر التصميم مما كان عليه Oscar Time. 1201 00:52:33,690 --> 00:52:36,360 مثل هذا يصبح الآن الأمر شيقًا قليلاً. 1202 00:52:36,360 --> 00:52:38,350 ما الذي يحدث هنا بالفعل؟ 1203 00:52:38,350 --> 00:52:40,470 دعونا نقوم بالتكبير على الكتل هنا. 1204 00:52:40,470 --> 00:52:43,980 تقوم هذه الكتلة فقط بنطق تحرك باستمرار 10 خطوات، والتي 1205 00:52:43,980 --> 00:52:45,360 تعتبر كتلة أخرى لم نرَها من قبل. 1206 00:52:45,360 --> 00:52:46,920 لكن 10 خطوات مثل 10 وحدات بكسل. 1207 00:52:46,920 --> 00:52:48,930 إذن تحرك 10 وحدات بكسل على الشاشة. 1208 00:52:48,930 --> 00:52:52,330 لكن إذا كنت تلمس الحافة، فمن ثم استدر بزاوية 180 درجة. 1209 00:52:52,330 --> 00:52:54,200 ويمكنك أن ترى ذلك يحدث بالضبط. 1210 00:52:54,200 --> 00:52:57,540 يتم تدوير سكراتش 180 درجة ولا يعني نمط الاستدارة هذا إلا 1211 00:52:57,540 --> 00:52:58,320 رجوعًا مزدوجًا. 1212 00:52:58,320 --> 00:53:00,810 لا تعجب بالتكرار الحلقي بزاوية 180 درجة. 1213 00:53:00,810 --> 00:53:02,020 إذن ذلك أمر رائع. 1214 00:53:02,020 --> 00:53:05,100 لكن هذه ليست الطريقة التي يمشي بها البشر أو القطط. 1215 00:53:05,100 --> 00:53:10,340 كمثل ماذا يبدو أمرًا غير طبيعي بوضوح فيما يخص هذا؟ 1216 00:53:10,340 --> 00:53:10,840 أجل. 1217 00:53:10,840 --> 00:53:12,840 أعني، أعني، لا يمكنني حتى محاكاته، أليس كذلك؟ 1218 00:53:12,840 --> 00:53:15,580 مثل وجود قدميه في وضع ثابت، لكنه يمررها ذهابًا وإيابًأ 1219 00:53:15,580 --> 00:53:16,540 على الشاشة. 1220 00:53:16,540 --> 00:53:18,160 ولكن، لا يكون المشي هكذا. 1221 00:53:18,160 --> 00:53:20,950 مثل المشي له نوع من الحركة افتراضيًا وماذا؟ 1222 00:53:20,950 --> 00:53:22,870 حسنًا، يمكننا نوعًا ما محاكاة هذا مثل-- 1223 00:53:22,870 --> 00:53:24,190 حسنًا، يمكنني فقط المشي-- 1224 00:53:24,190 --> 00:53:28,420 المشي ويمكنك أن تتخيل التقاط صور سريعة كأنها حقيقية لساقيّ 1225 00:53:28,420 --> 00:53:31,450 أو لساق قط تتحرك ثم تقرر فقط أن هذه الصورة 1226 00:53:31,450 --> 00:53:33,400 ستكون ممثلة لخطوة واحدة. 1227 00:53:33,400 --> 00:53:35,530 وهذه الصورة ستمثل خطوة أخرى. 1228 00:53:35,530 --> 00:53:37,810 وكما تعلمون، باستخدام خطوتين فقط من تلك الخطوات، 1229 00:53:37,810 --> 00:53:41,320 كنتُ أراهن أننا يمكننا بالفعل القيام بعمل جيد لمحاكاة 1230 00:53:41,320 --> 00:53:42,620 الكيفية التي يبدو عليها المشي. 1231 00:53:42,620 --> 00:53:46,210 في الواقع، إذا عدتُ من حيث بدأنا، من صورة سكراتش هذه، 1232 00:53:46,210 --> 00:53:51,040 ماذا لو قمتُ فقط بتحريك ساقيه قليلاً جدًا، ثم الرجوع للخلف، 1233 00:53:51,040 --> 00:53:52,280 ثم التقدم للأمام؟ 1234 00:53:52,280 --> 00:53:56,050 وحتى لو في ملف PDF الخاص بي، يمكنني محاكاة الرسوم المتحركة بنقر السهم لأعلى، 1235 00:53:56,050 --> 00:53:58,670 السهم لأسفل، السهم لأعلى، السهم لأسفل لأنه نوعًا مما 1236 00:53:58,670 --> 00:54:01,720 يبدو أنه يمشي الآن، بينما في الحقيقة، عيونكم البشرية فقط ترى 1237 00:54:01,720 --> 00:54:04,250 صورتين مختلفتين مرارًا وتكرارًا. 1238 00:54:04,250 --> 00:54:05,340 إذن كيف يمكنني القيام بذلك؟ 1239 00:54:05,340 --> 00:54:08,350 حسنًا، إذا قمت بالرجوع إلى سكراتش، فإنه ما يزال يمشي. 1240 00:54:08,350 --> 00:54:15,500 دعوني أمضي قدمًا وأفتح Bounce One، الإصدار الثاني لهذا، والآن، 1241 00:54:15,500 --> 00:54:16,300 قم بذلك. 1242 00:54:16,300 --> 00:54:18,630 حسنًا. 1243 00:54:18,630 --> 00:54:19,570 كيف قمتُ بإضافة هذا؟ 1244 00:54:19,570 --> 00:54:21,870 هناك كتلة أرجوانية صغيرة لم نرها بعد، 1245 00:54:21,870 --> 00:54:23,740 ولكن إذا قمتَ بالتدقيق في الفئات، فإنك 1246 00:54:23,740 --> 00:54:26,070 سترى كتلاً أخرى مثل هذا الزي التالي الذي يستمر في 1247 00:54:26,070 --> 00:54:28,230 تغيير الزي الذي يرتديه. 1248 00:54:28,230 --> 00:54:31,860 يتضح وجود سكراتش كصورة وصورته الافتراضية 1249 00:54:31,860 --> 00:54:35,760 وهو لا يتحرك، ولكن إذا انتقلتُ لأعلى هنا إلى أعلى اليسار، ثم نقرتُ فوق الأزياء، 1250 00:54:35,760 --> 00:54:38,220 فسيمكنك بالفعل مشاهدة أنه يوجد هنا زيه الواحد. 1251 00:54:38,220 --> 00:54:39,960 وها هو زيه الثاني. 1252 00:54:39,960 --> 00:54:43,140 ولذلك فتلك الكتلة الأرجوانية التي تنطق الزي التالي، لأنه 1253 00:54:43,140 --> 00:54:47,460 داخل التكرار الحلقي المستمر، تواصل فقط القيام بالتالي، التالي، التالي، التالي، التالي، 1254 00:54:47,460 --> 00:54:49,240 ليُظهر زيًا واحدًا أو الآخر. 1255 00:54:49,240 --> 00:54:52,210 من الواضح أنهم يقلدون المشي. 1256 00:54:52,210 --> 00:54:53,640 الآن، هذا أمر غير طبيعي تمامًا. 1257 00:54:53,640 --> 00:54:59,040 لماذا لا نقوم بإبطائه حتى، وليكن، خمس خطوات في المرة ونجعله ينتقل ثانيةً؟ 1258 00:54:59,040 --> 00:55:00,660 الآن، هذا ما يزال ينتقل سريعًا جدًا. 1259 00:55:00,660 --> 00:55:03,240 دعوني أمضي قدمًا وأقول-- 1260 00:55:03,240 --> 00:55:05,010 أننا يمكننا التحكم. 1261 00:55:05,010 --> 00:55:11,100 يمكننا أن نجعله ينتظر لثانية بعد التحرك بشكل كبير جدًا. 1262 00:55:11,100 --> 00:55:12,550 ربما يمكننا تسريع هذا الأمر. 1263 00:55:12,550 --> 00:55:15,540 لذا دعونا ننتظر 1/10 من الثانية، 0.1. 1264 00:55:15,540 --> 00:55:18,650 أو ربما ننتظر 0.01، أي 1/100 من الثانية. 1265 00:55:18,650 --> 00:55:20,400 الآن، أصبح الأمر أكثر واقعية نوعًا ما. 1266 00:55:20,400 --> 00:55:21,810 لكن هذه هي ماهية الرسوم المتحركة. 1267 00:55:21,810 --> 00:55:25,510 إذا شاهدت فيلم كارتون من قبل أو فيلمًا يستند على صور مثل هذه، 1268 00:55:25,510 --> 00:55:28,530 فأنت فقط تحاول إصلاح بعض من هذه المعلمات، وهذه المدخلات، 1269 00:55:28,530 --> 00:55:30,780 من أجل إنتاج هذا المُخرَج عن طريق فهم 1270 00:55:30,780 --> 00:55:34,260 ما هو التمثيل الأساسي لهذه الأشياء، والذي يعتبر في هذه الحالة 1271 00:55:34,260 --> 00:55:37,200 الصور فقط، مرارًا وتكرارًا من أجل 1272 00:55:37,200 --> 00:55:38,700 إنشاء هذه الرسوم المتحركة. 1273 00:55:38,700 --> 00:55:40,400 لكن ماذا عن التفاعل؟ 1274 00:55:40,400 --> 00:55:41,490 دعوني أفعل هذا بنفسي. 1275 00:55:41,490 --> 00:55:45,960 دعوني أمضي قدمًا وأتخلص من هذا، وأرجع إلى الأحداث، وأنطق، 1276 00:55:45,960 --> 00:55:47,670 عند النقر على العلم الأخضر. 1277 00:55:47,670 --> 00:55:50,250 ثم، دعوني أمضي قدمًا وأمسك بكتلة مستمرة 1278 00:55:50,250 --> 00:55:52,230 ويستمر ذلك مرارًا وتكرارًا. 1279 00:55:52,230 --> 00:55:54,150 ثم، دعوني أمضي قدمًا إلى الحركة. 1280 00:55:54,150 --> 00:55:57,270 يتضح أن تحت رمز الحركة، توجد هذه الكتلة التي لم نرَها-- 1281 00:55:57,270 --> 00:55:59,340 تشير تجاه مؤشر الماوس. 1282 00:55:59,340 --> 00:56:01,650 ودعوني أمضي قدمًا وأسحب هذه هنا. 1283 00:56:01,650 --> 00:56:06,480 ثم، دعوني أحرّكها تمامًا كخطوة واحدة في كل مرة، بدلاً من 10. 1284 00:56:06,480 --> 00:56:09,560 ما الذي سيفعله هذا؟ 1285 00:56:09,560 --> 00:56:12,490 ماذا يفعل هذا البرنامج؟ 1286 00:56:12,490 --> 00:56:12,990 أجل. 1287 00:56:12,990 --> 00:56:14,370 انطقها مرةً أخرى. 1288 00:56:14,370 --> 00:56:15,280 اتبع الماوس. 1289 00:56:15,280 --> 00:56:15,780 أجل. 1290 00:56:15,780 --> 00:56:20,580 إنها نوعًا ما طريقة تشبه اصطحاب قطك في تمشية. 1291 00:56:20,580 --> 00:56:24,930 ربما ليس تمامًا الحيوان الذي نقصده بالفعل، ولكنه سيتبع المؤشر. 1292 00:56:24,930 --> 00:56:27,170 ويمكنني فعلاً تسريع هذا قليلاً نوعًا ما. 1293 00:56:27,170 --> 00:56:28,780 لذا دعونا نحرّكه 10 خطوات. 1294 00:56:28,780 --> 00:56:29,280 حسنًا. 1295 00:56:29,280 --> 00:56:32,020 الآن، ها نحن ذا ننطلق. 1296 00:56:32,020 --> 00:56:34,960 إذن الآن، هو يتحرك لأعلى ولأسفل، وبالتالي فهو الآن متفاعل. 1297 00:56:34,960 --> 00:56:38,650 ربما إذن تذكرون عندما كنا نشغّل Oscar Time من قبل وقمنا 1298 00:56:38,650 --> 00:56:39,150 بالتقاطه-- 1299 00:56:39,150 --> 00:56:40,530 حسنًا. 1300 00:56:40,530 --> 00:56:41,110 لا تفعل ذلك. 1301 00:56:41,110 --> 00:56:42,870 انظر، هذا خطأ. 1302 00:56:42,870 --> 00:56:43,710 إنه فقط مرتبك. 1303 00:56:43,710 --> 00:56:45,660 هو يتحرك دائمًا تجاهه، لكنك بالفعل-- 1304 00:56:45,660 --> 00:56:45,940 حسنًا. 1305 00:56:45,940 --> 00:56:46,930 لذا سنتوقف. 1306 00:56:46,930 --> 00:56:47,430 حسنًا. 1307 00:56:47,430 --> 00:56:50,610 إذن الآن، هو يتابع، لكن تلك هي الطريقة التي يمكننا ابتكارها الآن، 1308 00:56:50,610 --> 00:56:52,980 على سبيل المثال، القدرة على تحريك قطع القمامة هذه 1309 00:56:52,980 --> 00:56:54,950 في مختلف الاتجاهات وجعلها تتبع مؤشر الماوس. 1310 00:56:54,950 --> 00:56:58,070 إذا كنت تفكر في الرجوع إلى Oscar Time، ففي كل مرة تقوم بالتقاط قطعة قمامة، 1311 00:56:58,070 --> 00:57:01,320 فإنه سيتبع المؤشر وذلك نظرًا لوجود تكرار حلقي مستمر وكتلة مثل هذه 1312 00:57:01,320 --> 00:57:03,180 تشير تجاه مؤشر الماوس. 1313 00:57:03,180 --> 00:57:05,760 حسنًا، الآن، دعونا ندمج الأفكار المتعددة 1314 00:57:05,760 --> 00:57:07,590 ونكوّن بالفعل نصوصًا متعددة. 1315 00:57:07,590 --> 00:57:12,240 لقد اقترحتُ سابقًا إمكانية أن يكون للبرامج مؤشرات ترابط متعددة. 1316 00:57:12,240 --> 00:57:15,780 ومؤشر الترابط هو طريقة ممتازة للنطق، في السياق الموجود لدينا، وهو النصوص المتعددة. 1317 00:57:15,780 --> 00:57:21,120 والنصوص المتعددة في البرنامج الواحد هي التي تحدث بالضرورة بالتوازي. 1318 00:57:21,120 --> 00:57:24,570 بفضل الترابط يمكن للكمبيوتر القيام بأشياء متعددة بشكل فعّال في المرة الواحدة، 1319 00:57:24,570 --> 00:57:26,010 وزيادةً على ذلك في الطريق. 1320 00:57:26,010 --> 00:57:27,720 لذا تعتبر هذه أكثر انخراطًا، لكن دعونا نرى 1321 00:57:27,720 --> 00:57:30,120 ما إذا كان بإمكاننا-- دعونا نفهم أولاً ما يفعله هذا البرنامج. 1322 00:57:30,120 --> 00:57:31,320 دعوني أمضي قدمًا وأنقر فوق تشغيل. 1323 00:57:31,320 --> 00:57:33,950 وهذا الصوت يميل لأن يكون صاخبًا قليلاً. 1324 00:57:33,950 --> 00:57:37,180 [SEA LION BARKING] 1325 00:57:38,120 --> 00:57:42,800 إذن أسد البحر يعوي بلا توقف، بشكل مزعج. 1326 00:57:42,800 --> 00:57:48,650 إذن بقراءة التعليمة البرمجية، كيف يمكنني الآن إيقافه عن العواء؟ 1327 00:57:48,650 --> 00:57:49,890 اضغط على شريط المسافة. 1328 00:57:49,890 --> 00:57:50,390 حسنًا. 1329 00:57:50,390 --> 00:57:52,770 إذن اضغط على شريط المسافة. 1330 00:57:52,770 --> 00:57:53,750 حسنًا. 1331 00:57:53,750 --> 00:57:55,700 يمكنني تحديدًا إيقاف البرنامج، بوضوح، 1332 00:57:55,700 --> 00:57:57,800 ولكن ما زال هذا البرنامج يعمل، من الناحية الفنية. 1333 00:57:57,800 --> 00:57:59,270 ولكن لمَ يعمل هذا؟ 1334 00:57:59,270 --> 00:58:02,300 حسنًا، لاحظ أن هذا الموجود على الجانب الأيسر هو النص الأول. 1335 00:58:02,300 --> 00:58:06,370 عند النقر على العلم الأخضر، اضبط هذا المتغير الذي سميتُه muted "مكتوم الصوت" على خطأ. 1336 00:58:06,370 --> 00:58:08,960 إذا تمت تسميته x أو y أو z أو عداد، وإن كان أي من تلك 1337 00:58:08,960 --> 00:58:10,620 المسميات لا يعني شيئًا، لذا سمّيتُه muted "مكتوم الصوت". 1338 00:58:10,620 --> 00:58:13,400 وقمتُ بضبطه ليساوي الخطأ، والذي يعتبر، مجددًا، قيمة منطقية. 1339 00:58:13,400 --> 00:58:16,170 صح أو خطأ يعنيان فقط نعم أو لا. 1340 00:58:16,170 --> 00:58:19,920 باستمرار، إذا تم الضغط على شريط المسافة، فافعل ذلك. 1341 00:58:19,920 --> 00:58:24,200 إذا كان muted "مكتوم الصوت" خطأ حاليًا، فغيّر muted "مكتوم الصوت" إلى صح. 1342 00:58:24,200 --> 00:58:26,670 وإلا، غيّر muted "مكتوم الصوت" إلى خطأ. 1343 00:58:26,670 --> 00:58:29,510 لذا إذا كان muted "مكتوم الصوت" خطأ، فغيّره إلى صح. 1344 00:58:29,510 --> 00:58:31,840 إذا كان muted "مكتوم الصوت" صحيحًا، فغيّره إلى خطأ. 1345 00:58:31,840 --> 00:58:35,910 في أي وقت يقوم فيه الشخص بالضغط على شريط المسافة، قم بتحديث ذلك المتغير. 1346 00:58:35,910 --> 00:58:39,500 الآن، إذا نظرنا في النص الآخر، الذي يوجّه أسد البحر أيضًا، 1347 00:58:39,500 --> 00:58:40,530 ما الذي يقوم به؟ 1348 00:58:40,530 --> 00:58:43,580 باستمرار، إذا كان المتغير muted "مكتوم الصوت" خطأ. 1349 00:58:43,580 --> 00:58:44,750 لذلك إذا لم يكن مكتوم الصوت. 1350 00:58:44,750 --> 00:58:46,820 إذا كان المتغير muted "مكتوم الصوت" خطأ فهذا يعني عدم كتم صوته. 1351 00:58:46,820 --> 00:58:50,360 ابدأ تشغيل صوت أسد البحر ومن ثم تخيل مرحبًا، مرحبًا، مرحبًا لمدة ثانيتين، 1352 00:58:50,360 --> 00:58:52,160 ثم انتظر لثانية أخرى. 1353 00:58:52,160 --> 00:58:53,900 ثم ما عليك إلا التكرار، التكرار، التكرار. 1354 00:58:53,900 --> 00:58:56,750 لكن إذا قمت بالتغيير وشريط المسافة مكتوم الصوت إلى صح، 1355 00:58:56,750 --> 00:59:00,230 فسوف يقول إذا ما كان مكتوم الصوت يعادل الخطأ، فهذا ليس كذلك. 1356 00:59:00,230 --> 00:59:01,950 لن أقوم بتشغيل صوت هذه المرة. 1357 00:59:01,950 --> 00:59:05,360 وبالتالي الآن، لدينا القدرة على دمج نصوص متعددة معًا 1358 00:59:05,360 --> 00:59:08,390 لتحقيق نتيجة أكثر تفاعلية. 1359 00:59:08,390 --> 00:59:09,670 وماذا عن هذا؟ 1360 00:59:09,670 --> 00:59:15,560 عندما كنتُ طفلاً، ربما أكون قد لعبتُ في لعبة ماركو بولو الصيفية. 1361 00:59:15,560 --> 00:59:16,650 لعبة بسيطة رائعة. 1362 00:59:16,650 --> 00:59:18,650 لعبناها في حمام السباحة، لسببٍ ما، حيث 1363 00:59:18,650 --> 00:59:20,840 يتم تعصيب عيني شخص في حمام السباحة بأمانٍ شديد، 1364 00:59:20,840 --> 00:59:22,550 ثم يصيح قائلاً أو تصيح قائلةً ماركو. 1365 00:59:22,550 --> 00:59:25,550 ومن ثم، من المفترض أن يصيح جميع من حوله أو حولها قائلين بولو. 1366 00:59:25,550 --> 00:59:27,260 ومن ثم، فالشخص المعصوب العينين 1367 00:59:27,260 --> 00:59:29,540 يُفترض أن يطارد الأطفال الآخرين في حمام السباحة ثم يلحق بهم، 1368 00:59:29,540 --> 00:59:30,650 من ثم يصبحون مكانه. 1369 00:59:30,650 --> 00:59:33,020 لكن وبعبارة أخرى، فهذا يشبه آلية إرسال الإشارات. 1370 00:59:33,020 --> 00:59:35,750 يصيح أحدهم، ماركو وجميع الآخرين يستجيبون 1371 00:59:35,750 --> 00:59:38,180 لذلك البث لكلمة ماركو. 1372 00:59:38,180 --> 00:59:40,910 حسنًا، يتضح أننا نستطيع محاكاة هذا مع هاتين الدميتين. 1373 00:59:40,910 --> 00:59:43,550 هذا الفتى هنا-- لاحظوا أني سلطتُ الضوء على الدمية البرتقالية 1374 00:59:43,550 --> 00:59:45,350 نظرًا لوجود دمية زرقاء أخرى هناك. 1375 00:59:45,350 --> 00:59:46,220 النقوش المتحركة المنفصلة. 1376 00:59:46,220 --> 00:59:49,490 وهذه مجرد صور قمنا بتحميلها للعبة. 1377 00:59:49,490 --> 00:59:53,780 باستمرار، إذا تم الضغط على مفتاح المسافة، لذا إذا تم الضغط على شريط المسافة، 1378 00:59:53,780 --> 00:59:57,290 فقل ماركو لمدة ثانيتين ومن ثم قم ببث حدث. 1379 00:59:57,290 --> 01:00:02,350 وفي هذه الأثناء، يكون للدمية الزرقاء هنا كتلة بسيطة فائقة، 1380 01:00:02,350 --> 01:00:04,770 ولكن يختلف الأمر بشكل جذري عن تلك التي رأيناها. 1381 01:00:04,770 --> 01:00:07,580 فهو لا يبدأ عند النقر على العلم الأخضر. 1382 01:00:07,580 --> 01:00:10,730 إنه يبدأ فقط عندما يتلقى حدثًا. 1383 01:00:10,730 --> 01:00:13,470 لذا يتضح أن النقوش المتحركة وسكراتش لا يمكنها سماع أو رؤية 1384 01:00:13,470 --> 01:00:15,680 ما يقوله الطرف الآخر في فقاعات الحديث تلك. 1385 01:00:15,680 --> 01:00:17,420 يتوجب عليك استخدام تقنية أفضل، وهي 1386 01:00:17,420 --> 01:00:19,430 الكتلة الخاصة التي يُطلق عليها اسم بث، وهي 1387 01:00:19,430 --> 01:00:23,390 مثل تمرير ملاحظة رقميًا من نقش متحرك إلى آخر 1388 01:00:23,390 --> 01:00:26,210 يمكن للطرف الآخر قراءته أو تلقيه، إذا جاز التعبير. 1389 01:00:26,210 --> 01:00:28,430 لذلك فقط عندما يتلقى هذا الحدث، إذا جاز التعبير، 1390 01:00:28,430 --> 01:00:30,800 فهل ينطق بولو لمدة ثانيتين. 1391 01:00:30,800 --> 01:00:34,350 ومجددًا، ترسل الدمية البرتقالية تلك الرسالة السرية 1392 01:00:34,350 --> 01:00:35,810 فقط باستخدام قطعة اللغز الأخرى هذه. 1393 01:00:35,810 --> 01:00:40,530 قم ببث حدث، مثل تمرير ملاحظة لا يراها الشخص في الحقيقة. 1394 01:00:40,530 --> 01:00:45,410 لذا إذا ضغطتُ الآن على العلم الأخضر وضغطتُ على شريط المسافة، ستصيح الدمية البرتقالية قائلةً ماركو. 1395 01:00:45,410 --> 01:00:48,380 وتصيح الزرقاء قائلةً بولو ردًا عليها. 1396 01:00:48,380 --> 01:00:50,270 لكنّ لم يتم توقيت هاتين معًا. 1397 01:00:50,270 --> 01:00:53,690 وبدلاً من ذلك، سيسمع الفتى الأزرق باستخدام ما قاله البرتقالي، 1398 01:00:53,690 --> 01:00:58,740 مما يسمح للنقوش المتحركة المتعددة بالتواصل البيني فعليًا. 1399 01:00:58,740 --> 01:00:59,780 إذن كيف توصلنا لذلك؟ 1400 01:00:59,780 --> 01:01:02,930 حسنًا، فلنتذكر أننا لدينا جميع الكتل البنائية هذه منذ لحظة. 1401 01:01:02,930 --> 01:01:05,270 أولاً، بدأنا فقط بالوظائف والشروط 1402 01:01:05,270 --> 01:01:06,710 والتعبيرات المنطقية والتكرارات الحلقية. 1403 01:01:06,710 --> 01:01:09,040 لقد أضفنا الآن إليها القدرة على تخزين المعلومات 1404 01:01:09,040 --> 01:01:12,530 في متغيرات ومؤشرات ترابط للقيام بأشياء متعددة في وقت واحد، ومن ثم، إذا كانت لديك 1405 01:01:12,530 --> 01:01:14,840 أشياء متعددة تحدث، أو أحداث، يمكنهم 1406 01:01:14,840 --> 01:01:17,180 الدخول فيها للتواصل بطريقة ما. 1407 01:01:17,180 --> 01:01:18,530 ولكن كتلة بنائية أخرى. 1408 01:01:18,530 --> 01:01:21,620 لذلك إذا أخذنا الآن خطوة للوراء وفكرنا في 1409 01:01:21,620 --> 01:01:26,360 الكيفية التي يمكننا بها القيام بوظائف خاصة بنا، ستصبح لدينا القطعة الأخيرة 1410 01:01:26,360 --> 01:01:27,890 من اللغز، إذا جاز التعبير. 1411 01:01:27,890 --> 01:01:29,090 دعوني أمضي قدمًا وأفعل هذا. 1412 01:01:29,090 --> 01:01:33,500 دعوني أمضي قدمًا وأقوم بإنشاء برنامج بسيط، عند اقتصاص العلم الأخضر، 1413 01:01:33,500 --> 01:01:35,570 يحاكي باستخدامه ببساطة سعال قط. 1414 01:01:35,570 --> 01:01:40,760 لذا لن يقول هذا القط مرحبًا، ولكن سيسعل لمدة ثانية واحدة. 1415 01:01:40,760 --> 01:01:44,540 ومن ثم سيمضي قدمًا وينتظر لمدة ثانية واحدة. 1416 01:01:44,540 --> 01:01:48,200 ومن ثم سأمضي قدمًا وأنسخ، وألصق، كما فعلت في السابق-- 1417 01:01:48,200 --> 01:01:52,040 هذا هو أحد تلك الأمور التي يتم القيام بها كما أنطقها، وليس كما أفعلها-- لتنفيذ هذا البرنامج هنا، 1418 01:01:52,040 --> 01:01:54,170 حيث يسعل ثلاث مرات. 1419 01:01:54,170 --> 01:01:57,020 نحن نعلم بالفعل، بالرغم من ذلك، منذ وقت مبكر أن هذا ليس تصميمًا جيدًا. 1420 01:01:57,020 --> 01:01:59,430 لماذا؟ 1421 01:01:59,430 --> 01:02:00,520 إنك تكرر نفسك. 1422 01:02:00,520 --> 01:02:02,080 لا تكرر نفسك. 1423 01:02:02,080 --> 01:02:03,570 DRY هو اختصار "لا تكرر نفسك"، بالفعل. 1424 01:02:03,570 --> 01:02:05,320 لا تكرر نفسك لأنك تقوم 1425 01:02:05,320 --> 01:02:09,340 ثلاث مرات بفعل شيء ما تحتاج إلى فعله مرة واحدة فقط. 1426 01:02:09,340 --> 01:02:12,680 كان الحل قبل ذلك، بالطبع، هو مجرد استخدام تكرار حلقي من نوع ما. 1427 01:02:12,680 --> 01:02:14,230 لذا دعوني بالفعل أُخرج ذلك. 1428 01:02:14,230 --> 01:02:18,130 دعوني أستخدم كتلة تكرار، وأغيّر 10 إلى ثلاثة، 1429 01:02:18,130 --> 01:02:19,810 ثم أستخدم اثنتين فقط من هذه الكتل. 1430 01:02:19,810 --> 01:02:22,150 ولاحظوا بالفعل، أن هذا البرنامج مضغوط أكثر من ذلك بكثير. 1431 01:02:22,150 --> 01:02:27,040 والآن، إذا كنتُ أريد تغيير الثلاثة إلى 30 أو إلى 10 أو أي عدد، 1432 01:02:27,040 --> 01:02:28,550 فسأغير فقط قيمة بسيطة واحدة. 1433 01:02:28,550 --> 01:02:31,840 لا يتوجب عليّ إعادة كتابة الأشياء أو نسخها ولصقها أو حذفها. 1434 01:02:31,840 --> 01:02:33,820 يمكنني تحديث البرنامج بصورة أسهل بكثير، 1435 01:02:33,820 --> 01:02:39,370 والآن، سيحدث نفس الشيء بمجرد أن أسعل، وأسعل، وأسعل. 1436 01:02:39,370 --> 01:02:43,010 ولكن يتضح أن الأمر قد يكون لطيفًا إذا تم التجرد من هذا من الآن فصاعدًا، 1437 01:02:43,010 --> 01:02:43,510 أليس كذلك؟ 1438 01:02:43,510 --> 01:02:46,960 أنا فقط أريد أي برنامج أكتب عليه لأعرف كيف أسعل. 1439 01:02:46,960 --> 01:02:49,210 وفي الواقع السعال يصدر تحديدًا صوتًا ما، ربما 1440 01:02:49,210 --> 01:02:50,540 لعدة مرات. 1441 01:02:50,540 --> 01:02:53,110 ولكن يتضح أننا يمكننا تجريد هذا في التعليمة البرمجية. 1442 01:02:53,110 --> 01:02:55,930 دعوني أنتقل لأسفل إلى الكتل الخاصة بي هنا ويسمح لي هذا 1443 01:02:55,930 --> 01:02:57,710 بالنقر فوق هذا الزر--إنشاء كتلة. 1444 01:02:57,710 --> 01:02:59,440 ويسمح لي بالقيام بالوظيفة الخاصة بي. 1445 01:02:59,440 --> 01:03:01,120 وضعتُ نافذة الحوار هذه هنا. 1446 01:03:01,120 --> 01:03:03,850 وسأطلق بالتحديد على هذه الكتلة اسم سعال. 1447 01:03:03,850 --> 01:03:05,870 وسأمضي قدمًا وأنقر فوق موافق. 1448 01:03:05,870 --> 01:03:09,420 والآن، لدي هذه الكتلة الوردية الجديدة التي يمكن أن يكون بها كتل مندرجة تحتها. 1449 01:03:09,420 --> 01:03:10,840 وهل تعرف ما الذي سأقوم به؟ 1450 01:03:10,840 --> 01:03:12,410 سأقوم بالمضي قدمًا وأفعل هذا. 1451 01:03:12,410 --> 01:03:16,570 سأمضي قدمًا وأقول سعال أسفل ذلك. 1452 01:03:16,570 --> 01:03:20,260 والآن، لاحظ على اليسار، لديّ الآن حق الوصول إلى هذه القطعة الوردية الجديدة. 1453 01:03:20,260 --> 01:03:22,220 يمكنني الآن وضع هذا هنا. 1454 01:03:22,220 --> 01:03:26,470 إذن الآن، بالرغم من ذلك، نعم، هذه هي الكيفية التي يتم تنفيذ السعال بها 1455 01:03:26,470 --> 01:03:30,320 على الجانب الأيسر هنا، في المرة التالية، عندما أكتب برنامجًا، 1456 01:03:30,320 --> 01:03:31,960 فما عليّ إلا أن أرغب في أن أطلق اسم سعال. 1457 01:03:31,960 --> 01:03:34,630 ولا أهتم بتفاصيل التنفيذ على المستوى الأقل هذه. 1458 01:03:34,630 --> 01:03:36,460 أنا لا أهتم بالحفل أو أي من ذلك. 1459 01:03:36,460 --> 01:03:38,230 أنا أريد فقط أن يكون هذا تجريدًا. 1460 01:03:38,230 --> 01:03:40,510 ولكن يمكنني القيام بأفضل من هذا، ألن يكون 1461 01:03:40,510 --> 01:03:43,730 لطيفًا لو أنني بدلاً من مجرد تكرار السعال ثلاث مرات، 1462 01:03:43,730 --> 01:03:45,670 فماذا لو قمت بجعل ذلك ميزة للسعال؟ 1463 01:03:45,670 --> 01:03:46,760 لذا دعوني أقوم بهذا. 1464 01:03:46,760 --> 01:03:51,010 يمكنني المضي قدمًا والنقر بزر الماوس الأيمن فوق هذه القطعة الوردية ويمكنني تحريرها. 1465 01:03:51,010 --> 01:03:52,990 سيجلب ذلك نفس تلك النافذة التي ظهرت من قبل. 1466 01:03:52,990 --> 01:03:53,710 ونلاحظ هذا. 1467 01:03:53,710 --> 01:03:55,070 أضف مدخلاً. 1468 01:03:55,070 --> 01:03:58,210 إذن عندما أقوم بإنشاء كتلة مخصصة، فيمكنني في الواقع إنشاء كتل خيالية جميلة 1469 01:03:58,210 --> 01:04:01,570 تمامًا كتلك التي يقدمها لنا MIT مع البرنامج، 1470 01:04:01,570 --> 01:04:03,700 والآن، يمكنني تدوين شيء ما مثل n. 1471 01:04:03,700 --> 01:04:07,060 وإذا قمتُ بإضافة ملصق فقط لجعلها وصفية أكثر، فيمكنني فقط النطق لمرات. 1472 01:04:07,060 --> 01:04:09,040 إذن الآن، لقد أعددتُ قطعة لغز مخصصة خاصة 1473 01:04:09,040 --> 01:04:12,880 تقول سعال لعدة مرات، حيث n للعدد 1474 01:04:12,880 --> 01:04:16,340 هي فقط الانتقال للمتغير الذي يميل المبرمجون لاستخدامه. 1475 01:04:16,340 --> 01:04:24,260 إذن الآن، يمكنني بالفعل تحريك كتلة التكرار هذه في كتلة السعال نفسها، 1476 01:04:24,260 --> 01:04:26,290 ولكن بدلاً من الكود الثابت رقم 3، لاحظ هذا. 1477 01:04:26,290 --> 01:04:31,360 يمكنني استعارة هذا المتغير، والآن أقول سعال هذا العدد من المرات عن طريق 1478 01:04:31,360 --> 01:04:34,630 تكرار قول هذا مرارًا وتكرارًا. 1479 01:04:34,630 --> 01:04:39,880 والآن، عندما أسعل في برنامجي الفعلي، أقوم فقط بكتابة ثلاثة هنا. 1480 01:04:39,880 --> 01:04:42,350 لذلك لدي هذا التجريد الجميل الآن، إذا جاز التعبير. 1481 01:04:42,350 --> 01:04:45,490 قم بسعال هذا عدة مرات وأنا وليس أي شخص آخر في العالم 1482 01:04:45,490 --> 01:04:48,730 لا يحتاج مرة أخرى إلى الاهتمام بما يعني السعال لأننا بالفعل 1483 01:04:48,730 --> 01:04:50,330 نفذنا ذلك من قبل. 1484 01:04:50,330 --> 01:04:52,810 وهكذا فقط كما قدم معهد ماساتشوستس للتكنولوجيا لنا الكثير من الوظائف 1485 01:04:52,810 --> 01:04:54,940 التي لم يتعين علينا أنفسنا أنا نفكر فيها، بحيث يمكن 1486 01:04:54,940 --> 01:04:57,560 لي الآن جعل الوظائف التي لا يتيعن أن أفكر بشأنها. 1487 01:04:57,560 --> 01:05:00,340 وبينما نتقدم إلى لغات أعلى مستوى مثل C وJavaScript 1488 01:05:00,340 --> 01:05:02,800 وPython، وسنتابع هذه العملية، في بعض الأحيان 1489 01:05:02,800 --> 01:05:06,460 لحل المشكلات بأنفسنا عن طريق صنع قطع اللغز المعينة الخاصة بنا، 1490 01:05:06,460 --> 01:05:08,620 ولكن في كثير من الأحيان باستخدام أشياء تسمى المكتبات، 1491 01:05:08,620 --> 01:05:13,060 وهي رموز كتبها أشخاص آخرون قبلنا وهذا مفيد فقط لإنجاز المهمة، 1492 01:05:13,060 --> 01:05:16,970 مثلما فعل سكراتش هنا جزئياً لنا. 1493 01:05:16,970 --> 01:05:19,360 اسمحوا لي بالمضي قُدمًا، حينئذ، وجلب كل هذا 1494 01:05:19,360 --> 01:05:23,750 معًا عن طريق فتح هذا المثال الآخر هنا. 1495 01:05:23,750 --> 01:05:27,470 اسمحوا لي بالمُضي قُدمًا وفتح هذا، وهو شيء لم نراه، 1496 01:05:27,470 --> 01:05:31,330 لكنه نوع من لعبة تفاعلية مثل هذا عن طريق طالب سابق. 1497 01:05:31,330 --> 01:05:35,540 [MUSIC PLAYING] 1498 01:05:35,540 --> 01:05:36,790 هل من الممكن أن نحصل على تفاحة؟ 1499 01:05:36,790 --> 01:05:38,840 نعم. 1500 01:05:38,840 --> 01:05:40,240 رسم متحرك صغير. 1501 01:05:44,420 --> 01:05:44,920 حسنًا. 1502 01:05:44,920 --> 01:05:46,720 لم تكن نهاية جيدة. 1503 01:05:46,720 --> 01:05:47,770 لنجرب مجددًا. 1504 01:05:47,770 --> 01:05:49,660 تشغيل مرة أخرى. 1505 01:05:49,660 --> 01:05:51,960 ولاحظ أن كتلة القول تعمل. 1506 01:05:51,960 --> 01:05:54,250 يوجد نوع من كتلة السؤال. 1507 01:05:54,250 --> 01:05:56,730 كان الطالب يتحقق ما إذا كان الشخص قد كتب نعم أو لا. 1508 01:05:56,730 --> 01:05:57,730 دعونا نكتب لا هذا المرة. 1509 01:05:57,730 --> 01:05:58,600 لا أريد تفاحة. 1510 01:05:58,600 --> 01:05:59,100 أوه. 1511 01:05:59,100 --> 01:05:59,740 كاب كيك. 1512 01:05:59,740 --> 01:06:00,240 حسنًا. 1513 01:06:00,240 --> 01:06:00,890 نعم. 1514 01:06:00,890 --> 01:06:01,390 إدخال. 1515 01:06:06,790 --> 01:06:08,030 حسنًا. 1516 01:06:08,030 --> 01:06:09,660 لا تفعل هذا. 1517 01:06:09,660 --> 01:06:10,380 حياة أخرى. 1518 01:06:10,380 --> 01:06:10,880 ها نحن ذا. 1519 01:06:10,880 --> 01:06:13,200 [MUSIC PLAYING] 1520 01:06:13,200 --> 01:06:13,700 حسنًا. 1521 01:06:13,700 --> 01:06:15,590 لا أريد تفاحة. 1522 01:06:15,590 --> 01:06:16,160 لا أريد كاب كيك. 1523 01:06:18,950 --> 01:06:21,660 متغير صغير. 1524 01:06:21,660 --> 01:06:24,590 [SCREAMING] 1525 01:06:26,050 --> 01:06:28,970 [LAUGHTER] 1526 01:06:28,970 --> 01:06:29,470 حسنًا. 1527 01:06:29,470 --> 01:06:32,620 إذًا فزت باللعبة. 1528 01:06:32,620 --> 01:06:37,780 في لحظاتنا الأخيرة هنا، دعوني أتابع وأفتح مثالًا أخيرًا. 1529 01:06:37,780 --> 01:06:41,760 كما تعلمون، لا تُقدم CS50 في جامعة هارفارد فقط، ولكن في جامعة ييل، أيضًا، 1530 01:06:41,760 --> 01:06:43,810 لذلك يبدو مناسبًا الإنهاء بملاحظة أن 1531 01:06:43,810 --> 01:06:47,320 تباري حرم جامعي ربما في مواجهة الآخر عن طريق لعبة أخرى 1532 01:06:47,320 --> 01:06:50,110 والتي كتبها طالب سابق وتسمى Ivy's Hardest Game. 1533 01:06:50,110 --> 01:06:53,450 ولكن لهذا، أعتقد أننا في حاجة لمتطوع أخير ليصعد إلى هنا. 1534 01:06:53,450 --> 01:06:53,950 حسنًا. 1535 01:06:53,950 --> 01:06:54,590 اليد الأولى. 1536 01:06:54,590 --> 01:06:55,090 هناك بالضبط. 1537 01:06:55,090 --> 01:06:56,920 تعال. 1538 01:06:56,920 --> 01:07:00,140 إذًا في أصعب ألعاب رابطة جامعات Ivy، إنها لعبة تُمارس بلوحة المفاتيح. 1539 01:07:00,140 --> 01:07:02,980 وعلى الرغم من أنها قد تبدو ذات زخم بدرجة قليلة للوهلة الأولى، 1540 01:07:02,980 --> 01:07:06,310 تمامًا مثلما كان أوسكار تايم وتمامًا مثل الرسم المتحركة، 1541 01:07:06,310 --> 01:07:09,520 نُدرك أنك إذا قمت بتفكيكه في عقلك مفكّرًا بشأن 1542 01:07:09,520 --> 01:07:11,770 ما عليه تلك الكتل الفردية، يمكنك من المحتمل 1543 01:07:11,770 --> 01:07:13,190 تخمين ما هي قطع اللغز. 1544 01:07:13,190 --> 01:07:13,450 مرحبًا. 1545 01:07:13,450 --> 01:07:13,780 ما اسمك؟ 1546 01:07:13,780 --> 01:07:14,050 أندريا: مرحبًا. 1547 01:07:14,050 --> 01:07:14,610 أنا أندريا. 1548 01:07:14,610 --> 01:07:14,950 ديفيد مالان: أندريا. 1549 01:07:14,950 --> 01:07:15,440 ديفيد. 1550 01:07:15,440 --> 01:07:16,270 تشرفت بمقابلتك. 1551 01:07:16,270 --> 01:07:20,010 إليكِ لعبة Ivy's Hardest Game. 1552 01:07:20,010 --> 01:07:22,500 تضعك في مواجهة جميع كليات Ivy. 1553 01:07:22,500 --> 01:07:26,300 ثم بعد ذلك مباشرة سننتقل إلى الكاب كيك في جناح الكنيسة. 1554 01:07:26,300 --> 01:07:28,770 مستعدون؟ 1555 01:07:28,770 --> 01:07:31,480 [MUSIC PLAYING] 1556 01:07:31,480 --> 01:07:33,230 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1557 01:07:33,230 --> 01:07:36,690 MC HAMMER: (غناء) لا يمكنك المساس بهذا. 1558 01:07:36,690 --> 01:07:42,940 لا يمكنك المساس بهذا. 1559 01:07:42,940 --> 01:07:43,690 ديفيد مالان: رائع. 1560 01:07:43,690 --> 01:07:44,130 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1561 01:07:44,130 --> 01:07:46,440 MC HAMMER: (غناء) لا يمكنك المساس بهذا. 1562 01:07:46,440 --> 01:07:48,460 خاصتي، خاصتي، خاصتي، خاصتي. 1563 01:07:48,460 --> 01:07:50,250 الموسيقى خاصتي تؤثر فيك بقوة. 1564 01:07:50,250 --> 01:07:52,250 تجعلني أقول، يا إلهي. 1565 01:07:52,250 --> 01:07:55,740 أشكرك على نعمة العقل لنظم قافية واثنين من أوزان الضجيج. 1566 01:07:55,740 --> 01:07:57,650 إنه شعور جيد عندما تعلم أنك سيئ. 1567 01:07:57,650 --> 01:07:59,240 أنا فتى من مدينة أوكتاون يبيع المخدرات. 1568 01:07:59,240 --> 01:08:01,230 وأنا مشهور على هذا النحو. 1569 01:08:01,230 --> 01:08:04,230 ولا يمكنك المساس بهذا الإيقاع. 1570 01:08:04,230 --> 01:08:07,470 أخبرتك، يا فتى، لا يمكنك المساس بهذا. 1571 01:08:07,470 --> 01:08:07,970 أجل. 1572 01:08:07,970 --> 01:08:11,210 إليك كيف نحيا وتعلم أنه لا يمكنك المساس بهذا. 1573 01:08:11,210 --> 01:08:12,210 انظر إلى عيني. 1574 01:08:12,210 --> 01:08:14,710 يا رجل، لا يمكنك المساس بهذا. 1575 01:08:14,710 --> 01:08:15,620 [APPLAUSE] 1576 01:08:15,620 --> 01:08:17,370 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1577 01:08:17,370 --> 01:08:19,200 (يغني) أحذية وسراويل جديدة. 1578 01:08:19,200 --> 01:08:21,530 ستحصل عليها والآن تعلم أنك تريد أن ترقص. 1579 01:08:21,530 --> 01:08:23,520 لذا انهض من على مقعدك وتعرف على حسناء 1580 01:08:23,520 --> 01:08:25,680 وجارِ هذا الإيقاع وهو يتردد. 1581 01:08:25,680 --> 01:08:26,180 انتظر. 1582 01:08:26,180 --> 01:08:29,180 ارتفع وانخفض قليلاً وعرفني أن الأمر يسير على هذا المنوال. 1583 01:08:29,180 --> 01:08:30,170 على هذا المنوال. 1584 01:08:30,170 --> 01:08:31,670 ضعيف في مهمة فاسحبه إذن للخلف. 1585 01:08:31,670 --> 01:08:36,660 دعهم يعرفون أنك مبالغ فيك ولا يمكنك المساس بهذا الإيقاع. 1586 01:08:36,660 --> 01:08:40,650 أنت، لقد أخبرتك، لايمكنك المساس بهذا. 1587 01:08:40,650 --> 01:08:42,150 لماذا تقف هناك يا رجل؟ 1588 01:08:42,150 --> 01:08:43,150 لا يمكنك المساس بهذا. 1589 01:08:43,150 --> 01:08:44,650 أنت، رنّ الأجراس. 1590 01:08:44,650 --> 01:08:45,640 هنا المدرسة يا مغفل. 1591 01:08:45,640 --> 01:08:46,520 لا يمكنك المساس بهذا. 1592 01:08:46,520 --> 01:08:48,140 أعطني أغنية أو إيقاعًا. 1593 01:08:48,140 --> 01:08:48,890 تجعلهم يتعرقون. 1594 01:08:48,890 --> 01:08:50,130 هذا ما أحاول تقديمه لهم. 1595 01:08:50,130 --> 01:08:52,630 الآن هم يعرفون أنك عندما تتحدث عن هامر، 1596 01:08:52,630 --> 01:08:55,120 فأنت تتحدث عن عرض مزدحم وضخم. 1597 01:08:55,120 --> 01:08:58,120 المغنيون يتصببون عرقًا فأعطهم منديلاً أو شريطًا 1598 01:08:58,120 --> 01:09:01,390 لمعرفة ما سيحدث في التسعينات لرفع المبيعات. 1599 01:09:01,390 --> 01:09:02,810 ديفيد مالان: من المستوى الثاني للمستوى الأخير. 1600 01:09:02,810 --> 01:09:03,310 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1601 01:09:03,310 --> 01:09:05,970 MC HAMMER: (غناء) إما العمل الجاد أو قد تطرد. 1602 01:09:05,970 --> 01:09:10,810 كانت هذه كلمة لك لأنك تعرف أنك لا يمكنك المساس بهذا. 1603 01:09:10,810 --> 01:09:14,310 لا يمكنك المساس بهذا. 1604 01:09:14,310 --> 01:09:15,310 فسرها. 1605 01:09:28,310 --> 01:09:28,810 توقف. 1606 01:09:28,810 --> 01:09:29,810 إنه زمن هامر. 1607 01:09:29,810 --> 01:09:31,010 يقال، سر مع التيار. 1608 01:09:31,010 --> 01:09:33,350 إذا لم تتمكن من الاستمتاع بهذا، فأنت بالطبع ميت. 1609 01:09:33,350 --> 01:09:34,810 لذا لوح بيدك في الهواء. 1610 01:09:34,810 --> 01:09:35,810 قم ببعض الحركات. 1611 01:09:35,810 --> 01:09:37,260 مرر أصابعك عبر شعرك. 1612 01:09:37,260 --> 01:09:38,390 تحية للفائز. 1613 01:09:38,390 --> 01:09:40,310 ارقص على هذا الإيقاع، وستصبح أنحف. 1614 01:09:40,310 --> 01:09:41,310 تحرك. 1615 01:09:41,310 --> 01:09:42,310 حرك أردافك. 1616 01:09:42,310 --> 01:09:45,810 لدقيقة واحدة فقط، فلنقم جميعًا بالتمايل، التمايل، التمايل. 1617 01:09:45,810 --> 01:09:46,810 أجل. 1618 01:09:46,810 --> 01:09:49,310 لا يمكنك المساس بهذا. 1619 01:09:49,310 --> 01:09:50,310 انظر يا رجل. 1620 01:09:50,310 --> 01:09:52,310 لا يمكنك المساس بهذا. 1621 01:09:52,310 --> 01:09:54,310 من الأفضل أن تشعر بالضجيج يا فتى، لأنك تعرف-- 1622 01:09:54,310 --> 01:09:56,180 [CROWD YELLING] 1623 01:09:56,180 --> 01:09:57,930 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1624 01:09:57,930 --> 01:10:00,310 (الغناء) فسرها. 1625 01:10:00,310 --> 01:10:04,310 ديفيد مالان: [INAUDIBLE] 1626 01:10:04,310 --> 01:10:05,100 أندريا: [INAUDIBLE] 1627 01:10:05,100 --> 01:10:05,760 ديفيد مالان: لا. 1628 01:10:05,760 --> 01:10:06,310 لا بأس. 1629 01:10:06,310 --> 01:10:09,810 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1630 01:10:09,810 --> 01:10:10,810 حياة أخرى. 1631 01:10:10,810 --> 01:10:11,310 [MUSIC - MC HAMMER, "U CAN'T TOUCH THIS"] 1632 01:10:11,310 --> 01:10:12,390 MC HAMMER: (SINGING) قف. 1633 01:10:12,390 --> 01:10:12,920 إنه زمن هامر. 1634 01:10:18,420 --> 01:10:19,380 ديفيد مالان: حسنًا. 1635 01:10:19,380 --> 01:10:21,210 صفقوا بحرارة لأندريا، إذا أمكن. 1636 01:10:21,210 --> 01:10:23,950 [APPLAUSE] 1637 01:10:23,950 --> 01:10:25,830 حسنًا. 1638 01:10:25,830 --> 01:10:27,600 هذا كل شيء عن CS50. 1639 01:10:27,600 --> 01:10:28,950 راجعوا موقع الويب للحصول على التفاصيل. 1640 01:10:28,950 --> 01:10:31,090 سنراكم في جناح الكنيسة لتناول الكعك. 1641 01:10:31,090 --> 01:10:32,940 مرحبًا بكم معنا.