[MUSIC PLAYING]
المتحدث 1: حسنًا، هذه هي دورة CS50، وهذه هي النهاية، للأسف،
حيث سننهي الفصل الدراسي وسنلقي نظرة على ما مضى في الأسابيع القليلة الماضية،
وسنلقي نظرة على ما هو قادم في الأسابيع القليلة المقبلة،
ومن ثم السنوات القليلة القادمة بالفعل، وكيف يمكنكم المضي قدمًا إلى حد ما،
إلى ما بعد دورة CS50، باستخدام عجلات التدريب الشهيرة التي اكتمل إعدادها تمامًا.
وهكذا حتى بدون أدوات مثل CS50 IDE وCheck 50،
وHelp 50، وأدوات أخرى من هذا القبيل، فأنتم في الواقع
تشعرون أنه يمكنكم تطبيق كل هذه الدروس المستفادة، وجميع هذه الأدوات
التي جربتموها في دورة CS50 على أجهزة Mac والكمبيوتر الشخصي لديكم في العالم الحقيقي.
لكنني أعتقد أنها ربما ستكون مفيدة أو مريحة، خاصة
في أعقاب العديد من مجموعات المشاكل، فبعضها تحدي خاص،
واختبار أخير هنا في الحرم الجامعي، لنفكّر مجددًا فقط في هذا المستأجر هنا.
ونحن نعني ذلك.
وتدركون ما إذا كنتم تشعرون بعدم الارتياح قليلاً تجاه
ما تبقى للأسابيع القليلة القادمة، ذلك
ما يهم في نهاية المطاف في هذه الدورة وهو بشكل كبير ليس
حيث ينتهي بكم المطاف مقارنة بزملائكم في الصف الدراسي،
ولكن حيث سينتهي بكم المطاف في الأسبوع 10، وهو اليوم، مقارنة بحالكم
في الأسبوع صفر، منذ حوالي 10 أسابيع.
إذن كان ذلك ادعاء جريئًا فقط، بعيد المنال في ذلك الوقت.
ولكنكم قد وصلتم إلى خط النهاية، حيث كل ما تبقى
هو ذلك المَعلم النهائي، حيث لا توجد مواصفات.
لن يتم إخباركم ما الذي يتعين عليكم فعله، ولكن ستقومون بالتصميم والتنفيذ بأنفسكم.
وفكّروا أيضًا أنه، على مدار الأسابيع القليلة الماضية،
كانت احتمالات هي أن معظمكم لم يشعر حقًا بأنه ثبّت أقدامه على الإطلاق، مثل أي وقت مضى.
تمامًا كما لو أنكم بدأتم باستيعاب شيء ما، وقمنا بسحب البساط إلى حد ما
من تحت أقدامكم، أو طلبنا منكم التقدّم خطوة أخرى معرفيًا،
وفهم شيء جديد في الواقع.
حسنًا، هذا الأمر يشبه إلى حد كبير تصميم ذلك.
كنتُ أحاول التفكير في الاستعارات أمس.
وإذا كنتم تمارسون رياضة رفع الأثقال أو شيء من هذا القبيل، والتي لا أمارسها،
أفترض أن التناظر هنا قد يكون أنكم
تمارسون رفع الأثقال إلى حد ما وشخص ما
يواصل وضع المزيد والمزيد من الوزن على الشيء حيث تصبحون أفضل وأفضل.
وهكذا في الواقع لن تشعروا أبدًا بالضرورة
أنكم تحرزون تقدمًا، لأن الأمر لم يكن سهلاً أبدًا.
ولكن هذا فقط لأن الوزن على أي من الطرفين،
لذلك تم إخباري، أنه تتم الإضافة إليه والإضافة إليه.
وأنا أعني ذلك أكاديميًا بشكل أكبر هنا أيضًا،
هو أنه بمرور كل أسبوع، نبدأ
آملين بأنكم اعتدتم بشكل منطقي على ما كان في الأسبوع الماضي،
حتى يمكننا قيادتكم لتحقيق المزيد في تلك الرحلة.
وربما الأمر الأكثر إثارة هو في الواقع أنه منذ 10 أسابيع، من المحتمل أن الكثير منكم
وجدوا ذلك صعبًا، أليس كذلك؟
من المحتمل أن الأمر لم يكن صعبًا على الذاكرة كم دقيقة، أو ساعة،
أو بضعة أيام استغرق الأمر للحصول فقط على ماريو، إذا جاز التعبير--
وماريو ليس حتى في الصورة--
لصعود هذا الهرم بعض الشيء فقط باستخدام علامات التجزئة.
وبصراحة، منذ أسبوع فقط، هل قمتم جميعًا
بإنشاء هذا، CS50 finance، حيث يحتوي على واجهة خلفية تم تنفيذها
في Python، ويقوم بإنشاء HTML وCSS بشكل ديناميكي،
وكان يتحدث إلى واجهة أمامية، وهي تم إنشاؤها في حد ذاتها
باستخدام لغات جانب العميل، مثل HTML، وCSS، وJavaScript،
وتتحدث في الوقت نفسه إلى API، عبر HTTP، الذي قام بجلب البيانات من مصدر
خارجي.
هذا حيث أنتم الآن.
وهكذا حتى إذا لم تشعروا بنسبة 100٪ أنه يمكنكم إنشاء ذلك من سكراتش،
وهذا جيد، في الواقع ما قام به العديد من الطلاب لمشروعهم النهائي هو
البدء بشيء مثل Pset8، وإزالة كل أمور finance المحدّدة،
ومن ثم البدء بإضافة أفكارنا الخاصة، وأفكار أخرى،
وتعليمتها البرمجية الخاصة، لاحظوا فقط ما هي Delta بالفعل.
وهذا ما نعنيه بـ Delta هذه بين الأسبوع صفر والأسبوع 10.
لقد تلقيتُ، فقط هذا الأسبوع الماضي، في الواقع، بريدًا إلكترونيًا
من أحد زملائكم في الصف الدراسي، والذي اعتقدتُ
أنه كان يعكس بشكل رائع كيف كانت تجربتَه.
وأتفق تمامًا مع هذه الفكرة لأنه لم يثبّت أقدامه تمامًا،
لقد كتب هذا، "إلى جانب تعلّم المادة الجديدة،
شعرتُ أنني بدأتُ أعتاد على كوني
لستُ مستريحًا وعلى ما يرام بشأن العمل على إنشاء مهارة،
بدلاً من الحصول على الإجابة الصحيحة. "
هذا اقتباس قد ترونه إلى حد ما
في على سبيل المثال كتيب هارفارد أو أي شيء، لكنه مثل، إنه صحيح بالفعل،
فكرة أن تكون معتادًا أن تكون غير معتاد هذه هي المُعضلة إلى حد كبير.
وبصراحة، لن تقوموا حقًا بتثبيت أقدامكم في هذا العالم.
لأنه بصراحة، كل شيء تعلمناه للتو في هذا الفصل الدراسي الماضي
سيتطور، ابتداءً من الغد، وفي السنوات القادمة.
ولكن آمل أن، ما قمنا به في الصف الدراسي،
باختيار لغات معينة، بعض من اللغات الأكثر توظيفية، كلغة C،
وSQL، والآن Python، حتى على الرغم من أن تلك اللغات تطور نفسها،
أو تصبح أقل استخدامًا، مبادئ إدارة الذاكرة،
وبنية البيانات، والمقايضات، والتجريد، والتغليف، كل
تلك المبادئ، لن تختفي.
أنا أعتقد أن، هذه هي الميزة بالبدء بما يُسمى من الصفر.
لم يمضي وقت طويل منذ كنا نتحدث عن الأصفار والواحدات.
إذن أنتم لستم مهندسي برامج فقط، أنتم
علماء كمبيوتر، أو علماء الكمبيوتر مبتدئون،
لأنه لديكم تلك النماذج العقلية التي
يمكن تطبيقها على أي تقنيات جديدة أو مجالات
توجد على الطريق.
وإذا كانت مريحة أيضًا، حتى إذا شعرتُ بهذه الطريقة.
على سبيل المثال، لا أشعر أنني أتقنتُ دورة CS50 أو جميع المواد الواردة فيها.
يخالجني شعور بأن هذا إلى حد ما مثل ذلك الرسم البياني الذي رسمناه،
الذي كان ذلك الخط الأخضر المنحني، حيث يبدو،
لحسن الحظ، أنني أحرز دائمًا بعض التقدم إلى الأمام،
ولكنني لم أصل أبدًا في الواقع إلى ذروة أي شيء،
لأن هناك دائمًا شيء جديد لنتعلمه.
وهذا أمر مخيف أيضًا.
وفي الواقع، أكثر مثال ذي صلة بمسألة
أن تكون معتادًا وغير معتاد، أو ربما لو في حالتي،
أن تكون معتادًا أو غير معتاد، كان ذلك منذ بضع سنوات.
لسنوات عديدة، استخدمت دورة CS50 لغة تُسمى PHP لجزء برمجة
الويب من الدورة.
وفي نهاية المطاف، بصفتنا طاقم العمل، قررنا أن الوقت قد حان للانتقال
إلى Python، التي تحتوي على عدد من الميزات.
من بينها، قابلية التطبيق في العالم الحقيقي.
ويمكن استخدامها بشكل أكثر فعالية لبرامج سطر
الأوامر، وعلم البيانات، وتحليلات البيانات، وبدت فقط أنه قد حان وقتها.
ما أريد إيضاحه أنني لم أكن أعرف Python.
وهكذا بدت هذه أنها فكرة رائعة، من الناحية الفلسفية إلى حد ما،
هذا الصيف، نعم، سنقوم بتعليم Python هذا الخريف.
ثم جاء شهر أكتوبر، وأدركتُ،
أوه، ستأتي Python في غضون أسبوع أو أسبوعين، ربما يجب أن، ونحن هنا، أعني أنا،
ربما يجب تعلّم Python.
وهكذا خلال الفصل الدراسي بأكمله، كنتُ أتعلم،
وكنا نعيد تمهيد الطريق كلما مضينا.
وأُقسم أنه، إذا نظرتم مجددًا إلى مقاطع الفيديو من السنوات القليلة الماضية،
بدت محاضرة Python أنها أطول محاضرة لدينا.
لأنني كنتُ عازمًا للغاية على أن أثبت للجميع أنني كنت أعرف Python
خلال تلك المرحلة في الفصل الدراسي.
إذن ربما الأمر مبالغ فيه قليلاً.
ولكن أقول هذا فقط لأوكد لكم أن أيًا منا
حتى أذكى زملائكم في التدريس ومساعدو الدورة التدريبية، الذين
كنتم تتفاعلون معهم هذا العام، وأنا شخصيًا، مثل أيًا منا
لن أتوقف عن التعلم أو أتوقف عن كوني غير معتاد قليلاً على هذه الأمور.
إذن حتى إذا كنتم تشعرون مثل، يا للدهشة، لم أستوعب كل شيء تمامًا في هذا الفصل الدراسي،
فلن تستوعبوا ذلك أبدًا، لأننا لم نفعل ذلك أيضًا.
لذلك خذوا هذا الأمر على محمل الجد إذا أمكنكم ذلك.
قبل أن أمضي قدمًا-- أوه، في الواقع، اعتقدتُ أنني ذكّرتكم،
بأن لا تطلعوا لإنشاء هذا، على سبيل المثال، الخلفيات
المعكوسة لم تعد رائجة منذ وقت طويل، طويل للغاية.
ولكن هذا كان المثال الأول ليّ لبناء شيء ما، أو محاولة
حل مشكلة ، حيث لم يكن لديّ أي فكرة عن كيفية القيام بذلك.
CS50 في ذلك الوقت لم تقم بتدريس برمجة الويب.
CS51 في ذلك الوقت لم تقم بتدريس برمجة الويب،
لم تقم بتدريس لغة Perl، أو ملفات CSV، أو المقوّمات التي
كنت بحاجة إليها نوعًا ما لإنشاء هذا، أو حتى HTML أو CSS لذلك--
في الواقع، لم تكن هناك CSS في ذلك الوقت، أو حتى HTML.
وهكذا بالنسبة لي، أيضًا، كان هذا مثالًا على أن تكونوا
معتادين أو غير معتادين، فقط تطوعًا سأقوم بإنشاء موقع
Frosh I Ams، ومن ثم أُحول وجهتي إلى رفيقي في السكن،
وأقول، كيف يمكنني إنشاء موقع Frosh I Ams،
وأُصبح معتادًا على تلك الفكرة فقط.
ستكتشفون ذلك.
وبصراحة، مفتاح السر هو أن تحيطوا أنفسكم فقط
بأشخاص أكثر ذكاءً، ودهاءًا حقًا، الذين يعرفون الطريق أكثر منكم،
الذين هم أكثر اعتيادًا عنكم، حتى تتمكنوا من الاستناد على أكتافهم
والتعلم منهم على طول الطريق.
وفي الواقع، دعوني أتوجه بالشكر، قبل أن نمضي قدمًا، فقط إلى عدد قليل
من الأشخاص سواء رأيتموهم أم لا،
خاصة هؤلاء مَن هم خلف الكواليس هنا اليوم،
مايك، ولوك، وخوسيه، وتوم، الذين، المعنيّين بخدمات وسائط الإعلام،
قد ساعدونا في كل هذه الأمور الرائعة خلال العام الماضي.
فريق إنتاج CS50، دان وتارا، وإيان، وأندرو، بعض الأشخاص
الجُدد هذا العام.
وأعلم أنه تم إلقائهم في النيران.
ترون واحدًا منهم أيضًا، ماكس، الرجل الذي يضع الكاميرا على رأسه بطريقة مريبة
هنا اليوم-- أوه، حسنًا، وهو ليس موجودًا في الوقت الحالي
في فريق الإنتاج لدينا أيضًا، ساعد الجميع في فهم هذا.
وسترون أيضًا، حتى في هذا العالم، من مقاطع الفيديو المتأثر بالبرامج،
هذه الكاميرا الأخرى هنا، التي فقط تنتقل ذهابًا وإيابًا،
من اليسار إلى اليمين طوال الفصل الدراسي، التي يتم التحكم بها أساسًا من قِبل وحدة تحكم PS4،
عبر البرنامج وعبر اتصال Wi-Fi أيضًا.
إذن أتوجه بالشكر للفريق على تسهيل العديد من التجارب التي قمتم بها
جمعيها هنا عبر الإنترنت.
وبالطبع، هناك فريق كامل أكبر
يقوم بتدريس الصف الدراسي، ومساعدو الدورة التدريبية، ورفقاء التدريس، والمعلمون لدينا،
ورؤساء الصف الدراسي، الذين بدونهم ما كان يمكنني فعل ذلك بالتأكيد.
هذه هي أسماؤهم كلها هناك، مُصطفة فوق بعضها البعض.
وربما إذا أمكننا ذلك، وسندعهم يعلمون
من خلال تشغيل الفيديو المُقدّم لهم، بتقديمنا عاصفة من
التصفيق الذي حصلوا عليه هنا في المحاضرة لشكرهم على وقتهم
معنا هذا العام.
إذا أمكننا ذلك.
[APPLAUSE]
على وجه الخصوص، ربما قد لاحظتم الملاحظات
الموجودة على موقع الدورة على الويب، عادة بعد بضعة أيام
من المحاضرة.
وهذا كله بفضل زميل التدريس
السابق، تشانغ غونغ، الذي تخرج منذ بضع سنوات في علوم الكمبيوتر،
وقد تابع بصورة رائعة مشاهدة أشرطة الفيديو،
لبضع ساعات، عادة، بعد بثها، وذلك لتوفير
مجموعة من الملاحظات المتعارف عليها لكم، حتى لا ترهقوا أنفسكم،
بخفض رؤوسكم، وتدوين كل شيء.
سيستمع تشانغ، بالتالي، وينصت إلى هذه الكلمات نفسها.
وبالتالي، قد تم إخباري أن أقول فقط ما كان يقوله الشخص
الرائع تشانغ، وكيف لن نتمكّن من تقديم الدورة بشكل جيد بدونه،
ونقدر للأبد حقًا جميع مساهماته في CS50،
وأنه يشكل إضافة رائعة لأي شركة تقنية في الخارج.
إذن، شكرًا لك.
شكرًا لك، يا تشانغ، أيضًا.
[APPLAUSE]
ودعوني أستدعي بعضًا من الأشخاص
على وجه الخصوص، طالبين من طلابنا الجامعيين، الذين هم من بين أكثر المشاركين
في الدورة، خلف الكواليس وأمامها.
يقوم واحد منهم بعملية ترجمة الدورة إلى اللغة الإسبانية
معنا، وبذلك يمكننا جعلها متاحة ليس فقط للطلاب هنا،
ولكن أيضًا محليًا للأشخاص في أي مكان آخر في العالم لمَن
تعد اللغة الإنجليزية هي لغته الثانية، أو حتى، اللغة الثالثة.
وبالتالي، فإن جوانب اللغة الإنجليزية للصف الدراسي على الرغم من،
كونها مقررات تعليمية مفتوحة، فهي مجرد عقبة لا داعي لها،
من حيث البرامج، والمحتوى، وما إلى ذلك.
وهكذا، في الواقع، فكرتُ في أن أقدّم لكم لمحة عن
ما قامت به فيرونيكا إحدى أفراد طاقم دورة CS50 خلال الأشهر القليلة الماضية.
على سبيل المثال، وهذا هو ما ينتظره الطلاب على الإنترنت قريبًا،
حيث سيتناولون، بأنفسهم، تمامًا كما ساعدتنا مايلا هنا باللغة الإنجليزية، ماريو،
على سبيل المثال.
فيرونيكا: [SPEAKING SPANISH]
المتحدث 1: أتوجه بخالص الشكر للأشخاص الآخرين خلف الكواليس، ربما قابلتم
بعض منهم، آرون، وغريغ، ودوغ، ومن ثم عضو واحد آخر
من رؤساء الدورة، الذي للأسف، سيتخرج هذا الربيع المقبل.
طرح براين يو حرفيًا سؤالاً في مكتبي منذ بضع سنوات.
وتناقشنا بشأن ما إذا كان يمكنه
المشاركة بشكل ما في الدورة.
والآن هنا، بعد ثلاث سنوات أو نحو ذلك، قضى شهور الشتاء معنا،
وشهور الصيف معنا، ويدير العرض بصورة كبيرة الآن.
وبصراحة، من بين جميع رؤساء زملاء التدريس لدينا، جميعهم
رائعون، ولكن هناك حقًا شيء مميز حيال براين يو.
وبصراحة، في كلمة واحدة، إنه استثنائي.
وفكرتُ في ما سنقوم به، كتعبير عن الشكر لطاقم العمل،
وكدعوة لكم جميعًا، هو التفكير في التقدّم بطلب للانضمام لنا كرفقاء تدريس،
كمساعدو الدورة التدريبية، كمصور، كمنتج، أي عدد من الأدوار
التي يتقلدها الفريق هنا، حيث قمنا بتصويرها مسبقًا، وذلك بفضل فريق إنتاج
CS50، وبفضل كونور دويل إحدى أفراد طاقم CS50، وطالب جامعي،
اللذان وضعا معًا الفيلم التالي الذي قدّمه براين لنا بشكل جميل.
وبعد ذلك سنلقي نظرة سريعة على متطوعينا السابقين
الذين ظهروا في المحاضرات الماضية هنا على خشبة المسرح، يوم
اللغز الخاص بدورة Cs50، والمزيد، كنوع من التفكير في المكان الذي
جئتم إليه خلال العام الماضي.
إذا أمكننا تخفيف الأضواء مجددًا.
[PIANO MUSIC]
[MUSIC PLAYING]
(SINGING) وهو باب مفتوح.
و[INAUDIBLE]
[MUSIC PLAYING]
(SINGING) ساعدني، لا تخذلني.
يمكنني أن أتعلم منك، يمكنني أن أتعلم منك.
ساعدني، لا تخذلني.
يمكنني أن أتعلم منك.
لذلك إذا أمكننا، التصفيق بشدة مجددًا لطاقم العمل.
[APPLAUSE]
إذن دعونا نلقي نظرة سريعة على ما مضى ومن ثم على
ما كان يعنيه الأمر قبل 10 أسابيع، عندما مزقنا، وكنتُ في الواقع أفكر فقط،
أننا ربما كان يجب علينا إضافة مقطع الشكل الإيمائي إلى ذلك الجزء من الفيديو هنا،
لقد قمنا بتمزيق دليل الهاتف هذا إلى نصفين وبدأنا مناقشتنا
حول التفكير الحاسوبي وكل الأشياء بعد ذلك.
وما نأمل القيام به بهذه النظرة السريعة،
هو مجرد تذكيركم فقط إلى أي مدى قد وصلتم، حقاً،
وللتذكير نوعًا ما بمدى الأمل الذي يبعثه أن يتزامن ويمتزج عدد
من هذه الموضوعات مجتمعة.
إذن كان هذا هو علم الكمبيوتر، أليس كذلك؟
في الأسبوع صفر، اقترحنا هذا الصندوق الأسود، الذي اتضح لنا أنه عبارة عن خوارزميات.
وكانت لدينا مدخلات ومخرجات.
كنا بحاجة لتمثيل تلك المدخلات والمخرجات، وبالتالي
تم إنشاء الأصفار، والواحدات، والنظام الثنائي.
ومن هناك، تحدثنا حول المستوى الأعلى من التجريدات،
بالحديث عن الكيفية التي قد يكون لديكم بها أرقام عشرية أو حروف من الأبجدية، ASCII
وUnicode، الرقم 65، يمثل الأمر نفسه هناك،
فالنمط نفسه من وحدات البت ربما كان يمثل شيئًا ما كنقطة،
أو وحدة بكسل باللون الأصفر.
إذا كانت لديكم مجموعة كاملة من تلك النقاط أو وحدات البكسل،
فقد يصير لديكم وجه باكٍ من الفرحة.
وإذا كانت لديكم صور متعددة كتلك،
فقد يكون لديكم رموز مشاعر متحركة أو مقاطع فيديو، بشكل أعمّ،
والتي هي مجرد تجريد آخر يُضاف إلى ذلك.
وهكذا، عندما تخرجون إلى العالم الحقيقي الآن، بعد دورة CS50،
وترون تقنيات جميلة وجديدة للغاية،
فما عليكم سوى البدء في نقدها في عقولكم.
وراعوا، جيدًا، أني أعلم كيف يتم إعداد تلك الميزة،
وأعرف كيف تقوم هذه الميزة بتنفيذ تلك الميزة.
الاحتمالات هي، أنكم بإمكانكم إجراء هندسة عكسية في عقولكم للكيفية التي
تعمل بها العديد من التقنيات الحالية، وذلك تحديدًا بإنشاء
خطوات رجوع إلى تلك المستويات الأقل.
وبعد ذلك قمنا بتقديم الأكواد الزائفة، لذا فقد أمكننا
الحديث عمّا كان الأمر يعنيه لتعبّروا عن أنفسكم
بطريقة أكثر عناية، أكثر منهجية.
وقدمنا حلقات التكرار، والشروط، والمتغيرات،
والمستأجرين الآخرين من هذا القبيل، والتي قمنا بترجمتها بعد ذلك،
في نهاية المطاف إلى لغة أخرى.
كما تحدثنا ليس عن صحة الأسلوب، ولكن عن الكفاءة.
لذلك فلديكم نموذج عقلي لمدى جودة التعليمة البرمجية، أو الخوارزمية،
أو الفكرة الموجودة لديكم في النهاية على وجه التحديد.
ومن ثم قمنا بتقديم لغة سكراتش، حتى يتسنى لكم
الحصول على وسيلة، وإن كانت بشكل رسومي، للتعبير عن
كل هذه المكونات المتنوعة، بواسطة برمجة سكراتش لأعلى ولأسفل،
ويمينًا ويسارًا.
بالطبع، أصبحت الأشياء مخيفة للغاية، أو قبيحة، وسريعة للغاية.
ثم انتقلنا إلى لغة C، عندما بدأت الصورة الأبسط لجملة "Hello world،"
فجأة ودون مقدّمات، أن تبدو كذلك.
الاحتمالات هي، أنكم في الأسبوع الأول، إذا لم تكونوا قد شاهدتم مطلقًا أي لغة
برمجة من قبل، بغض النظر عن لغة C، فإن معظم تلك السطور
لم تكُن تبدو مألوفة، ربما باستثناء "Hello world،"
ولكن حتى ذلك الشيء كان متبوعًا بتسلسل n/ عشوائي ما.
وكل ما في الأمر أننا قمنا، كما نأمل، على مدار الأسابيع العديدة الماضية بالتفريق.
وذلك، بالطبع، تم تحويله برمجيًا إلى أصفار وواحدات،
والتي يفهمها الكمبيوتر فقط.
ولحسن الحظ، نحن البشر نعيش في عصر
لا داعي فيه للقلق بشأن ذلك المستوى، أو أنّ عددًا قليلاً نسبيًا
منا يفعل ذلك، نظرًا لأن لدينا عمليات تجريد، ومكتبات،
وتطورات أخرى تُضاف إليها.
في الأسبوع الثاني، قمنا بعد ذلك بتقديم جوانب أخرى من البرمجة،
والدوالّ، وقيم الإرجاع، وما شابه.
وتحدثنا أيضًا حول ما يحدث في الواقع خلف الكواليس.
فالتعليمة البرمجية، كهذه هنا، على سبيل المثال، يتم تحويلها برمجيًا
غالبًا إلى ملفات متعددة، ملفات CS50 ونظام iOS القياسي وتعليمتكم البرمجية،
ثم يتم ربطها جميعًا معًا.
ولكن هناك أيضًا، ذلك الذي تحصلون عليه مجانًا،
إذا جاز التعبير، من خلال تشغيل محول برمجي مثل Clang، وإن كان ذلك مرارًا
وتكرارًا، وقتما تقومون بإجراء تغيير على تعليمتكم البرمجية.
قمنا بتقديم مفهوم الذاكرة، وهي عبارة عن شريحة صغيرة
قد تكون في جهاز الكمبيوتر لديكم.
وإذا قمنا بتقريب الصورة على تلك الذاكرة، فإنها تمثل بالفعل
هذه اللوحة الفنية الجميلة والبسيطة من وحدات البت تحديدًا، من الأعلى إلى الأسفل،
ومن اليسار إلى اليمين، والتي يمكنكم فعل أي شيء تريدونه باستخدامها.
تمامًا كذلك.
على الرغم من كل ما يبدو من تعقيد في جهاز الكمبيوتر،
فتلك هي اللوحة الفنية التي يجب عليكم العمل باستخدامها.
وتلك الذاكرة كانت تتيح لنا القيام بأي عدد من بنيات البيانات
والخوارزميات على رأسها.
على سبيل المثال، في الأسبوع الثالث، تحدثنا عن السلاسل.
وكانت فكرة السلاسل مباشرة للغاية.
ربما لم تسمعوا بالكلمة مبدئيًا
في سياق البرمجة، ولكنها مجرد سلسلة من الأحرف،
ككلمة، أو عبارة، أو جملة، أو مثل ذلك.
ثم أصبحت الأمور مخيفة مجدّدًا بسرعة، عندما قلنا،
أن تلك الأشياء كانت كذبة بيضاء إلى حد ما، والتجريد،
بشكل مناسب أكثر، هو على رأس المؤشرات.
بالطبع، أصبحت المؤشرات نفسها مخيفة قليلاً بسرعة.
وحتى بالنظر للماضي، ربما ما تزال تبدو مخيفة.
وذلك جيد.
وفي الواقع أن معظمكم لن تتسنى له فرصة للبرمجة في لغة C مجدّدًا.
فالفرص الوحيدة المتاحة لديّ تكون عامةً في شهري سبتمبر وأكتوبر من كل عام،
عن نفسي، لأنني في العالم الحقيقي، لا أميل إلى استخدام هذه اللغة،
على الرغم من أنها ما تزال شعبية وشائعة الاستخدام للغاية،
خصوصًا في االسياقات القائمة على الأجهزة، حيث تريدون حقًا
استخراج أكبر قدر ممكن من الأداء للأجهزة،
ولا تريدون بالضرورة أعباء إضافية للغة ذات مستوى أعلى،
مثل Python.
لكن ما يهم هو تلك المبادئ فقط.
والحقيقة أنكم بإمكانكم وضع الأشياء في الذاكرة، ويمكنكم الانتقال هناك،
ويمكنكم نقلها.
هذا كل ما تفعله هذه الصيغة المجنونة لنا.
بالطبع، لم ينتهِ الأمر بشكل جيد لبينكي، عندما أسأتم استخدام ذلك.
وفي الواقع، إن الكثير من أخطاء البرمجة اليوم، حتى
تلك التي ما تزال موجودة معنا اليوم، تقلل من إساءة الاستخدام أو لمس الذاكرة بطريق الخطأ
الذي يجب ألا تفعله.
ولكن بمجرد حصولك على هذا الطراز، هذه القدرة على تجميع الأشياء معًا في الذاكرة،
ثم يمكنك البدء ببناء الأشياء في البرنامج.
لقد قدمنا Structs، في C، والتي تتيح لنا إعداد أنواع البيانات المخصصة الخاصة بنا
والتي تحتوي على أشياء متعددة بداخلها.
وبمجرد الانتهاء من ذلك، إذا كان أحد هذه الأشياء
هو نفسه مؤشر إلى شيء آخر، فيمكنكم
تجميع الأشياء معًا في الذاكرة،
مما يتيح لكم الوصول إلى القوائم المرتبطة، والتي تحل المشكلات عندما
يتعلق الأمر بحدود المصفوفات.
ويمكنكم القيام بأشياء رائعة مثل جداول علامات التجزئة، التي قد تبدو من الناحية النظرية
بمظهر تصويري كهذا، أو حتى الثلاثية المجنونة،
والتي هي فعّالة أكثر من االناحية النظرية،
إنها تستهلك مساحة أكبر بكثير.
لكن هذا كل شيء.
باستخدام المؤشرات، كل ما تفعله هو تجميع بينات البيانات هذه
معًا.
وعلى الرغم من أن معظم اللغات أعلى من C، مثل Python، وJava، وPHP،
وRuby، لا تحتوي على مؤشرات في حد ذاتها، إنها
ما تزال تحتوي على فكرة العناوين أو المراجع.
لذا فالمفهوم موجود، لقد جعلت الأمر أسهل قليلاً
حتى لا يتم إطلاق النار على قدمك عن طريق ارتكاب الأخطاء والحصول على أشياء
مثل seg fault. يبدو أن المترجمين والمترجمين الفوريين
يبلون جيدًا في مساعدتك على حماية نفسك من الخطأ البشري.
ومن ثم، بعد ذلك، بدأنا في الانتقال، لقد قضينا وقتًا طويلاً في C،
لكننا بدأنا بالتحدث حول HTTP، والرسائل والأظرف الافتراضية،
فقط من النقطة أ إلى النقطة ب. وكانت الرؤوس ضمن تلك الأشياء.
وستتذكرون، ربما ضمن الرؤوس الممتعة بشكل كبير،
كانت هذه الرأس، التي تم شراؤها منذ بضع سنوات.
إذا استخدمتم متصفحًا أو إذا استخدمتم Curl، مثل برنامج في سطر الأوامر،
وIDE، أو جهاز Mac أو الكمبيوتر الشخصي لديك، وكنتم بالفعل تطلبون ذلك،
ما هي تعليمة الحالة البرمجية التي عادت؟
هل يتذكر أي شخص؟
الجمهور: [INAUDIBLE]
المتحدث 1: لم يكن 200، ولم يكن 404.
الجمهور: [INAUDIBLE]
المتحدث 1: أجل، كانت مثل إعادة توجيهها بشكل دائم.
أعتقد أن 301 أو 302 قد عادت، وإلى أين أدى ذلك؟
الجمهور: [INAUDIBLE]
المتحدث 1: جامعة ييل.
لذا كان ذلك لطيفًا وممتعًا.
بالطبع، اشتروا HarvardSucks.org منذ بعض الوقت.
وبالنسبة لمَن لم يعتاد الأمر، فإن عطلة نهاية الأسبوع هذه،
بالطبع، لعبة كرة القدم في جامعة هارفارد وييل، تقام هنا في كامبريدج هذا العام.
لذا كانت جامعة ييل على قدر من الذكاء لدفعها لمدة عقد تقريبًا وبشكل سنوي مقابل،
أو بالأحرى على قدر من الذكاء كما كنا، أيًا كان المتخرجين،
حيث تدفع لمدة عقد لإعادة توجيه Safetyschool.org
إلى Yale.edu، ولسوء الحظ، يعتمد HarvardSucks.org أيضًا على ذلك.
في الواقع، توجد قصة قديمة رائعة هناك،
كانت قبل حوالي أكثر من 12 عامًا الآن.
حيث فاز بعض الطلاب المغامرون في جامعة ييل إلى حد ما علينا بالفعل.
هل شاهدتم أو سمعتم هذه القصة يا رفاق؟
لذا نحن أحرجنا أنفسنا بالفعل منذ بضع سنوات.
وسيتلخص الأمر في أن بعض طلاب جامعة ييل المغامرون
يستخدمون بعض البرامج وبرنامج الكمبيوتر
لإنشاء صورة نقطية فعلية، مثل شبكة من وحدات البيكسل التي تستخدم البشر.
كانت المشكلة أن هؤلاء البشر كانوا نحن، من جانب هارفارد،
على ملعب هارفارد.
لأننا أساسًا قمنا بإنشاء رسالة صورة نقطية، وذلك بفضل ذكائهم.
لذا ظننتُ أننا خففنا الأضواء ولمدة ثلاث دقائق تقريبًا،
ننظر إلى مدى سوء ما حصلوا عليه فقط.
الآن لكي نكون منصفين، لقد هزمناهم منذ 12 عامًا، أو 19 عامًا في كرة القدم
بعد ذلك، على الرغم من فوزهم في العامين الماضيين.
لذلك لا يمكننا حقًا التحدث عن هذا الآن.
لذلك لن أسترسل وأضجركم بكثرة الكلام دعونا نعتم الأضواء وننظر إلى الأعلى أيضًا.
[VIDEO PLAYBACK]
- نحن نتجه إلى بوسطن، ونتحقق من الملعب للتسلية.
- منذ بضع سنوات، كنتُ في مؤتمر رياضيات.
وكنت أجلس حول الطاولة على العشاء،
مع بعض علماء الرياضيات الآخرين.
وذهب أحدهم إلى جامعة هارفارد، وبدأ
يروي قصة هذه المزحة المذهلة التي كانت ضد جامعة هارفارد.
وفي تلك المرحلة، شعرتُ أنه يجب أن أقاطع الحديث،
وقلتُ، حسنًا، يمكنني أن أخبركم المزيد عن ذلك.
- حسنًا.
- تم إتقان الفكرة في غرفة السكن.
- لقد توصلنا إلى الفكرة، في الواقع، لنمزح معهم
باستخدام علامات في لعبة كرة القدم.
لقد طرحنا بعض الأفكار حول ما يمكن أن تقوله العلامات.
اتفقنا في النهاية على "نحن سيئون."
وكان رد فعلي الفوري، لا، هذا لن ينجح أبدًا.
ومع ذلك، بدأ حلّال المشاكل لدي في التفكير، حسنًا، ربما يمكننا
أن نجعل الأمر ينجح.
- المشكلة، هي أنه كان يجب أن يتسللوا إلى ملعب هارفارد دون الإمساك بهم،
والتسلل بـ 1800 لافتة، وتوزيعها على مشجعي هارفارد غير المشتبه بهم،
ومن ثم يقنعوا هؤلاء المشجعين بأن يقوموا بعمل مزحة بأنفسهم.
- هذا رائع.
- فكرنا في كل شيء في الأساس يمكن أن يحدث خطأ
وحاولنا التوصل إلى حل له.
- ثم وضعنا اثنين من اللاعبين من أجله.
- قاموا بصنع هويات هارفارد المزيفة وقصص خيالية مزيفة، وتصاميم مزيفة من اللوحات،
وفريق مكون من 28 عضوًا.
في 20 نوفمبر 2004، قام طلاب هارفارد المزيفون
بتهريب اللافتات إلى اللعبة.
- ما الذي تفكر فيه بشأن جامعة ييل، يا سيدي؟
إنها سيئة.
- لن أقول شيئًا مثل أن جامعة ييل سيئة، أليس كذلك؟
- إنه يقول هيا يا هارفارد.
- ولكن بعد ذلك، حدثت مشكلة.
- أي مساكن أنتم بها يا رفاق؟
- هذه ليست مساكن حقيقية.
- هو-فو؟
- نعم.
- أنتم يا رفاق لستم من هارفارد، أليس كذلك؟
- هل يمكنني رؤية معرّف هارفارد الخاص بكم لأنني أعتقد حقًا أنكم من جامعة ييل.
- لقد عرضتُ عليه الجزء الأمامي من هذا المعرّف،
وفجأة، هرب للتو، وشعر بالحرج الشديد.
- بعد أن نجوا من مواجهة واحدة، لم يتمكنوا من المخاطرة بمواجهة أخرى.
لقد حان الوقت.
- هذا يبدو فوضويًا للغاية فقط.
- ليست لدينا أي فكرة على الإطلاق عما إذا كان هذا سينجح.
- انظروا إليهم، لديهم الورق.
سينجح الأمر في الواقع.
لا يمكنني [BEEP] تصديق ذلك.
- ما كان مزحة ذات مرة، أصبح أسطورة.
- لقد فعلناها.
- وعلى الفور، بدأنا نسمع الهتافات من الجانب الآخر.
أنتم سيئون.
- أنتم سيئون، أنتم سيئون، أنتم سيئون.
- وأعتقد أنها كانت في تلك المرحلة الزمنية التي أعتقدنا أننا نجحنا بها.
- مرة أخرى.
- ها هو ينتقل مجددًا.
- أعتقد حقًا أنه لا يهم إن فازت هارفارد،
بسبب مزحة الكثير من طلاب وخريجي جامعة ييل،
لقد فزنا بالتأكيد في تلك السنة.
[END PLAYBACK]
المتحدث 1: لذا هناك تقومون بحل مشكلة في جامعة هارفارد، وييل أيضًا.
حسنًا، تم تعيين الشريط.
بعد ذلك، دعونا نحاول بطريقة ما جعل هذا أكاديمي أكثر
مجددًا، لذا بعد ذلك، انتقلنا من النظر في مبادئ HTTP،
والأظرف التي يمكنك من خلالها إرسال الرسائل،
وفي الواقع تقديم لغة يمكننا من خلالها
إنشاء واجهات مستخدمين وأشياء تشويقية أكثر من
النوافذ الطرفية بمفردها.
بالطبع، كان هناك اتصال أكثر بالماضي المادي،
لأن ما يقوم به متصفحك بشكل غير ظاهر هو قراءة Html،
من الأعلى إلى الأسفل، من اليسار إلى اليمين،
وإنشاء بنية شجرة بالفعل في الذاكرة،
يمكنك معالجتها بعد ذلك باستخدام JavaScript، ولكن هناك لغة أخرى.
ومن ثم في الأسبوع السادس، أشرنا بشكل مأساوي إلى أن
كل هذا التعقيد الذي واجهناه منذ بضعة أسابيع فقط،
ونحن نحاول بناء قائمة مرتبطة باستخدام فارغ في النهاية ومؤشرات في جميع الأنحاء،
يقلل في الواقع إلى هذا فقط في Python، سطر واحد فقط من التعليمة البرمجية.
ومن ثم فإن بنية البيانات المذهلة هذه تحتوي نظريًا على
وقت وصول ثابت ونمو ديناميكي،
لأنه يمكنكم إزالة كل شيء منها.
يجب فقط أن تكتبوا العديد من التعليمة البرمجية للقيام بإدارة جميع الذاكرة،
وهذا فقط في Python.
لكن بشكل غير ظاهر، هذا ما تفعله Python.
في الواقع، فإن العديد من مترجم Python، البرنامج الذي يُسمى Python،
هو نفسه مكتوب بلغة C. ولذا فإن شخصًا ما، لحسن الحظ ليس أنتم،
كان يتعين عليه أن يكتب كل هذه الدالات.
لكن Python نفسها هي تجريد فقط.
هذه الدالات هي عمليات تجريد في أعلى تفاصيل التنفيذ هذه ذات المستوى
الأدنى.
ويجب أن يصبح هذا حقًا جزء من مفرداتكم،
ويميز بين التصميم، وعمليات التجريد، وتفاصيل التنفيذ
ذات المستوى الأدنى، وكل هذه التفاصيل مهمة،
ولكنها جميعًا لا تحتاج إلى أن تكون في قمة تفكيرك
عندما تفكرون في كيفيه حل مشكلة.
يمكنكم حل المشاكل في هذا المستوى.
ومن ثم الأقل أهمية في تفاصيل التنفيذ.
لذا بعد ذلك، حاولنا ربط كل شيء معًا.
ونظرنا بشكل عام في برمجة الويب.
نظرنا فقط إلى نموذج واحد من برمجة الويب، نموذج MVC،
إذا جاز التعبير.
توجد العشرات، ربما أكثر هذه الأيام،
كلها باختصارات مربكة ورائعة.
لكنها طرق مختلفة لحل مشكلة فقط.
لأننا نحن البشر، مع مرور كل عام،
ندرك ذلك، مهلاً، أنا، في شركتي، وأنت، في شركتك،
وأنت، في سكنك، نحاول جميعًا حل أفكار مماثلة.
نحن جميعًا نحاول إنشاء تطبيق.
نحن جميعًا نحاول إنشاء موقع ويب.
ونحن جميعًا نعيد اختراع العجلات.
وهكذا يتم اختراع أُطُر عمل جديدة، ومنهجيات جديدة، ويبدأ الأشخاص
بمشاركتها.
ويبدأ العالم بالتعاون عن طريق أدوات مفتوحة المصدر،
استخدمناها نحن بأنفسنا، وFlask مثال على ذلك،
jQuery قليلاً فقط، Bootstrap أيضًا، كل ذلك
يسمح لنا إلى حد ما بحل المشاكل بشكل جماعي
والحصول على عمل حقيقي وأكثر إثارة للاهتمام دون الاضطرار إلى التعامل
مع كل تفاصيل التنفيذ هذه.
وأخيرًا، قدمنا لغة أخيرة واحدة، هي لغة SQL،
والتي أعطتنا جميعًا واجهة خلفية، حيث يمكننا
تخزين الأشياء، والمزيد من الأشياء،
وبسهولة أكبر بكثير مما كنا نفعل باستخدام ملفات CSV فقط.
وإذا كنتم تحبون عالم الإحصائيات وعلم البيانات هذا،
وما شابه ذلك، أو إذا عدتم إلى عالم العلوم الإنسانية،
أو الطب أو أي عدد من المجالات، حيث يوجد فقط الكثير من الكلمات،
الكثير من الكتب، والكثير من النصوص والكثير من البيانات، وفي نهاية المطاف، SQL،
وجميع هذه اللغات يمكن استخدامها لمساعدتكم في الإجابة عن الأسئلة
التي قد تكون لديكم في هذه المجالات.
إذن من هناك، إلى أين ننتقل؟
لذا بعد عطلة عيد الشكر هنا في كامبريدج، سيكون هناك الهاكاثون الخاص بدورة CS50.
سيبدأ الساعة 7:00 مساء في الليل، وسينتهي الساعة 7:00 صباحًا
في اليوم التالي.
ومن المفترض أن يكون أحد تلك التجارب الجماعية الفريدة، حيث
تجتمعون مع جميع أصدقائكم وزملائكم،
وجميع طاقم عمل الدورة في الليل، وتعملون على المشاريع النهائية.
فرصة لتكونوا منتجين.
فرصة بعيدة بما فيه الكفاية عن الموعد النهائي للشعور بالرضا عن ذلك
وأخذ فترات راحة، وتناول العشاء معنا في الساعة 9:00 مساء،
ولتناول عشاء ثاني معنا حوالي الساعة 1:00 صباحًا.
ثم إذا كنتم ما تزالون مستيقظين، حوالي الساعة 5:00 صباحًا،
نقوم بتأجير بعض حافلات هارفارد، ونذهب إلى
iHOP لتناول الإفطار أيضًا.
لكن يمكنكم الذهاب للنوم في أي وقت بينهما.
فقط لأعطيكم فكرة عما يشبه ذلك.
لدى وصول الطلاب من هارفارد وييل يصعدون الدرج،
وينضمون إلى طاقم العمل في المساء من البرمجة.
لقد حجزنا المساحة بالكامل فوق مختبر الابتكار
عبر النهر في HBS، حيث سيكون الجميع قادرين
على الجلوس في زاوية مع شركائهم،
أو مع أصدقائهم، أو زملائهم بشكل عام،
والعمل فقط طوال الليل على المشاريع النهائية.
هناك كشك صور، ومايلا أيضًا،
فضلاً عن أعضاء آخرين من طاقم العمل.
هناك كلاب علاجية من مختلف الأعمار، إذا كنتم ترغبون في أخذ استراحة صغيرة
ومقابلة جرِاء كهذه.
وبعد ذلك، بالطبع، في الساعة 5:00 صباحًا، سنذهب إلى IHOP.
وهذه ماريا زلاتكوفا، الآن في Facebook،
تلقي التحية علينا من إفطار العام الماضي.
ومن ثم معرض CS50.
هذا هو الحدث في كلا الحرمين الجامعيين.
فرصة للجميع لإظهار ما تقومون
بإنجازه في هذا الفصل الدراسي فقط، والذي يعني حقًا
أنكم تعرضون ما قمتم به، وليس عرضًا لمجموعات مشكلاتكم الخاصة،
حيث تم إخباركم كيفية الإنشاء، ولكن مشروعكم الخاص الذي
قررتم كيفية القيام به بأنفسكم.
سنقوم بدعوة الحرم الجامعي بأكمله، وأعضاء هيئة التدريس والطلاب وطاقم العمل
من جميع أنحاء الحرم الجامعي.
عادة ما يكون عددهم أكثر من 2000 شخص.
سنكون في مركز سميث الذي تم تجديده بشكل جميل هذا العام،
مباشرة في ميدان هارفارد.
لذلك نحن نتوقع أن يكون هناك عدد غير قليل من المارة والسياح أيضًا.
إنه يقترن دائما مع يانصيب رائع، حيث سيتم منحكم جميعًا،
كمقدمين للطلاب، ملصقات وجه مبتسمة
صغيرة أو هكذا.
أي شخص يتجدّث إليكم ويسألكم عن مشروعكم
وعن العرض التجريبي السريع على الكمبيوتر المحمول أو الهاتف،
ستتمكن من تسليمهم ملصق ومن ثم تكون مؤهلاً
للحصول على جوائز رائعة.
على طول الطريق، سيكون هناك الفشار والوجبات الخفيفة
والموسيقى وأكثر من ذلك.
بعض من خريجينا في هذا المجال يريدون التحدث إليكم
حول العالم الحقيقي، ووقت الصيف، وفرص العمل بدوام كامل أيضًا.
وما سترونه هو مساحة تشبه، وتشعر، وتبدو،
بدلاً من أن تكون كهذا، مع اختلاط الناس فقط،
بالفخو والسعادة برؤية ما فعلتموه أنتم وأصدقاؤكم.
مع الفشار، وكرات الضغط والموظفين، والطلاب
على حد سواء، ونأمل أن تستمتعوا بما قمتم به.
سيُنهي الجميع الفصل الدراسي ومعهم قميص CS50.
آمل أن يكون هذا شيئًا يفخر جميعكم به.
في الواقع، هذا حقًا حيث حصلتُ على بدايتي.
1996، غيرت CS50 حياتي.
وفي الواقع-- في الواقع، هنا، في الواقع دليل
على مدى فخري بأنني قد بدأتُ بالفعل طريقي من خلال هذه الدورة منذ فترة طويلة،
لذا منذ وقت طويل، لم أعتد على أني، أنا، لم أحظى بعام الطلاب الجدد حتى للتسوق.
آمل أن تشعروا بأنكم أعضاء في هذا المجتمع أيضًا.
لذلك اعتقدنا بالطبع أننا سنعطيكم فكرة عما قد تكون عليه الأسابيع القليلة القادمة،
خاصة إذا لم تكونوا بالضرورة تنظمون أوقاتكم بشكل صحيح.
قبل بضع سنوات، استخدمنا قبل CS50 IDE،
البرنامج الذي يُطلق عليه CS59 Appliance،
والذي كان يشبه إصدارًا قابلاً للتنزيل منه لجهاز Mac وجهاز الكمبيوتر الشخصي.
إنه يميل إلى أن يكون أبطأ قليلاً، وسترون إشارة على ذلك.
لكن هذا الفيديو الذي أنتجه فريق الإنتاج في CS50، وخاصة
دان كوفي، كان أول تجربة لدورة CS50 باستخدام عالم الدمى.
وسترى أننا نحكي القصة بالنابة عن طالب CS50
الذي يعمل على مشروعه النهائي، تماماً كما يقترب الموعد النهائي.
وإذا تمكننا من تقليل الأضواء، فسيكون هذا آخر
مقاطع الفيديو التي لدينا اليوم قبل أن نتطلع إلى المستقبل في السنوات
القادمة.
[PHONE RINGING]
[MUSIC PLAYING]
- "MISSION IMPOSSIBLE"]
لذا، نشكر دان كوفي والفريق على إنتاج ذلك أيضًا،
إذا أمكننا ذلك.
[APPLAUSE]
هذه بالضبط كيفية عمل المواعيد النهائية.
في كل مرة يكون لدينا موعد نهائي، --
إذن الحياة بعد 50.
لذا ستكون عجلات التدريب متوقفة، يمكنكم الاحتفاظ بالبطة المطاطية
وشخص ما للتحدث إليه بينما تواجهون المشاكل.
ولكن، في حين أنه يمكنكم أن تستمروا في استخدام CS50 IDE،
فهذا ليس شيئًا، من المحتمل، ستستخدمونه في العالم الحقيقي لفترة طويلة جدًا.
ولا توجد حقًا check 50 وhelp 50 في العالم الحقيقي،
على الرغم من وجود الكثير من الأشخاص.
لا يُطلق عليهم رفقاء تدريس بعد الآن، ولكن أصدقاء وزملاء.
ولكن يمكنكم الاعتماد على هؤلاء الأشخاص كذلك.
وما فكرنا به هو إعطائكم قائمة
من الاقتراحات للخطوات التالية، حتى تشعرون بوجود الطريق.
وبصراحة، سيحدث بعض من هذا بشكل طبيعي
أثناء تناولكم المشاريع النهائية، اعتمادًا على طبيعتها.
في حال تناولكم مادة آخرى، أو CS50 بعد هذا الشتاء، أو تجربة
هذه الأشياء بأنفسكم، لكن فكرنا في إعطائكم على الأقل
بعض الروابط في شرائح اليوم، حتى يكون
لديكم شيء للعبث به خلال عطلة عيد الشكر، أو العطلة الشتوية،
أو ما بعدها.
إذن من المفترض أن CS50 IDE تمثل بيئة
برمجة شائعة جدًا.
يصادف أنها قائمة على الويب، وأيضًا في اسم المجال لدينا.
لكن تُعد فكرة وجود متصفح ملفات من نوع ما،
وعلامات تبويب حيث تكتبون التعليمة البرمجية، ونافذة طرفية
تتفاعلون من خلالها، شائعة، بشكل لا يُصدق أبدًا،
سواء كانت في السحابة، أو بشكل أكثر شيوعًا بالنسبة لمُطوِّري
البرامج الحقيقيين على جهاز Mac أو جهاز الكمبيوتر الشخصي لديكم.
بصراحة، بعد عدة سنوات من الآن، من المحتمل أن هذه هي طريقة سير الأمور، لن يستخدم
أحدنا جهاز Mac، أو أجهزة الكمبيوتر الشخصية لدينا في حد ذاتها، من المحتمل أن يكون كل شيء عن بعد.
إذن فإن الاحتمالات هي أنه، في مرحلة ما في المستقبل، سنصل إلى دائرة كاملة.
ولكن في الوقت الحالي، يُعد تكرار هذا النوع
من الإعداد على جهاز Mac أو الكمبيوتر الشخصي.
إذن، كيفية حصولكم على سطر أوامر، والذي آمل أن تكونوا لاحظتموه،
عندما كنتم مُحبطين، هو أقوى من أن يكون لديكم فقط
قوائم ورموز متوفرة قدمها لكم شخص ما،
مثل شركة، على سبيل المثال Microsoft، أو Apple.
حسنًا، في كل من أجهزة Mac وأجهزة الكمبيوتر الشخصية، يمكنكم تثبيت الأدوات نفسها
التي استخدمناها في هذا الفصل الدراسي، وClang، وMake،
ويمكنكم الحصول على CD، وLS، وMiktor، وتلك الأوامر جميعها
على كلا من Mac OS أو Windows.
ويمكن أن تكون نقاط الانطلاق هنا.
يوفر كل من هذه النوافذ الطرفية الخاصة بها، والبرامج
فيها.
يمكنكم التثبيت فقط عبر نقطتي الانطلاق هاتين.
الآن ماذا بشأن Git؟
قد رأيتم أو سمعتم عن Git، على الرغم من أننا
لا نستخدمه في المحاضرة بشكل عملي.
الاحتمالات هي أنكم ستستخدمونه قي دورات CS ذات المستوى الأعلى، إذا كنتم ستلتحقون بها.
فهو أحد أكثر البرامج شيوعًا والذي من خلاله
تقومون بحفظ إصدارات برنامجكم.
الآن قد تكونوا لاحظتم أن CS50 IDE تقوم بذلك تلقائيًا نيابة من أجلكم.
يمكنكم الانتقال إلى الملف، ومحفوظات المراجعة، ويمكنكم إلى حد ما
الانتقال ذهابًا وإيابًا في الوقت المناسب.
وهذا أمر رائع ومفيد بشكل كبير، لكنه في الحقيقة لا يتوافق
مع التعاون مع الآخرين.
ولذا لو كنتم تعملون مع شركاء للمشروع النهائي،
في أبسط أشكاله، فيمكن فقط مشاركة
CS50 IDE الخاصة بأحدكم مع أسماء المستخدمين الآخرين.
وستتشاركون جميعًا الحساب نفسه فقط.
وهذا جيد.
ولكن هذا يصبح مزعجًا ومعقدًا بعض الشيء
إذا حاول كلاكما تحرير الملفات نفسها،
فأنتما لا تتحدثان بالضرورة إلى بعضكما البعض، أو أنكما في غرف مختلفة.
على سبيل المثال، في مرحلة ما تريدون أن تكون لديكم مسارات عمل جيدة.
إذن عبر عنوان URL هذا هنا، يقدمكم براين إلى Git، وهي أداة سطر
أوامر وهي شائعة جدًا جدًا هذه الأيام، وهي تتيح
لكم حفظ إصدارات من التعليمة البرمجية لديكم.
إذن لن تطلقوا عليها Mario 1.C، أو Mario 2.C بعد الآن،
أو Mario 3 AM.C وما شابه ذلك.
في الواقع تطلقون عليها Mario.C.
لكنكم تدعون Git تهتم بختم الوقت عليها وعملية الإصدار الخاصة بها
من أجلكم.
وتسمح Git لكم بمشاركة التعليمة البرمجية لديكم في السحابة.
نستخدم GitHub، بالطبع، لعمل عمليات تقديم، وما شابه ذلك،
وللتعليق.
ولكن بشكل عام أكثر، يستخدم فقط لتخزين
التعليمة البرمجية ومشاركتها مع أشخاص آخرين.
إذن ما ستفعلونه عبر Git هو حرفيًا
دفعها عبر Git إلى خدمة مثل GitHub، أو GitLabs، أو غير ذلك.
في حين يمكن لشخص آخر سحبها عبر Git على جهاز Mac أو كمبيوتر شخصي.
وبالتالي، تقومون بمشاركة الملفات.
لن تقوموا بإرسالها عبر بريد إلكتروني.
أو تخزينها في Dropbox، أو ما شابه ذلك.
تستخدمون في الواقع أداة برنامج مُوحدة.
يمكنكم تثبيتها عبر هذه التعليمات
هنا، إذا لم تكن لديكم بالفعل.
والأكثر فائدة أيضًا، يمكنكم التسجيل في مستودعات مجانية
GitHub.com، لديكم حساب بالفعل.
لأن لديكم معرّف طالب، يمكنكم الانتقال إلى عنوان URL هذا
هنا وإخبارهم بأنكم طلاب في جامعة هارفارد، أو ييل، أو خارجهما.
ومن ثم، هل يمكنني أن أحصل على مستودعات مجانية خاصة،
إذن يمكنكم جعل المشاريع المدرسية أو الشخصية خاصة،
دون الحاجة إلى الوصول إلى منظمة CS50 الخاصة.
إذن أين تكتبون التعليمة البرمجية؟
إذن، هناك العديد من المُحررين هذه الأيام.
من بين أكثر الأدوات شيوعًا تُسمى
Atom، وهي مُحرر نص مفتوح المصدر الذي
يحتوي على العديد والعديد من الإدخالات.
مثل النوافذ المبوبة لكتابة التعليمة البرمجية.
تقوم بالتظليل، والصيغ، والأكثر من ذلك،
حتى تكون التعليمة البرمجية سهلة التحرير، وتبدو جميلة
بينما تعملون عليها، وتجعل الحياة سهلة جدًا.
من الشائع جدًا هذه الأيام أيضًا تعليمة VS البرمجية أو تعليمة Visual Studio البرمجية.
وهما من الناحية الوظيفية متعادلتان بشكل كبير.
يمكنكم أن تسألوا زملاءكم في التدريس أو أصدقاءكم أيهما تفضلون،
أو فقط قوموا بتجربة كلتاهما.
فهما مجانيتان، وتوجد العشرات من الخيارات الأخرى.
في الوقت الحالي هاتان فقط مشهورتان جدًا في المجال.
ضمن النافذة الطرفية، مع ذلك، ما قد يستخدمه الكثير من طلاب علم الكمبيوتر،
شيء ما يُسمى Vim.
ويوجد بدائل هناك، تُسمى Emax وبضعة أشياء أخرى.
لكن Vim في الواقع هو ما اعتدتُ عليه، وما زلتُ أميل إلى استخدامه حتى هذا اليوم.
لا أميل إلى استخدام واجهة المستخدم الرسومية.
فقط أستخدم نافذة طرفية أكبر مع الكثير من التعليمات البرمجية بداخلها.
وVim أشبه بأداة سطر أوامر، حيث
يجب أن تحفظوا المزيد من اختصارات لوحة المفاتيح،
لكنه أيضًا قوي للغاية مثل
نافذة طرفية أيضًا.
إذن أيًا كان ما تعتادون عليه بشكل كبير فلا بأس به.
إذن لنفترض أنكم تريدون نشر موقع ويب، على سبيل المثال صفحتكم الرئيسية
الخاصة، أو سيرتكم الذاتية، أو ملفكم الفني، أو أي شيء
من أين تبدأون؟
يمكنكم إنشاؤها بالتأكيد على جهاز Mac أو الكمبيوتر الشخصي في ملف HTML،
لكن لا يمكن لأي شخص في العالم الوصول إليها.
يمكنكم وضعها في CS50 IDE، ولكن هذه ستكون
ساكنة في نهاية المطاف، عندما لا تستخدمونها،
مما يجعل زيارتها صعبة للأشخاص على الإنترنت في أي ساعة.
لكن لحسن الحظ، يوجد الكثير من الخدمات المجانية هناك،
على الأقل إذا كان استخدامكم بسيط.
إذا كنتم تحاولون إنشاء عمل تجاري، فالاحتمالات
هي أنكم ستدفعون لشخص ما مقابل عرض النطاق والدعم
وما إلى ذلك.
ولكن إذا كانت فقط لديكم صفحة رئيسية، حيث تحصلون على عشرات، ومئات، ربما
بضعة آلاف من الزيارات، وهذا على الأرجح
الحال بالنسبة للمواقع الشخصية، يمكنكم
استخدام شيء يُسمى صفحات GitHub، وهي خدمة مجانية حيث تقوم بتخزين ملفات HTML،
وJavaScript، وCSS لديكم على GitHub.com،
وستقوم باستضافتها من أجلكم مجانًا.
Netlify هي خدمة مجانية أخرى أيضًا
يمكنكم البحث في Google والعثور على أي عدد من هذه الخدمات المجانية.
تميل هذه فقط إلى أن تكون الأكثر شهرة وأنا أيضا على دراية بها.
تقوم باستضافة تطبيق ويب، لذا هي ليست موقع إلكتروني ثابت، ولكنها شيء ديناميكي أكثر،
ستكون لدينا تعليمات سنقوم بتعميمها لهذا المشروع النهائي
أيضًا، بحيث يمكنكم التخرج من CS50 IDE
وتشغيل مشروعكم النهائي، أو موقع الويب الخاص بكم،
أو أداة مجموعة طلاب خاصة بكم، أو أو موقع ويب لشركة ناشئة خاص بكم
عبر خدمة تابعة لجهة خارجية.
يميل Heroku إلى أن يكون شائعًا جدًا.
لديهم أيضًا طبقة خدمة مجانية.
طالما أن موقع الويب لديكم لا يتم تصفحه عبر الكثير والكثير من المستخدمين،
يمكنكم استخدامه مجانًا.
يمكنكم الوصول بحرية إلى قاعدة بيانات، شيء يُسمى Post Gress
الذي أشرنا إليه في وقت سابق في الفصل الدراسي،
باستخدام أنواع البيانات نفسها التي ناقشناها.
Wix هي خدمة أخرى شائعة جدًا، وتم إطلاقها مؤخرًا لدعم التعليمة البرمجية، وليست
فقط مواقع ويب ثابتة أيضًا.
إذن هذه هي نقاط الانطلاق.
ولكن بالتأكيد استخدموا Google أو ما شابه للعثور على خيارات أخرى كذلك.
ثم هناك بنية تحتية، كخدمة، إذا جاز التعبير.
توجد مواقع أكبر هناك، Amazon، وMicrosoft، وGoogle،
التي تحتوي على خدمات قائمة على السحابة.
يبدو أن منحنى التعلم أعلى قليلاً، بصراحة.
لذا أود أن أشجعكم ربما على البدء بالأمثلة السابقة، والتي
تُعد أعمال تجارية تم إنشاؤها أعلى هذه الطبقات.
ولكن إذا كنتم مهتمين، قوموا بتسجيل الدخول بالتأكيد
كطالب لأي عدد من هذه الخدمات،
وسيقومون بإعطائكم الكثير من الاعتمادات المالية،
لذا يمكنكم تجربة الأشياء مجانًا، لمدة شهر مثلاً،
أو سنة، أو أي شيء لاكتساب الخبرة.
إنه عالم رائع ومجاني عندما تكونون على وشك
البدء في هذا الفضاء.
ومن ثم المزيد من النصائح العامة.
يجب أن تقرأوا الكثير.
وأنا متأكد أنكم إذا طلبتم من رفقاء التدريس ومساعدي الدورة التدريبية،
ستحصلون على قائمة أطول بالمواقع.
ولكن هذه هي أنواع المواقع التي قد أنتقل إليها إذا أردتُ
أن أبقى على علم بتلك الأشياء إلى حد ما.
يُعد الاشتراك في مختلف مواقع Reddit الفرعية، إذا جاز التعبير،
مُقنع، حيث تحصلون فقط على المعلومات، والأخبار، والمحادثات.
وبصراحة، عندما يسألونني كيف أبقى إلى حد ما
على علم بأمور معينة، وأسمع أشياء من الأصدقاء،
وأحصل على رسائل البريد الإلكتروني حول التقنيات، أُصبح فضولي، ولذا أقوم بالتدقيق.
وهذه هي الأماكن التي قد أنتقل إليها، وأيضًا عدد كبير من التقنيين،
للتحدُث عن الاتجاهات والتقنيات الجديدة.
أو إذا كنتم تحاولون معالجة شيء، هل يجب أن أستخدم x أو y،
لا تستخدموا Google فقط.
تحقّقوا من مواقع الويب تلك أيضًا.
ومن ثم CS50، إذا أردتم البقاء على علم.
إذن CS50، لا يوجد الكثير من هذه الدورات في الحرم الجامعي، ولكن للطلاب في جميع أنحاء العالم،
تحافظ على عدد من المجتمعات عبر الإنترنت، وجميعها
أنتم مرحب بكم للمشاركة فيها، عبر الإجابة على أسئلة، أو طرحها،
أو ما شابه ذلك.
وليست هذه هي بعض من الدورات الحالية الآن فقط.
أي أسئلة عن أي من تلك الخطوات السابقة أو المستقبلية أو جميعها؟
أي شيء على الإطلاق؟
لا؟
حسنًا.
حسنًا، إذن سننتقل بعد وقت
قليل إلى تقليدنا بتناول الكعك في الطابق السفلي في الحانة.
ولكن لدينا أيضًا تقليد آخر، وبشكل خاص الآن
بما أن لديكم عشرة أسابيع من الخبرة.
لجميع النوايا والأغراض، أنتم الآن جميعكم
مؤهلون كطاقم عمل CS50، لأنه، في الواقع، في نهاية المطاف،
معظم طاقم عمل CS50 هم حديثو التخرج من الدورة نفسها،
في السنة الثانية، والثالثة، وسنة التخرج، وحديثو التخرج، والطلاب عبر الإنترنت الذين
حصلوا على هذه الدورة، أو ربما دورة أخرى في الربيع أو بعده،
ومن ثم انضموا إلينا كطاقم عمل.
إذن لابد أن تدركوا أنه حتى إذا كنتم لا تشعرون بالاعتياد على الأمر بعد،
أو بأكبر قدر من الراحة، ولا حتى معظم طاقم العمل،
وأنا واحد منهم، حول الكثير من هذه الأشياء.
وطالما بقيتم مُتقدمين بخطوة وتعرفون أنواع الموارد
التي عليكم اللجوء إليها، وهذه هي حقيقة الأمر عندما تتعلمون في هذا العالم.
وفي الواقع، العقلية الشائعة جدًا، التي أعرفها، في المحاضرة،
في مجموعات المشاكل، في الاختبار، هي مهلاً،
لم تقم بتعليمنا هذا.
والاحتمالات هي، ذلك كان صحيحًا تمامًا في كثير من الأحيان.
ولا أعني فقط تبريره.
كان ذلك إلى حد كبير عن عمد.
في العالم الحقيقي، آمل أن يكون ذلك بالضبط هو شعوركم،
أو في الواقع ستشعرون بذلك في كثير من الأحيان.
ونأمل حقًا أن من بين الأدوات التي حصلتم عليها،
عجلات التدريب وغيرها، هو معرفة حيث يكون لديكم الحدس الصحيح الآن
مع كيفية تمهيد أنفسكم باستخدام Bootstrap، إذا جاز التعبير، وحل المشاكل، وتعلُم
الأشياء بأنفسكم.
لكننا اعتقدنا أنه، في النهاية علينا وضع ذلك قيد الاختبار.
وأعتقد لهذا، نحن بحاجة--
لنرى، لدينا مجموعة من الكراسي هنا، أربعة طلاب متطوعين،
أربعة على وشك--
أربعة على وشك أن يكونوا خريجين متطوعين.
حسنًا، هنا في الأمام، نعم، تعال.
هنا، في المقدمة، والثالث.
ودعوني أحاول أن أرى الرابع، هنا، تعال.
حسنًا أربعة، لديكم أربعة؟
سينضم كولتون إلينا.
أه أوه، حسنًا، سنأخذ خمسة، لا بأس بذلك، ولكن عليك إحضار كرسي.
سنجد كرسي في مكان ما.
تعال.
والآن أنا بحاجة أربعة متطوعين من طاقم العمل، إذا أمكننا ذلك.
مَن من طاقم العمل يمكنه--
أوه، نعم، سيدتي تعالي.
تطوعت أثينا.
أوه، إيرين، هل تريدين أن--
أوه، تعالي.
نعم، مَن؟
حسنًا، نعم، تعال، يا روبرت.
حسنًا، شكرًا جزيلاً على التطوع.
حسنًا، إذن-- لكن المغزى هو، أننا بحاجة أن يكون طاقم العمل في فريقهم الخاص.
لذا دعونا نجعل الطلاب هنا، لأنكم بحاجة--
لا بأس.
يا رفاق هل يمكنكم الانتقال إلى هنا؟
حسنًا، أنتم الخمسة-- لدينا فريق الطلاب هنا.
وسنجد لك كرسي في الحال.
طاقم العمل، امضوا قدمًا وخُذوا مقاعدكم هنا.
كل منكم لديه ورقة، وقلم، وميكروفون.
ولمَ لا نمضي قدمًا، بينما نستعد للانتقال إلى هنا--
هل يريد كل منكم أن يقول مرحبًا ويُقدم نفسه؟
إيرين: مرحبًا.
المتحدث 1: حسنًا، يمكنك إخبارهم.
إيرين: مرحبًا، أنا إيرين، إحدى معلمي الدورة.
إسحاق: أنا إسحاق، زميل تدريس.
روبرت: أنا روبرت، مساعد في الدورة التدريبية.
أثينا: وأنا أثينا، زميلة تدريس.
أندريا: مرحبًا، أنا أندريا، أنا خريجة، قريبًا.
أفيفا: مرحبًا، أنا أفيفا، خريجة أيضًا.
جوناثان: أنا جوناثان.
أبريل: أنا أبريل.
إريك: أنا إريك.
كولتون: مرحبًا، أنا كولتون، أنا تقنيّ.
المتحدث 1: حسنًا، إذن قد تتساءلون، ما الذي نفعله جميعًا هنا.
حسنًا، لدينا هذا التقليد في استخدام جميع تلك الأسئلة
التي قدمتموها للاختبار، تذكروا في مجموعة المشاكل 7، منذ
أسبوعين، لأنشط ذاكرتكم.
الآن تذكرون، يوجد الاختلاف إلى حد ما بين، أعتقد،
العديد من الأسئلة التي قدمتموها في اقتراحات أسئلة الاختبار.
والعديد منهم على سبيل المثال، ما هي اثنان في النظام الثنائي،
أو ربما ما هي ثلاثة في النظام الثنائي.
إذن، كان ذلك عظيمًا.
لكننا كنا نبحث عن أسئلة أصعب قليلاً.
وحصلنا على بعض من تلك أيضًا.
إذن مضى كولتون خلال آلاف
الأسئلة التي تم تقديمها منذ أسبوعين
فقط، للعثور على بعض من أصعب الأسئلة، وأسهلها.
وهي لديّ هنا مُجمعة في فئات،
لأنه لدينا هذا التقليد في تشغيل الإصدارات الخاصة بنا، طاقم العمل
مقابل الطلاب، في المحك.
الآن لأنكم جميعًا كتبتم الأسئلة في شكل أسئلة،
سأقرأها في شكل أسئلة وليس في شكل إجابات.
إذن هذا أشبه ببرنامج مسابقات، إذا أمكننا القول، طاقم العمل مقابل الطلاب.
أول شخص يرفع يده، سنستدعيه أولاً.
ليست لدينا تقنية الجرس الطنان هنا.
سيكون كولتون الحكم، إذا لم تمانع أن تكون الحكم.
وسنقوم فقط بعدد قليل من الجولات الأولي والثانية،
والأخيرة من المحك، يليها تناول الكعك.
إذن في غضون لحظات، سنعرض لكم الفئات،
ونبدء بطرح الأسئلة.
هل لديكم أي أسئلة خاصة بكم؟
الطالب: هل سنجيب في شكل أسئلة؟
المتحدث 1: ستجيبون في شكل إجابة.
سأطرح الأسئلة، وستجيبون.
إذن هذا ليس على المحك في الواقع، ولكن يبدو نوعًا ما أفضل
إذا أطلقنا عليه المحك.
حسنًا، إذن-- وأيضا، أيضًا، انظروا إلى ما فعلناه في HTML لتسهيل هذا.
دعونا نقوم بالتكبير.
ها نحن ذا، تكبير، أوه أوه، انظروا إلى جداول HTML وروابطها تلك.
حسنًا، لن أسترسل وأضجركم بكثرة الكلام، أعتقد قبل بداية اليوم،
أننا قررنا أن الطلاب الذين ربحوا في لعبة القرعة.
هل ترغبون في اختيار فئة،
ومن ثم سأسألكم سؤالاً في هذه الفئة.
الطالب: سكراتش مقابل 1000.
المتحدث 1: سكراتش-- مقابل 100 دولار؟
الطالب: لا، لا توجد 100 دولار.
الطالب: 1000 دولار.
المتحدث 1: أوه، لقد سمعتُ 1000.
الطالب: أجل، 1000.
المتحدث 1: حسنًا، إذن الأسبوع--
الأسبوع صفر، الأسبوع صفر، السؤال هو ما هي المؤسسة التي طوّرت سكراتش.
الطالب: [INAUDIBLE]
المتحدث 1: كولتون؟
الطالب: [INAUDIBLE]
المتحدث 1: مَن رفع يديه أولاً.
كولتون: [INAUDIBLE]
المتحدث 1: حسنًا، حسنًا، الطلاب.
الطالب: معهد ماساتشوستس للتكنولوجيا.
المتحدث 1: معهد ماساتشوستس للتكنولوجيا هو الجواب الصحيح مقابل 1000 نقطة.
عمل رائع للغاية.
حسنًا، إذا لم يصفق أحد--
[APPLAUSE]
المتحدث 1: ها نحن ذا.
لا، لابأس.
لدينا زر HTML لذلك أيضًا.
حسنًا، إذن الطلاب، يمكنكم التحكم.
ما الذي تفضلونه؟
الطالب: سكراتش مقابل 800.
الطالب: أجل، لقد كنتُ--
المتحدث 1: سكراتش مقابل ماذا؟
طالب: جميع أشياء سكراتش.
الطالب: سكراتش مقابل 800.
المتحدث 1: سكراتش مقابل 800، تعمل طريقتنا على أسئلة سكراتش.
حسنًا، ما هو لون القط؟
الطلاب--
طالب: برتقالي.
المتحدث 1: برتقالي، حسنًا، الآن المضحك بما فيه الكفاية، سألنا شخصين ذلك السؤال
في P Set 7، وحصلنا على إجابتين--
أصفر وبرتقالي.
ربما برفع الأيدي-- الأصفر--
البرتقالي.
حسنًا، البرتقالي، سيحصل الطلاب على 800 دولار.
عمل رائع للغاية.
الطلاب--
الطالب: يجب أن نقوم بشيء كبير.
الطالب: لا تختاروا C. أنا سيئ للغاية في C.
الطالب: المصفوفات.
الطالب: لا.
الطالب: المصفوفات سهلة.
الطالب: حسنًا.
الطالب: حسنًا، المصفوفات.
الطالب: المصفوفات مقابل 1000.
المتحدث 1: المصفوفات مقابل 1000.
حسنًا هذا من الأسبوع 2 مقابل 1000.
هذا سيكون--
ما هو وقت تشغيل دمج التصنيف؟
طاقم العمل؟
طاقم العمل: إنهاء تسجيل الدخول.
المتحدث 1: إنهاء تسجيل الدخول صحيح مقابل 1000.
الطالب: [INAUDIBLE]
المتحدث 1: طاقم العمل، ماذا تفضلون.
طاقم العمل: الذاكرة.
المتحدث 1: ذاكرة مقابل--
طاقم العمل: 1000.
المتحدث 1: مقابل 1000؟
طاقم العمل: أجل.
المتحدث 1: حسنًا، مقابل 1000، ما هو اسم الأداة التي يمكنكم تشغيلها
لمعرفة ما إذا كان برنامجك--
طاقم العمل؟
طاقم العمل: Valgrind.
المتحدث 1: إذا كان برنامجك به تسريب للذاكرة، Valgrind صحيح، مقابل 1000.
طاقم العمل: [INAUDIBLE]
طاقم العمل: كان ذلك لطيفًا.
المتحدث 1: طاقم العمل مقابل 1000، ماذا تريدون بعد ذلك؟
طاقم العمل: أسبوع النجمة، ما هذا؟
المتحدث 1: أوه، أسبوع النجمة هو الفرصة المميزة، حيث يمكنكم الحصول فيه على أي أسبوع.
طاقم العمل: أسبوع النجمة مقابل 1000.
المتحدث 1: أسبوع النجمة مقابل 1000.
لذا سأختار الفئة لكي--
ما هو مصحح أخطاء البطة المطاطية؟
الطلاب؟
الطالب: سأجيب على ذلك.
إنه عندما تقرأ كل سطر فى التعليمة البرمجية للبطة المطاطية
وتحاول العثور على خطأ.
المتحدث 1: أعتقد أن ذلك صحيح.
إجابة رائعة للغاية مقابل 1000.
[APPLAUSE]
حسنًا، أعتقد أن لدينا وقت لطرح سؤال واحد آخر في محك واحد.
أيها الطلاب يمكنكم التحكم والقيادة.
الطالب: ننتقل إلى أدنى حد ممكن [INAUDIBLE]..
الطالب: لا، لمَ لا نجرب أسبوع مقابل 800، أو C مقابل--
الطالب: على سبيل المثال مقابل 200، لأنهم لن يتمكّنوا من اللحاق بنا بعد ذلك.
الطالب: إذن 200.
الطالب: أجل.
المتحدث 1: الطلاب؟
الطالب: C مقابل 200.
المتحدث 1: مقابل ماذا؟
الطالب: C مقابل 200.
المتحدث 1: C مقابل-- نعم، حسنًا.
C مقابل 200 في الأسبوع واحد.
الأسبوع 1-- سؤالكم سيكون--
هل لغة C هي الأسوأ؟
أيها الطلاب، مقابل 200؟
الطالب: حسنًا، أعتقد أنها ليست كذلك، لأن--
الطالب: الشخص الذي يطلب ذلك سيقول، نعم،
لذلك يجب أن نتطابق مع إجابتهم فقط.
الطالب: يجب أن نتطابق مع إجابتهم؟
المتحدث 1: الإجابات الصحيحة هنا.
الطالب: أجل.
المتحدث 1: لا.
هذا ما أخبرتُ به.
الطالب: أجل.
المتحدث 1: أسمع اثنتين نعم ولا واحدة.
الطالب: أنا متمسك برأيي.
الطالب: الأغلبية تفوز.
المتحدث 1: الجواب هو نعم، إنها الأسوأ.
الطالب: أجل.
المتحدث 1: مقابل 200.
حسنًا، إذن نحن نسير الآن إلى محك مزدوج،
حيث تتم مضاعفة جميع قيم الدولارات والفئات تغيرت
للأسبوعين الماضيين، ما يزال لدينا الأسبوع المميز.
الطلاب.
الطالب: أوه، يا إلهى.
المتحدث 1: Python مقابل 2000.
المتحدث 1: مقابل 2000.
الطالب: معذرة، لقد اتخذتُ هذا القرار للتو.
الطالب: Python، 2000.
المتحدث 1: أي أسبوع؟
الطالب: Python، 2000.
المتحدث 1: Python مقابل 2000.
إذن هذا الأسبوع 6.
Python مقابل 2000، والسؤال الذي اختاره الطالب كان،
ما هو الحيوان الذي لا تريد أن تجده تحت وسادتك
الذي يشارك اسمه مع لغة برمجة؟
الطلاب.
الطالب: ثعبان Python.
ثعبان Python.
المتحدث 1: Python صحيحة، نعم، مقابل 2000 دولار.
لطيف جدًا.
الطلاب، Python 6000.
المتحدث 1: حان الوقت لطرح بضعة الأسئلة قبل أن ننتقل إلى المرحلة النهائية.
الطالب: أوه، فلنختار، مثلا الويب--
هل تريدون أن تختاروا الويب--
الطالب: بالتأكيد، الويب 2000.
المتحدث 1: الويب مقابل 2000، ذلك كان في الأسبوع 7.
والسؤال هنا كان، مَن هو صديقك؟
الطالب: ماذا؟
المتحدث 1: الطلاب مقابل 2000.
أوه، هل رأيتَ إيرين أولاً؟
عذرًا، كولتون هو الحكم.
طاقم العمل: أدوات المُطوِّر؟
المتحدث 1: معذرة، إنها إجابة غير صحيحة.
نعم، أيها الطلاب؟
الطالب: عناصر الفحص؟
الطالب: عناصر الفحص.
المتحدث 1: عناصر الفحص، أخشى أنها أيضًا غير صحيحة.
أيها الطلاب، مرة أخرى؟
الطالب: البطة المطاطية.
المتحدث 1: البطة المطاطية غير صحيحة.
الطالب: Google.
المتحدث 1: Google، لا.
أعتقد أنكم أصبحتم سالب 8000 الآن.
لكن هذا جيد، لن نخصم.
لن نخصم، لا بأس.
أنا أعلم أن تلك ليست طريقة لعب المحك.
حسنًا.
طاقم العمل: W3 Schools؟
المتحدث 1: W3 Schools، غير صحيحة.
أيها الطلاب-- ماذا؟
الطالب: ديفيد [INAUDIBLE]؟
المتحدث 1: لا، ليس هو.
أجل؟
الطالب: تبادل المكدس؟
المتحدث 1: ماذا؟
الطالب: تبادل المكدس؟
المتحدث 1: ليس تبادل المكدس.
الإجابة هي Bootstrap.
حسنًا، لنمضي قدمًا.
إذن بعض الوقت لطرح سؤالين آخرين في المحك المزدوج.
أعتقد أن الطلاب يمكنهم التحكم، أليس كذلك؟
الطالب: أجل.
الطالب: ما الذي تريدون اختياره؟
المتحدث 1: يحتاج طاقم العمل للتقدم أكثر هنا.
الطالب: فقط كأي سؤال في أسبوع مقابل 2000.
الطالب: الفرصة المميزة 2000؟
الطالب: أسبوع [INAUDIBLE] مقابل 2000.
الطالب: الفرصة المميزة، 2000.
الطالب: الفرصة المميزة مقابل 2000.
أيها الجمهور، ما هو الأسبوع الذي سنختاره لهم؟
واحد من سبعة، 0 من 7.
أربعة، لقد سمعتُ ذلك.
الأسبوع الرابع.
الأسبوع الرابع-- ما هي التعليمة البرمجية لكلمة حسنًا؟
طاقم العمل؟
طاقم العمل: 200.
المتحدث 1: 200 مقابل 2000.
حسنًا، إذن يسيطر طاقم العمل على الأمر.
لدينا الوقت لطرح سؤال واحد آخر قبل أن ننتقل للفئة النهائية في المحك.
طاقم العمل: [INAUDIBLE]
طاقم العمل: لا، نحن نريد أن نكون قادرين على التواصل معهم، أليس كذلك؟
بنيات البيانات، 1200.
المتحدث 1: بنيات البيانات مقابل 1200.
بنيات البيانات مقابل 1200.
وكان ذلك، في أي أسبوع كان ذلك؟
الرابع، الأسبوع الرابع.
ماذا تطلقون علي الوضع عندما تشير البنية
إلى نفسها في تعريفها؟
أيها الطلاب؟
الطالب: الإعادة.
المتحدث 1: الإعادة إجابة صحيحة مقابل 1200 دولار، رائعٌ للغاية.
حسنًا، إذن لننتقل الآن إلى السؤال الأخير من دورة CS50 لطاقم العمل مقابل الطلاب.
طاقم العمل لديهم 4000، والطلاب لديهم 6200.
أنتم على وشك أن يتم إخباركم بشأن الفئة النهائية في المحك، وعند هذه النقطة
يحتاج كل فريق أن يلتزم كتابيًا، على قطعة من الورق أمامهم،
باستخدام قلم CS50 أمامهم، إلى مبلغ الدولار،
مع الأخذ في الاعتبار أنكم قد تربحوا أو تخسروا هذا المبلغ.
حسنًا، امضوا قدمًا واختاروا-- أوه،
ها نحن ذا، ستكون الفئة النهائية في المحك هي خاطئ.
ستكون خاطئ فئتكم.
أي مبلغ من الدولارات.
حسنًا، لذا، ها نحن ذا.
والسؤال هو، لقد التزموا جميعًا بمبلغ الدولارات.
حسنًا، أشعر أنه بإمكانكم تقييد رهاناتكم هناك.
حسنًا، إذن ها نحن ذا، الفئة النهائية في المحك، خاطئ هي الفئة.
في أي ولاية، إلى جانب ماساشوستس، يعتقد Google أحيانًا أننا نقيم؟
[MUSIC PLAYING - "JEOPARDY THEME SONG"]
حسنًا.
لذا، أعتقد أن طاقم العمل لن يكونوا في الصدارة، أو ليسوا في الصدارة،
لذلك لنبدأ بكم.
طاقم العمل، أولاً وقبل كل شيء، ما هو مبلغ الرهان؟
حسنًا، على حسب، أعتقد، فيما يتعلق بكيفية طرح السؤال،
لقد راهنوا على ما يبدو بمبلغ 4000 دولار أو 40 دولار.
طاقم العمل: [INAUDIBLE]
المتحدث 1: 40 دولار، ستتماشى مع 4000.
وما هي إجابتكم؟
طاقم العمل: لقد اخترنا كانساس.
المتحدث 1: كانساس، هذا أمر مثير للاهتمام.
الآن، أيها الطلاب، كم كان مبلغ رهانكم؟
الطالب: 2000.
المتحدث 1: 2000.
وما هي إجابتكم؟
الطالب: كانساس أيضًا.
المتحدث 1: كانساس أيضًا.
إذن ستجلب لكم 2000 مبلغ 8200.
ستجلب لكم 4000 مبلغ 8000.
إذن إذا كان كلاكما صحيحًا، أيها الطلاب فقد تكونوا حسمتم الفوز لصالحكم.
هل يتذكر الجمهور أين تعتقد Google
أين كنّا منذ بضعة أسابيع، على الرغم من حقيقة أنني
أخطأتُ في قول المكان الذي يعتقده Google؟
واتّضح أن أوكلاهوما كانت إجابتي غير الصحيحة.
وايومنغ، غير صحيحة أيضًا.
ولكن يمكننا القيام ببحث ثنائي إلى حد ما في هذا المجال.
أي شخص على الإطلاق؟
الجمهور: [INAUDIBLE]
المتحدث 1: هي، في الواقع، كانساس.
لذلك تهانينا لفريق الطلاب.
عاصفة من التصفيق، رجاءً، لطلابنا.
شكرًا جزيلاً لانضمامكم إلينا في CS50.
نحن فخورون جدًا بكم جميعًا، لا أطيق الانتظار لرؤيتكم في المعرض.
يتم تقديم الكعك الآن في الطابق السفلي.
وأتوجه بالشكر مجددًا لطاقم العمل.