من لم يشاهد محاضرات جامعة هارفارد عن أساسيات البرمجة بعد، اذهب هنا: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
مقدمة. هيكل دورة CS50
أصدقاء! في المقدمة، سنذكرك (أو نخبرك أيًا كان) بهيكل CS50. تستمر الدورة 12 أسبوعا. هناك محاضرتان كل أسبوع، بالإضافة إلى جميع أنواع الندوات والشروحات. سنقوم بنشر مقالات مثل هذه بمجرد أن تصبح المحاضرات جاهزة. وسيحتوي على وصف موجز للمحاضرات، وملاحظات حول "الشورتات" ومعلومات إضافية، بالإضافة إلى ترجمات الواجبات العملية. تناولت محاضرات الأسبوع الصفري المواضيع التالية:- نظام الأرقام الثنائية.
- أسكي
- الخوارزميات والتفكير الخوارزمي
- المجمعين
- لغة الصفر
- التعبيرات المنطقية
- شروط
- دورات
- المتغيرات
- المهام
- المصفوفات
- تيارات
- الأحداث
- فهم كيف يمكن تمثيل المعلومات رقميا.
- تعلم بنيات البرمجيات الأساسية والمفاهيم.
- قم بإنشاء الرسوم المتحركة أو اللعبة أو النشاط التفاعلي الخاص بك باستخدام Scratch.
- اعجاب أصدقائك =).
CS50 الأسبوع 0 (المحاضرة 1-2): ملاحظات
الخوارزميات
نأمل أن تكون قد شاهدت المحاضرات بالفعل وفهمت أن الخوارزمية تقسم حل المشكلات (المسائل المختلفة أو المسائل الرياضية أو "كيفية الوصول إلى محطة المترو N") إلى خطوات. علاوة على ذلك، يجب إكمال كل خطوة في فترة زمنية محدودة، ويجب أن يكون هناك عدد معين من الخطوات نفسها. كما أن الخطوة التالية تعتمد على الخطوة السابقة. يمكنك قراءة المزيد عن الخوارزميات، على سبيل المثال، هنا . إذا كنت تعرف اللغة الإنجليزية، إليك رسوم متحركة رائعة لـ TED لديفيد مالان: https://youtu.be/6hfOvs8pY1k على الرغم من أن المعلومات الموجودة في الفيديو بشكل عام تكرر ذلك في المحاضرة =).نظام الأرقام الثنائية
لدينا 10 أصابع والنظام عشري. أي أنه يمكننا تمثيل أي رقم، مهما كان كبيرًا، باستخدام الأرقام 0، 1، 2، 3، 4، 5، 6، 7، 8، 9. اعتمادًا على مكان وجود الرقم في الرقم، يمكن أن يعني ذلك أشياء مختلفة: إذا كان هذا الرقم هو الأخير، فهو يقع في خانة الآحاد، والرقم قبل الأخير يقع في خانة العشرات، وحتى إلى اليسار يقع في خانة المئات، وهكذا. في الأساس، يمكن كتابة أي رقم كمجموع أرقام، كل منها مضروب في عشرة إلى قوة معينة. في حالة الوحدات - صفر. على سبيل المثال, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . يسمى الرقم الذي يتم ضرب الأرقام به بأساس نظام الأرقام. بالنسبة للنظام العشري، الأساس منطقيًا هو عشرة. ليس لدى الكمبيوتر أصابع، ولكن هناك حالتان: "التيار يتدفق" بشكل مشروط و"التيار لا يتدفق"، صفر وواحد. وفقا لذلك، تتكون جميع الأرقام (والمعلومات بشكل عام) في ذاكرة الكمبيوتر من رقمين فقط - 0 و 1. يشير موقعها، كما في حالة نظام الأرقام العشري، إلى الرقم. الآن فقط يمكن تحليل الرقم إلى مجموع الأرقام مضروبًا ليس في قوى العشرة، بل في قوى الاثنين. 0 في النظام الثنائي = 0 1 في النظام الثنائي = 1 2 في النظام الثنائي = 10 7 10 =111 2 تعلم كيفية التحويل من النظام الثنائي إلى النظام العشري. ربما تكون قد فهمت بالفعل كيف يتم ذلك - فنحن ببساطة نأخذ رقم الرقم بدءًا من الرقم الموجود في أقصى اليمين ونضربه في الأساس إلى القوة المقابلة لرقمه، ونضيف كل شيء مع كل رقم. مثال: لنجد التماثل العشري للرقم الثنائي 101101 2 أقصى اليمين = 1*2 0 الصفر التالي = 0*2 1 الثالث من اليمين = 1*2 2 الرابع = 1*2 3 .. وهكذا 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 تخيل ثمانية مصابيح كهربائية مرتبة على التوالي. كل واحد منهم لديه التبديل الخاص به. كل من المصابيح الكهربائية عبارة عن تفريغ. ماذا يمكنك أن تتخيل، تذكر المحاضرة الأولى (يوجد مثل هذا الجهاز هناك) أو إليك أداة مخصصة لك : http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html معه، تدرب على "الشعور" بالنظام الثنائي. التحويل من العشري إلى الثنائي. هنا أيضًا كل شيء بسيط جدًا إذا فهمت الجوهر. لدينا هنا الرقم 57 10 . لتحويله إلى النظام الثنائي، تحتاج إلى تحديد الحد الأقصى لقوة اثنين لا يتجاوز هذا الرقم. 2 6 = 64. من الواضح أن هذا كثير جدًا. لكن 2 5 = 32. لقد حددنا الآن الرقم الأكثر أهمية. 32 10= 100000 2 . الآن نحن نبحث عن الرقم التالي. 57-32 = 25. الآن بالنسبة إلى 25، نبحث عن أس اثنين لا يتجاوز 25. 2 4 = 16. هذا يعني أن الرقم التالي يساوي أيضًا 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8، هذا أقل من 9. وهذا يعني أن الرقم التالي سيكون واحدًا أيضًا. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1، أي أنه لم يتبق سوى قوة واحدة، 2 0 . وبالتالي 57 10 = 111001 2 . إذا بقي شيء ما غير واضح فجأة، فيمكنك قراءة المزيد في Wikibook، وإذا كنت قويًا في اللغة الإنجليزية، فإليك إضافة صغيرة إلى المحاضرة.أسكي
الكمبيوتر يفهم فقط الأصفار والآحاد، ويمكن تمثيل ذاكرته كسلسلة طويلة جدًا من المصابيح الكهربائية ذات المفاتيح، كما رأيت أعلاه. نحن نفهم بالفعل كيفية تمثيل الأرقام في جهاز الكمبيوتر. وماذا عن بقية المعلومات؟ الحروف والصور؟ لنفترض أن هناك 26 حرفًا في الأبجدية الإنجليزية. أي أنه من الناحية النظرية، يمكننا تمثيل الحروف بأرقام من 0 إلى 25، فقط في النظام الثنائي. السؤال التالي الذي يطرح نفسه: كيف يمكننا أن نفهم ما إذا كان لدينا حرف صغير أم حرف كبير؟ ماذا عن علامات الترقيم؟ علامات غير مرئية مثل المساحات؟ باختصار، نحتاج إلى نظام تشفير يا كاب! في الستينيات، كان هناك العديد من المخططات المختلفة التي تقوم بتشفير الأحرف. ثبت أن الافتقار إلى التوحيد يمثل مشكلة، وفي عام 1963، قام المعهد الأمريكي للمعايير (ANSI) بتطوير وتقديم نظام ترميز ASCII (الرمز القياسي الأمريكي لتبادل المعلومات). يتكون كل حرف ASCII من سبع بتات، أو سبع بتات، كل منها يمكن أن تأخذ القيمة 0 أو 1. يمكن أن تحتوي 7 بتات على أرقام من 0 إلى 127 في النظام الثنائي، مما يعني أن لدينا 128 رقمًا لتشفير الأحرف. يبدو أن هذا يكفي لتشفير الكلام المكتوب باللغة الإنجليزية؟ لنعد: az - 26 خيارًا AZ - 26 أخرى 0-9 - 10 ,;:~& وعلامات الترقيم الأخرى - 32 ومسافة أخرى. المجموع - 95 حرفا. يتم استخدام الخيارات الشاغرة الـ 33 المتبقية لما يسمى بأحرف التحكم، مثل تغذية السطر أو إرجاع السطر: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg ومن المهم التمييز بين الأحرف 0-9 والقيم الرقمية 0-9. يتم تمثيل الأحرف 0-9 بقيم ASCII 48-57. ومن المثير للاهتمام أن نلاحظ أن البتات الأربعة الموجودة في أقصى اليمين من قيم ASCII هي تمثيلات ثنائية للقيم الرقمية من 0 إلى 9. وهذا يبسط إلى حد ما طريقة التحويل بين قيم ASCII وقيمها الرقمية الفعلية. لنبدأ بالبرمجة؟يخدش
لذلك، سكراتش. لقد تم إخبارك عن لغة البرمجة المرئية هذه وأوامرها الأساسية في المحاضرة. لتجربة Scratch بنفسك، اتبع الرابط وانقر على "انضمام". بمجرد التسجيل، يمكنك البدء بالبرمجة عبر الإنترنت. نعم، بالمناسبة، سكراتش اليوم أصبح سكانها ينالون الجنسية الروسية جزئيًا. ومع ذلك، لا تزال المساعدة باللغة الإنجليزية. إذا كنت ترغب في ذلك، يمكنك اللعب وإلقاء نظرة على كود مشاريع الطلاب التي تم عرضها في المحاضرة. إليك معجنات بيكاتشو كاتش . أو مشروع لفرز النفايات في حاويات مختلفة: https://scratch.mit.edu/projects/71161586/ يطلب منك David والشركة ألا تقلق إذا كنت تعتقد أنه لا يمكنك القيام بمثل هذه المشاريع المعقدة: هذا المستوى يتطلب بالفعل بعض المهارات .يمارس
-
لفهم العمليات التي تحدث في Scratch بشكل أفضل، يمكنك تنزيل الكود المصدري لعدة مشاريع من هنا . العب وانظر. تعلم كود شخص آخر مفيد جدًا. هذه واحدة من أفضل الطرق لمعرفة ما هو موجود داخل تلك البرامج التي لم تنضج بعد. بمجرد أن تبدأ في فهم كيفية عمل هذه التطبيقات، يمكنك المضي قدمًا بأمان.
-
الآن حان الوقت لفعل شيء ما بنفسك. ويتمثل التحدي في الاستمتاع أثناء تنفيذ مشروع صغير من الصفر. يمكن أن تكون رسوم متحركة أو لعبة أو حركة تفاعلية.
- يجب أن يحتوي البرنامج على اثنين على الأقل من النقوش المتحركة (الأحرف والصور)، ويجب ألا يكون أحدهما بالتأكيد قطة =).
- يجب أن يكون هناك ثلاثة نصوص (إجراءات) على الأقل.
- يجب تنفيذ شرط واحد وحلقة واحدة ومتغير واحد على الأقل.
- يجب تضمين صوت واحد على الأقل في البرنامج.
GO TO FULL VERSION