JavaRush /جاوا بلاگ /Random-UR /لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2)
Bender
سطح
Маунтин-Вью

لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2)

گروپ میں شائع ہوا۔
جس نے ابھی تک پروگرامنگ کی بنیادی باتوں پر ہارورڈ کے لیکچرز نہیں دیکھے ہیں، یہاں جائیں: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

تعارف۔ CS50 کورس کا ڈھانچہ

لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 1دوستو! تعارف میں، ہم آپ کو CS50 کی ساخت کے بارے میں یاد دلائیں گے (یا آپ کو جو بھی بتائیں گے)۔ کورس 12 ہفتوں تک رہتا ہے۔ ہر ہفتے دو لیکچرز کے ساتھ ساتھ ہر طرح کے سیمینار اور وضاحتیں ہوتی ہیں۔ جیسے ہی لیکچرز تیار ہوں گے ہم اس طرح کے مضامین شائع کریں گے۔ اس میں لیکچرز کی مختصر تفصیل، "شارٹس" پر نوٹس اور اضافی معلومات کے ساتھ ساتھ عملی اسائنمنٹس کے ترجمے بھی شامل ہوں گے۔ صفر ہفتہ کے لیکچرز میں درج ذیل امور شامل تھے:
  • بائنری نمبر سسٹم۔
  • ASCII
  • الگورتھم اور الگورتھم سوچ
  • مرتب کرنے والے
  • کھرچنے والی زبان
  • بولین ایکسپریشنز
  • شرائط
  • سائیکل
  • متغیرات
  • افعال
  • صفیں
  • سلسلے
  • تقریبات
ہفتہ 0 کے مقاصد:
  • سمجھیں کہ معلومات کو ڈیجیٹل طور پر کیسے پیش کیا جا سکتا ہے۔
  • بنیادی سافٹ ویئر کی تعمیرات اور تصورات سیکھیں۔
  • سکریچ کا استعمال کرتے ہوئے اپنی خود کی اینیمیشن، گیم یا انٹرایکٹو سرگرمی بنائیں۔
  • اپنے دوستوں کو متاثر کریں =)۔

CS50 ہفتہ 0 (لیکچر 1-2): نوٹس

الگورتھم

لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 2ہم امید کرتے ہیں کہ آپ نے پہلے ہی لیکچرز دیکھے ہوں گے اور سمجھ گئے ہوں گے کہ الگورتھم مسائل (مختلف مسائل، ریاضی کے مسائل یا "میٹرو اسٹیشن N تک کیسے پہنچیں") کے حل کو مراحل میں تقسیم کرتا ہے۔ مزید یہ کہ، ہر قدم کو ایک مقررہ وقت میں مکمل کیا جانا چاہیے، اور خود قدموں کی ایک خاص تعداد ہونی چاہیے۔ اس کے علاوہ، اگلا مرحلہ پچھلے ایک پر منحصر ہے. آپ الگورتھم کے بارے میں مزید پڑھ سکتے ہیں، مثال کے طور پر، یہاں ۔ اگر آپ انگریزی جانتے ہیں تو، یہاں ڈیوڈ مالان کی ایک شاندار TED اینیمیشن ہے: https://youtu.be/6hfOvs8pY1k اگرچہ عام طور پر ویڈیو میں موجود معلومات لیکچر میں دہراتی ہیں =)۔

بائنری نمبر سسٹم

لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 3ہماری 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 کا اعشاریہ اینالاگ تلاش کریں 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 میں مزید پڑھ سکتے ہیں، اور اگر آپ انگریزی میں مضبوط ہیں، تو یہاں لیکچر میں ایک چھوٹا سا اضافہ ہے۔

ASCII

لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 4کمپیوٹر صرف صفر اور والے کو سمجھتا ہے، اور اس کی میموری کو سوئچ کے ساتھ لائٹ بلب کی ایک بہت لمبی تار کے طور پر دکھایا جا سکتا ہے، جیسا کہ آپ نے اوپر دیکھا۔ ہم پہلے ہی سمجھ چکے ہیں کہ کمپیوٹر میں نمبروں کی نمائندگی کیسے کی جاتی ہے۔ باقی معلومات کے بارے میں کیا خیال ہے؟ خطوط، تصویریں؟ فرض کریں کہ انگریزی حروف تہجی میں 26 حروف ہیں۔ یعنی، نظریاتی طور پر، ہم صرف بائنری سسٹم میں 0 سے 25 تک کے حروف کی نمائندگی کر سکتے ہیں۔ مندرجہ ذیل سوال پیدا ہوتا ہے: ہم کیسے سمجھ سکتے ہیں کہ ہمارے پاس چھوٹا حرف ہے یا بڑے؟ اوقاف کے نشانات کے بارے میں کیا خیال ہے؟ خالی جگہوں کی طرح پوشیدہ نشانیاں؟ مختصر میں، ہمیں ایک کوڈنگ سسٹم کی ضرورت ہے، Cap! 1960 کی دہائی میں، بہت سی مختلف اسکیمیں تھیں جو حروف کو انکوڈ کرتی تھیں۔ یکسانیت کا فقدان ایک مسئلہ ثابت ہوا، اور 1963 میں، امریکن اسٹینڈرڈز انسٹی ٹیوٹ، اے این ایس آئی نے 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 اقدار اور ان کی اصل عددی اقدار کے درمیان تبدیل کرنے کا طریقہ آسان بناتا ہے۔ آئیے پروگرامنگ شروع کریں؟

