[MUSIC پخش] 

-Alright! 

-این CS50 است. 

-این CS50 است. 

-این CS50 است. [MUSIC - IGGY نوعی بوته از جنس خلنگ، "فانتزی"] 

حافظه های مورد علاقه -My از CS50 زمانی بود که من رفتم به پازل روز. 

-Probably فقط در زمان صرف کار بر روی مجموعه مسائل با دوستان و مردم من که مقاله ها و خطابه در نهایت تبدیل به blockmates من. 

-My بهترین حافظه از CS50 Hackathon است. بانک CS50 Hackathon. 

-Hackathon. 

-Hackathon. -Hackathon. بانک Hackathon -Rob Bowden. فقط همه چیز را در مورد او. 

[MUSIC - IGGY نوعی بوته از جنس خلنگ، "فانتزی"] 

حافظه های مورد علاقه -My است زمانی که من در بود مرحله I و نقش معتبر بازی یک گره [؟ در لینک؟] [؟ فهرست. ؟] 

وقتی همه ما فضای آزاد در Dropbox کردم و دیوید مانند بود، تحت صندلی خود را نگاه کنید. و آن را مانند، فضای برای همه بود! 

[MUSIC - IGGY نوعی بوته از جنس خلنگ، "فانتزی"] 

مشاوره -My برای هر دانشجوی ورودی را شود واقعا کار کند در P-مجموعه با دوستان. 

ساعت برنامه آفیس بسیار دوست شما. 

-Make که از این تجربه خود را و دیدار به عنوان بسیاری از مردم به عنوان شما می توانید. 

-Don't ترس تا کمک بخواهد. در اوایل هفته -Start P-مجموعه. من فکر می کنم بزرگترین چیزی است که استفاده از تمام منابع که CS50 است. 

-Go به ساعات اداری در اوایل هفته. 

-Definitely تماشای شورت. 

-Don't خود را در P-مجموعه بدفع الو قت گذراندن. -Make شوید که شما یک گروه بزرگ پیدا از مردم به کار بر روی P-مجموعه با. شما می توانید تعداد زیادی از سرگرم کننده و گرفتن کار با هم انجام می شود. 

-Don't ترس را به خودتان فشار. برو به نسخه هکر گاهی اوقات. 

همه چیز -Write بر روی کاغذ قبل از شما تا به حال لمس کامپیوتر شما. 

-CS50 واقعا بزرگ در است ارائه راه برای دریافت کمک. 

-My یک قطعه از توصیه های خواب است. تا به کسی گفت که؟ خواب، برای مطمئن. این آسان برای انجام نیست، اما شما باید برای این کار، من فکر می کنم. 

من می گویم واقعا توان ذهنی آماده دلیل این که شما در حال رفتن به آن را دوست دارم. [MUSIC - IGGY نوعی بوته از جنس خلنگ، "فانتزی"] 

-این CS50 است. 

-این CS50 است. 

-این CS50 است. [MUSIC - IGGY نوعی بوته از جنس خلنگ، "فانتزی"] 

-این CS50 است. 

[تشویق حضار] 

DAVID J. مالان: پس این CS50 است و این پایان هفته 0 است. و این فقط برخی بود کارکنان CS50 که در انتظار شما نه تنها در بخش و ساعات اداری، اما، همچنین، در این آخر هفته آینده در CS50 پازل روز. که دوباره است، نه، همه چیز در مورد برنامه نویسی. در واقع، این انتظار می رود که شما نمی خواهد که به برنامه هر چیزی، بلکه مشکلات را حل کند و با استفاده از عقل و دوستان در کنار شما. 

ما از سوی برخی از پیوست از دوستان ما در Facebook-- اگر شما ثبت نام here-- که برای چند سال گذشته، در واقع نوشتن است این چالش ها با ما. و به این ترتیب، آنها خواهد شد آنهایی که در نهایت در حال اجرا روز پازل. و به این ترتیب، شما به چالش کشیده خواهد شد با دقیقا نوع از همه چیز و مشکلاتی که مردم در صفحه خواهم در مورد فکر می کنم. به طوری که فردا است. ثبت نام در cs50.harvard.edu/register. 

در حال حاضر یک کلمه در یک زن و شوهر کارکنان به طور خاص. این اینجا آنسل داف است، که در واقع یک از نویسندگان مشترک این دودویی لامپ های که ما در روز چهارشنبه شاهد، در علاوه بر این به خود دن برادلی CS50 است. آنسل داف نیز سابق بود advisee دانشجوی سال اول من 3 سال پیش و او در واقع حتی ساخته شده است این تریبون. او در به انجام رفته علوم مهندسی و بیشتر. در حال حاضر، تصویر خود را در اینجا است که در واقع آنسل 3 سال پیش در CS50 Hackathon زمانی که او یکی از ما قرض گرفته شده بالن، آن گیر به لپ تاپ خود را، و، برای 12 بعدی برخی از عجیب و غریب ساعت، با تمرکز بر پروژه نهایی خود را، گرفتن معافیت تنها برای باز کردن کیسه از آب نبات در Hackathon. 

اما او در ادامه به تازگی به صرف تابستان گذشته با ما، از CS50 برای کارکنان خود، و اکنون دانش آموزان این ترم، دارای چاپگر 3D خود را دارد. و به طور خلاصه پرینتر های 3D است دستگاهی است که به نظر می رسد کاملا شبیه به این. شما آن را با یک قرقره پلاستیکی را پر کنید است که توسط دستگاه ذوب و شما برای ساختن همه چیز به معنای واقعی کلمه از هیچ چیز نیست. بسیار شبیه به یک چاپگر جوهر افشان، شما شروع به تف از نقطه های کوچک از جنس پلاستیک که فرم با هم به شکل اشیاء کل. و به این ترتیب آنسل به عنوان مثال، در اوایل در این تابستان، دارای یک آی فون 5 و تصمیم گرفت او واقعا می خواستم آن را سر پا نگه داشتن بر روی میز خود را. اما او نمی خواست بیرون رفتن و خرید چیزی از فروشگاه اپل و یا مانند، تا او نشست و شروع به کشیدن چیزی. او در زمان چند اندازه گیری که چگونه به ضخامت و چگونه گسترده ای آیفون خود بود، او این تصویر را کشید در اینجا، او تصمیم گرفت که او می خواست به یک شیب 75 درجه آن را به عنوان در خیره شد او روی میز او وجود دارد. او سپس این تبدیل شده است، با استفاده از نرم افزار، به یک مدل 3D CAD که نگاه کمی چیزی شبیه به این. و پس از آن او اقدام، در نهایت، به واقع آن را ایجاد کنید. پس در واقع، اگر هر کدام از شما در اینجا، شاید در یک ردیف که من می توانم به پرتاب، دارند an-- وجود دارد ما باید مردم با آیفون 5، و در اینجا ما دو بیشتر است. 

در حال حاضر، نه به outdone، CS50 خود گانگ چنگ نیز مجموعه ای از تابستان امسال برای ساخت چیز کاملا چند و، در واقع، بنا به دلایلی که هنوز هم معلوم نیست، تا به آرامی بوده است چاپ ارتش از فیل ها با بیان بازوها و تنه. چند که در واقع در اینجا اگر هر کسی در حال حاضر یک فیل like--. همه حق است،. اما آنچه چنگ همچنین برای ما این است که او بسیار با مهربانی راه اندازی دوربین چرا که فیل، باور کنید یا نه، طول می کشد حدود دو و نیم ساعت برای چاپ. حتی موضع آیفون و جو در زمان یک ساعت و نیم برای چاپ. و چه چنگ جلو رفتم و انجام تشکیل شده بود یک دوربین خوب را در مقابل از این چاپگر 3D، فیلم برداری به مدت یک ساعت و نیم به عنوان طراحی آنسل چاپ. ما تزیین برخی از مورد علاقه موسیقی به آن به منظور به شما این را به نگاه در نحوه چاپ 3D کار می کند. و حتی اگر این است که در واقع در پلاستیک، متوجه باشید که اگر این منطقه است مورد علاقه شما آکادمیک، می مردم وجود دارد، در میان آنها جنیفر لوئیس در اینجا در دانشکده مهندسی، که در واقع کار بر روی چاپ 3D اشیاء از جنس پلاستیک. اما حتی، به طور فزاینده ای، مواد بیولوژیک برای حل مشکلات فیزیولوژیکی برای انسان است. اما در اینجا یک کمی چیزی از CS50. 

[رضایت MECHANICAL صداهای] DAVID J. مالان: این صدا نیست هر چیزی مانند آن در واقعیت، اما آن را بسیار خنک آن را تماشا که در آن سرعت، و با آن صدا. 

در حال حاضر، چهارشنبه، چگونه آیا ما برای اولین بار از اینجا دریافت کنید؟ ما شروع به صحبت در مورد کامپیوتر علم و ما از آنچه در آن بود. و آن را در مورد تعدادی از کارهایی است و در بسیاری از جهات مختلف وجود دارد که در آن شما می توانید سر پس از یک دوره مانند CS50. در واقع، اگر شما برداشت یک از این راهنمایی غیر رسمی به خارج CS، این دفترچه که ما ارائه کرده ایم، که آیا شما فکر گرفتن فقط CS50، و یا شاید انجام ثانویه، و یا شاید حتی تمرکز در CS، آیا از طریق آن تلنگر. و شما یک نمودار را ببینید در پایان که شما نشان می دهد بسیاری از جهات مختلف در CS که شما می توانید خاموش بروید. 

