[موسیقی بجانے] اسپیکر 1: ٹھیک ہے، اس CS50 ہے، اور اس ہفتے چار کے آغاز کے، ہے اور تم نے سنا ہے ہو سکتا ہے کے طور پر یا پڑھ، دنیا ختم کر دیا گیا ہے. انٹرنیٹ کے ارد گرد جا رہا علم اور بیداری ہے پروگرام، ایک میں ایک مسئلے کے پارٹی کہا جاتا پروگرامنگ زبان. یہ حیرت انگیز قرار دیا گیا ہے Shellshock کے، یا ایک شاندار ہڑتال دروازے کے طور پر، لیکن اس طرح کے مضامین کوئی غیر معمولی بات نہیں ہے. اور حقیقت میں، ان میں سے بہت لانے کے Heartbleed کے پیچھے یادیں، آپ میں محسوس کیا ہو سکتا ہے جس میں ، یہ گزشتہ موسم بہار واپس دبائیں جس اسی طرح کافی ڈرامائی تھا. اب آپ ان لوگوں کے یہاں آج، تم میں سے کتنے، ہے آپ کو سمجھ میں نہ بھی ہو تو کیا اس Shellshock کے بارے میں سنا، سب کے بارے میں ہے؟ ٹھیک ہے، اور تم میں سے کتنے کمزور ہیں کہ کمپیوٹر ہے؟ ٹھیک ہے، اب تک، کہیں زیادہ ہاتھ ہونا چاہئے ابھی تک، وجوہات کی بناء پر ہم دیکھیں گے. کی ہے کیا میں ایک نظر ڈالیں میڈیا میں چل رہا اور اس کے بعد یہ تھوڑا سا کی وضاحت یہاں ہمارے لئے تکنیکی. اسپیکر 2: سلامتی کے ماہرین ہیں نے خبردار کیا ہے ایک سنگین دوش کر سکتے ہیں کہ سینکڑوں کی تعداد میں متاثر کرنے کے لئے کے بارے میں دنیا کے ویب صارفین کے لاکھوں. تو بالکل کیا گیا ہے کہ بگ کیا ہے Shellshock کے ڈب، اور یہ کیا کرتا ہے؟ ویسے، Shellshock کے طور پر بھی جانا جاتا ہے پارٹی بگ، اس کا استحصال سافٹ ویئر. ہیکروں کمزور اسکین کرنے کے لئے وائرس استعمال لینکس اور یونیکس چلانے کے نظام آپریٹنگ سسٹم اور پھر ان کو متاثر. پارٹی ایک کمانڈ لائن شیل ہے. یہ صارفین کو مسئلہ شروع کرنے کا حکم دیتا ہے کی اجازت دیتا ہے سافٹ ویئر کے اندر اندر پروگرام اور خاکے متن میں ٹائپ کی طرف سے. یہ عام طور پر پروگرامرز کی طرف سے استعمال کیا جاتا ہے، اور ہے وسیع تر دنیا کے لئے کھلا نہیں ہونا چاہئے، Shellshock کے کہ تبدیلیاں اگرچہ. ویسے، worringly، بعض تجزیہ کاروں یہ ایک بڑا خطرہ ہو سکتا ہے خبردار، Shellshock کے مکمل اجازت دیتا ہے کیونکہ ایک متاثرہ مشین کی کنٹرول، Heartbleed جبکہ صرف کی اجازت ہیکروں کمپیوٹر پر جاسوسی کرنے کے لئے. یہ ہے، تو سنگین ہے باہر 10 10 درجہ دیا گیا قومی کی طرف سے شدت کے لئے خطرے ڈیٹا بیس. تمام ویب سرورز کے 2/3 میں ہیں کچھ میک کمپیوٹر سمیت خطرہ،. ٹھیک ہے، آپ اس بات کا یقین اب آپ اپنے نظام پیچ. ایک ویب سائٹ چلانے کی میزبانی کوئی بھی متاثر آپریٹنگ سسٹمز جتنی جلدی ممکن کارروائی کرنی چاہیے. یہ دیکھنا چاہیے کہ برداشت کر سکتے ہیں جو کوئی بھی ان کی نگرانی اور ویب ایپلیکیشن فائر والز کسی بھی حملوں کے لئے باہر دیکھو. اسپیکر 3: سب سے بری چیز ہو سکتا ہے کہ کوئی کوڈ لکھ کریں گے کہ خود کار طریقے سے جانا اور سکین انٹرنیٹ اور اثر پڑے گا ان کمپیوٹرز کی تمام. اور وہ اچھی طرح سے، ایسا ایک بار، وہ کر سکتے ہیں سب سے بری چیز سب کچھ کو خارج کیا جاتا ہے، یا نیچے سائٹس بند. تو ہم نقصان دیکھ سکتا اس نقطہ نظر سے، ہم بدنیتی پر مبنی لوگوں ہوگا جہاں جو صرف تباہی کی وجہ سے کرنے کا فیصلہ نظام لانے یا خارج کرنے کی طرف سے اس طرح کی فائلوں، اور چیزیں. اسپیکر 2: کچھ اس میں سے ایک کا کہنا ہے کہ سب سے زیادہ مشکل کی پیمائش کرنے کے لئے سال میں کیڑے، اور یہ ہفتے لگ یا اس سے بھی ہو سکتا ہے ماہ اس کی حتمی اثرات کا تعین کرنے کے لئے. اسپیکر 1: تو یہ سب سچ ہے، لیکن عجیب بات یہ ہے کہ تقریبا تمام، ہے کی منظر کشی آپ نے ابھی دیکھا، شاید بورڈ کے علاوہ، کے ساتھ کوئی تعلق نہیں ہے کچھ بگ کی. سرور اور تاروں اور تو آگے، اس طرح کی tangentially سے متعلق ہے، لیکن بنیادی طور پر یہ بہت اصل ہے واقف یہاں کیا ہو رہا ہے. اصل میں، مجھے میں جانے ہماری CS50 آلات. مجھے آگے بڑھیں اور زیادہ سے زیادہ دو یہاں ٹرمنل ونڈو. اور تم لوگ، اس کا استعمال کرتے ہوئے کیا گیا ہے یا، اس ورژن سرایت پروگراموں کو لکھنے کے لئے میں gedit میں، تو آگے حکم ٹائپ کریں، اور، اور یہ اصل میں ہے، اور ہے ہفتوں، پارٹی، B-A-S-H کے لئے کیا گیا. یہ لڑائی پھر، شیل جس صرف کہنے کی پسند ہیں طریقہ ہے، یہ ایک ہے کہ ایک پروگرام ہے مؤثر طریقے سے، فوری طور پر ٹمٹمانے، کہ انتظار کر وہاں بیٹھ آپ کے لئے ان پٹ کے لئے. اور یہ حکم ہے لائن انٹرفیس جس کے ذریعے تم لوگوں کو حکم دیتا ہے چل رہا ہے اور بالآخر تالیف اور پھر چل رہا ہے پروگراموں. لیکن پارٹی نے ایک پروگرامنگ ہے مندرجہ ذیل معنوں میں زبان. آپ کی طرح حکم دیتا ہے جانتے ہیں کہ سی ڈی اور LS اور بھی بجنا اور دوسروں، لیکن آپ کو اپنے حکم کی وضاحت کر سکتے ہیں پارٹی میں ان کے نفاذ سے. اب ہم نہیں جا رہے ہیں عظیم تفصیل میں جانا کے طور پر پروگرامنگ زبان جشن، لیکن جانتے ہیں، مثال کے طور پر، اس وقت کہ، کہا کوئی حکم نہیں ہے "ہیلو." تو اس میں پایا جا سکتا ہے یہ پیکجوں کے میں سے ایک. یہ میرے کمپیوٹر پر نصب نہیں ہے. آپ کا منتظم سے پوچھو. لیکن میں وہاں چاہتے ہیں تو ایک پروگرام ہونا پارٹی میں یا میری فوری طور پر "ہیلو" کہا جاتا ہے، میں اصل میں ہے کہ نحو استعمال کر سکتے ہیں بہت سی طرح، بہت ہی نہیں ہے لیکن یہ ایک بہت کی طرح لگ رہا تقریب، کچھ تفصیلات لاپتہ سہی. کچھ نہیں لگتا ہے، لیکن اب میں "ہیلو" ٹائپ کریں آپ اصل میں ایک لکھ سکتے ہیں پروگرام، نہیں سی، نہیں جاوا میں، ایک اور پروگرامنگ میں زبان، لیکن پارٹی میں ہی. اب یہاں اہم کہ میں نے لکھا ہے میں اس نئی کمانڈ دینا چاہتا تھا نام، اور قوسین بھی ہیں اس کی علامت ایک تقریب ہونے. ایک طرف ایک کے طور پر، آپ کو بھی مذاق کر سکتے ہیں ، اور حقیقت میں، یہاں تک کہ میک OS پر چیزیں، اس ٹرمینل کے نام سے ایک پروگرام ہے. یہ کسی کی ہے میں تعمیر آتا اس کمرے میں ایک میک ہے کہ کمپیوٹر، اور آپ کو میک میں اسی طرح باتیں کر سکتے ہیں OS، لیکن آپ کو اس سے باہر زیادہ جا سکتے ہیں. اور یہ، ایک چھوٹا سا tangential ہے لیکن یہ مزہ کی طرح ہے. میں نے آج صبح یاد دلایا گیا تھا، اس کے ذریعے سوچ جب، ایک چھوٹا سا کھیل میں کھیلنے کے لئے استعمال کیا جاتا ہے CS50 کے سابق TFs میں سے ایک کے ساتھ کسی بھی وقت وہ دور سے چل جائے گا جس کے تحت اس سکرین کے ساتھ ان کے بورڈ کھلا، میں ایک کمانڈ پھانسی گی this-- طرح "ہیلو کہنا." اور اب کسی بھی وقت وہ واپس آئے ان بورڈ میں سکرین صاف کرنے کے بعد اور وہ، بیٹھ گے کچھ کام کرنے کی کوشش کریں، اس ڈائریکٹری کے مواد کی فہرست [آڈیو پلے بیک] ہیلو. ہیلو. جانبداری میں تو،،: اسپیکر 1 یہ "ہیلو." اصل میں نہیں تھا یہ عام طور پر کچھ تھا that-- سے ماخوذ [آڈیو پلے بیک] -Beep. اسپیکر 1: میں would-- --that تو اس کے کمپیوٹر گے وہ اصل میں اس پر کسی بھی وقت قسم اپنے کی بورڈ پر بیٹھ. اور بہت جلد انہوں نے سوچا اس سکرین کھلا چھوڑنے کے لئے نہیں. لیکن اس طرح سے پتہ چلتا ہے پاگل مزہ ہے کہ آپ ایک شاندار ہڑتال طرح کچھ کے ساتھ کر سکتے ہیں. لیکن یہ تھوڑا سا زیادہ ہے سنگین، اس سے، اس بات کا یقین کرنے کے لئے. اور حقیقت میں، اس میں سے ایک ہے سب سے زیادہ خطرناک اور دیرپا کیڑے کہ واقعی عالمی سطح پر دنیا کو مارا ہے. اس مسئلے کے ارد گرد کیا گیا ہے 20 سال کے لئے، اور آپ کو صرف ایک میں مارا جائے گا اس کے رشتہ دار سادگی کی طرف سے لمحے. تو یہ ایک نمائندہ ہے حکم ہے کہ اگر آپ لفظی اب، میک کے مالک آپ کو آپ کے ڑککن کھولیں ہے جب، آپ اس میں ٹائپ کرنے کی کوشش کر سکتے ہیں ٹرمینل نامی پروگرام. ٹرمینل کے تحت ہے آپلیکیشنز Utilities-- ایک بار کے لئے، ونڈوز کے صارفین کے لئے نہیں ہے یہ خاص طور پر threat-- کے بارے میں فکر لیکن میکس کے ساتھ تم میں سے ان لوگوں ٹائپ کر سکتے ہیں ایک ونڈو میں اس میں یہاں کیا کریں گے کی طرح، اور آپ ٹائپ کرتے ہیں تو اس پروگرام میں ہے کہ اب میں کروں گا کی طرح، ٹرمینل کہا، لفظ نظر "اگر کمزور،" آپ کے کمپیوٹر میں ہے استحصال کا شکار. اب یہ اصل میں کیا مطلب ہے؟ اور اس کا اقرار ہے کچھ خوبصورت پاگل نحو، لیکن کم از کم اپنی طرف متوجہ دلچسپ پہلوؤں میں سے کچھ. تو لگتا ہے کہ کچھ نحو ہے کم از کم C سے، ایک چھوٹا سا واقف اور عام طور پر پروگرامنگ. میں نے کچھ قوسین دیکھیں، وقف ناقص، گھوبگھرالی منحنی خطوط وحدانی، اور اس طرح، لیکن اس پتہ چلا ہے کہ پیلے رنگ میں یہاں احمقانہ بات ایک تقریب بنیادی طور پر ہے کہ کچھ نہیں کرتا. بڑی آنت کا مطلب کچھ نہیں، اور نیم وقفہ کچھ نہیں کر روکنے کا مطلب ہے. ان کے اندر تو گھوبگھرالی منحنی خطوط وحدانی، حقیقت میں برابر ہے کہ چھوڑ دیا، اس کے لئے دستخط بنیادی طور پر پیدا ہے ایک کمانڈ، یا ایک متغیر، X کہا جاتا ہے، اور اس کے بتائے وہاں کے کوڈ کے کہ پیلے رنگ تھوڑا سا. کہ "گونج کی طرح کچھ ہو سکتا ہے خوش "یا" کا کہنا ہے کہ بیپ "یا کچھ اور کہ سے ماخوذ. لیکن آپ کی آنکھوں تو نوٹس درست کرنے کے لئے مزید گھومنا، سے اس لائن سے زیادہ ہے اس نیم وقفہ کے صرف اختتام. پھر "، کمزور بازگشت" اور اس کے بعد اس سے بھی زیادہ ہے. ایک نیم وقفہ، پارٹی سی:. تو لمبی کہانی مختصر، کوڈ کی اس لائن ہے مجبور کے لئے کافی ہے کہ ایک کمپیوٹر کچھ کر کے خطرے سے دوچار اگر آپ ایسا کرنا چاہتے ہیں، پارٹی جس میں ایک مسئلے سے ہے کیونکہ پارٹی کو روکنے کے لئے تھا، اگرچہ حکم حق کے پڑھنے کی لائنز وہاں پیلے رنگ متن کے بعد، ایک 20 سال کی عمر کے علاوہ بگ کے لئے، پارٹی اصل میں پڑھ رہا ہے اس نیم وقفہ سے باہر اور خوبصورت زیادہ سے زیادہ یہ کہا جاتا ہے کیا کر. تو کیا مطلب ہے کی کہ آخر؟ میں نے صرف "ہیلو بازگشت" کہا یا "، کمزور بازگشت" لیکن کیا آپ کو کچھ کیا تو اصل میں بدنیتی پر مبنی، RM -rf * کی طرح، جس سے آپ نہیں ہو سکتا پہلے سے ٹائپ کیا ہے، اور واضح طور پر آپ کو شاید بہت جلد ہی نہیں ہونا چاہئے، آپ کو ایک کر سکتے ہیں کی وجہ سے اس کے ساتھ نقصان کی بہت. کیوں؟ RM کے دوران کیا، ہے؟ ہٹاتا ہے. * کیا مطلب ہے؟ تمام. تو یہ ایک نام نہاد ہے جنگلی کارڈ، اس کا مطلب یہ تو میں سب کچھ کو خارج کر دیں موجودہ ڈائریکٹری. -r پنراورتی مطلب ہوتا ہے، آپ کو خارج کرنے کی کر رہے ہیں تو اس کا مطلب ایک ڈائریکٹری ہے، اور وہاں کے اندر ، دیگر فائلوں اور دیگر ڈائریکٹریز ہے تکراری طور پر وہاں میں کودو اور اس کے سب خارج. اور -f ان سب کا سب سے برا ہے. کوئی بھی -f یہاں کا مطلب کیا ہے؟ فورس. تو بھی، اسباب مجبور یہ ایک برا خیال ہے تو، مجھے فورا بغیر ایسا مزید تصدیق کے لئے. تو، آپ کو معلوم ہے، ہم پر ہنسنا یہ، لیکن سچ کہوں تو، میں شاید یہ ایک سے زیادہ بار ٹائپ ایک دن، کیونکہ حقیقت اس کے لئے سب سے تیز رفتار طریقہ ہے چیزیں کی ایک پوری چڑھانے خارج. لیکن میں بھی کچھ نقصان کیا ہے. لیکن اگر آپ ایک کمپیوٹر کو دھوکہ کرنے کے لئے تھے تو کچھ پاگل متغیر کی وضاحت میں یا تقریب ایکس کہا جاتا، لیکن اس کے بعد عمل میں کمپیوٹر tricking کے اس کی حدود سے باہر تقریب، کہ نیم وقفہ سے باہر، آپ واقعی ایک کمپیوٹر دھوکہ کر سکتے ہیں RM طرح کچھ عمل میں -rf یا ای میل کے کمانڈ یا کاپی کمانڈ. کچھ لفظی آپ کے ساتھ کیا کر سکتے ہیں کمپیوٹر، اس کی فائلوں کو خارج کرنے کی ہے، چاہے، ، فائلوں کو پیدا کرنے کے کسی سپیمنگ، دور کچھ سرور پر حملہ، آپ اس کا اظہار کر سکتے ہیں ایک کمانڈ کے ساتھ، آپ کہ کر میں ایک کمپیوٹر دھوکہ کر سکتے ہیں. اب اس کی ایک مثال ہے تم ایسا کیسے کر سکتا ہے؟ ویسے، کمپیوٹر کے ایک بہت ہے انٹرنیٹ چلانے کے پارٹی پر. ہم سے میک صارفین کے سب ان کے درمیان ہیں. لینکس سرورز کی ایک بہت شامل ہیں ان کے ساتھ ساتھ، اور UNIX سرورز. ونڈوز دوبارہ ہو جاتا ہے نسبتا کانٹا آپ کو نصب ہے جب تک خصوصی سافٹ ویئر. سرورز کی ایک بہت اب، کے لئے مثال کے طور پر، چلانے کے ویب سرورز، اور حقیقت میں لینکس شاید ہے سب سے زیادہ مقبول آپریٹنگ سسٹم انٹرنیٹ پر کمپیوٹر پر چلانے کے لئے کہ ویب صفحات کی خدمت کر رہے ہیں. اب ہم بعد میں دیکھیں گے کے طور پر سمسٹر، جب میں آپ سے ایک درخواست بھیجنے آپ کے براؤزر کروم، انٹرنیٹ ایکسپلورر، جو کچھ بھی ایک ریموٹ سرور پر، یہ پتہ چلا ہے کہ اگرچہ آپ صرف ٹائپ www.example.com، آپ کے براؤزر میں ایک پیغام بھیج رہا ہے کہ تھوڑا زیادہ arcane، اس طرح ہے. لیکن عجیب کچھ محسوس. پہلے دو لائنیں میں نے پہلے کبھی نہیں دیکھا ہے لیکن وہ نظر نہیں خاص طور پر خطرناک. لیکن میں نے چوری کی ہے محسوس کیا یہاں تیسری لائن کے لئے. ایک برا آدمی ایک پیغام بھیجنے کے لئے تھے تو اس کا یا اس کے کمپیوٹر سے اس طرح ایک کمزور میک یا کرنے کے لئے کمزور لینکس سرور، عجیب بات یہ ہے، کہ میں ایک شاندار ہڑتال ہے کہ سادہ سی کمانڈ پرامپٹ، ہر طرف موجود ہے اور اکثر ہے بنیادی طور پر عمل کرنے کے لئے استعمال کیا جاتا ہے ایک کے مندرجات یہ حاصل ہے کہ پیغام. اور یہ کہ منطق کی طرف سے، آپ کر سکتے ہیں اس وجہ سے، ایک ویب سرور کی چال کی طرح کچھ بھیجنے کی طرف سے صارف کے ایجنٹ، عام طور پر جس کا کہنا ہے کہ سمجھا جاتا ہے اپنے براؤزر کے نام. صارف کے ایجنٹ کروم، صارف ایجنٹ انٹرنیٹ ایکسپلورر، صارف ایجنٹ فائر فاکس، اس صرف آپ کے براؤزر کی ہے خود کی شناخت کی راہ. لیکن اگر ایک برا آدمی بہت چالاکی ملی میٹر ملی میٹر، میں ہوں، کا کہنا ہے کہ آپ کو بتا کرنے کے لئے نہیں کیا اپنے براؤزر ہے، میں بجائے آپ نے اس کو بھیجنے کے لئے جا رہا ہوں ایک RM -rf ساتھ بات خفیہ نظر * اس میں، آپ لفظی ایک چال کر سکتے ہیں انٹرنیٹ پر کمزور ویب سرور میں بالکل اس عمل میں وہاں فائلوں کی تمام خارج کرنے کے لئے. اور واضح طور سے، کہ نہیں ہے یہ بھی سب سے زیادہ. تم کچھ بھی کر سکتے ہیں. آپ شروع کر سکتا ہے تقسیم سروس حملے کے انکار آپ کو یہ پیغام بھیجا ہے تو ویب سرورز کے پورے bunches کے اور پھر ان سب کے لئے، اترتے تھے مثال کے طور پر، Harvard.edu سرورز پر، اور آپ کو دھماکے کی ترتیب کر سکتے ہیں ان میں سے کیا heck تھا کہ ایک نیٹ ورک ٹریفک کی طرف سے دوسری صورت میں یہ برا آدمی سے متحرک. تو، لمبی کہانی کو مختصر، تقریبا میک کا مالک ہے جو اس کمرے میں سب اس کے خطرے سے دوچار ہے. چاندی کا استر آپ جب تک ہے اپنے لیپ ٹاپ پر ایک ویب سرور چلانے، اور آپ اصل میں ترتیب دیا ہے جب تک یہ، اس میں SSH کی طرح کچھ کرنے کی اجازت دینے آپ اصل میں محفوظ ہیں. یہ کمزور ہے، لیکن کوئی نہیں ہے ایک اپنے لیپ ٹاپ میں حاصل کرنے کی کوشش، تو آپ کی طرح کی یقین دہانی کرائی آرام کر سکتے ہیں. تاہم، ایپل جلد ہی اس کے لئے ایک طے کر اپ ڈیٹ کیا جائے. لینکس کی دنیا پہلے ہی جاری کیا ہے fedora اور اوبنٹو کے لئے اصلاحات کی ایک بڑی تعداد اور لینکس کے ورژن، اور یقینا آپ اس آلے میں اپ ڈیٹ 50 چلاتے ہیں، بھی ہو جائے گا یہاں تک کہ اپ ڈیٹ اور درست. لیکن وہ بھی نہیں ہے واقعی، کمزور کیا گیا آپ نے کیونکہ جب تک کہ آلات کے ساتھ tinkered اور عوامی اپنے لیپ ٹاپ بنا نہیں ہے انٹرنیٹ پر قابل رسائی ڈیفالٹ کی طرف سے، آپ نے اصل میں کیونکہ ٹھیک کیا گیا firewalling اور دیگر تراکیب کا. لیکن یہ ایک مسئلے کا ایک انتہائی مثال ہے ہم لفظی 20 کے لئے رہتا ہے کہ سال، اور جو کسی کو تو جانتا ہے اس وقت اس کے بارے میں نام سے جانا جاتا ہے؟ اور حقیقت میں، اس میں سے ایک ہے بنیادی چیلنجوں ہم بعد میں دیکھیں گے کہ سیکورٹی کے بارے میں سمسٹر، کہ، صرف حقیقی دنیا میں کی طرح ہے اچھے لوگ نقصان میں ہیں. برے لوگوں کو باہر رکھنے کے لئے، ہم کرنے کے لئے ہے ہر دروازہ بند ہے اس بات کو یقینی بنانے کے، ہر کھڑکی ہے، محفوظ ہے ایک گھر میں داخلے کے ہر موڑ برے لوگوں کو باہر رکھنے کے لئے محفوظ ہے. لیکن کیا کرتا ہے برا آدمی کے لئے ہے اصل میں آپ کے گھر سمجھوتہ کرنے کے لئے کیا اور آپ سے چوری؟ وہ صرف کھلا ایک کو تلاش کرنے کے لئے ہے دروازے، ایک ٹوٹے ہوئے ونڈو، یا کچھ اور ان لائنوں کے ساتھ ساتھ، اور یہ کمپیوٹر سیکورٹی میں ایک ہی بات. ہم لاکھوں لکھ سکتے ہیں پروگرامنگ کوڈ کی لائنیں اور سینکڑوں یا ہزاروں خرچ یہ درست حاصل کرنے کے لئے کی کوشش کر رہے گھنٹے، لیکن اگر آپ کو صرف ایک بنانے درست میں غلطی، آپ پورے نظام کو ڈال کر سکتے ہیں اور بے شک اس صورت میں، پورے انٹرنیٹ اور خطرے میں دنیا. آپ کو مزید جاننے کے لئے چاہتے ہیں تو اس کے بارے میں، اس یو آر ایل کے لئے جانا. کارروائی کے لئے کوئی ضرورت نہیں ہے آج رات آپ جب تک کہ ان لوگوں کو زیادہ آرام دہ میں آپ کی اپنی ویب چل رہا ہے سرور، جو آپ کو کرنا چاہئے کے معاملے میں، حقیقت میں، آپ کے سافٹ ویئر کو اپ ڈیٹ. اور یہ بھی کا عنوان ہے ایک تقریر، اور اب ایک کاغذ، ہم پر منسلک ہے کہ آج کے لئے کورس کی ویب سائٹ. یہ ایک ساتھی کی طرف سے تھا نام کین تھامسن، جو ایک بہت مشہور قبول کیا گیا تھا کمپیوٹر سائنس میں ایوارڈ، اور انہوں نے کچھ سال اس تقریر دیا پہلے، بنیادی طور پر یہ ایک ہی موضوع پر. سوال لوگ پوچھ، تم ہونا چاہئے واقعی اعتماد، بالآخر، سافٹ ویئر آپ کو دیا گیا ہے؟ مثال کے طور پر، ہم سب کو ہے پروگراموں لکھ رہے، اور ہم نے مرتب کیا گیا ہے بجنا کے ساتھ ان. اور آپ کے علم کے لئے، آپ نے لکھا ہے CS50 کے لئے کسی بھی پروگرام ہے جہاں قسم کی ایک پیچھے کے دروازے، ایک طریقہ ہے ایک برا آدمی ہے کہ، آپ کے پروگرام چل رہا ہے تو، آپ کے کمپیوٹر پر قبضہ کر سکتا ہے؟ شاید نہیں، ٹھیک ہے؟ ماریو، اور لالچی، اور کریڈٹ. یہ سب بہت چھوٹے پروگراموں ہیں. تم خوبصورت ہونا پڑے گا برے اصل میں اگر آپ اپنے پورے کمپیوٹر کمزور بنا دیا کوڈ کی 10 یا 20 لائنوں لکھنے کے بعد، یا کچھ کی کم از کم بے خبر سیکورٹی مضمرات. اب میں، کہ پرہاس کہنا لیکن آج ہم کو دیکھنے کے لئے جا رہے ہیں اور اس ہفتے یہ اصل میں ہے واقعی، واقعی بہت آسان برا ہو اور یہاں تک کہ بنانے کے لئے مختصر پروگراموں کمزور. لیکن اب کے لئے، کم از کم، احساس سوال یہاں پوچھا جا رہا ہے کہ ایک سنکلک میں بجنا کے بارے میں ہے. کیوں ہم بجنا پر اعتماد کیا گیا ہے گزشتہ دو یا تین ہفتوں کے لئے؟ کون جس بجنا لکھا ہے کہ کہنا ہے وہاں میں ایک "" اگر حالت نہیں تھا یہ بنیادی طور پر کچھ zeros کی انجکشن اور ہر پروگرام میں لوگ اس سے آگاہ کریں کہ دے گا اس کے یا اس تک رسائی آپ کے کمپیوٹر میں جب آپ سو رہے ہیں اور اپنے لیپ ٹاپ ڑککن کھلا ہے اور آپ کے کمپیوٹر پر چل رہا ہے؟ ٹھیک ہے نا؟ ہم عزت کے نظام حق کی اس طرح ہے اب ہم بجنا legit ہے کہ اعتماد جہاں. تم آلے legit ہے کہ اعتماد. تم پر اعتماد ہے کہ لفظی ہر پروگرام اپنے میک یا پی سی پر ثقہ ہے. اور اس سادہ مسئلے سے پتہ چلتا ہے کے طور پر، یہ بدنیتی پر مبنی نہیں ہے یہاں تک کہ اگر، کہ بالکل نہیں ہے کیس ہونے کا امکان. تو آپ کو جہنم کے طور پر ڈر ہونا چاہئے. سچ کہوں تو، کوئی آسان ہے اس دوسرے کا حل معاشرتی شعور کی ایک طرح سے بڑھتی ہوئی پیچیدگی کے ہم سب سے اوپر پر تعمیر کر رہے ہیں کہ ہمارے کمپیوٹر کے نظام کی، اور کس طرح تیزی سے کمزور ہم بہت اچھی طرح سے ہو سکتا ہے. اب اس بریکآؤٹ، انہوں نے کہا کہ کے ساتھ. تو بریکآؤٹ ہے مسئلہ تین مقرر کریں، اور بریکآؤٹ پرانے سے ایک کھیل ہے آپ کو یاد ہو سکتا ہے، لیکن ہمارے لئے مسئلہ میں، تین سیٹ یہ ہمیں لینے کے لئے کی اجازت دیتا ہے چیزیں ایک نشان کی حمایت ، ہم پروگراموں لکھ رہے ہیں تاکہ جب یہاں تک کہ اس طرح ایک ٹرمنل ونڈو میں، ہم اصل میں، بالآخر، چلا سکتے ہیں گرافیکل پروگراموں نہیں ان کے برعکس ہم نے شروع میں تک رسائی. تو اس کے عملے کی ہے بریکآؤٹ کے عمل، جس میں صرف اس اینٹوں توڑ رہا ہے کھیل ہی کھیل میں، آپ کو واپس آپ کے پیڈل منتقل آگے اور پیچھے، اور آپ کو گیند کو مارا سب سے اوپر ان کے رنگ کی اینٹوں کے خلاف. تو یہ ہمیں لا رہا ہے ترتیب کے پیچھے جہاں ہم بہت جلد ہو جائے کرنے کے قابل تھے سکریچ کے ساتھ، اور اب سی کے ساتھ، ہمارے اپنے عمل درآمد گرافیکل یوزر انٹرفیس. لیکن اس سے بھی زیادہ، اس مسئلہ سیٹ کی پہلی نمائندگی جس میں ہم دے رہے ہیں آپ کے کوڈ کا ایک گروپ. اور حقیقت میں، میں نے واضح لانے اس پر توجہ، خاص طور پر کیونکہ ان کم آرام دہ اور پرسکون کے لئے، اس مسئلہ، کم از کم پہلی نظر میں، مقرر کی طرح محسوس کرنے کے لئے کی جا رہی ہے ہم نے ایک نشان یہ لیا ہے. ، ہم آپ کو دیا ہے کیونکہ تلاش سے کچھ کے لئے اور pset میں مسائل چھانٹ رہا ہے، ہم نے لکھا ہے کہ کوڈ کا ایک گروپ، اور تبصرے کے ایک جوڑے کہ "، ایسا کرنے کے لئے کہتے ہیں کہ" جہاں آپ کو خالی میں بھرنے کے لئے ہے. تو بھی خوفناک نہیں، لیکن یہ پہلی بار ہے ہم آپ کے کوڈ کے حوالے کر رہے ہیں آپ کو کرنے کی ضرورت ہے سب سے پہلے، سمجھ پڑھا ہے، اور پھر میں شامل کریں اور اس کو مکمل. اور پھر بریکآؤٹ کے ساتھ، ہم بھی ایسا ہی کرنے جا رہے ہیں آپ کو چند درجن سے زیادہ لائنوں دے کوڈ کی، واضح طور سے، آپ کو دے کہ فریم ورک کی ایک بہت کے لئے کھیل ہی کھیل میں لیکن مختصر روکنے کی اینٹوں پر عمل درآمد اور گیند اور پیڈل، لیکن ہم کچھ دوسری خصوصیات کو لاگو کرتے ہیں. اور یہاں تک کہ پہلی نظر میں ہے کہ، ایک بار پھر، خاص طور پر، کم آرام دہ اور پرسکون ہے تو خاص طور پر مشکل لگ رہے ہو کر سکتے ہیں اور آپ کو بہت سے نئے کام کرتا ہے لگتا ہے کہ آپ کو آپ کے دماغ میں لپیٹ کی ضرورت ہے کے ارد گرد، اور یہ سچ ہے. لیکن یہ ذہن میں رکھیں، بہت سکریچ کی طرح. مشکلات آپ سب کا استعمال نہیں کیا ہے شروع میں پہیلی ٹکڑے ٹکڑے. مشکلات آپ لپیٹ پرواہ نہیں ہیں ان میں سے سب کے ارد گرد آپ کے دماغ لیا تھا کیونکہ نظر، اوہ، کو سمجھنے کے لئے کہ میں کیا کر سکتے ہیں ہے اس پہیلی ٹکڑا کے ساتھ. اور یقینا، مسئلہ میں مقرر 3 رپورٹ، ہم آپ کی طرف اشارہ کریں گے دستاویزات پر کرے گا کچھ نئے افعال کے لئے آپ کو متعارف کرانے، اور بالآخر پروگرامنگ آپ استعمال کرتے ہیں کی تعمیر. ، loops کے ضوابط، متغیر، اور افعال جیسی ہو جائے گا کیا ہم ابھی تک دیکھا ہے. تو یقینا، ہم کیا دے گا آپ کو کچھ نمونے کے کوڈ ہے آپ کو ایک ونڈو تخلیق کی اجازت دیتا کہ، اس کے برعکس نہیں لگتا اور آخر میں تبدیل بہت کچھ اس طرح. تو CS50 کے فائدہ اٹھانے، ، دفتر گھنٹے اور زیادہ سے زیادہ کے بارے میں بات اور حقیقت یہ ہے کہ میں سکون لے آپ کو لکھنے کے لئے ہے کوڈ کی رقم اصل میں نہیں ہے کہ تمام زیادہ ہے. پہلا چیلنج صرف روشناس کرانے کی ہے اپنے آپ کو کچھ کوڈ ہم نے لکھا ہے. pset3 پر کوئی سوال، Shellshock کے، یا دوسری صورت میں؟ سامعین: اس طرح لگ رہا تھا بریکآؤٹ کے ساتھ کے ذریعے جا کوڈ تقریبا ہے ایک اعتراض پر مبنی انداز، لیکن میں نے C ایک تھا اعتراض پر مبنی پروگرام. اسپیکر 1: ایک بہترین سوال. تو کے ذریعے تلاش میں تقسیم کے کوڈ، کوڈ ہم میں، pset3 لئے لکھا ان واقف کے لئے، یہ یہ ایک ہے کی طرح لگتا ہے تھوڑا اعتراض پر مبنی. مختصر جواب یہ ہے، ہے. یہ آپ کو کس طرح ایک سننکٹن ہے کا استعمال کرتے ہوئے اعتراض پر مبنی کوڈ کر سکتا ہے C کی طرح ایک زبان ہے، لیکن یہ ہے اب بھی بالآخر عمل. کے اندر کوئی طریقے ہیں متغیر، آپ دیکھیں گے کے طور پر. لیکن یہ اس کی یاد تازہ ہے. اور ہم پھر اس خصوصیت دیکھیں گے ہم پی ایچ پی اور جاوا سکرپٹ کے لئے حاصل جب آخر سمسٹر کی طرف. لیکن اب کے لئے، کے طور پر اس کے بارے میں سوچنا کیا ہے کی ایک اشارہ کے آنے کے لئے. اچھا سوال ہے. ٹھیک ہے. تو طرح ضم تھا ہم کس طرح بائیں چیزوں آخری بار. اور ترتیب میں اچھا تھا ضم احساس یہ اتنا تیز تھا کہ، کم از کم سرسری ٹیسٹ کی بنیاد پر ہم بلبلا، کا کہنا ہے کہ، سے، گزشتہ ہفتے کیا تھا ترتیب، انتخاب کی طرح، اندراج کی طرح. اور جو بھی صاف تھا ہے کس طرح اور succinctly اور cleanly آپ اس کا اظہار کر سکتے ہیں. اور ہم نے اسے ایک اوپری تھا کیا کہا ضم کی رننگ ٹائم پر پابند ترتیب دیں؟ جی ہاں؟ سامعین: (ن) کے لاگ ان ن؟ اسپیکر 1: (ن) کے حق، لاگ ان ن. ن لاگ ان ن. اور ہم نے کیا اس کے لئے واپس آ جائیں گے واقعی مطلب یا کہ کہاں سے آتا ہے، لیکن یہ بہتر تھا کیا چل رہا ہے وقت سے ہم بلبلا دیکھا کہ انتخاب اور اندراج کی طرح؟ تو ن مربع. مربع ن ، اس سے بڑا ہے اور یہ بہت واضح نہیں ہے یہاں تک کہ اگر، کہ لاگ ان ن ن سے چھوٹا ہے، تو آپ (ن) بار کرتے ہیں تو (ن) سے چھوٹے کچھ، یہ مربع ن سے کم ہو رہا ہے. یہ وہاں انترجشتھان کا تھوڑا سا ہے. لیکن ہم اس کے لئے ایک قیمت ادا کی. یہ تیزی سے تھا، لیکن ایک موضوع شروع گزشتہ ہفتے ابھر کر سامنے آئے اس tradeoff تھا. میں بہتر کارکردگی وقت وار، لیکن کیا میں دوسرے پر خرچ کرنے کی کیا ضرورت تھی ہاتھ، میں حکم ہے کہ حاصل کرنے کے لئے؟ سامعین: میموری. اسپیکر 1: ایک بار پھر کہو؟ سامعین: میموری. اسپیکر 1: میموری، یا خلائی زیادہ عام طور پر. اور اس سپر نہیں تھا اپنے انسانوں کے ساتھ واضح، لیکن ہمارے رضاکاروں یاد ہے کہ آگے نکلنے اور نکلنے گیا اگرچہ کے طور پر واپس ایک صف ہے اگرچہ یہاں کے طور پر، اور نہیں ہے یہاں ایک دوسری صف وہ، استعمال کر سکتے ہیں کیونکہ ہم ضرورت کسی جگہ ان لوگوں کو ضم کرنے کے لئے. ہم صرف اس جگہ میں ان کے تبادلہ نہیں کر سکتے ہیں. تو طرح بیعانہ ضم زیادہ جگہ، ہے جو ہم کے ساتھ کی ضرورت نہیں تھی دیگر الگورتھم، لیکن الٹا یہ بہت تیز ہے یہ ہے کہ. اور واضح طور سے، حقیقی دنیا کے خلا میں ان days-- RAM، ہارڈ ڈسک space-- نسبتا سستا ہے، اور تو ہے کہ ضروری نہیں کہ ایک بری بات. تو، ایک فوری نظر ڈالیں ایک چھوٹا سا دو زیادہ طریقے، ہم نے کیا کیا اور کیوں ہم یہ ن لاگ ان ن کیا گیا ہے. تو یہاں آٹھ تعداد ہیں اور آٹھ رضاکاروں ہم نے آخری بار تھا. اور ضم کہ پہلی بات ترتیب دیں کرنے کے لئے ہم کیا کہا تھا؟ سامعین: دو میں تقسیم. اسپیکر 1: ایک بار پھر کہو؟ سامعین: دو میں تقسیم. اسپیکر 1: دو میں تقسیم، صحیح. اس کی بہت یاد تازہ ہے تقسیم کے فون کی کتاب، اور عام طور پر فتح. تو ہم بائیں نصف میں دیکھا. اور ہم طرح، انہوں نے کہا کہ ایک بار پھر عناصر کے بائیں نصف، ہم اگلے کیا کہا؟ بائیں طرف کے بائیں نصف ترتیب نصف، جو ہمیں کرنے کی اجازت دو میں تقسیم کے بعد، چار اور دو پر توجہ مرکوز. تم کس طرح میں، اب ایک فہرست ترتیب ہے پیلے رنگ، ضم طرح کا استعمال کرتے ہوئے سائز دو، کے؟ ویسے نصف میں تقسیم، اور بائیں نصف ترتیب. اور یہ جہاں چیزیں تھا تھوڑا پاگل مختصر ہے. آپ کی ہے کہ ایک فہرست ترتیب کیسے سائز ایک، یہ تعداد چار کی طرح؟ اس کے مطابق ہے. آپ کیا کر رہے ہیں. لیکن پھر آپ کس طرح کی ایک فہرست ترتیب ہے سائز یہ دو نمبر ہے جب ایک؟ ویسے،، لیکن اب کیا ہی بات تھی تیسرے اور انضمام کی طرح میں اہم قدم؟ آپ کو بائیں طرف ضم کرنے کے لئے تھا نصف اور حق نصف. ہم کیا اور ایک بار، ہم نے دیکھا چار بجے، ہم دو میں دیکھا. ہم، ٹھیک ہے کا فیصلہ کیا ہے ظاہر دو، سب سے پہلے آتا ہے تو ہم دو ڈال دیا اس چار کی طرف سے پیروی کی جگہ،. اور اب آپ کو اس قسم کی ماضی کے لئے ہے، اور اس خصوصیت کی طرح ہے ضم طرح کی طرح ایک الگورتھم کے ترتیب دیں، کی یاد میں ماضی. کہانی کی اگلی لائن کیا تھا؟ میں اگلے کیا پر توجہ مرکوز کی جانی چاہئے؟ بائیں طرف کے دائیں نصف چھ اور آٹھ ہے جس میں نصف،. تو مجھے صرف اس کے ذریعے قدم دو بہت زیادہ نقطہ belaboring بغیر. چھ اور آٹھ، پھر چھ ہے کے مطابق، آٹھ کے مطابق ہے. اس طرح ان کے ساتھ ضم، اور اب اگلا بڑا قدم ، کورس کے، کی طرف سے حق نصف طرح ہے اس الگورتھم کی بہت پہلا قدم. تو ہم نے ایک، تین، سات، پانچ پر توجہ مرکوز. پھر ہم بائیں نصف پر توجہ مرکوز. اس کے بائیں نصف، کے دائیں نصف کہ، اور اس کے بعد ایک اور تین میں ضم. پھر حق نصف، پھر نصف چھوڑ دیا اس کے، تو اس کا حق نصف. قدم رہتا ہے اب اس میں ضم، اور؟ بڑی بائیں نصف اور بڑے ضم حق نصف، ایک تو وہاں نیچے جاتا ہے تو پھر دو، تین، چار، پانچ، چھ، سات، آٹھ، پھر. تو اب کیوں یہ بالآخر ظاہر ہے، خاص طور پر اگر (ن) اور لاگرتھم زیادہ عام طور پر کی بجائے، آپ سے فرار کم از کم حالیہ یاد میں؟ ویسے، اس بات کی اونچائی محسوس. ہم آٹھ عناصر تھے، اور ہم دو، دو، دو کی طرف سے تقسیم. تو بیس لاگ آٹھ دو امریکی تین دیتا ہے. اور یہ کہ مجھ پر اعتماد ہے تو اس پر ایک چھوٹا سا پیار. لیکن، آٹھ دو سے تین ہے بیس لاگ ان تو ہم ضم کرنے کے تین تہوں کیا ہے. اور ہم ولی جب عناصر، کس طرح بہت سے عناصر ہم ان لائنوں میں سے ہر ایک پر نظر آتے ہیں؟ (ن) کے ایک کل، ہے نا؟ سب سے اوپر قطار ضم کرنے کے لئے کی وجہ سے، ہم ٹکڑوں یہ کیا اگرچہ، ہم بالآخر ایک بار ہر تعداد کو چھو لیا. اور دوسری قطار میں، کرنے کے لئے سائز دو کے ان فہرستیں ضم، ہم ایک بار ہر عنصر کو چھو کرنے کے لئے تھا. اور پھر یہاں واقعی واضح طور پر آخری قطار میں، ہم ان میں سے ہر ایک کو چھو کرنے کے لئے تھا ایک بار، لیکن صرف ایک بار عناصر، تو اس کے ساتھ ساتھ ہمارے ن لاگ ان ن، تو، ہے. اور اب صرف چیزیں تھوڑا بنانے کے لئے صرف ایک لمحے کے لئے رسمی طور پر زیادہ سے زیادہ، اگر آپ اب اس کا تجزیہ کرنے کے لئے تھے اعلی سطح کی ایک طرح سے میں اور کس طرح، فیصلہ کرنے کی کوشش کریں آپ کے اظہار کے بارے میں جا سکتا ہے اس الگورتھم کی رننگ ٹائم صرف اس پر اور نہیں دیکھ کر ایک contrived مثال کا استعمال کرتے ہوئے کی طرف سے؟ ویسے، کتنا وقت آپ کو ایک کا کہنا ہے کہ پیلے رنگ میں لے جائے گا کی طرح قدم، ن <2 واپس تو؟ یہ کیا کی ایک بڑی O ہے؟ تو میں، ایک، تو ایک قدم دیکھ رہا ہوں شاید دو قدم یہ تو ہے کیونکہ اور پھر واپس، لیکن یہ ہے مسلسل وقت، ٹھیک ہے؟ تو ہم O (1)، اور یہ کہ انہوں نے کہا کہ میں نے اس کا اظہار کریں گے کس طرح. T، صرف وقت چل رہا ہے. (ن)، ان پٹ کے سائز ہے تو ٹی (ن)، صرف ایک فینسی طریقہ چلانے کہہ کے سائز (ن) کے وقت دیا ان پٹ حکم پر کی جا رہی ہے مسلسل وقت کی، اے (1). لیکن دوسری صورت میں، اس کے بارے میں کیا ہے؟ آپ کا اظہار کیسے کریں یہ پیلے رنگ لائن کے وقت چل رہا ہے؟ کیا T؟ آپ کی قسم یہاں دھوکہ دے سکتا ہے اور معلوم ہے میرے سوال کا جواب. تو چل رہا ہے وقت میں تو ہم صرف کا کہنا ہے کہ عام طور پر ٹی (ن) ہے. اور اب آپ کی قسم یہاں punting رہے ہیں اور ، ٹھیک ہے، صرف بائیں نصف ترتیب، کہہ اور پھر دائیں نصف ترتیب. ہم علامتی نمائندگی کر سکتے ہیں کس طرح یہ پیلے رنگ کی لائن کی رننگ ٹائم؟ کیا T؟ ان پٹ کے سائز کیا ہے؟ دو ن. کیوں میں نے صرف کا کہنا ہے کہ نہیں ہے؟ اور پھر یہ ایک اور ٹی ہے (N / 2) اور اس کے بعد پھر، میں نے دو کے مطابق حصوں کو ضم ہے تو، کس طرح بہت سے عناصر میں جا رہا ہوں کل چھو کرنے کے لئے ہے؟ ن. تو میں نے، اس کا اظہار کر سکتے ہیں صرف، قسم کے پسند کرنے کے لئے عام طور پر چل رہا ہے وقت کے طور پر. ٹی (ن)، T (N / 2) صرف وقت چل رہا ہے علاوہ T (N / 2)،، نصف اور حق نصف کو چھوڑ دیا کے علاوہ شاید ن اقدامات ہے جو اے (ن)،، لیکن ہو سکتا ہے، میں نے دو انگلیوں کا استعمال کرتے ہوئے کر رہا ہوں، اس کے بہت سے کے طور پر دو بار ہے اقدامات، لیکن یہ لکیری ہے. یہ اقدامات میں سے کچھ تعداد ہے کہ، (ن) کے ایک پہلو ہے تو ہم اس کے طور پر اس کا اظہار کر سکتے ہیں. اور یہ ہم پنٹ گے جہاں اب ہے ہمارے ہائی اسکول کے ریاضی کی پاٹھیپستک کے ہم بالآخر تکرار کہ ہو ختم ہو جاتی ہے، اس کے برابر، (ن) بار لاگ ان ن آپ اصل میں باہر کرتے ہیں تو ریاضی زیادہ رسمی طور پر. تو یہ صرف دو نقطہ نظر ہے. ایک کے ساتھ ایک عددی نمائندے مثال مشکل کوڈت آٹھ کی تعداد، اور ایک سے زیادہ کا استعمال کرتے ہوئے ہم وہاں کس طرح میں عام نظر. لیکن کیا یہاں واقعی دلچسپ ہے ، ایک بار پھر، سائیکلنگ کے اس اصول کی ہے. میں loops کے لئے استعمال نہیں کر رہا ہوں. میں اس قسم کی وضاحت کر رہا ہوں خود کی شرائط میں کچھ، نہ صرف اس کے ساتھ ریاضی تقریب، بلکہ اس چھدم کوڈ کی شرائط میں. یہ چھدم کوڈ پنراورتی اس کی لائنوں کی ہے کہ دو میں بنیادی طور پر یہ کہہ رہی ہے جانے کے لئے ایک چھوٹے حل کرنے کے لئے خود استعمال چھوٹے سائز کا مسئلہ، اور پھر بار بار اور پھر جب تک ہم whittle یہ اس نام نہاد بنیاد کیس کے نیچے. تو اصل میں زیادہ مجبور اپنی طرف متوجہ لے دور اس سے مندرجہ ذیل کے طور پر. مجھے gedit میں جاؤ اور ایک لے آج کے منبع کوڈ میں سے کچھ پر نظر، اس مثال یہاں خاص طور پر. بظاہر اضافہ کر دیتی ہے جس سگما 0، تعداد ن کے ذریعے ایک. تو واقف ہے چلو دیکھتے ہیں یہاں اور مجریچت. سب سے پہلے ہم کے ایک جوڑے کی ہے شامل، تو کوئی نئی بات نہیں وہاں. پروٹوٹائپ. میں ایک چھوٹا سا پیار ہوں یہ چند دنوں کے بعد، لیکن ہم ایک نے کیا کہا ایک تقریب کے پروٹوٹائپ ہے؟ سامعین: [اشراوی]. اسپیکر 1: یہ کیا ہے؟ سامعین: کیا ہم اس کا اعلان. اسپیکر 1: ہم اس کا اعلان. تو آپ کو، ارے، بجنا تعلیم دے رہے ہیں اصل میں ابھی تک اس پر عمل درآمد نہیں، لیکن کہیں اس فائل میں، شاید، ایک تقریب میں کیا کہا جا رہا ہے؟ سگما. اور یہ صرف ایک وعدہ ہے یہ اس طرح نظر آئے جا رہا ہے. یہ ایک عددی لے جا رہا ہے input-- اور میں زیادہ واضح ہو سکتا ہے اور int ن --and اس کا کہنا ہے کہ ایک int واپس جا رہا، لیکن نیم وقفہ کا مطلب ہے، ملی میٹر، میں کے ارد گرد حاصل کریں گے تھوڑی دیر کے بعد اس پر عمل درآمد کرنے کے لئے. ایک بار پھر، بجنا گونگا ہے. یہ صرف معلوم ہے کہ کیا جا رہا ہے آپ، نیچے سے اوپر یہ بتانے تو ہم کم از کم دینے کی ضرورت یہ کیا ہے کا ایک اشارہ آنا. اب یہاں اہم دیکھو. یہاں ذیل میں سکرال اور کر رہا ہے اہم ہے کو دیکھنے کے. یہ ایک تقریب کی ہے کہ طویل نہیں ہے، اور حقیقت میں یہاں تعمیر واقف ہے. میں تو ایک متغیر (ن) کا اعلان، اور میں نے بار بار صارف پریشان GetInt کا استعمال کرتے ہوئے ایک مثبت عدد صحیح کے لئے، اور اس لوپ میں سے صرف باہر نکلیں صارف کو ایک بار عمل ہے. جبکہ، ہم کا استعمال کیا ہے اس طرح میں صارف پریشان. اب یہ دلچسپ ہے. میں نے فون ایک int اعلان "جواب." میں اسے واپس قدر تفویض نام سے ایک تقریب کے "سگما." مجھے لگتا ہے کہ ابھی کیا کرتا ہے، لیکن نہیں میں ایک لمحے پہلے اس کا اعلان یاد. اور پھر میں گزر رہا ہوں قدر صارف میں ٹائپ، ن کہ اور پھر میں نے جواب رپورٹ. ویسے واپس سکرال صرف ایک لمحے کے لئے. اس ڈائریکٹری میں آگے بڑھو، بنانے سگما 0، اور اصل میں اس پروگرام کو چلانے کے اور دیکھتے ہیں کیا ہوتا. مجھے آگے جانا ہے اور چلاتے ہیں، تو اس پروگرام، ./sigma-0، اور میں ایک مثبت میں ٹائپ دو طرح عددی، سگما، یونانی کی علامت کا مطلب ہے کے طور پر، صرف سے تمام نمبر کو شامل کرنے کے لئے جا دو تک پر صفر. تو 0 1 پلس پلس 2. تو یہ امید ہے کہ مجھے 3 دینا چاہئے. یہ کر رہا ہے. اور اسی طرح، اگر میں ایک بار پھر اس کو چلانے کے اور میں، اس نمبر تین دے تو کہ ہے کہ، 3 کے علاوہ 2 ہے 5، کے علاوہ 1 مجھے 6 دینا چاہئے. اور میں واقعی پاگل حاصل تو اور اگر بڑی تعداد میں ٹائپ کرنا شروع کریں، اس نے مجھے دینا چاہئے بڑی اور بڑی رقم. تو یہ کہ تمام ہے. تو کیا سگما طرح لگتی ہے؟ ویسے، یہ بہت سیدھا ہے. یہ ہم سے لاگو ہو سکتا ہے کہ کس طرح ہے گزشتہ دو ہفتوں کے لئے اس. "INT" واپسی کی قسم کی جا رہی ہے. سگما نام ہے، اور یہ لیتا ہے بجائے (ن) کے ایک متغیر M. میں سب سے اوپر ہے کہ تبدیل کر دیں گے. تو پھر یہ صرف ایک وویک چیک ہے. ہم ایک لمحے میں کیوں دیکھیں گے. اب میں دوسرے متغیر کا اعلان، رقم، صفر ابتدا. پھر میں لوپ کے لئے اس کے پاس بظاہر وضاحت کے لئے، iterating کر، میں = 1 سے ایک = میٹر، جو جو بھی صارف میں ٹائپ، اور پھر میں اس طرح رقم اضافہ. اور پھر رقم واپس. تو سوال کے ایک جوڑے. ایک، میں نے یہ ہے کہ میرے تبصرے میں دعوی ایک لامحدود لوپ کے خطرے سے بچا جائے. کیوں ایک منفی نمبر میں گزر جائے گا ، ممکنہ طور پر، ایک لامحدود لوپ دلانا؟ سامعین: آپ میٹر تک پہنچ کبھی نہیں کروں گا. اسپیکر 1: M تک کبھی نہیں. لیکن ایم میں منظور، تو دے رہا ہے ایک سادہ مثال کے طور پر غور. M کی طرف سے میں منظور کیا جاتا ہے تو منفی ایک کے طور پر صارف. قطع نظر اہم. مین سے بچاتا ہے یہ بھی، تو میں صرف ہوں کے ساتھ بہت شوقین ہونے سگما بھی یقینی بنانے کے لئے ان پٹ ہے کہ منفی نہیں ہو سکتا. M منفی ہے اگر ایسا ہے تو، منفی ایک کی طرح کچھ. کیا ہونے جا رہا ہے؟ ٹھیک ہے، میں جا رہا ہے ایک initialized ہے حاصل، اور پھر میں جا رہا ہے سے کم یا میٹر کے برابر ہے؟ کی طرف سے کھڑے ہو جاؤ. کہ، کے نہیں دو was-- اس کہانی پکا دو. کیونکہ، اس سوال نہیں پوچھا میں نے کے لئے alluding ہوں کہ خطرہ میں ہے کیونکہ ایسا کرنے کے لئے نہیں جا رہا ہے ہمیشہ زیادہ than-- ٹھیک ہو جا، میں اس سوال سے رجوع. ٹھیک ہے. یہاں صرف اس حصے پر توجہ مرکوز کرتے ہیں. کیوں میں نے کچھ کا اعلان کیا لوپ سے باہر؟ لائن میں نے 49 پر نوٹس لوپ کے اندر، میں اعلان کیا، لیکن آن لائن 48 میں ہے کچھ باہر کا اعلان. جی ہاں. سامعین: [اشراوی]. اسپیکر 1: اس بات کا یقین. تو سب سے پہلے میں یقینی طور پر نہیں اعلان اور رقم ابتدا کرنا چاہتے ہیں صفر اندر ہر iteration پر لوپ، یہ واضح طور پر شکست دینے کی وجہ تعداد میزانی کے مقصد. میں تبدیل کر رکھیں گے واپس صفر کی قیمت. اور بھی، کیا ایک دوسرے کے زیادہ arcane ہے کہ ایک ہی ڈیزائن کے فیصلے کی وجہ سے؟ جی ہاں. سامعین: [اشراوی]. اسپیکر 1: بالکل. میں باہر اس تک رسائی حاصل کرنا چاہتے ہیں بھی کیا لائن پر لوپ کے؟ 53. اور انگوٹھے کے ہمارے اصول کی بنیاد پر لیکچر کے ایک جوڑے پہلے سے، متغیر، واقعی، scoped ہیں ان کا احاطہ اس گھوبگھرالی منحنی خطوط وحدانی. میں اندر رقم کا اعلان نہیں کرتے تو ان بیرونی گھوبگھرالی منحنی خطوط وحدانی، میں لائن 53 میں اس کا استعمال نہیں کر سکتے ہیں. میں اعلان، دوسرا راستہ رکھو یہاں میں، یا اس سے بھی اندر اندر رقم لوپ کے لئے، میں نے 53 میں اس تک رسائی حاصل نہیں کر سکتے. متغیر مؤثر طریقے سے چلی جائے گی. تو وہاں وجوہات کے ایک جوڑے. لیکن اب واپس جانے اور دیکھتے ہیں کیا ہوتا. تو سگما کہا جاتا ہے. 1 کے علاوہ 2، یا 1 کے علاوہ 2 تک اضافہ کر دیتی علاوہ 3، اور پھر، قیمت واپس جواب میں اسٹورز، اور printf یہاں میں سکرین پر دیکھ رہا ہوں یہی وجہ ہے. تو یہ ہم تکراری فون کروں گا کیا ہے نقطہ نظر، جہاں iteration کے صرف ایک لوپ کا استعمال کرتے ہوئے کا مطلب ہے. لوپ، جبکہ لوپ، ایک کیا دیر کے لئے ایک لوپ، صرف ایک بار پھر کچھ کر اور بار بار. لیکن سگما ایک صاف تقریب میں کی طرح ہے میں مختلف اس پر عملدرآمد کر سکتے ہیں کہ. اس کے بارے میں کیا، جس میں صرف، کول کی طرح ہونا مجھے واقعی چھٹکارا حاصل تباہی کی ایک بہت اس تقریب کی وجہ سے واقعی بہت آسان ہے. چلو whittle اس کے نیچے صرف اس کے چار بنیادی لائنز اور سے چھٹکارا حاصل کرنے کے تمام تبصرے اور گھوبگھرالی منحنی خطوط وحدانی. یہ ایک دماغ اڑانے کی طرح ہے متبادل نفاذ. ٹھیک ہے، شاید دماغ اڑانے نہیں، لیکن یہ ہے sexier، ٹھیک ہے کی طرح ہے، اتنا زیادہ succinctly اس کو دیکھنے کے لئے. کوڈ کے صرف چار لائنوں کے ساتھ، میں نے سب سے پہلے اس وویک چیک ہے. M سے کم یا برابر ہے صفر، سگما کوئی احساس نہیں کرتا. یہ صرف میں ہونا چاہیے مثبت تعداد کے لئے اس کیس، تو میں صرف جا رہا ہوں منمانے صفر واپس ہم کم از کم ہے تاکہ کچھ بنیاد کیس نام نہاد. لیکن یہاں کی خوبصورتی ہے. انہوں نے مزید کہا اس خیال کی مکمل، ن 1 سے تعداد، یا اس کیس میں ایم، ہرن گزر کی طرح کی طرف سے کیا جا سکتا ہے. ویسے، M 1 کی رقم کیا ہے؟ ٹھیک ہے، تم کیا جانتے ہو؟ یہ میٹر کی رقم کے طور پر ایک ہی ہے کے علاوہ ایم مائنس 1 1 کی رقم. ویسے آپ کو معلوم ہے؟ M مائنس 1 سگما کیا ہے؟ ویسے، اگر آپ کی قسم کے اس پر عمل کریں منطقی طور پر، اس میٹر مائنس 1 کے طور پر ایک ہی ہے کے علاوہ ایم مائنس 2 سگما. تو آپ کو اس قسم کی just-- کر سکتے ہیں آپ کو صرف ہو تو یہ، کی طرح ہے ایک دوست کو تنگ کرنے کی کوشش اور وہ آپ سے ایک سوال پوچھنا، آپ کی قسم، ایک سوال کے ساتھ جواب آپ کی قسم کے ہرن گزر رکھ سکتے ہیں. لیکن جو اہم ہے رکھنے کے تو یہ ہے کہ سوال چھوٹے اور چھوٹے کر اور چھوٹے، تم سگما ہے نہیں پوچھ (ن) کے، کے سگما کیا ہے (ن)، (ن) کے سگما کیا ہے؟ تم کیا پوچھ رہے ہو (ن) کے سگما، کیا سگما ہے ن مائنس 1، ن مائنس 2 سگما کیا ہے؟ آخر میں آپ کے سوال کیا بننے جا رہا ہے؟ ایک یا ایک سے سگما کیا ہے صفر، کچھ بہت چھوٹی قیمت، اور کے طور پر جلد ہی آپ کے طور پر ، کہ، آپ کے دوست حاصل تم سے پوچھنا نہیں کر رہے ہیں پھر وہی سوال، آپ کو صرف اوہ یہ صفر ہے، کا کہنا ہے کہ جا رہے ہیں. ہم اس طرح کے کھیل سے فارغ ہو کر پاگل چکریی کھیل. تو تکرار پروگرامنگ میں ایکٹ ہے ایک تقریب خود بلا. مرتب اور چلانے جب یہ پروگرام،، ہے بالکل اسی طرح برتاؤ کرنے کے لئے جا، لیکن جو اہم ہے اس کے اندر ہے سگما نامی تقریب کی، کوڈ جس کی ایک لائن ہے ہم نے خود کو بلا رہے ہیں جو عام طور پر خراب ہو جائے گی. مثال کے طور پر، کیا سب سے پہلے میں تو اس مرتب، تو sigma-- بنانے سگما 1 ./sigma 1 بنانے کے. مثبت عدد صحیح، براہ مہربانی، 50 1275. تو کیا کام کرنے لگتا ہے صحیح ایک ٹیسٹ، کی بنیاد پر، ہو. لیکن میں نے ایک چھوٹی سی خطرناک کیا ملتا ہے اور نام نہاد بنیاد کیس خارج، اور صرف ویسے میں صرف کر رہا ہوں، کا کہنا ہے کہ اس کے مقابلے میں یہ زیادہ پیچیدہ. صرف سگما کی گنتی کرتے ہیں M لینے اور اس کے بعد انہوں نے مزید کہا کی طرف سے M مائنس ون کی سگما میں؟ ویسے، یہاں ہونے جا رہا ہے؟ باہر زوم. کے پروگرام recompile ہیں، ، اس کو بچانے کے پروگرام recompile، اور اس کے بعد تیار ./sigma 1، میں zooming ، 50 مثبت عدد صحیح براہ مہربانی داخل. تم میں سے کتنے تیار ہیں اس کو دیکھ کر کرنے کے لئے آف لائن کرنے کے لئے؟ ٹھیک ہے. تو اس کے لئے ہو سکتا ہے وجوہات کی ایک بڑی تعداد، اور واضح طور سے اس ہفتے ہم ہیں آپ ان میں سے زیادہ دینے کے لئے کے بارے میں. لیکن اس معاملے میں، کرنے کی کوشش کریں پیچھے کی وجہ سے یہاں کیا ہو سکتا ہے؟ انقطاع غلطی، ہم نے گزشتہ کہا وقت، میموری کا ایک طبقہ سے مراد. کچھ برا ہوا. لیکن یہ کیا تھا میکانکی ٹیڑھا چلے گئے کیونکہ یہاں میرا ہٹانے کے کہ نام نہاد بیس کیس کی، جہاں میں نے ایک مشکل کوڈت قیمت واپس؟ آپ کو کیا غلط ہو گیا لگتا ہے؟ جی ہاں. سامعین: [اشراوی]. اسپیکر 1: آہ. اچھا سوال ہے. تعداد کے سائز تو میں میزانی تھا کہ یہ حد سے تجاوز کر کہ اتنا بڑا ہے میموری کی جگہ کے سائز. اچھا خیال ہے، لیکن بنیادی طور پر ایک حادثے کی وجہ سے کی جا رہی. اس عددی اتپرواہ سبب بن سکتا ہے، بٹس صرف پلٹائیں جہاں اور اس کے بعد ہم نے ایک بہت بڑی غلطی ایک منفی نمبر کی طرح کے لئے نمبر، لیکن خود ایک حادثے کی وجہ سے نہیں ہو گا کہ. کیونکہ کے آخر میں دن ایک int اب بھی 32 بٹس ہے. آپ کے لئے نہیں جا رہے ہیں اتفاقی طور پر ایک 33RD سا چوری. بلکہ ایک اچھا خیال. جی ہاں. سامعین: [اشراوی]. اسپیکر 1: طریقہ کبھی نہیں چلانے کے بند ہو جاتا ہے، اور یقینا یہ ایک بار پھر خود بلاتا اور بار بار بار اور پھر، اور میں سے کوئی بھی کبھی ان کے افعال وہ ان کی واحد لائن کی وجہ سے ختم کوڈ بار بار اپنے آپ کو بلاتا ہے اور پھر. اور کیا واقعی ہے ہم یہاں کیا ہو رہا ہے، اور اب قسم کی pictorially کا اس کو اپنی طرف متوجہ کر سکتے ہیں. مجھے ایک پر جانے دو صرف ایک لمحے کے لئے تصویر. یہ ہے کہ، ایک تصویر ہے بالآخر باہر گوشت گا مزید تفصیل میں، کیا جا رہا ہے کے آپ کے کمپیوٹر کی میموری کے اندر. اور یہ کہ باہر کر دیتا ہے اس تصویر کے نیچے اسٹیک کہا جاتا کچھ ہے. اس کا ایک حصہ ہے میموری، RAM کے ایک حصہ، کہ صرف کسی بھی وقت استعمال کیا جاتا ہے ایک تقریب کہا جاتا ہے. کسی بھی وقت آپ، ایک پروگرامر، ایک تقریب کہتے ہیں، آپریٹنگ سسٹم، طرح میک OS، ونڈوز، یا لینکس، گرپس بائٹس کا ایک گروپ، شاید ایک چند کلو بائٹ، شاید چند میگا بائٹ میموری کی، ان کے ہاتھ آپ کے لئے، اور اس کے بعد کی اجازت دیتا ہے آپ کا استعمال کرتے ہوئے آپ کے تقریب کو چلانے کے جو کچھ بھی متغیر کی آپ کو ضرورت. اور تم پھر دوسرے کہتے ہیں تقریب اور ایک اور تقریب، آپ میموری کا ایک ٹکڑا حاصل اور میموری کا ایک ٹکڑا. اور یقینا، ان سبز ٹرے تو Annenberg میں سے، جو میموری کی نمائندگی یہاں سب سے پہلے کیا ہوتا ہے وقت آپ کو تقریب سگما کال. یہ اس طرح ایک ٹرے ڈال کی طرح ہے ابتدائی طور پر ایک خالی اسٹیک ہے کیا. لیکن اس وقت اگر ٹرے تو بات کرنے کی، خود بلاتا ہے، ایک اور مثال کے طور پر بلا سگما، ہے آپریٹنگ سسٹم پوچھ کی طرح، اہ،، تھوڑا زیادہ میموری کی ضرورت مجھے دو. اور پھر یہ سب سے اوپر پر ڈھیر ہو جاتا ہے. لیکن کیا اہم یہاں ہے کہ ہے پہلے ٹرے، وہاں اب بھی ہے انہوں نے اس کی دوسری ٹرے ومباحثہ کیونکہ. اب اس دوران، سگما سگما فون، کہ زیادہ میموری کے لئے پوچھ طرح ہے. یہاں پر ڈھیر ہو جاتا ہے. سگما کہ ایک ہے، سگما فون یہاں پر ڈھیر ہو جاتا ہے ٹرے. اور آپ یہ کر رہتے ہیں تو، آخر میں، اس قسم کی اس بصری نقشہ اس چارٹ، کیا جا رہا ہے ٹرے کے اسٹیک کے ساتھ ہو؟ یہ رقم کی حد سے تجاوز کرنے کے لئے کی جا رہی ہے میموری کے آپ کے کمپیوٹر کی ہے. اور جیسے ہی اس سبز ٹرے کے طور پر افقی لائن سے تجاوز اسٹیک کے اوپر اور اس لفظ کے ڈھیر کے اوپر، جو ہم مستقبل میں واپس آ جائیں گے، کہ ایک بری چیز ہے. ڈھیر ایک مختلف ہے میموری کا طبقہ، اور اگر آپ ان دو تو ٹرے کے ڈھیر اور ڈھیر، پر آپ کی حد سے تجاوز کرنے کے لئے جا رہے ہیں میموری کے اپنے طبقہ، اور پروگرام یقینا کریش ہو رہا ہے. اب ایک طرف، اس خیال کے طور پر تکرار کی، اس وجہ سے، واضح طور پر، مسائل پیدا ہو سکتے ہیں لیکن یہ ضروری نہیں کہ ایک بری چیز نہیں ہے. غور کریں، اس کے بعد تمام، how-- اور شاید یہ کچھ استعمال کرنے لگتے ہیں --how خوبصورت یا کس طرح سادہ سگما کہ عملدرآمد تھا. اور ہم استعمال کرنے کے لئے نہیں جا رہے ہیں CS50 میں تمام زیادہ تکرار، لیکن CS51 میں، اور واقعی کسی بھی کلاس آپ اعداد و شمار کے ڈھانچے جوڑتوڑ جہاں درختوں، یا خاندان کے درخت کی طرح، کہ، کچھ تنظیمی ڈھانچے ہے یہ انتہائی مفید، سپر ہے. اب، ایک طرف ایک کے طور پر، تو آپ کو اس کمپیوٹر سائنسدانوں کے خواہشمند کے طور پر گوگل کی کچھ کے ساتھ واقف ہیں آپ گوگل پر جاتے ہیں تو اندر مذاق، اور آپ کو کیا نظر ، کی تعریف کا کہنا ہے کہ، تکرار، درج کریں. اہ ہہ. ایک طرف ایک کے طور پر، میں نے کچھ نکالا. اس کے 10 منٹ کی طرح تھا تاخیر اس صبح. اگر آپ نے گوگل "ترچھا،" نوٹس آپ کے سر گر کی طرف سے slightly-- اور پھر یہ ایک شاید ہے سب سے سب سے زیادہ atrocious کسی طرح خرچ کے بعد سے اس پر عمل درآمد ان کے دن کچھ سال آ ago--. اوہ، wait-- کہ ایک مسئلے ہے. تو ایک پر چل رہا ہے دنیا کی سب سے بڑی ویب سائٹس ان پاگل چھوٹی ایسٹر انڈے ہیں. وہ شاید ایک بسم کوڈ کی لائنوں کی nontrivial نجی تعداد ہم کر سکتے ہیں تاکہ اس طرح تھوڑا سا مزہ چیزیں. لیکن کم از کم اب آپ حاصل ان کے اندر مذاق کے کچھ. اب سے کچھ پر ایک نظر ڈالیں سفید، ہم دیر سے کہہ رہا ہوں جھوٹ اور واپس چھیل کرنے کے لئے شروع کچھ تہوں تکنیکی تم واقعی سمجھتے ہیں کہ تو کیا چل رہا ہے اور آپ سمجھ سکتے ہیں خطرات کے کچھ، Shellshock کے طرح، کہ اب بننے کے لئے شروع کر دیا ہے سب کی سب سے آگے پر توجہ، کم از کم میڈیا میں. تو یہاں ایک بہت سادہ تقریب ہے کہ باطل، کچھ بھی نہیں واپس. اس کا نام تبدیل کردہ ہے. یہ دو متغیرات میں لیتا ہے اور یہ کچھ بھی نہیں واپس. A اور B میں لیتا ہے. تو ایک فوری مظاہرے. ہم نے ان کی پرورش. ہم نے ایک چھوٹا سا لگ سکتا ہے صرف ایک لمحے کے لئے یہاں توڑ اور پینے کے لئے کچھ ہے. کسی کے ساتھ شامل ہونے میں کوئی اعتراض نہیں تو یہاں صرف ایک لمحے کے لئے مجھے. کس طرح لال قمیض میں آپ کے بارے میں؟ پر چلو. صرف ایک آج. اگرچہ، آپ کا شکریہ. ٹھیک ہے، اور ہم نے یہاں کون آ رہا؟ آپ کا نام کیا ہے؟ 4 اسپیکر: لورا. اسپیکر 1: لورا. پر چلو. تو لورا، بہت آسان چیلنج. یو مل کر اچھا لگا. ٹھیک ہے. تو ہم یہاں پر کچھ دودھ ہے اور ہم یہاں پر کچھ سنتری کا رس ہے اور کچھ کپ ہے کہ ہم آج Annenberg میں سے ادھار لیا. 4 اسپیکر: ادھار. اسپیکر 1: اور آگے جانے کے لئے جا اور آپ کو اس کے نصف ایک گلاس دے. ٹھیک ہے. اور ہم آپ کو نصف دے دونگا ایک گلاس دودھ. اوہ، اور صرف آپ کر سکتے ہیں تاکہ ، اس طرح کیا تھا یاد میں لانے کے لئے یاد اس کو اور آج. ٹھیک ہے. تم برا نہ تو، چلو دیکھتے ہیں، ہم آپ کے اپنے شیشے پر ڈال کر سکتے ہیں اگر آپ چاہتے ہیں. یہ لورا کی آنکھوں سے دنیا کو ہو جائے گا. ٹھیک ہے. تو آپ کا مقصد ہے، دو کپ دیا یہاں مائع، دودھ اور سنتری کا رس، دو فہرست کا تبادلہ کیا جاتا ہے تاکہ سنتری کا رس دودھ کپ میں چلا جاتا ہے اور دودھ میں چلا جاتا ہے سنتری کا رس کپ. 4 اسپیکر: میں نے ایک کپ حاصل کرتے ہیں؟ اسپیکر 1: میں اگرچہ، تم سے پوچھا کہ بہت خوش ہوں یہ زیادہ بہتر فوٹیج کیا گیا ہے آپ سے پوچھا نہیں تھا. لیکن ہاں، ہم آپ کو ایک تہائی کی پیشکش کر سکتے ہیں کورس کے، خالی ہے کہ کپ. ٹھیک ہے. تو وہاں فہرست کا تبادلہ. بہت اچھا. بہت اچھا. تم ہمیشہ احتیاط سے یہ کر رہے ہیں. اور تین قدم. ٹھیک ہے. بہترین. تعریف کی ایک بڑی دور لورا کے لئے اچھا ہو جائے گا. ٹھیک ہے. ہم تھوڑا ودائی تحفہ ہے آپ کے لئے، لیکن مجھے ان لے. بہت بہت شکریہ. تو ایک سادہ مثال، اگرچہ، اگر آپ ایسا کرتے ہیں کہ مظاہرہ کرنے کے لئے فہرست کا تبادلہ کرنا چاہتے ہیں دو کنٹینرز کی، یا کی متغیر دو کال ان کے، آپ کو کچھ عارضی اسٹوریج کی ضرورت تو میں مواد کے ایک مرحلے کے لئے آپ اصل میں سویپ کر سکتے ہیں. تو یقینا، یہاں اس کے منبع کوڈ کو میں C بالکل اس کے نمائندے ہے. سنتری کا رس ایک اور دودھ تھا ، بی تھا، اور ہم دونوں کا تبادلہ کرنا چاہتے تھے آپ کو تخلیقی کچھ کرنے کی کوشش کر سکتے ہیں دوسرے میں ایک بہا، لیکن یہ شاید نہیں کرے گا خاص طور پر اچھی طرح سے ختم. اور اس طرح ہم ایک تہائی کپ، کال کا استعمال اس کنونشن کی طرف سے، T-M-P کہ tmp اور مندرجات رکھو OJ کہ میں، اس کے بعد ایک کپ تبادلہ، پھر میں OJ ڈال اصل کپ، اس طرح بالکل کے طور پر، حاصل کرنے کے لورا، تبادلہ کیا تھا. تو بالکل ایسا ہیں. مجھے آگے بڑھیں اور کھول دو ہے کہ ایک مثال کے طور پر اصل میں کوئی "کہا جاتا یہ نہیں ہے کیونکہ "، تبادلہ آپ کو لگتا ہے ہو سکتا ہے کے طور پر کے طور پر صرف کیا. تو اس پروگرام میں، کہ نوٹس میں stdio.h، ہمارے پرانے دوست استعمال کر رہا ہوں. میں پروٹوٹائپ ہے ، وہاں سویپ جس اس کے نفاذ کا مطلب شاید نیچے ذیل، اور ہم دیکھتے ہیں اہم کیا اس پروگرام میرے لئے کیا جا رہا ہے. میں سب سے پہلے int ایکس کا اعلان ہو جاتا ہے ایک، اور Y کے دو ہو جاتا int کی. تو OJ کے طور پر ان کے بارے میں سوچنا بالترتیب اور دودھ،. اور پھر میں نے صرف ایک ہے printf کے ایکس یہ کہہ اور Y صرف اس میں کر سکتے ہیں، یہ ہے ضعف کیا ہو رہا ہے کو دیکھنے کے. پھر میں نے دعوی printf ہے ، میں نے دو گماگمن رہا ہوں اور پھر میں نے ایک پرنٹ وہ تبدیل کر رہے ہیں کا دعوی ہے کہ، اور میں پھر X اور Y باہر پرنٹ. تو یہاں سویپ ہے بالکل لورا نے کیا کیا، اور ہم پر دیکھا ہے بالکل وہی جو ایک لمحے پہلے کی سکرین. تو آگے بڑھو اور sorely مایوس ہو جائے. کوئی سویپ، اور کوئی سویپ چلانے، یہاں کی پیداوار پر میں zooming. درج X Y تبدیل گماگمن، 2 ہے، 1 ہے. X اب بھی 1 ہے، اور Y اب بھی 2 ہے. تو اگرچہ، واضح طور سے، یہ لگتا ہے بالکل تکنیکی تاہم، پسند، لورا نے کیا کیا، کام کرنے کے لئے نہیں لگ رہا تھا. تو کیوں ہے؟ ٹھیک ہے، یہ جب پتہ چلا ہے کہ ہم اس طرح ایک پروگرام لکھنا دونوں اہم،، یہاں پر روشنی ڈالی ہے اور اس کے بعد ایک اور تقریب، سویپ کی طرح، ، یہاں پر روشنی ڈالی جس یہ دنیا، مطالبہ طرح کچھ لگتا ہے ایک لمحے پہلے ان کی ٹرے. جب اہم ملاقات ہو جاتا ہے سب سے پہلے، اس آپریٹنگ سسٹم پوچھ کی طرح ہے کسی بھی مقامی کے لئے میموری کا ایک تھوڑا سا کے لئے ایکس اور اہم ہے کہ Y کی طرح متغیر، اور وہ وہیں ختم. اہم کالز کا تبادلہ، اور اہم لیکن اگر دو دلائل، A اور B تبادلہ کرنے کے لئے گزر جاتا ہے، سنتری کا رس اور دودھ، اسے پسند نہیں ہے سنتری کا رس اور دودھ کے حوالے لورا کے لئے. ایک کمپیوٹر کرتا ہے، یہ ہے سنتری کا رس کی نقول گزر تاکہ لورا کو دودھ اور کاپیاں، کیا اس کی ٹرے کے اندر بالآخر ہے قیمت ایک اور دو، یا OJ ہے اور دودھ، لیکن اس کی کاپیاں، تو ہے کہ اس نقطہ پر کہانی میں، وہاں یہ ٹرے کے ہر ایک میں OJ اور دودھ ہے. ایک اور ایک دو نہیں ہے یہ ٹرے کے ہر ایک میں، اور سویپ تقریب یقینا کام کر رہا ہے. اس کے اندر ان گماگمن ہے دوسری اولین ٹرے کے، لیکن اس گماگمن کوئی اثر نہیں ہے. اور صرف کچھ کی بنیاد پر ہم نے بنیادی اصول اس سے پہلے کے بارے میں بات، اور یقینا صرف چند منٹ پہلے، کیا تبدیل کیوں کی وضاحت کر سکتے ہیں سویپ کے اندر ایک اور ب اگرچہ، X اور Y پر کوئی اثر نہیں ہے میں سویپ تقریب میں X اور Y منظور. یہاں کلیدی لفظ کیا ہے simplistically وضاحت کر سکتے ہیں؟ میں یہاں اس کے بارے میں سنا ہے؟ سامعین: واپس. اسپیکر 1: واپس؟ واپس نہیں. کی ایک دوسرے کے ساتھ جانے دو. یہ کیا ہے؟ سامعین: [اشراوی]. اسپیکر 1: ٹھیک ہے، ہم کر سکتے واپسی تو کہانی میں واپس کام کرنے کے، لیکن ایک بھی آسان وضاحت ہے. سامعین: دائرہ کار. اسپیکر 1: دائرہ کار. میں گنجائش لے لیں گے. تو گنجائش، جہاں یاد ہماری X اور Y اعلان. وہ اندر کا اعلان کر رہے ہیں اہم یہاں تک. A اور B، دریں اثنا، ہیں مؤثر طریقے سے اعلان سویپ کے اندر، کافی نہیں میں گھوبگھرالی منحنی خطوط وحدانی لیکن اب بھی سویپ کے جنرل علاقے میں. اور یقینا، A اور B صرف اس کی ٹرے کے اندر اندر موجود Annenberg میں سے، اس کوڈ کا دوسرا حصہ. تو ہم یقینا کاپی کو تبدیل کرنے کے، لیکن کر رہے ہیں کہ واقعی ہے کہ تمام مددگار نہیں ہے. تو میں ایک نظر ڈالیں یہ ایک چھوٹا سا کم سطح. میں میں واپس جانے کے لئے جا رہا ہوں ذریعہ ڈائریکٹری، اور میں سب سے پہلے کرنے کے لئے جا رہا ہوں یہاں میں زوم، اور صرف میں اس میں ہوں اس بات کی تصدیق بڑی ٹرمنل ونڈو، پروگرام اب بھی اس کی طرح برتاؤ کر رہا ہے. اب کہ اس فرض جان بوجھ کر نہیں ہے. واضح طور پر میں تبادلہ چاہتا تھا کام، تو یہ ایک بگ کی طرح محسوس ہوتا ہے. اب میں انہوں نے مزید کہا شروع کر سکتا ہے میرا کوڈ printf کی کے بہت، ، یہاں Y ایکس پر باہر پرنٹ یہاں، یہاں، یہاں ب. لیکن سچ کہوں تو، یہ شاید ہے آپ ہفتے کے ایک جوڑے کے لئے کر رہا ہوں اب، دفتری اوقات میں اور گھر میں کام کرتے وقت کچھ کیڑے تلاش کرنے کی کوشش psets میں پر. آپ پہلے ہی نہیں ہے لیکن اگر آپ کو،، دیکھ لیں گے مسئلہ یہ ہے کہ تین متعارف کرایا مقرر GDB نامی ایک کمانڈ، جہاں GDB، GNU ٹھیک کرنے والا کھولتا، خود کی ایک پوری چڑھانے ہے خصوصیات کہ اصل میں کر سکتے ہیں ہم حالات کو سمجھنے کے دو اس طرح، لیکن زیادہ compellingly، مسائل کے حل اور کیڑے تلاش. تو میں ایسا کرنے جا رہا ہوں. اس کے بجائے ./noswap کی، میں بجائے ہوں GDB ./noswap چلانے کے لئے جا. دوسرے الفاظ میں، میں چلانے کے لئے جا رہا ہوں میرا پروگرام نہیں پارٹی میں، ہمارے نئے دوست آج. میں چلانے کے لئے جا رہا ہوں میرا اندر پروگرام noswap نامی اس دوسرے پروگرام کے ایک ٹھیک کرنے والا کھولتا ہے جو GDB،، جس میں مدد کرنے کے لئے ڈیزائن کیا گیا ہے کہ ایک پروگرام ہے آپ کو تلاش اور کیڑے کو ہٹانے انسان. میں یہاں چلائیں مارا تو، ہے متن کی ایک atrocious رقم تم واقعی میں پڑھنے کے لئے کبھی نہیں. یہ بنیادی طور پر ایک تباہی ہے فوری طور پر، جس میں کنٹرول L مارا جا رہا ہوں وہاں سب سے اوپر حاصل کرنے کے لئے. یہ GDB فوری ہے. اب میں اس پروگرام کو چلانے کے لئے چاہتے ہیں تو، آج کے اس پر چھوٹا سا دھوکے باز شیٹ کے طور پر سلائڈ چلائیں سب سے پہلے ہے، پتہ چلتا ہے ہم متعارف کرانے کے لئے کا مطلب ہے کہ حکم دیتا ہے. اور میں صرف ٹائپ کرنے کے لئے جا رہا ہوں GDB کے اندر چلانے کے، اور یقینا یہ میرا پروگرام بھاگ گیا. اب کچھ اضافی ہے اس طرح کی سکرین کے نتائج، لیکن اس GDB صرف ہونے کی وجہ سے مقعد ہے اور کیا جا رہا ہے ہمیں بتا. تم سچ میں فکر کرنے کی ضرورت نہیں ہے ابھی ان کی تفصیلات کے بارے میں. لیکن واقعی کے بارے میں ڈاؤن لوڈ، اتارنا ہے اگر میں GDB، اس دوبارہ کنٹرول L مجھے جانے دو سکرین صاف کرتا ہے آگے اور قسم اس طرح "، اہم توڑ"، میں درج کریں مارا جب، کیا کی ترتیب ایک بریک پوائنٹ noswap.c میں کہا، جہاں GDB ہے جو 16 لائن، اصل میں میرے پروگرام نے سوچا ہے، میری تقریب اصل میں ہے. اب ہم نظر انداز کریں گے یہ لیکن ہے کہ پتہ ہے خاص طور پر اس تقریب کی یاد میں. تو اب میں چلانے ٹائپ جب، یہاں اچھا ہے کیا محسوس. میرا پروگرام لائن میں ٹوٹ جاتا ہے روکنے پر عملدرآمد کرنا GDB بتایا. تو اب میں اپنے کوڈ کو تبدیل کرنے کی ضرورت نہیں ہے، ، کچھ printf کی شامل اسے recompile، دوبارہچلانے یہ،،، تبدیلی کچھ printf کی شامل اس کو بچانے کے، اسے recompile، اسے چلانے. میں صرف اپنے پروگرام کے ذریعے چل کر سکتے ہیں انسانی رفتار سے قدم کی طرف سے قدم بہ قدم، نہیں رفتار کے انٹیل کے اندر قسم میں. تو اب اس لائن کو نوٹس میں واپس جانا تو یہاں ظاہر، اور gedit میں اپنے پروگرام کے لئے، کہ اصل میں ہے کہ محسوس کوڈ کی پہلی لائن. 16 لائن gedit میں نہیں ہے. وہاں 16 لائن GDB کے اندر اندر ہے، اور یہاں تک کہ اس میں سیاہ فام اور سفید فام انٹرفیس اگرچہ تقریبا صارف کے طور پر ہے دوست، اس کا مطلب کہ 16 لائن کو پھانسی دے دی نہیں کیا گیا ہے ابھی تک، لیکن یہ کرنے کے لئے کے بارے میں ہے. تو یقینا میں پرنٹ ٹائپ کریں ایکس، نہیں printf کے، صرف پرنٹ ایکس، میں، صفر کی وہاں کچھ جعلی قیمت حاصل ایکس ابھی سے initialized نہیں کیا گیا ہے کیونکہ. آپ تو تو میں، اگلے ٹائپ کرنے جا رہا ہے، یا رہا ہوں صرف اگلے کے لئے n، پسند کرنا چاہتے ہیں. لیکن میں اگلے اب، ٹائپ درج کریں جب یہ لائن 17 پر چلتا ہے محسوس. تو منطقی طور پر، میں پھانسی دے دی ہے تو 16 اور اب میں پرنٹ ایکس ٹائپ، میں کیا دیکھنا چاہئے؟ ایک. اور اب اس کا اقرار بردوست ہے. $ 2، صرف پسند ہیں طریقہ ہے اگر آپ بعد میں اس کی قیمت کا حوالہ دیتے ہیں کے لئے چاہتے ہیں، آپ "ڈالر کے دو پر دستخط." کہہ سکتے ہیں یہ ایک واپس حوالہ کی طرح ہے. لیکن اب کے لئے، صرف اس کو نظر انداز. کیا دلچسپ ہے کیا ہے برابر علامت کے حق پر. اور اب میں اگلے دوبارہ ٹائپ کریں اور پرنٹ Y، 2 دیکھنا چاہئے. میں بھی اب پرنٹ کر سکتے ہیں X دوبارہ، اور واضح طور سے، میں کے طور پر ایک چھوٹی سی الجھن میں رہا ہوں تو جہاں میں ہوں، میں فہرست کے لئے فہرست ٹائپ کر سکتے ہیں اور صرف کے ارد گرد کچھ سیاق و سباق دیکھیں نقطہ میں واقعی میں ہوں. اور اب میں ٹائپ کر سکتے ہیں اگلا، اور وہاں ایکس 1 ہے. اب میں اگلے ٹائپ. اوہ، Y 2 ہے. اور پھر، یہ، بردوست ہے GDB کی پیداوار کی وجہ سے میری اپنی پیداوار کے ساتھ commingled کیا جا رہا ہے. لیکن آپ کی طرف سے، ذہن میں رکھیں تو آگے پیچھے آپ کے کوڈ میں glancing کی طرف یا اس کے باہر بچھانے شاید پارٹی کی طرف سے، تمہیں واقعی میں صرف ہوں کہ دیکھیں اپنے پروگرام کے ذریعے نکلنے. لیکن لفظی، اگلے نوٹس کیا ہوتا ہے. یہاں 22 سطر ہے. اس طرح پر منتقل، مجھے اس پر چلتے ہیں 23، اور اب میں، اب بھی ایک ایکس پرنٹ. اور میں ایک اب بھی، اب Y پرنٹ. تو یہ ایک مفید مشق نہیں ہے. تو اس کو پھر دو. میرے پاس واپس جانے دو پھر سب سے اوپر اور قسم کی چلائیں. اور اس پروگرام کے کہہ رہا ہے کہ ٹھیک کیا جا رہا ہے پہلے سے ہی شروع کر دیا ہے، شروع سے شروع کر دیا. جی ہاں، پھر اس کے کیا. اور اس وقت، اگلے کرتے ہیں اگلے، اگلے، اگلے، اگلے، لیکن اب چیزیں دلچسپ حاصل. اب میں میں قدم کرنا چاہتے ہیں سویپ، تو میں اگلے ٹائپ نہیں کرتے. میں نے یہ محسوس اب مرحلہ قسم، اور noswap.c لائن 33 کے لئے مجھ سے کود ہے. میں gedit کے لئے واپس جانا تو، لائن 33 کیا ہے؟ کہ اصل سب سے پہلے ہے سویپ کے اندر کوڈ کے مطابق. جس کی وجہ سے اب میں کر سکتے ہیں، اچھا ہے قسم کے ارد گرد ڑکیلنا اور شوقین حاصل کے طور پر کیا وہاں واقعی چل رہا ہے. مجھے TMP پرنٹ. واہ. کیوں TMP کچھ ہے پاگل، بوگس ردی کی ٹوکری کی قیمت؟ سامعین: initialized یہ نہیں کیا گیا ہے. اسپیکر 1: initialized یہ نہیں کیا گیا ہے. اور یقینا، اگر آپ کو ایک پروگرام چلاتے ہیں، آپ کو میموری کی ایک پوری چڑھانے دے رہے ہیں آپریٹنگ سسٹم کی طرف سے، لیکن آپ کوئی اقدار نہیں initialized ہے، تو جو کچھ بھی بٹس ہیں یہ اگرچہ، یہاں دیکھ کر اس پاگل بڑے منفی تعداد، صرف کا مطلب ان کہ باقیات میں سے ہیں کہ رام کی کچھ پچھلے استعمال، میں نہیں ہے اگرچہ اپنے آپ کو ابھی تک اس کی ضرورت ہے. تو اب میں آگے اور قسم جا رہا ہوں اگلا، اور اب میں پرنٹ TMP ٹائپ کریں، میں کیا دیکھنا چاہئے؟ جو بھی ایک کی قیمت تھا، ایک، پہلی دلیل ہے X طرح پہلے تھا بات، میں منظور کیا جا رہا ہے تو ایک اور X ایک ہی ہونا چاہئے، پرنٹ TMP مجھے ایک پرنٹ کرنا چاہئے. تو کیا آپ کا مسئلہ سیٹ میں دیکھیں گے تین، GDB پر قسم کی ایک سبق ہے لیکن یہ آغاز ہے کہ ایک آلہ پر ایک نظر کے کہ اصل میں ہو جائے گا آپ کے مسائل حل کرنے میں مدد تو بہت زیادہ مؤثر طریقے سے. ہم بالآخر رہے ہیں بدھ کے روز کیا جا رہا چند تہوں چھیل کرنے کے لئے شروع کر رہا ہے اور کچھ تربیت پہیوں کو ہٹا دیں. بات یہ ہے کہ کہا جاتا ہے کہ سٹرنگ ہم، کچھ وقت کے لئے استعمال کیا جاتا ہے ہم آہستہ آہستہ دور لے جا رہے ہیں اور آپ سے کے بارے میں بات شروع کچھ esoterically چار * کے طور پر جانا جاتا ہے، لیکن ہم یہ اچھا کیا کرنے جا رہے ہیں اور آہستہ سے سب سے پہلے میں، یہاں تک کہ اشارہ اگرچہ، وہ کہتے رہے ہیں کے طور پر، کچھ کر سکتے ہیں اگر زیادتی بہت بری چیزیں، سے تھوڑا claymation دیکھ کر ہمارے دوست سٹینفورڈ سے نک Parlante یونیورسٹی، کمپیوٹر میں ایک پروفیسر یہ پیش منظر ایک ساتھ ڈال دیا ہے جو سائنس اس بدھ آنا کیا ہے. [ویڈیو پلے بیک] -Hey، کرو. جاگو. یہ پوائنٹر تفریح ​​کے لئے وقت ہے. کہ کیا ہے؟ اشارہ کے بارے میں معلومات حاصل کریں؟ اوہ، واہ! [END ویڈیو پلے بیک] اسپیکر 1: یہ کہ بدھ کو انتظار کر رہا ہے. ہم تو آپ کو نظر آئے گا. [ویڈیو پلے بیک] -and اب، گہرے خیالات، Daven Farnham کی طرف سے. کیوں ہم C سیکھ رہے ہیں؟ کیوں نہیں A +؟ [ہنسی] [END ویڈیو پلے بیک]