کھرچنا

لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 5تو، سکریچ. آپ کو لیکچر میں اس بصری پروگرامنگ زبان اور اس کے بنیادی احکام کے بارے میں بتایا گیا۔ اپنے لیے سکریچ آزمانے کے لیے، لنک پر عمل کریں اور "شامل ہو جائیں" پر کلک کریں۔ ایک بار رجسٹر ہونے کے بعد، آپ آن لائن پروگرامنگ شروع کر سکتے ہیں۔ ہاں، ویسے، آج سکریچ جزوی طور پر Russified ہے۔ تاہم، مدد اب بھی انگریزی میں ہے۔ اگر آپ چاہیں تو، آپ کھیل سکتے ہیں اور طلباء کے پروجیکٹس کے کوڈ کو بھی دیکھ سکتے ہیں جن کا مظاہرہ لیکچر میں کیا گیا تھا۔ یہ ہے پکاچو پیسٹری کیچ ۔ یا ایک پروجیکٹ جس میں فضلہ کو مختلف کنٹینرز میں چھانٹنا ہے: https://scratch.mit.edu/projects/71161586/ ڈیوڈ اور کمپنی آپ سے کہتی ہے کہ پریشان نہ ہوں اگر آپ کو لگتا ہے کہ آپ اس طرح کے پیچیدہ پروجیکٹ نہیں کر سکتے: اس سطح کو پہلے ہی کچھ مہارت کی ضرورت ہوتی ہے۔ .

ورزش

  1. سکریچ میں ہونے والے عمل کو بہتر طور پر سمجھنے کے لیے، آپ یہاں سے کئی پروجیکٹس کے لیے سورس کوڈ ڈاؤن لوڈ کر سکتے ہیں ۔ ادھر ادھر کھیلو اور دیکھو۔ کسی اور کا کوڈ سیکھنا بہت مفید ہے۔ یہ معلوم کرنے کا ایک بہترین طریقہ ہے کہ ان پروگراموں کے اندر کیا ہے جن میں آپ خود ابھی تک پختہ نہیں ہوئے ہیں۔ ایک بار جب آپ یہ سمجھنا شروع کر دیں کہ یہ ایپلیکیشنز کیسے کام کرتی ہیں، تو آپ محفوظ طریقے سے آگے بڑھ سکتے ہیں۔

  2. اب وقت آگیا ہے کہ آپ خود کچھ کریں۔ چیلنج یہ ہے کہ شروع سے ایک چھوٹے پروجیکٹ کو لاگو کرتے ہوئے تفریح ​​​​کریں۔ یہ حرکت پذیری، گیم، انٹرایکٹو ایکشن ہو سکتا ہے۔

پروجیکٹ کی ضروریات:
  • پروگرام میں کم از کم دو اسپرائٹس (کردار، تصاویر) پر مشتمل ہونا چاہیے اور ان میں سے ایک بلی نہیں ہونا چاہیے =)۔
  • کم از کم تین اسکرپٹ (ایکشن) ہونے چاہئیں۔
  • کم از کم ایک شرط، ایک لوپ، اور ایک متغیر کو عمل میں لانا چاہیے۔
  • پروگرام میں کم از کم ایک آواز ضرور شامل کی جائے۔
یعنی، خلاصہ یہ ہے کہ، آپ کا پروجیکٹ لیکچر میں لکھے گئے لوگوں سے زیادہ پیچیدہ، لیکن پکاچو اور کوڑا اٹھانے کے بارے میں دکھائے گئے کھلونوں سے زیادہ آسان ہوگا۔ لہذا آپ کا پروجیکٹ شاید کئی درجن پہیلیاں استعمال کرے گا جو سکریچ کوڈ بناتے ہیں۔ اگر کچھ کام نہیں کرتا ہے تو، آپ کو مسئلہ کو حل کرنے کے لۓ اپنے نقطہ نظر کو تبدیل کرنے کی ضرورت ہوسکتی ہے. اہم بات خوف کے بغیر جانا ہے! ہم آپ کو سوالات پوچھنے اور تبصروں میں اپنے پروجیکٹس کا اشتراک کرنے کی دعوت دیتے ہیں۔

سکریچ: کارروائی کے لیے ایک فوری رہنما