اما امروز، ما تمرکز، دوباره، در واقعا یکی از نمایش های اساسی، شاید، که در آن شما باید ورودی به مشکلات، شما باید خروجی از مشکلات، و شما باید الگوریتم های که با آن به ایجاد کسانی که خروجی از آن ورودی. و یکی از این نمونه، از بود البته، این دفترچه تلفن است. و ما به عنوان نمونه به استفاده از طریق یک الگوریتم است که درست بود. و پس از آن یکی دیگر بود درست است، اما کمی سریع تر. و پس از آن یکی دیگر است که کمی بود چشمگیر تر است، اما اساسا سریع تر. 

راست، این گوشی کتاب ما ادعا به حال حدود 1،000 صفحه است. و چند بار بود من به پاره دفترچه تلفن در نیمه برای پیدا کردن کسی مثل مایک اسمیت، حداکثر، در 1000 صفحه کتاب؟ بنابراین، 10 دادن یا گرفتن. و به این ترتیب یک بار من این چیزی که در پاره نیم، و یا به سادگی، maturely بیشتر، در نیمه تقسیم شده است، آن را تنها 10 صفحه از 1000. و اگر ملاک، کمی غیر واقع بینانه برای یک دفترچه تلفن، اما اگر این دفترچه تلفن به حال برخی از 4 میلیارد صفحه در آن است، تا به طور کامل گنده جسمی، که چگونه بسیاری از بار را تقسیم کنید 4 میلیارد دفترچه تلفن صفحه در نیمه؟ پس از آن در واقع 32، دادن یا گرفتن. و به این ترتیب 32 بار تنها، از از 4 میلیارد صفحه، می توانید شما در پیدا کردن کسی مثل مایک اسمیت. و این بهره وری است. که یک الگوریتم خوب است، اعتقاد داشتن. 

اما پس از آن ما از آن نقل مکان کرد سعی کنید آن را رسمی. و من این کد شبه ارائه شده است. کد شبه است هر چیزی رسمی نیست. این چیزی است که شما را حفظ نیست. این فقط چیزی است که شما بیان است نسبتا به طور مستقیم با استفاده از زبان های انگلیسی، و یا هر زبان واقعا که انتقال ایده های خود را به طور خلاصه. اما چه کلیدی در مورد کد شبه این است که شما سعی کنید به تمام پیش بینی از موارد ممکن است که ممکن است رخ دهد. و در واقع، در این شبه کد، واقعا سه مورد وجود دارد هر بار که من دفترچه تلفن تقسیم شده است. مایک ممکن است به سمت چپ باشد. مایک ممکن است به سمت راست باشد. یا او ممکن است حق را در صفحه من در هستم. یا یک مورد گوشه چهارم، پس به صحبت می کنند. یک سناریوی بد ممکن است یکی which-- آنچه اتفاق می افتد؟ این مایک نه تنها در دفترچه تلفن در همه. 

و هنگامی که برنامه crash-- زمانی که مک و نرم افزار PC که شما بچه ها اجرا بر روی کامپیوتر شما گاهی اوقات آویزان و یا واریز به طور غیر منتظره، که به طور کلی به این معنی است که برخی از برنامه نویس، برخی از انسان مانند شما به زودی، فقط خرابه و ساخته شده است برخی به اشتباه. شاید انتظار نداشت که شاید وجود دارد هیچ مایک اسمیت در دفترچه تلفن است. و اگر شما در واقع نه ارسال کد که مسئولیت رسیدگی به شرایط مانند آن، به طور کلی غیر قابل پیش بینی همه چیز می تواند اتفاق می افتد. ماشین شما می تواند یخ. این می تواند راه اندازی مجدد. این برنامه می تواند ترک کنید. و به این ترتیب تمام این احمقانه است که شما ممکن است در واقعی خود را مواجه می شوند زندگی فقط با استفاده از کامپیوتر، به طور فزاینده فقط دور های این شهود توضیح داد و این درک از آنچه است در واقع در رفتن در زیر هود. 

حالا اجازه دهید سعی کنید به نگاهی در یک مشکل عمومی است. به جای را حضور در جایی مثل این، خواهد بود که کاملا آهسته برای انجام این کار یک، دو، سه، چهار. یا شاید دو، چهار، شش، هشت. اجازه دهید تمرکز، به جای آن، در ما چگونه ممکن است رسمی الگوریتم فرایند توسط که ما می توانیم حضور را. و در طول راه، اجازه دهید شروع کنیم به درخواست برخی از اصطلاحات که ما از امروز استفاده از زمانی که ما در واقع شروع برنامه نویسی به زبان. بنابراین من شما هم اکنون یک ویدیو چهار دقیقه را، که ما با هم با دوستان ما قرار داده است از TED، این سازمان. به موجب آن ما یک اسکریپت عرضه شده و آنها انیماتورهای خود به ارمغان آورد به خرس، و در واقع یک 2D ایجاد انیمیشن از آنچه یک الگوریتم است. اگر ما می تواند چراغها کم نور. 

[MUSIC پخش] راوی: یک الگوریتم چیست؟ در علم کامپیوتر، یک الگوریتم مجموعه ای است از دستورالعمل حل و فصل بعضی از مشکل گام به گام. به طور معمول، الگوریتم ها توسط رایانه اجرا، اما ما انسان ها الگوریتم نیز هست. به عنوان مثال، چگونه می شما در مورد شمارش به تعداد زیادی از مردم در یک اتاق؟ خوب، اگر شما مانند من هستید، شما می خواهم احتمالا نقطه در هر فرد در یک زمان و تعداد از صفر است. یک، دو، سه، چهار، و غیره. خوب، این یک الگوریتم است. در واقع، اجازه دهید سعی کنید آن را بیان به طور رسمی تر در کد شبه بیت. نحو زبان انگلیسی مانند آن شبیه یک زبان برنامه نویسی. 

بگذارید n برابر 0. برای هر فرد در اتاق، تنظیم نفر به نفر به علاوه 1 برابر است. چگونه به تفسیر شبه؟ خب یک خط اعلام کرد، پس به صحبت می کنند، یک متغیر به نام n و مقدار دهی اولیه ارزش خود را به 0 این فقط بدان معنی است که در شروع از الگوریتم ما، چیزی که ما با آن هستید شمارش تا به ارزش 0. پس از همه، قبل از ما شروع به شمارش ما هر چیزی شمارش نشده است. تماس با این متغیر نفر فقط یک قرارداد است. من می توانستم آن را بیشتر از هر چیزی به نام. در حال حاضر خط دو demarks آغاز یک حلقه، دنباله ای از مراحل است که خواهد شد برخی از چند بار تکرار کنید. بنابراین در مثال ما، گام ما گرفتن شمارش نفر در اتاق. در زیر خط دو خط است سه که توصیف دقیقا چه ما در مورد شمارش است. دندانه نشان می دهد که آن خط سه که تکرار خواهد کرد. بنابراین با کد شبه است ضرب المثل این است که بعد از شروع در 0 برای هر فرد در اتاق ما شده توسط 1 افزایش تعداد در حال حاضر این الگوریتم صحیح است؟ خوب اجازه دهید بر روی آن صدای بلند کمی. 

آیا این کار اگر وجود دارد دو نفر در اتاق؟ بیایید ببینید. در خط یکی از ما مقداردهی اولیه نفر به 0. برای هر یک از این دو نفر، ما پس از آن افزایش n را به 1. بنابراین در این سفر برای اولین بار از طریق حلقه، ما به روز رسانی نفر از 0 به 1. در سفر دوم از آن همان حلقه، ما به روز رسانی نفر از 1 به 2. و به این ترتیب، این الگوریتم را پایان، نفر 2 است، که در واقع منطبق بر تعداد مردم در اتاق. تا کنون، خیلی خوب است. 

چگونه در مورد پرونده گوشه هر چند؟ فرض کنید که 0 نفر وجود دارد در room-- در کنار من، که در انجام شمارش. در خط یک، ما دوباره مقداردهی اولیه نفر به 0. این زمان هر چند، خط سه اجرا کند نه در همه از آنجا که یک فرد در اتاق وجود ندارد. و به این ترتیب نفر باقی مانده است 0، که در واقع مسابقات تعداد زیادی از مردم در اتاق. خیلی ساده است، درست است؟ اما شمارش افراد در یک زمان بسیار ناکارآمد، بیش از حد، نه؟ مطمئنا ما بهتر می تواند انجام دهد. چرا دو نفر در یک زمان تعداد نیست، به جای شمارش یک، دو، سه، چهار، پنج، شش، هفت، هشت، و غیره. چرا به حساب نمی دو، چهار، شش، هشت، و غیره؟ حتی برای تلفن های موبایل سریعتر. و آن را قطعا می باشد. 

اجازه دهید این بهینه سازی بیان در کد شبه. بگذارید n برابر 0. برای هر جفت از مردم در اتاق، تنظیم نفر به نفر به علاوه 2 برابر است. خیلی تغییر ساده، درست است؟ به جای مردم تعداد در یک زمان، ما به جای آنها تعداد دو در یک زمان. این الگوریتم است، در نتیجه، دو برابر سریع تر از گذشته است. اما این درست است؟ بیایید ببینید. آیا این کار اگر وجود دارد دو نفر در اتاق؟ در خط یک، ما مقداردهی اولیه نفر به 0. برای که یک جفت از مردم، ما پس از آن افزایش n را به 2. و به این ترتیب این الگوریتم پایان نفر است 2، که در واقع منطبق بر تعداد مردم در اتاق. 

فرض کنید بعد آن وجود دارد صفر نفر در اتاق. در خط یکی از ما مقداردهی اولیه نفر به 0. مانند قبل، خط سه آن را همه اجرا نمی از آنجا که هر جفت از مردم وجود ندارد در اتاق، و به همین ترتیب نفر 0 باقی مانده است. که در واقع منطبق بر تعداد زیادی از مردم در اتاق. اما اگر وجود دارد سه نفر در اتاق؟ چگونه این کرایه الگوریتم؟ بیایید ببینید، در خط یک، ما مقداردهی اولیه نفر به 0. برای یک جفت از این افراد، ما پس از آن افزایش n را به 2. اما پس از آن چه؟ یکی دیگر از پر وجود ندارد دو نفر در اتاق، بنابراین خط دو دیگر صدق می کند. و به این ترتیب تا پایان این الگوریتم، نفر هنوز 2 است که درست نیست. در واقع این الگوریتم به گفت حشره دار است به دلیل آن است اشتباه. 

جبران بیایید با برخی از کد شبه جدید. بگذارید n برابر 0. برای هر جفت از مردم در اتاق، مجموعه ای N به نفر به علاوه 2 برابر است. اگر یک نفر جفت نشده باقی مانده است، مجموعه N برابر با تعداد به علاوه 1. برای حل این مشکل خاص، ما معرفی شده در خط چهار شرط، در غیر این صورت به عنوان یک شناخته شده شاخه، که تنها اجرا اگر یک نفر وجود دارد که ما نمی تواند با یکی دیگر از جفت. و بنابراین در حال حاضر که آیا، یکی، یا سه وجود دارد، و یا هر عدد فرد از افراد در اتاق، این الگوریتم در حال حاضر آنها را حساب کند. آیا ما می توانیم حتی بهتر انجام دهید؟ خب، ما می تواند در threes تعداد دفعات مشاهده، و یا چهار دست و پا، و یا حتی پنج و ده، اما فراتر از آن، آن را برای به دست آوردن کمی دشوار به نقطه. 

در پایان روز، که آیا توسط کامپیوتر و یا انسان اعدام، الگوریتم تنها مجموعه ای از دستورالعمل که با آن به حل مشکلات. این تنها سه بودند. چه مشکل را شما حل با الگوریتم؟ 

DAVID J. مالان: پس به عمد، یک برنامه بسیار ساده است، یک الگوریتم بسیار ساده است، برای دستیابی به چیزی بسیار ساده است، شمارش تعداد زیادی از مردم در اتاق. 

اما اجازه دهید از هم جدا کسی را دست انداختن برخی از نماینده ویژگی های است که در اینجا در واقع رفتن به زمانی مفید باشد حتی اجرای بیشتر مجموعه ای از نرم افزار است. بنابراین به عنوان مثال، در این خط برای اولین بار، ما آنچه که ما متغیر تماس بگیرید، و از جبر، شما به طور کلی آشنا با استفاده از x و y و z گاهی اوقات، و غیره. اما در برنامه نویسی، متغیرهای هنوز هم هستند، در پایان روز، که بسیار شبیه به. اما این شاید ساده تر به فکر می کنم یک متغیر به عنوان فقط یک ظرف. و، در واقع، آن را به برخی از تعداد بیت است به نحوی که در هارد دیسک خود را به اجرا و یا در حافظه کامپیوتر شما است، اما بیشتر در مورد که در آینده است. این فقط یک ظرف است. و اگر شما چیزی می گویند مانند اجازه نفر برابر با 0، خوب است که مانند فراخوانی این شیشه ای کاسه اینجا نفر، فقط یک نام دلخواه، و قرار دادن هیچ چیز در آن در ابتدا. بنابراین ارزش این کاسه در حال حاضر صفر است. و البته اگر شما درک در خط بعدی، در واقع افزایش برخی خط کد، به عنوان در این خط سوم در اینجا، 1، که مثل کرد و گفت چه ارزش فعلی از n، 0، به علاوه 1، چیزی شبیه به یک قرار پینگ پنگ توپ در اینجا. در حال حاضر مقدار این متغیر است کاملا به سادگی 1. و شما به سرعت می تواند ملاک، اما در حال حاضر آن را به 2، در حال حاضر آن را به 3، و غیره. به طوری که همه یک متغیر است. این یک قطعه از ذخیره سازی به این در واقع برخی از داده ها را ذخیره کنید. در حال حاضر آن را به یک توپ پینگ پنگ است. وجود دارد آن است که یک تعداد است. اما آن می تواند کلمات در یک فرهنگ لغت، مانند کنترل کننده املا من به روز چهارشنبه برای اشاره یکی از مجموعه مسائل سال گذشته است. 

در حال حاضر یکی دیگر از ایده های کلیدی، که به طور مشابه بسیار شهودی من ادعا می کنند، این است که از یک حلقه. و حلقه در روند شمارش همه است، البته، انجام همان چیزی که بارها و again-- یا یک در یک یا دو زمان در یک زمان. و شما می توانید این را به زبان انگلیسی بیان کند، یا کد شبه، در هر تعداد از راه، اما با استفاده از این حرف اضافه "برای" یک راه بسیار رایج از انجام آن است. برای هر فرد در اتاق، انجام این کار. دوباره و دوباره. و این واقعیت است که این فاصله دار، خط سه، فقط بدان معناست که آنچه شما قرار است به انجام چیزهای که فاصله دار است زیر خط دو است. فقط یک قرارداد بشری اما یکی از رایج به عنوان ما بالاتر واقعی را ببینید زبان های برنامه نویسی سطح. 

در حال حاضر کمی جالب تر است زمانی که شما در مورد یک ضربهی کرنر دریافت کنید. به عنوان مثال، یک گوشه مورد بود که وجود دارد سه نفر، یا پنج و یا هفت بود، و یا هر عدد فرد از افراد در اتاق، به دلیل انجام این کار توسط ترمز twos در نهایت به دلیل رفتن شما به دست کسی، یا در بسیار آغاز یا پایان بسته به اینکه چگونه شما آن را انجام دهد. و به این ترتیب، در حال حاضر، من این شاخه، و یا شرایط، اگر یک نفر باقی مانده است، پس از آن پیش بروید و رسیدگی که یک فرد تنها و بیکس که می کنید زوج با فرد دیگری. بنابراین این چیزی است که ما را تماس بگیرید یک بیماری و یا یک شاخه. 

کد در حال حاضر شبه به طور کلی می توان نوشته شده برای حل هر تعداد از مشکلات. و چیزی که من فکر کردم ما را در اینجا لحظه ای به دعوت گوییم CS50 است خود راب Bowden در مرحله به دو داوطلب پیوست، که هیچ ایده چه چیزی در انتظار. دست رفت به محض من گفت که. چگونه در مورد شما را در پایان اینجا، بیا تا. و چگونه در مورد از دورتر دور، چگونه در مورد راه در پشت. بازگشت سطر، در آمد تا با دست اندازی خود را. بسیار خوب، و چه نام شما چیه؟ 

ANITA: آنیتا. 

DAVID J. مالان: آنیتا. خوب، ملاقات با شما خوشبختم. اجازه بدهید به شما به راب Bowden معرفی. این آنیتا است. و چه نام است؟ 

KIERSTEN: Kiersten 

DAVID J. مالان: Kiersten. Kiersten، در آمد و ملاقات راب Bowden و آنیتا. از ملاقات شما خوشبختم. KIERSTEN: از ملاقات شما خوشبختم. DAVID J. مالان: بسیار خوب، راب. ROB BOWDEN: از ملاقات شما خوشبختم. DAVID J. مالان: آنیتا. KIERSTEN: سلام آنیتا. DAVID J. مالان: و شما چند صد همکلاسی. بنابراین، در حال حاضر اجازه دهید من به جلو و کشیدن فقط یک برنامه ساده و در اینجا در سیستم عامل مک است که به من اجازه در واقع نقطه نکاتی پایین. و اگر شما بچه ها می خواهند به هر یک موقعیت در یکی از این مدارس وجود دارد، به من اجازه پیش بروید و شروع به یک لیست کد شبه، اگر شما خواهد شد. و آنچه من می خواهم به اینجا، در نهایت نوع برای شما می باشد برخی از دستورالعمل ها است که ما مخاطبان در واقع رفتن به برای ما بخوان. اجازه بدهید پیش رو و فقط به تغییر این به یک لیست شماره برای مطابقت با آنچه که ما انجام می دهند وجود دارد. و چیزی که من قصد دارم برای انجام با به کمک شما است، نوشتن یک برنامه در شبه، که با آن این بچه ها می رویم برای اجرای بادام زمینی کره و ساندویچ ژله. پس از آن شاید به شایسته چیزی نشان می دهد که برخی از شما ممکن است بر روی اینترنت دیده می شود برای فقط یک لحظه کوتاه آزار دهنده. 

[MUSIC BUCKEWHEAT BOYS، "کره بادام زمینی  ژله TIME "] DAVID J. مالان: OK. به اندازه کافی از آن. بنابراین در اینجا در عین حال، من یک جفت از گوگل عینک که ما در خود راب Bowden CS50 قرار داده برای دیدن دنیا را از طریق چشمان خود را. و ما بهترین های ما در پست انجام تولید در واقع بافت فیلم از آنچه راب شاهد در حال حاضر، به این سخنرانی واقعی ویدیو با دو ما داوطلبان در کنار او. پس چه من قصد دارم به انجام است، من تایپیست. ما دارای هدف در اینجا از در واقع نوشتن یک برنامه که با آن به، در نهایت، کره بادام زمینی و ساندویچ ژله، اما این سه در حال رفتن به رفتار به عنوان اینکه آنها کامپیوتر می باشد. و رایانه ها، در پایان روز، در واقع دستگاه های بسیار گنگ. آنها فوق العاده سریع است، اما آنها تنها می تواند انجام، به معنای واقعی کلمه، چه به آنها گفته شود. شما نمی توانید فقط می گویند به یک بادام زمینی کره و ساندویچ ژله. شما باید به آنها برنامه ریزی برای انجام این کار. شما باید به آنها بگویید با دقت به آنچه به انجام، کمتر چیز به طرز وحشیانه ای به و، امیدوارم، amusingly چپ چپ. 

پس با که گفت، ما نیاز یک تماس از مخاطب برای چه باید گام به گام یکی بود، اگر هدف در اینجا این است که بادام زمینی کره و ساندویچ ژله. بله؟ 

رسید [نامفهوم] کیسه نان. DAVID J. مالان: باز کردن کیسه های نان. بنابراین اگر سه مسابقه خواهد بود خواهم به انجام این کار به معنای واقعی کلمه. کیسه نان را باز کنید. 

[رسید خنده] DAVID J. مالان: پس در آن کار می کنند اجازه دهید. خوب. بنابراین گام دو، how-- اجازه دهید این بیشتر است. آره، در مقابل. 

رسید [نامفهوم] نان. 

DAVID J. مالان: آن چیست؟ 

رسید حذف نان. DAVID J. مالان: حذف نان. به طور مشابه موجز. با تشکر از شما. 

[تشویق حضار] DAVID J. مالان: که در آن است؟ OK، بنابراین گام دو در جریان است به حذف نان. خوب، کسی که می خواهید به ارسال ما یک جمله دیگر؟ شخص دیگری؟ کمی بیشتر [نامفهوم]. نه، هیچ چیز در حال حاضر. بله؟ 

رسید محل دو برش در کنار یکدیگر. 

DAVID J. مالان: محل دو برش در کنار یکدیگر. 

[رسید خنده] 

DAVID J. مالان: محل دو برش در کنار یکدیگر. مرحله چهار. بله؟ 

رسید را خود دست و آن را به آرامی در بالای درب، کره بادام زمینی. 

[رسید خنده] رسید [نامفهوم] در کنار کره بادام زمینی. DAVID J. مالان: چه؟ دوباره بگو. 

رسید باز کردن درب قرار داده و آن را به آرامی در کنار کره بادام زمینی. 

DAVID J. مالان: به آرامی آن را در کنار کره بادام زمینی. OK، پیشرفت. گام پنج. عالی. بله؟ 

بلند کردن چاقو. DAVID J. مالان: انتخاب کنید تا چاقو. OK، گام شش. آره؟ 

رسید نگه چاقو توسط اداره کند. DAVID J. مالان: نگه دارید چاقو های دسته. نگه چاقو توسط اداره کند. مرحله هفت. بله؟ 

رسید چاقو [نامفهوم] در بادام زمینی کره و به عنوان کمی از [نامفهوم]. 

DAVID J. مالان: چاقو قرار in-- I شنیده "چاقو را در کره بادام زمینی و به عنوان کمی به عنوان امکان پذیر است. " به هر حال، حذف کاغذ برای اولین بار. همه حق است، گام به گام نه. گام نه. گام نه. ما در واقع ساخته شده است یک ساندویچ است. بله؟ رسید با استفاده از چاقو در کره بادام زمینی، درخواست کره بادام زمینی روی نان گفت. 

DAVID J. مالان: با استفاده از چاقو در کره بادام زمینی، کره بادام زمینی در اعمال گفت: نان. 

[رسید خنده] DAVID J. مالان: تمام گام راست 10. مرحله 10. بله؟ 

رسید طعم بادام زمینی کره برای اطمینان از کیفیت. 

[رسید خنده] DAVID J. مالان: مرحله 11. مرحله 11. مرحله 11. بیا. آره؟ راست وجود دارد. 

رسید با دقت انتخاب کنید تا ژله. 

DAVID J. مالان: با دقت انتخاب کنید تا ژله. OK و سپس دست دیگر بود. راست پشت سر شما. آره، به رنگ آبی. 

رسید تمامی حقوق، حذف درب از [نامفهوم]، آره، حذف درب از ژله. 

[رسید خنده] 

DAVID J. مالان: از ژله. ها ها. 

[رسید خنده] DAVID J. مالان: و؟ رسید و به سختی رفت و برگشت هر [نامفهوم]. [رسید خنده] رسید البته، قبل از [نامفهوم]، حذف کاغذ از ژله. DAVID J. مالان: حذف کاغذ از ژله. مرحله 14. ما تقریبا وجود دارد. بله؟ 

رسید برعکس بطری ژله قبل از همه چیز می افتد خارج. 

DAVID J. مالان: برعکس ژله بطری قبل از ژله می افتد خارج. مرحله 15. 

رسید به جای کلاه. 

DAVID J. مالان: به جای کلاه. مرحله 16. آره؟ 

رسید [نامفهوم] DAVID J. مالان: دوباره بگو. رسید را کلاه کردن ژله خود را. DAVID J. مالان: فعال ژله خود را. بنابراین really-- اوه. بیا. به جای کلاه. قرار cap-- شما گفت: حذف درپوش ژله. احساس ما در یک بیت از یک حلقه است. مرحله 17. بله؟ 

رسید [نامفهوم] DAVID J. مالان: دوباره بگو. رسید [نامفهوم] DAVID J. مالان: بازگشت به step-- رسید [نامفهوم] DAVID J. مالان: حذف کلاه از کره بادام زمینی. بله؟ 

رسید رها کردن همه ژله روی نان. 

DAVID J. مالان: قطره همه ژله روی نان. DAVID J. مالان: ما تقریبا وجود دارد. مرحله 19. 

رسید حذف ژله اضافی می باشد. 

DAVID J. مالان: سلام، ژله. 

[تشویق حضار] DAVID J. مالان: چرا we-- نمی یک گام دیگر را به این خانه. یک قدم دیگر و پس از آن ما ساندویچ خدمت می کنم. بله؟ 

رسید [نامفهوم] 

DAVID J. مالان: در حالی که هر ساندویچ تورفتگی اجازه remains-- در this-- خوردن. 

[رسید خنده] 

DAVID J. مالان: خوب، با تشکر از شما به داوطلبان ما در اینجا. 

[تشویق حضار} 

DAVID J. مالان: در حال حاضر برخی از خوبی فراق هدیه برای هر یک از شما. خود کره بادام زمینی، ژله شما، و نان را به بازگشت به خانه. با تشکر از شما. 

KIERSTEN: با تشکر از شما. DAVID J. مالان: [نامفهوم] خوش آمدید. [تشویق حضار] DAVID J. مالان: بنابراین، این است که، از البته، یک مثال مسخره است. درست است؟ اما آن نوع نشان می دهد که چگونه ما انسان فقط وضوح را برای مسلم. و این واقعیت من بوده است صحبت کردن با انسان دیگر، او فقط می داند منظور شما چیست. 

کامپیوتر نمی می دانم منظور شما چیست، حتی زمانی که با استفاده از، به عنوان ما در مورد به انجام امروز هستید، برنامه نویسی چیزی در ابتدا، کشیدن و رها کردن، زبان پازل سبک قطعه. حتی برای جوان طراحی کودکان، شما باید به طوری صریح و غیره تحت اللفظی با آنچه شما می خواهید برنامه خود را به انجام. در حال حاضر در نهایت، ما رفتن به برنامه نویسی در کد شبه، انگلیسی مانند نحو، اما کد و یا، به درستی بیشتر، کد منبع. کد منبع تنها راه فانتزی برای توصیف کد شما در واقع ارسال با یک صفحه کلید است که به زبان انگلیسی در هر سه نیست. این در C و یا جاوا یا C + + یا چیزی است مانند آن، که ما به زودی خواهید دید. 

و در واقع، فقط برای ترساندن تعداد کمی از شما، در نگاه اول، این یک برنامه نوشته شده به یک زبان است به نام C. اما به غیر ترساندن چند نفر از شما، شما به طور کامل خواهد شد درک چه خبر است در آمده دوشنبه آینده زمانی که آن را می آید به چیزی شبیه به این. صادقانه بگویم، این یک زبان قدیمی تر است. این نسبتا محرمانه، اما این نماینده از بسیاری از زبان های این روزها که تعداد زیادی از پرانتز و مجعد پرانتز و علامت نقل قول و نقطه. و بسیاری از این مسائل نحوی است که نمی در تمام فکری جالب. در واقع، آن را یک انحراف مطلق است از ایده های بسیار ساده که به ما خیره در صورت می شود. این برنامه، به عنوان ممکن است شما فقط حدس می زنم، چاپ به روی صفحه نمایش کامپیوتر شخصی کلمات "خوش کاما جهان است." که در آن است. بنابراین به وضوح، وجود دارد بسیاری از چیزهایی که گرفتن در راه برخی از گویایی وجود دارد، اما آن را به به سرعت لغزش دور و به طور کامل بصری باشد. 

در واقع، آنچه که ما قصد داریم برای انجام امروز تقطیر این نسبتا پیچیده به دنبال برنامه، که دوباره شما آمده به درک به سرعت، اما به چیزی بسیار ساده تر. اجازه دهید فقط می گویند منظور ما. اجازه دهید تصویری از آنچه منظور ما از قرعه کشی، از طریق این قطعات پازل است. 

این یک برنامه است زبان شناخته شده به عنوان خراش. این توسط آزمایشگاه رسانه ای MIT توسعه یافت. و از آنچه شما را در مشکل تنظیم صفر، که منتشر خواهد شد بعد از امشب، ما باید شما را به این صفحه بروید URL اینجا scratch.mit.edu. و آنها را به یک وب رابط مبتنی بر طریق که شما اولین برنامه خود را بنویسید. و یا کسانی که از شما با قبل تجربه، برنامه دوم خود را، اما در محیطی که احتمالا کمی نا آشنا و شما فشار برای ایجاد چیزی با استفاده از این محیط بسیار بصری. 

در حال حاضر، آنچه من قصد دارم برای انجام در اینجا است باز کردن خود برنامه. این وجود دارد نه تنها به عنوان مرورگر وب، بلکه به عنوان یک برنامه قابل دانلود به طوری که شما می توانید از آن استفاده کنید اگر شما دسترسی به اینترنت ندارد. و من قصد دارم برای انجام این کار در اینجا، در سندرز، فقط در مورد Wi-Fi را نمی همکاری فوق العاده است. و چیزی که من قصد دارم به انجام است از چند ویژگی های این برنامه است. بنابراین، روشن، من فقط دو آیکون بر روی دسکتاپ من کلیک، یا به طور برابر از دست رفته به scratch.mit.edu، و آن را کشیده تا این پنجره. این یک محیط برنامه نویسی است. این یک قطعه از نرم افزار است که برخی از دوستان ما در MIT نوشته است که اجازه دهید ما و شما ارسال برنامه در یک زبان به نام خش. 

در حال حاضر این اتفاق می افتد که گربه که همچنین به نام خراش و این جهان او را که او در آن زندگی می کند. در این مرحله است، پس به صحبت می کنند، که مستطیل در گوشه بالا دست چپ. و او را ندارد به مانند یک گربه نگاه کنید. شما می توانید او را نگاه مثل هر چیز و شما می تواند بسیاری از جمله جن داشته باشد، و یا حرف، در یک برنامه است. در همین حال، در اینجا در دور سمت راست، یک تخته سنگ بزرگ خالی است. و این است که در آن، در یک لحظه، ما می رویم به شروع برنامه نویسی با کشیدن و رها این پازل های گرافیکی قطعه که سمت راست می باشد اینجا در وسط. و این راه بیشتر از آنها از وجود دارد ما هم در اینجا در کلاس صرف دلیل این که شما در خواهید یافت که همه آنها نسبتا حسی است. باز هم، آن طراحی شده برای کودکان است، اما ما استفاده از آن را به کسی را دست انداختن از هم جدا برخی از این ایده های اساسی از متغیرها، حلقه ها، شرایط و، به زودی، همه چیز مانند توابع و حوادث و موضوعات و دیگر چیزهای فانتزی ما به قبل از بلند به واقع ایجاد چیزی از ابتدا. جناس در نظر گرفته شده. 

در حال حاضر، آنچه من قصد دارم برای انجام در اینجا است با کلیک بر روی حرکت نیست، اما کنترل. و این فقط یک دسته بندی here-- و من مختلف رنگ بلوک را تنظیم کنید. اما متوجه چند کلمه آشنا. "اگر" و "اگر دیگری" و "تکرار کنید." و شما احتمالا می توانید حدس بزنید که یادآور شاخه، و یا شرایط ما را دیدم، و حتی ساختار حلقه. بنابراین ما باید بلوک های مشابه در اینجا. اما جالب ترین یکی این یکی در اینجا است. هنگامی که این پرچم سبز کلیک، این، برای کسانی که با برنامه ریزی قبل تجربه، معادل است به یک تابع اصلی. اما برای کسانی که آشنا نیستند، این قطعه پازل است که پا زدن شروع خواهد شد تمام برنامه های ما است. این به معنای واقعی کلمه به معنی زمانی که من به، در این برنامه و یک کلیک کنید flag-- سبز که شما می توانید در اینجا در مراجعه کنید تا بالا گوشه سمت چپ از UI، تا پرچم سبز را ببینید در کنار علامت توقف به رنگ قرمز؟ کلیک که میکنم که، من برنامه میخواهد را اجرا کنید. در حال حاضر، من قصد دارم برای انجام کاری فوق العاده ساده با خراش. من قصد دارم به جلو بروید و رفتن به پنل به نظر می رسد اینجا، جایی که من یک دسته از قطعات پازل بنفش، و من قصد دارم به جلو بروید و انجام چیزی فوق العاده ساده مانند، می گویند. و توجه then-- این متن را در جعبه سفید است editable-- من قصد دارم برای گفتن "سلام جهان"، فقط ما دوست داریم در آن متنی بود نسخه یک لحظه پیش. و در حال حاضر اگر من بروید و کلیک کنید این پرچم سبز، من در حال حاضر برنامه ریزی شده. این به خصوص نمی برنامه جالب، اما من به کامپیوتر انجام کاری. من یک برنامه آغاز شده و آن را آنچه من گفته آن را به انجام. در حال حاضر، من می تواند همچنان به کشیدن و رها کردن بیشتر و بیشتر از این قطعات پازل و آنها در حال رفتن به هم بافتن، اما اجازه دهید کف دست زدن برخی از اصطلاحات در اینجا که خواهیم دید در محدوده زمانی معین در طول دوره، و واقعا در طول علوم کامپیوتر و برنامه نویسی به طور کلی. 

این "می گویند" بلوک، بنفش، اجازه دهید فقط شروع به تماس بیانیه ای. آن را مانند یک بیانیه ای از حقیقت است. این کار را. بنابراین، آن دسته از است دستورالعمل که شما ممکن است یک کامپیوتر به عنوان بخشی تغذیه از یک برنامه یا یک الگوریتم. و به روشن باشد، شما احتمالا برای داده گرفته شده که شما باید برنامه را در کامپیوتر خود. و آنها نوع الگوریتم است، اما برنامه واقعا یک دسته از الگوریتم که برخی از انسان نوشت. آنها آن را بسته بندی کردن و آنها آن را به فروش می رسد، بنابراین شما، و یا آنها را در وب سایت نوشته شده را برای شما به دانلود کنید. بنابراین، یک برنامه فقط یک تمام دسته از صفر و آنهایی که که، به نوعی، انسان ایجاد می شود. و آن الگوهای صفر و آنهایی که نشان دهنده همه چیز در نهایت، مانند "سلام جهان" و یا "بازی این موسیقی "و یا" بازی این فیلم " و یا "ارسال ایمیل." اما ما پشت در می آیند جزئیات راه بیشتر چه یک برنامه است که شما، خود، آنها را ارسال. 

در اینجا statement-- دیگر است "صبر کن برای یک ثانیه." من از این استفاده نشده است، اما اگر من می خواهم برنامه من را به توقف برای یک لحظه برای انجام کاری، من می توانم آن را به انجام این کار. صبر کنید یک ثانیه. در حال حاضر یکی دیگر ممکن است "بازی صدا." بنابراین، این منحصر به فرد است به ناخن خراش، آن است که توانایی بازی برای تلفن های موبایل. بنابراین، بیانیه ای من ممکن است استفاده است، در اینجا، "بازی صدا." در همین حال، عبارت بولی، بنابراین این یک کلمه خیال باف است پس از فقط یک پسر به نام آقای بولی به نام، و این است همه چیز در مورد یک سوال. درست یا false-- ماوس به طرف پایین است؟ عبارت بولی است فقط برخی بیان به زبان انگلیسی که درست یا نادرست. در هر صورت روشن یا خاموش. در هر دو صورت یک یا صفر است. شما می توانید از آن فکر می کنم در هر تعداد از راه، اما آن را درست یا این نادرست است، در نهایت. پس "ماوس را پایین علامت سوال،" که می تواند یک عبارت بولی باشد. و شما می توانید از دیگران شاید فکر می کنم،. به عنوان مثال، "تعداد باقی مانده است کمتر از تعداد درست است؟ " این، بیش از حد، خواهد بود عبارت بولی باشد. "کمتر از" یک عبارت بولی باشد. 

این یکی، بیش از حد، "اشاره گر ماوس لمس کردن." من مطمئن هستم که چرا آنها اشاره گر ماوس آن را به نام. این فقط بدان معناست، که مکان نما است، فلش بر روی صفحه نمایش، دست زدن به گربه، به عنوان مثال. و یا برخی از جنبه های دیگر از روی صفحه نمایش. و قرار است که، دوباره، و که نشان دهنده یک عبارت بولی باشد. چیزی که شما ممکن است می خواهید استفاده کنید در یک وضعیت. بنابراین ما به که در یک لحظه است. شما می توانید "و" همه چیز با هم. بنابراین، اگر شما می خواهید در صورتی که این برای بررسی مورد است و که باشد، شما می توانید یک "و" بلوک شبیه به این استفاده کنید. و در اینجا است که شرایط است. توجه به شکل باز کمی در بالای این قطعه پازل زرد، آن را یادآور شکل که ما فقط یک لحظه قبل دیدم. هر کدام از این عبارات بولی که این لبه ها اشاره کرد در سمت چپ و راست. و این به دلیل مردمی MIT تصمیم که با اشکال بصری انتقال، شما می توانید نوع کمک به مردم، دانش آموزان و کودکان به طور یکسان، به نوع در جاهای خالی را پر کنید به معنای واقعی کلمه. 

حالا که puzzle-- که باز است که کمی کوچک، و به عنوان ما در این برنامه را مشاهده کنید، در ابتدا، آن را رشد خواهد کرد و به جا. این شکل آن در نهایت حفظ،. بنابراین یک شرط اجازه دهید شما تصمیم می گیرید "باید بکنم چیزی یا نه؟" عبارت بولی سوال واقعی است شما با استفاده از برای تصمیم گیری را به من سمت چپ OR به سمت راست بروید I وقتی که من این روبرو می شوند به اصطلاح چنگال را در جاده؟ شما می توانید دو شاخه داشته باشد. IF چیزی درست است، انجام این، چیز دیگری به آن راه، و یا شما فقط می توانید انجام هیچ چیز در همه، به عنوان این بلوک ذکر شده است. به طور مشابه، ما می توانیم لانه این چیزها. بنابراین اگر شما می خواهید به سه برابر چنگال در جاده، یا این یا این یا آن را انجام دهد، شما می توانید فقط به لانه این چیزها با هم. و آن شروع می شود به کمی زشت، در نهایت، برای اطمینان، اما منطق است که هنوز هم همان. شما به معنای واقعی کلمه می تواند به عنوان خوانده شده این بالا به پایین و آن را می گوید آنچه در آن اگر این means-- درست است، انجام این کار، اگر دیگری دیگری. 

حلقه نمی شود در ابتدا ساده تر. برای همیشه لطفا برای انجام به شرح زیر است. حالا شما ممکن است به شما فکر نمی کنم می تواند بسیار کار را به دلیل وجود ندارد فضای زیادی بین بالا و پایین این باز قطعه پازل. اما شما خواهید دید خراش در حال رفتن به رشد به جا به عنوان بسیاری از قطعات پازل که شما می خواهید خودرا برای امتحان اماده در آن وجود دارد. حلقه دیگر ممکن است بیان با تکرار. اگر شما در پیشبرد دانم، "I می خواهید برای انجام کاری 10 بار، " شما فقط می توانید ابتدا بگویید برای انجام کاری 10 بار. و، در عین حال، ما می توانیم متغیر است. بنابراین در اینجا یک خودسرانه است، آن را به رنگ نارنجی در این مورد، و این تور گردباد است. باز هم، شما در خواهید یافت این بسیار در دسترس هنگامی که شما شروع به اشاره و کلیک کردن. I متغیر n من به نام ام، اما من می تواند آن را به نام هر چیزی من می خواهم، و من آن را تنظیم اینجا، در این مثال خودسرانه، به صفر. 

در حال حاضر از دیدن یک برنامه مثل سلام جهان است که همه قانع کننده نیست، پس بیایید در واقع باز کردن چیزی که یک دانش آموز سابق ساخته شده است. اجازه بدهید من به جلو و باز کردن، به عنوان مثال، این یکی در اینجا، که من خیلی دوست دارم به داوطلب. خوب، چگونه about-- اجازه دهید فراتر رود. بله، در آمده است. نام شما چیست؟ 

ابی: ابی. DAVID J. مالان: ابی، در آمده است. بنابراین شما تا به حال بازی این بازی قبل از؟ ابی: شماره DAVID J. مالان: خوب. دیوید، ملاقات با شما خوشبختم. بیا بر روی بیش از. و چه برنامه نویسی خود است پس زمینه، در صورت وجود. 

ابی: من مقداری C + + را یاد گرفت. DAVID J. مالان: شما برخی از C + + را یاد گرفت. و چه بازی خود را است بازی پس زمینه؟ 

ابی: نه زیاد. DAVID J. مالان: OK، بنابراین ما می گیرم که. بنابراین در اینجا نحوه بازی در حال رفتن به کار می کنند. من قصد دارم به جلو بروید و با کلیک بر روی پرچم سبز، که است تا در اینجا در بالا سمت راست. در حال حاضر سلف خود را در کلاس به شما برخی از دستورالعمل در اینجا داده شده است. و در یک لحظه آن، می گوید: "فضا آغاز خواهد شد." پس پیش بروید و ضربه فاصله. 

GAME COMPUTER: PIKACHU. DAVID J. مالان: و هدف این است که به گرفتن مواد غذایی، به عنوان وجود دارد به تصویر کشیده در سمت چپ. و به [نامفهوم] 

[GAME MUSIC پخش] 

DAVID J. مالان: آه، خوب، با تشکر از شما برای بازی. ما در اینجا کمی فراق هدیه برای شما. ما CS50 توپ استرس، اگر شما می خواهم که انتخاب کنید. خوب، خوب به شما را تامین کند. با تشکر از شما برای آینده و به چالش کشیدن. بنابراین ما باید توپ های استرس بیشتر، بنابراین بگذارید یک مثال بیشتر به ایجاد انگیزه. یک داوطلب؟ خوب، چگونه در مورد حق در اینجا در مقابل. نام شما چیست؟ 

فیلیپ: فیلیپ. 

DAVID J. مالان: فیلیپ. بیا تا، فیلیپ. بنابراین، فیلیپ در حال رفتن به چالش با یکی دیگر از بازی که یکی از پیشینیان خود نوشت به عنوان بخشی از مشکل تنظیم صفر، به نام سخت ترین بازی لیگ آیوی. و ما را در فقط یک را مشاهده کنید لحظه ای آنچه در این بنا شده است. فیلیپ، ملاقات با شما خوشبختم. پس زمینه شما چیست؟ فیلیپ: انجام بسیاری از برنامه نویسی. انجام بازی های کوچک، بیش از حد. 

DAVID J. مالان: OK. کردم بسیاری از بازی، بیش از حد. و شما را با بازی این بازی قبل از؟ 

فیلیپ: بدون DAVID J. مالان: همه درست است، بنابراین در اینجا ما بروید. من قصد دارم به جلو بروید و با کلیک بر روی پرچم سبز. 

[GAME MUSIC] 

[MUSIC MC HAMMER، "U می NOT لمس این"] 

فیلیپ: [نامفهوم] DAVID J. مالان: [نامفهوم] فیلیپ: [نامفهوم] [خنده] [MUSIC MC HAMMER، "U می NOT لمس این"] DAVID J. مالان: [نامفهوم] شخم زدن از طریق آن. فیلیپ: [نامفهوم] DAVID J. مالان: برو جلو. [MUSIC MC HAMMER، "U می NOT لمس این"] DAVID J. مالان: خوب. تبریک می گویم. 

[تشویق حضار] 

DAVID J. مالان: ما خواهد شد پست که آنلاین بعد تا که شما می توانید بدفع الو قت گذراندن با آن نیز هست. پرینستون می آید تا بعد، پس از آن. 

پس به واقع ادامه از ابتدا شروع، پس به صحبت می کنند، و در واقع ساخت تا ما می توانیم کسی را دست انداختن از هم جدا برخی از این ایده ها و به چیزی حتی پیچیده تر تا پایان. من قصد دارم به اینجا و من قصد دارم به جلو بروید و ایجاد یک فایل جدید است. پس دوباره، مجموعه ای از مشکلات راه رفتن شما را از طریق برخی از این مراحل. اما، همه من بود به منوی فایل و I گفت: "جدید،" بسیار شبیه به مایکروسافت ورد، و یا هر برنامه که می خواهم. 

و اجازه دهید پیش بروید now-- و ما اجرا "سلام جهان" یک لحظه پیش، اما اجازه دهید انجام کاری cuter کم است. من قصد دارم به رفتن به حوادث. و من قصد دارم به انجام "زمانی که پرچم سبز کلیک. " و پس از آن من قصد دارم برای استفاده، باید به ما می گویند، یک شاخه. من می خواهم به استفاده از یک "اگر" وضعیت. و توجه کنید که چگونه به محض این که من نزدیک به آن، آن را می خواهد به ضربه محکم و ناگهانی با هم. بنابراین من اجازه رفتن و جرقه میزند با هم. و در حال حاضر من می توانم چیزی جالب را انجام دهید. اگر من را از طریق اینجا رفته، من قصد دارم برای دیدن یک دسته کامل از بلوک. اگر من به "داده" - به من اجازه زوم in-- چیزی در مورد متغیر است وجود دارد. اگر من به "حرکت" شما می توانید ظاهرا همه چیز در اطراف تبدیل شود. اگر من به "اپراتور" بروید - آه، این جالب است، من می توانم یک عدد تصادفی انتخاب کنید. بنابراین، اجازه دهید انجام کاری با تنها برخی از احتمال، فقط به خاطر. من قصد دارم به جلو بروید و کشیدن این قطعه پازل، این است که کمتر از بلوک، بنابراین آن را فقط "است که از این تعداد کمتر از آن یکی؟" اما من یک کد سخت می خواهم یک عدد است چرا که کاملا بی معنی است. من می خواهم به کشیدن این قطعه در اینجا، و توجه کنید که چگونه آن جرقه بزند در، و در حال حاضر اجازه دهید من به جلو و می گویند: "اگر تعداد که به طور تصادفی انتخاب کمتر از شش، آیا زیر است. " حالا چرا کمتر از شش؟ چه احتمال است که از این به طور موثر به من بدهد، فقط به طور مستقیم؟ حدود 50 درصد، درست است؟ اگر شماره ای که به طور تصادفی حدس می زنم بین 1 و 10 کمتر از شش است، به وضوح آن را یک، دو، سه، چهار، یا پنج. و به طوری که به من می دهد 50٪ احتمال از آنچه اتفاق می افتد؟ 

خوب اجازه دهید چیزی شبیه به انجام این "بازی صدای گربه صدا." و توجه دوباره، قطعه پازل رشد می کند به جا، تا زمانی که اشکال مطابقت دارند. این چیزی است که مهم است. اجازه بدهید بیش از رفتن به ابتدا اینجا کلیک کنید و "بازی." هیچ چیز اتفاق می افتد. آیا این یک اشکال؟ نه، لازم نیست. این فقط می تواند که یک تعداد بزرگتر انتخاب شد. بنابراین اجازه دهید دوباره آن را انجام دهد. هیچ چیز. 

[صدای گربه] DAVID J. مالان: وجود آن است. [صدای گربه] DAVID J. مالان: باز هم. شماره 

[MEOWING] DAVID J. مالان: بنابراین اگر شما در تا به حال بازی یک بازی، البته، که در آن چیزهایی می شود به صورت تصادفی اتفاق می افتد، مثل بچه ها بد می آیند یا نه در آمدن به روی صفحه نمایش، و یا همه چیز در حال سقوط و یا سقوط نیست، که فقط به خاطر اینکه چیزی فوق العاده ساده مثل این اتفاق می افتد. انتخاب یک عدد تصادفی، و اگر آن را کمتر از برخی از ارزش، شاید انجام این کار و یا شاید انجام این کار. ما می توانیم ترکیب که به یک شرط. اجازه دهید به چیزی متفاوت انجام دهد. 

به من اجازه دهید که به دور پرتاب. شما می توانید از مسائل توسط شر فقط آن را با کشیدن به سمت چپ و رفتی. اجازه بدهید من به جلو و انجام یک بلوک برای همیشه و به سرعت انجام کاری آزار دهنده است. اجازه بدهید من به جلو و می گویند: "بازی صدای گربه صدا." اما من نمی خواهم این را بیش از حد آزار دهنده است، بنابراین به من اجازه گرفتن این بلوک، "صبر دوم،" و اطلاع هیچ فضای بیشتری برای آن وجود دارد. اما اگر شما به اندازه کافی نزدیک، آن را می خواهد برای رفتن وجود دارد. بنابراین من اجازه دهید بروید و آن را رشد برای پر کردن بلوک. بنابراین در حال حاضر، این حلقه است. [MEOWING] DAVID J. مالان: من به معنای واقعی کلمه انجام این کار برای همیشه. دوباره و دوباره. است که فقط صدایی طبیعی نیست. اجازه بدهید من به جلو و تغییر این نه دوم، به دو ثانیه و آمار را وارد کنید. و چه خوب است در مورد خراش است که شما می توانید تعاملی برنامه ریزی کنید. ایجاد یک تغییر، شاید آمار را وارد کنید و یا بازی دوباره، و آن را فقط به رفتن ادامه دهید. خوب، اکنون چرا ما نه انجام چیزی cuter کمی؟ به جای همه چیز را از ابتدا، اجازه دهید من به جلو و باز کردن پیش ساخته شده یکی، که من از قبل پخته شده، به نام "پت گربه." و ما همه از ارسال این فایل ها به صورت آنلاین، و مشکل تنظیم صفر به شما خواهد گفت چگونه به آنها دسترسی داشته باشید و باز کردن آنها را. و توجه، این است که خیلی ساده است. اما در پیش، من به نظر می رسد برداشت کرده اند "برای همیشه" بلوک، بنابراین من یک حلقه دارم. و پس از آن من "اگر" شرط دارم. من یک عبارت بولی کردم. 

پس به زبان انگلیسی، فقط نگاه این، به خصوص اگر شما هرگز قبل از برنامه ریزی، فقط به طور مستقیم، آنچه که این را به انجام، این برنامه؟ 

[رسید CHATTER] 

DAVID J. مالان: اگر شما گربه حیوان خانگی، گربه در حال رفتن به صدای گربه، درست است؟ از آنجا که "برای همیشه با برداشتن علامت" است اشاره گر ماوس را دست زدن به گربه. بنابراین به روشنی، و من می گویند نیست قبل از این، همه این پازل قطعات و اسکریپت است که ما آنها را به ترکیب، به تعبیری، یک اسکریپت مترادف با است برنامه، واقعا، متعلق به این گربه. و دلیل is-- به دلیل توجه چگونه این گربه در اینجا همان هایلایت شده است، در اینجا شما می توانید ایجاد گربه دوم یا سگ یا واقعا هر چیزی که شما می خواهید گرافیکی. شما می توانید چیزی واردات از فتوشاپ، و یا مانند آن، و یکپارچه سازی چیزی اگر شما می خواهید آن را برای یک پروژه می باشد. و از آنچه شما را پیدا کنید، در نهایت، این است که شما می توانید اسکریپت اضافه کردن، اضافه کردن پازل قطعات، به شخصیت فردی است. پس این همه متعلق به این گربه خاص است. بنابراین در حال حاضر اگر من به جلو و بازی این برنامه، هیچ چیز اتفاق می افتد. اما آن در حال اجرا است. این برنامه در این حلقه برای همیشه، نوع انتظار آنچه که اتفاق می افتد؟ 

[رسید CHATTER] 

DAVID J. مالان: برای حیوان خانگی گربه. بنابراین اگر I موس من حرکت به سوی him-- 

[MEOWING] 

DAVID J. مالان: بنابراین در حال حاضر من نوازش گربه. در همین حال، ما می توانیم یک شاخه دو داشته باشد. اجازه بدهید من به جلو و باز کردن تا از گربه حیوان خانگی نیست. ما این آنلاین و همچنین ارسال. این یک کمی بیشتر پیچیده، اما بدون گفتن شما می توانید شاید حدس می زنم چه اتفاقی خواهد افتاد. 

[MEOWING] 

DAVID J. مالان: گربه است meowing، زمان بزرگ قدیمی. اما این برنامه است البته به نام "آیا گربه حیوان خانگی نیست،" به وضوح، من می خواهم به حیوان خانگی گربه. 

[ROARING] 

DAVID J. مالان: آیا گربه حیوان خانگی نیست. در حال حاضر، اجازه دهید یک نگاه در یک مثال دیگر در اینجا. این یکی نامیده خواهد شد "سلام، سلام، سلام،" به دلایل که روشن خواهد شد، چرا که به محض من این thing-- اجرا 

[SEAL پارس] DAVID J. مالان: بسیار آسان برای ارسال برنامه های خش آزار دهنده است. [SEAL پارس] DAVID J. مالان: در حال حاضر ما نمی خواهد به جزئیات بزرگ با همه این، اما متوجه است که وجود دارد زن و شوهر از ویژگی های جدید است. یک متغیر، نام "خاموش" و پس از آن یک دسته از شرایط وجود دارد. و در حال حاضر، اجازه دهید من فقط شما کسی را دست انداختن با گفتن که اگر این پسر می شود بیش از حد مزاحم، من می توانم فاصله ضربه و او متوقف می شود. از آنجا که نقش که توسط بازی این دو اسکریپت ها به شرح زیر است. یکی از آنها در حال انجام پارس هر چند ثانیه صورت گرفت. یکی دیگر این است که فقط در حال انتظار برای من ضربه فاصله. و اگر من ضربه فاصله، آن را تغییر دولت از این متغیر، ارزش از این متغیر، که ظاهرا به نام "خاموش" من تماس بگیرید آن چیزی است که خسته کننده مانند نفر، من آن را به نام یک کلمه انگلیسی، "خاموش." از 1 به 0 یا 0 را به 1. درست از نادرست یا نادرست به درست است. و به این ترتیب شما در واقع می تواند در حال حاضر، که شما می تواند دو اسکریپت ها داشته باشد، دو برنامه های در حال اجرا به طور همزمان، و هر دو از آنها ممکن است نشسته در یک حلقه انجام کاری. در حال انتظار برای انسان به انجام چیزی شبیه به هدف قرار دادن فاصله. [SEAL پارس] DAVID J. مالان: و در حال حاضر او در راه او را دوباره. [SEAL پارس] DAVID J. مالان: پس چه چیز دیگری ممکن است ما با این نمونه ها انجام دهید؟ خوب، اجازه دهید پیش بروید و انجام به عنوان مثال با شمارش گوسفند. ما این امتداد خطوط اینجا ادامه of-- اجازه دهید باز کردن مثال گوسفند. و توجه کنید، بسیار شبیه به قبل، این یکی، خوشبختانه، یک کمی کمتر آزار دهنده است. هنگامی که من ضربه بازی here-- اوه نه، این آزار دهنده است. او در حال رفتن به بع بع با برخی از احتمال. اجازه دهید این بازی دوباره. 

[گوسفند BLEETING] DAVID J. مالان: تنها تفاوت این است ما صحنه و لباس تغییر کرده است، پس به صحبت می کنند، و ما نصف و می گویند آنچه که تعداد واقعی است. خب اجازه دهید به پیش بروید و این یک قدم بیشتر. و اجازه دهید به شما با کسی را دست انداختن یکی از ویژگی های دیگر در اینجا. اجازه دهید به پیش بروید و باز کردن یک برنامه به نام موضوع. بنابراین بسیار شبیه شما می توانید یکی جن، داشتن اسکریپت های مختلف، شما می توانید دو جن، یک پرنده در دارند یک گربه، با داشتن هر یک اسکریپت خود را دارند. و هر یک از آنها می تواند عمل به طور همزمان. اگر شما تا به حال شنیده ام کلمه "multithreading" یک کامپیوتر "چند" به معنای است می تواند چیزهای متعدد در یک بار انجام دهید، و، در واقع، این کار می تواند با ناخن خراش. 

و در حال حاضر متوجه پرنده است نوع گنگ. این فقط انجام کارها به صورت تصادفی، قوی کردن صفحه نمایش. واضح است که گربه تا به برنامه ریزی شده است به نوع قابلیت به دنبال به خانه در پرنده به دلیل او همیشه به او اشاره. تا در نهایت، او جلب پرنده واقعی. بنابراین من نمی خواهد در جزئیات ساکن در اینجا، اما شما می توانید نوع نگاهی اجمالی به شکل همان، برخی از "اگر" شرایط، برخی از متغیرها، شاید برخی از حلقه ها هستند، در نهایت انجام همین کار. 

حالا اجازه دهید من به جلو و باز کردن تا چیز دیگری در دسترس نباشد، به کسی را دست انداختن بعضی از شما، به خصوص آن راحت تر، آنچه شما در واقع می تواند با انجام این کار. من قصد دارم به جلو بروید و باز کردن دکمه در اینجا. و این فوق العاده است برنامه ساده ظاهری، اما مراقب چه اتفاقی می افتد هنگامی که I-- سازمان دیده بان چه اتفاق می افتد زمانی که من باز این نسخه از آن، در اینجا در مرورگر، scratch.mit.edu. و وقتی که من این قرمز بزرگ کلیک کنید را فشار دهید، متوجه چه اتفاقی می افتد. پس چه خبر است اینجا؟ در واقع وجود دارد پیچیدگی بسیار بیشتری در رفتن در زیر هود، حتی اگر من اجرا کردم این، یا رک و پوست کنده، دن برادلی این تا به سادگی اجرا شده است. او طراحی کرده است یک پازل خراش های سفارشی قطعه، شناخته شده به عنوان فرمت خراش، او آن را تعویض نامیده می شود. 

و آنچه آمار انجام می دهد آن را می فرستد یک پیام از طریق اینترنت. و این پیام به خودی خود به نظر می رسد کمی مرموز. اما این، بیش از حد، شما درک پایان مدت است. پیام او در واقع ارسال به نظر می رسد چیزی کمی شبیه به این. این فقط متن است. مرموز. شما آن را در زمان درک ما مشکل تنظیم هفت. این فقط با ارسال یک پیام متنی از طریق اینترنت به سرور. و این سرور می باشد، در نهایت، صحبت کردن در این لامپ، که یکی از کسانی که لامپ های فانتزی در آن است که، به خودی خود، مشغول صحبت است به Wi-Fi را در شبکه در اینجا، که در آن یک دستگاه محلی را here-- و، در نهایت، آن را در واقع تبدیل نور و خاموش. اما ما می توانیم بیشتر انجام دهید چیزهای جالب هنوز هم. توجه کنید که چه دن هم برای ما انجام داد. او ساخته شده جن های متعدد، هر یک از است که یک اسکریپت در انتظار یک کلیک. و اگر من قرمز کلیک کنید، آن را به رنگ قرمز می رود. اگر من آبی، آن blueish می رود. سبز، زرد، نارنجی. و همه از این است که توسط اتفاق می افتد رفتن راه را بر روی اینترنت، به پایین در اینجا به لامپ، روشن و خاموش. 

و اگر شما می توانید it-- باور و این است شاید یکی از پیچیده ترین خراش پروژه کسی implemented-- او این کار را کرد، در عدالت، در یک روز. و این چالش ما را انداخت بود به دن زمانی که ما شاهد دارای لامپ های باینری، ما باید ابتدا، چگونه می توان آنها را ترکیب؟ و، در واقع، این کاملا هر کسی چیزی در این اتاق می تواند کار را با end-- ترم آیا او لامپ های باینری reimplemented با استفاده از رابط همان است که بود بر روی iPad در تاریخ چهارشنبه. به طوری که در حال حاضر، اگر من در واقع با کلیک بر روی به علاوه بیش از اینجا، ما یک، دو، سه. من می توانم 16 ضربه و تبدیل آن به یک در. 128، و غیره. 

حال اگر که به تنهایی و دمیده و ذهن شما را، شما می توانید از همه چیز دور در دسترس تر را انجام دهید، شامل هر گونه سخت افزار قطعا نیست. فقط چیزی که بر روی صفحه نمایش خود را. و، در واقع، چیزی است که اکثر دانش آموزان تا پایان انجام برخی از نوع بازی است، برخی از تکه ای از کار هنری، و یا برخی از انواع انیمیشن های تعاملی. و من یکی از گویند ما مورد علاقه های شما بوده است این یکی. و من فکر کردم که ما اگر می تواند چراغ کم نور، ما یک نگاه اجمالی در این نهایی را پروژه خراش در نتیجه گیری. اما آنچه شما باید در ذهن داشته باشیم، به عنوان من می توانم شما را با جزئیات آخرین کسی را دست انداختن، برش هفته آینده آغاز خواهد شد. ساعات کاری هفته آینده آغاز خواهد شد. مجموعه مسائل صفر فرستاده خواهد شد CS50.harvard.edu بعد از امروز. و شما استقبال خواهد در مشکل تنظیم صفر به خود Zamyla چان CS50، که راهنماهای بسیاری از ما تکمیل فرم سفارش. این فیلم ها تعبیه شده است در مجموعه مسائل که دست خود را از طریق تعداد زیادی نگه از مجموعه اولیه بالا و از طریق بسیاری از از تصمیم گیری های طراحی امکان پذیر است. بنابراین تا کنون است که احساسات حال اگر شما در هنگام چیدن یک تکلیف و تعجب، از کجا شروع کنم؟ او خواهد که جواب را برای شما داشته باشد. و در حال حاضر، برنامه نهایی از یکی از پیشینیان خود در پاسخ به این سوال "چه روباه می گویند؟" [MUSIC YLVIS، "چه FOX بگو؟] 

YLVIS: (آواز خواندن) سگ می رود پود. گربه می رود صدای گربه. پرنده می رود صدای جیر جیر و جیر جیر موش می رود. گاو می رود مو. قورباغه صدای کلاغ می رود. و فیل خوش گذرانی می رود. اردک می گویند صدای اردک و ماهی به blub. و مهر و موم می رود جریان جریان جریان، اما یکی صدا است که هیچ کس نمی داند وجود دارد، چه روباه می گویند؟ و 

DAVID J. مالان: که در آن است برای CS50. ما شما را در ببینید پازل روز و در روز دوشنبه. 

[تشویق حضار] 

[MUSIC YLVIS، "چه FOX بگو؟"] 

راوی: و در حال حاضر عمیق افکار، توسط Daven Farnham. امروز من در ضربه کردم با دفترچه تلفن صورت می شود. گیج کننده است، به عنوان من در هستم خانه تماشای آنلاین.