سپرائٹ اس منصوبے کا مرکزی مقصد ہے۔ کوئی بھی کردار - ایک بلی، ایک ہوائی جہاز، ایک گیند - ایک سپرائٹ ہے۔ اگر آپ نے دو مختلف بلیوں کو شامل کیا تو یہ دو مختلف اسپرائٹس ہیں۔ لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 6ہر اسپرائٹ میں اسکرپٹ ہوتے ہیں جو اس کے طرز عمل کو بیان کرتے ہیں۔ یہ ایکشن بلاکس ہیں۔ ملبوسات وہ ہیں جو اشیاء کی طرح دکھتے ہیں۔ اسپرائٹس خود بنیادی طور پر صرف ڈرائنگ ہیں۔ ہر سپرائٹ میں متعدد ملبوسات ہوسکتے ہیں۔ اسپرائٹ بنانے کے لیے، آپ کو یا تو اسکریچ لائبریری سے اس کا اصل لباس منتخب کرنا ہوگا، بلٹ ان ایڈیٹر میں اپنا ڈرائنگ کرنا ہوگا، کوئی بھی تصویر اپ لوڈ کرنی ہوگی، یا یہاں تک کہ اپنے ویب کیم کا استعمال کرکے تصویر کھینچ کر اسے اپ لوڈ کرنا ہوگا۔ تمام اسپرائٹس نام نہاد اسٹیج پر رکھے جاتے ہیں۔ اسٹیج بنیادی طور پر ہمارا کینوس ہے، پروگرام کی ترتیب۔ آپ لائبریری سے آوازوں کو اسپرائٹ یا منظر سے بھی منسلک کر سکتے ہیں، یا آپ انہیں لوڈ کر سکتے ہیں یا مائیکروفون کا استعمال کرکے خود انہیں ریکارڈ کر سکتے ہیں۔ پروگرام پر عمل درآمد شروع کرنے کے لیے، آپ کو سین ونڈو کے اوپری دائیں کونے میں سبز پرچم پر کلک کرنے کی ضرورت ہے۔ لیکن ایسا کرنے سے پہلے، آپ کو پروگرام میں مندرجہ ذیل بلاک رکھنے کی ضرورت ہے: لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 7اور اس کے ساتھ کچھ بلاکس منسلک کریں، جیسا کہ ایک ڈیزائنر حصہ ہے۔ مثال کے طور پر: لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 8اس صورت میں، جب آپ جھنڈے پر کلک کرتے ہیں، تو اسپرائٹ جس سے ایکشن منسلک ہوتا ہے 50 قدم اور میاؤز لیتا ہے۔ ہمارے پاس بہت سارے بلاکس ہیں۔ انہیں تین ٹیبز میں تقسیم کیا گیا ہے: اسکرپٹ، ملبوسات اور آواز۔ آئیے ایک شرط کے ساتھ ایک سادہ پروگرام بناتے ہیں۔ اگر پورا ہوا تو بلی میاؤں کرے گی، اگر پوری نہ ہوئی تو خاموش رہے گی۔ آپریٹرز کو سبز رنگ میں اشارہ کیا گیا ہے۔ وہ جو جانچتے ہیں کہ آیا کوئی شرط درست ہے یا غلط ان کے اطراف میں تیز کونے ہوتے ہیں۔ کنڈیشن ٹیسٹنگ ڈھانچے اور لوپس نارنجی رنگ میں دکھائے گئے ہیں۔ ان میں خاص سوراخ ہیں جہاں آپ دوسرے بلاکس رکھ سکتے ہیں۔

سائیکل:

لامحدود بار دہرائیں: لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 9کسی چیز کو ایک خاص تعداد میں دہرائیں: لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 10شرط پوری ہونے پر ایک عمل کو دہرائیں: لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 11آپ ڈیٹا بلاک میں متغیرات بنا سکتے ہیں۔ ذیل کی مثال میں، ہم نے ایک متغیر x بنایا، اور فوری طور پر ایسے اعمال تھے جو اس کے ساتھ کیے جا سکتے ہیں۔ آپ متغیرات کا دائرہ کار مقرر کر سکتے ہیں: تمام اسپرائٹس کے لیے یا ایک کے لیے۔ لیکچرز کے لیے اضافی مواد CS50: ہفتہ 0 (لیکچرز 1 اور 2) - 12سبز جھنڈا صرف ایکشن نہیں ہے۔ واقعات کے سیکشن میں بھی آپ کو کنٹرول کے کئی دیگر حالات مل سکتے ہیں۔ مثال کے طور پر، آپ یہ منتخب کر سکتے ہیں کہ جب آپ بٹن پر کلک کریں یا ماؤس کے ذریعے خود سپرائٹ پر کلک کریں تو کیا کرنا ہے۔ اگر آپ کو اضافی معلومات کی ضرورت ہے، تو آپ اسے تلاش کر سکتے ہیں، مثال کے طور پر، یہاں ۔

اور کیا

اگر آپ کی انٹرنیٹ تک رسائی مطلوبہ حد تک رہ جاتی ہے، تو ہم https://scratch.mit.edu/scratch2download/ پر آف لائن سکریچ ایڈیٹر ڈاؤن لوڈ کرنے کی تجویز کرتے ہیں ۔ پھر فائل > کمپیوٹر سے اپ لوڈ کا استعمال کرتے ہوئے اپنا پروجیکٹ http://scratch.mit.edu/ پر جمع کرنا نہ بھولیں ۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION