[მუსიკის დაკვრა] -Alright! _ ეს CS50. _ ეს CS50. _ ეს CS50. [MUSIC - IGGY AZALEA, "ლამაზი"] -ჩემი საყვარელი მეხსიერება CS50 იყო, როცა მივედი Puzzle დღე. -Probably უბრალოდ დრო დახარჯული მუშაობს პრობლემა კომპლექტი ჩემს მეგობრებს და ადამიანები, რომლებიც wold საბოლოოდ ჩემი blockmates. -ჩემი საუკეთესო მეხსიერება CS50 არის Hackathon. ანუ CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. ანუ Hackathon -Rob Bowden. უბრალოდ ყველაფერი მის შესახებ. [MUSIC - IGGY AZALEA, "ლამაზი"] -ჩემი საყვარელი მეხსიერება არის, როდესაც მე ვიყავი ეტაპზე და მე ითამაშა პრესტიჟული როლი კვანძი [? უკავშირდება?] [? სიაში. ?] როცა ჩვენ ყველანი უფასო Dropbox სივრცე და დავით იყო, გამოიყურებოდეს ქვეშ თქვენი ადგილი. და თითქოს, სივრცე ყველას! [MUSIC - IGGY AZALEA, "ლამაზი"] -ჩემი რჩევა ნებისმიერი შემომავალი სტუდენტი იქნებოდა იყოს ნამდვილად მუშაობა P-კომპლექტი მეგობარი. -Office საათი არის ძალიან თქვენი მეგობარი. -Make ყველაზე თქვენი გამოცდილება და შეხვდეს როგორც ბევრი ადამიანი, როგორც თქვენ შეგიძლიათ. -Don't შეგეშინდეთ დახმარების თხოვნა. -Start P-კომპლექტი ადრე კვირაში. მე ვფიქრობ, რომ ყველაზე დიდი ის არის, რომ ისარგებლოს ყველა რესურსი რომ CS50 აქვს. -გადავიდეთ საათებში ადრე კვირაში. -Definitely უყუროთ შორტები. -Don't Procrastinate თქვენი P კომპლექტი. -Make დარწმუნებული თქვენ დიდი ჯგუფი ადამიანი მუშაობა P-კომპლექტი. თქვენ შეგიძლიათ ბევრი გართობა და გაწეული მუშაობის ერთად. -Don't შეგეშინდეთ დააყენებს თავს. ტურიზმი Hacker გამოცემა ზოგჯერ. -Write რამ ქაღალდზე ადრე ოდესმე შეხება თქვენს კომპიუტერში. -CS50 მართლაც დიდი at უზრუნველყოფს გზა მიიღოთ დახმარება. -ჩემი ერთი ნაჭერი რჩევა ძილის. აქვს ვინმეს განაცხადა, რომ? ძილის, დარწმუნებული ვარ. ეს ადვილი არ არის ამის გაკეთება, მაგრამ თქვენ მოხვდით, მე ვფიქრობ. მე ვიტყოდი, რომ ნამდვილად უნდა გონებრივად მომზადებული იმიტომ, რომ თქვენ აპირებს მიყვარს ეს. [MUSIC - IGGY AZALEA, "ლამაზი"] _ ეს CS50. _ ეს CS50. _ ეს CS50. [MUSIC - IGGY AZALEA, "ლამაზი"] _ ეს CS50. [ტაში] დევიდ ჯ Malan: ასე რომ, ეს არის CS50 და ეს არის ბოლომდე კვირა 0. და ეს იყო მხოლოდ რამდენიმე ერთი CS50 თანამშრომლები, რომლებიც დაელოდება თქვენ არა მხოლოდ სექციები და საოფისე საათი, მაგრამ, ასევე, ამ მომავალი კვირის ბოლოს at CS50 Puzzle დღე. რომელიც, კიდევ ერთხელ, არ არის ყველაფერი პროგრამირების. რა თქმა უნდა, ეს მოსალოდნელია, რომ თქვენ არ უნდა პროგრამის არაფერს, არამედ პრობლემების მოსაგვარებლად გამოყენებით wits და მეგობრები ერთად თქვენ. ჩვენ შეუერთდებიან ზოგიერთი ჩვენი მეგობარი Facebook-- თუ თქვენ რეგისტრირდებით აქ ვინც ბოლო რამდენიმე წლის განმავლობაში, რეალურად წერა ამ გამოწვევებს ჩვენთან ერთად. და ა.შ., ისინი იქნება ვინც საბოლოოდ გაშვებული Puzzle დღე. ასე რომ, თქვენ იქნება გასაჩივრებული ზუსტად სახის რამ, და პრობლემები, რომელიც ეგ Facebook გვსურს ვიფიქროთ. ისე, რომ ხვალ. დარეგისტრირდეთ cs50.harvard.edu/register. ახლა სიტყვა რამდენიმე თანამშრომელთა კერძოდ. ეს აქ არის ანსელ Duff, რომელიც რეალურად ერთი საქართველოს თანაავტორები ამ ბინარული ბოლქვები, რომ ჩვენ ვნახეთ ოთხშაბათს, გარდა იმისა, რომ CS50 საკუთარი Dan ბრედლი. ანსელ Duff ასევე ყოფილი ახალბედა advisee აფეთქდა 3 წლის წინ და ის რეალურად კი აშენდა ეს lectern. ის წავიდა შესახებ უნდა გააკეთოს საინჟინრო მეცნიერებები და სხვა. ახლა, მისი სურათი აქ არის რეალურად ანსელ 3 წლის წინ CS50 Hackathon როდესაც იგი ითხოვა ერთი ჩვენი ბურთები, მოხდა ის, რომ მისი ლეპტოპი, და მომდევნო 12 რაღაც უცნაური საათი, ორიენტირებულია მისი საბოლოო პროექტი, წყვეტები გათვალისწინებით მხოლოდ გახსნა ჩანთა Candy საათზე Hackathon. მაგრამ მან მეტი ხნის წინ დახარჯავს ამ ზაფხულს ჩვენთან ერთად, მას შემდეგ, რაც CS50 პერსონალის და ახლა სტუდენტები ამ სემესტრში, აქვს საკუთარი 3D პრინტერი. და მოკლედ 3D პრინტერები მოწყობილობა, რომელიც გამოიყურება საკმაოდ მოსწონს ეს. თქვენ შეავსოთ იგი პლასტიკური spool რომ არის მდნარი ქვემოთ მოწყობილობა და თქვენ ააშენოს ფაქტიურად არაფერი. ჰგავს ჭავლური პრინტერი, თქვენ დაიწყება ფურთხი out პატარა წერტილები პლასტიკური რომ ფორმა ერთად შექმნას მთელი ობიექტები. და ასე ანსელ მაგალითად, ადრე ამ ზაფხულს, აქვს iPhone 5 და გადაწყვიტა, მას უნდოდა დასაცავად it up თავის მაგიდასთან. მაგრამ მას არ სურს გასვლა და შეძენა რაღაც საწყისი Apple store ან მოსწონს, ამიტომ იგი დაჯდა და დაიწყო ხატვა რაღაც. მან რამდენიმე გაზომვები ის, თუ რამდენად სქელი და რამდენად ფართო მისი iPhone იყო, მან მიიპყრო ამ სურათის აქ, მან გადაწყვიტა, რომ მას სურდა აქვს 75 ხარისხი Tilt როგორც ეს იყო ვნებათაღელვა მას თავის მაგიდასთან არსებობს. მას შემდეგ აღმოჩნდა, გამოყენებით პროგრამული უზრუნველყოფა, შევიდა 3D CAD მოდელი რომ ჩანდა პატარა რაღაც მსგავსი. მან დაიწყო, საბოლოო ჯამში, რეალურად შექმნა. ასე რომ, ფაქტობრივად, თუ თქვენ, აქ, ალბათ, ზედიზედ რომ შემიძლია სახიფათოა, აქვს an-- არ გვაქვს ეგ iPhone 5, და აქ ჩვენ გვაქვს კიდევ ორი. ახლა, არ უნდა outdone, CS50 საკუთარი Cheng Gong აგრეთვე, ამ ზაფხულს აშენება საკმაოდ ცოტა რამ, და, სინამდვილეში, იმის გამო, რომ ჯერ კიდევ გაურკვეველია, უკვე ნელა ბეჭდვის არმია სპილოები ერთად თქმას იარაღი და ჩემოდნები. რამდენიმე, რომლებიც რეალურად აქ თუ ვინმეს რომ ახლა მოსწონს სპილო. ყველა უფლება. მაგრამ რა Cheng ასევე გააკეთა ჩვენთვის ის არის, რომ ძალიან გთხოვთ შეიქმნა კამერა იმიტომ, რომ სპილო, მჯერა, რომ ეს თუ არა, სჭირდება გარკვეული ორ ნახევარი საათის ბეჭდვა. თუნდაც iPhone სტენდი აიღო საათი და ნახევარი ბეჭდვა. და რა Cheng გაგრძელდება და გააკეთა შეიქმნა ლამაზი კამერის წინ ამ 3D პრინტერი, გადაღებული საათში და ნახევარი როგორც ანსელ დიზაინი დაბეჭდილი. ჩვენ მოავარაყა ზოგიერთ sexy მუსიკა იგი, რათა გადმოგცეთ ეს გამოიყურება თუ როგორ 3D ბეჭდვის მუშაობს. და მიუხედავად იმისა, ფაქტიურად პლასტიკური, გააცნობიეროს, რომ თუ ეს არის ტერიტორია, თქვენთვის საინტერესო აკადემიური, არსებობს დაკარგულია, მათ შორის მათ Jennifer Lewis აქ სკოლაში საინჟინრო, რომლებიც რეალურად მუშაობა 3D ბეჭდვის პლასტიკური ობიექტები. მაგრამ მაშინაც კი, უფრო და უფრო, ბიოლოგიური გადაწყვიტოს ფსიქოლოგიური პრობლემები შექმნა. მაგრამ აქ არის პატარა რაღაც CS50. [ხმამაღალი მექანიკური noises] დევიდ ჯ Malan: ეს არ ჟღერდეს არაფერი მოსწონს, რომ სინამდვილეში, მაგრამ ეს ბევრად ქულერი უყურებს მას რომ სიჩქარე, და რომ ხმა. ახლა, ოთხშაბათს, როგორ ჩვენ არ პირველი კიდევ აქ? ჩვენ დავიწყეთ ლაპარაკი კომპიუტერული მეცნიერება და ვკითხეთ, რა იყო ეს. და ეს დაახლოებით რიგი რამ, არსებობს ამდენი სხვადასხვა მიმართულებით რომელიც შეგიძლიათ უხელმძღვანელებს შემდეგ რა თქმა უნდა CS50. ფაქტობრივად, თუ თქვენ აიყვანეს ერთი იმ არაოფიციალური გიდები to CS გარეთ, ბუკლეტი, ჩვენ მოწოდებული, თუ თქვენ ფიქრი დაკავების უბრალოდ CS50, ან იქნებ აკეთებს საშუალო, ან თუნდაც კონცენტრაცია CS, არ Flip მეშვეობით, რომ. და დაინახავთ სქემა დასასრულს, რომ გიჩვენებთ ბევრი სხვადასხვა მიმართულებით in CS, რომ შეგიძლიათ წასვლა off in. მაგრამ დღეს, ჩვენ ფოკუსირება, კიდევ ერთხელ, ნამდვილად ერთ ერთი ფუნდამენტური შეხედულებები, ალბათ, სადაც თქვენ უნდა საშუალებებით პრობლემები, თქვენ გაქვთ მასალები from პრობლემა, და თქვენ უნდა ალგორითმები რომლის შექმნა იმ შედეგები იმ საშუალებებით. და ამის მაგალითია, იყო რა თქმა უნდა, ამ სატელეფონო წიგნი აქ. ჩვენ კი, როგორც მაგალითად, წასვლა მეშვეობით ალგორითმი რომ სწორი იყო. და მერე მეორე იყო სწორია, მაგრამ ცოტა უფრო სწრაფად. და მერე მეორე, ეს იყო პატარა უფრო დრამატული, მაგრამ ძირეულად სწრაფად. მარჯვენა, ამ სატელეფონო წიგნი ჩვენ განაცხადა, ჰქონდა დაახლოებით 1000 pages. და რამდენჯერ მაქვს გაანადგურეს ტელეფონი წიგნი ნახევარი to ურთიერთობა, როგორიც მაიკ სმიტი, მაქსიმალურად, 1000 გვერდიანი წიგნი? ასე რომ, 10 მისცეს ან მიიღოს. და ა.შ. ერთხელ მე დახიეს ეს რამ ნახევარი, ან უბრალოდ, უფრო maturely, დაყოფილი ნახევარი, ეს მხოლოდ 10 გვერდებზე 1000. და თუ განზოგადების, პატარა არარეალურად სატელეფონო წიგნი, მაგრამ თუ ამ სატელეფონო წიგნი გვქონდა 4 მილიარდი გვერდებზე, ასე რომ სრულიად unwieldy ფიზიკურად, რამდენი ჯერ გაყოფა 4 მილიარდი გვერდი სატელეფონო წიგნი ნახევარ? ასე რომ, რეალურად, 32, მისცეს ან მიიღოს. და ასე 32 ჯერ, მხოლოდ გარეთ 4 მილიარდი გვერდებზე, შეგიძლიათ ურთიერთობა, როგორიც მაიკ სმიტი. და ეს ეფექტურობა. სწორედ კარგი ალგორითმი, daresay. მაგრამ შემდეგ გადავედით, რომ ცდილობენ ოფიციალურად იგი. და მე შევთავაზე ამ pseudocode კოდი. Pseudocode კოდი არ არის არაფერი ფორმალური. ეს არ არის რაღაც გვემახსოვრება. უბრალოდ რაღაც თქვენ გამოხატოს საკმაოდ ინტუიციურად გამოყენებით English, ან ნებისმიერ ენაზე მართლაც, თანაგრძნობას თქვენი იდეები მოკლედ. მაგრამ რა არის გასაღები შესახებ pseudocode კოდი, რომ თქვენ ცდილობენ გავუსწრო ყველა შესაძლო შემთხვევა შეიძლება მოხდეს. და მართლაც, ამ pseudocode კოდი, მართლაც იყო სამი შემთხვევა ყოველ ჯერზე მე იყოფა სატელეფონო წიგნი. Mike შეიძლება იყოს მარცხენა. Mike შეიძლება იყოს უფლება. ან ის შეიძლება იყოს გვერდზე მარჯვნივ ვარ მე. ან მეოთხე კუთხეში შემთხვევაში, ასე ვთქვათ. ცუდი სცენარი შეიძლება იყოს ერთი which-- რა ხდება? Mike უბრალოდ არ სატელეფონო წიგნი ყველა. და როდესაც პროგრამების crash-- როდესაც Mac და PC პროგრამული უზრუნველყოფა, რომ თქვენ ბიჭები აწარმოებს თქვენი კომპიუტერი ხშირად ასეთ სიტუაციაში ან ტოვებს მოულოდნელად, რომ ზოგადად იმას ნიშნავს, რომ ზოგიერთი პროგრამისტი, ადამიანის, როგორც თქვენ მალე, მხოლოდ ბრალია და გარკვეული შეცდომა. იქნებ არ გეგმავს, რომ იქნებ იქ არ არის მაიკ სმიტი სატელეფონო წიგნი. და თუ თქვენ არ რეალურად წერენ კოდი სიტუაციის, როგორც, რომ, ზოგადად არაპროგნოზირებადი რამ შეიძლება მოხდეს. შენი მანქანა შეიძლება გაყინვა. ეს შეიძლება გადატვირთვა. პროგრამას შეუძლია დატოვა. ასე რომ, ყველა ამ stupidities, რომ თქვენ შეიძლება არ შეექმნა თქვენი ფაქტობრივი ცხოვრებაში მხოლოდ გამოყენებით კომპიუტერები, სულ უფრო და უფრო იყოს მხოლოდ აიხსნება ამ ინტუიცია და ეს გაგება, თუ რა არის რეალურად ხდება ქვეშ hood. ახლა მოდით შევეცადოთ შევხედოთ უფრო ზოგადი პრობლემა. ვიდრე მიიღოს დასწრება მსგავსი ადგილი ამ, რომელიც იქნება საკმაოდ ნელი გავაკეთოთ ერთი, ორი, სამი, ოთხი. ან შესაძლოა ორი, ოთხი, ექვსი, რვა. მოდით ფოკუსირება ნაცვლად ამისა, on როგორ შეიძლება გააფორმონ ალგორითმი პროცესი რომელიც ჩვენ შეიძლება დასწრება. და გზაზე, დავიწყოთ ვრცელდება გარკვეული ნომენკლატურის რომ ჩვენ გამოვიყენებთ დღეს, როდესაც ჩვენ რეალურად დავიწყოთ პროგრამირების ენაზე. ამიტომ მე გაძლევთ ახლა, ოთხი წუთიანი ვიდეო ის, რომ ჩვენ ჩვენს მეგობრებთან ერთად საწყისი TED, ორგანიზაცია. რომლითაც ჩვენ მოწოდებული სცენარი და მოიყვანეს მათი ანიმატორები დათვი, და რეალურად შექმნა 2D ანიმაცია რა არის ალგორითმი. თუ შეგვეძლო Dim lights. [მუსიკის დაკვრა] მთხრობელი: რა არის ალგორითმი? კომპიუტერული მეცნიერების, ალგორითმი არის კომპლექტი ინსტრუქციები მოგვარების ზოგიერთი პრობლემა ნაბიჯ ნაბიჯ. როგორც წესი, ალგორითმები შესრულებული კომპიუტერები, მაგრამ ჩვენ ადამიანები არ ალგორითმები, ასევე. მაგალითად, როგორ წავიდეთ დათვლის იმ ადამიანთა რიცხვი, ოთახში? ასევე, თუ თქვენ ჩემნაირი, თქვენ ალბათ აღვნიშნო თითოეული ადამიანი ერთ დროს და ითვლიან ნულიდან. ერთი, ორი, სამი, ოთხი, და ასე შემდეგ. ისე, რომ ალგორითმი. ფაქტობრივად, მოდით ვცდილობთ გამოვხატოთ იგი ცოტა უფრო ფორმალურად pseudocode კოდი. ინგლისურ მსგავსი სინტაქსი, რომ ჰგავს პროგრამირების ენაზე. მიადევნე n თანაბარი 0. თითოეული ადამიანი ოთახი, მითითებული n ტოლია n + 1. როგორ გავიგოთ pseudocode? ასევე ხაზი ერთი აცხადებს, ასე ვთქვათ, ცვლადი მოუწოდა N და initializes მისი ღირებულება 0 ეს მხოლოდ ნიშნავს იმას, რომ დასაწყისში ჩვენი ალგორითმი, რამ, რაც ჩვენ დათვლა აქვს მნიშვნელობა 0. ყოველივე ამის შემდეგ, სანამ ჩვენ ვიწყებთ დამთვლელი ჩვენ არ დათვლილი არაფერი გაუკეთებია. მოვუწოდებთ ამ ცვლადი n არის მხოლოდ კონვენციას. მე შეეძლო მას ყველაზე არაფერი. ახლა ხაზი ორი demarks დაწყების loop, თანმიმდევრობა ნაბიჯები, რომელიც ვიმეორებ გარკვეული რაოდენობის ჯერ. ასე რომ, ჩვენი მაგალითად, ნაბიჯ ჩვენ მიღება დათვლის ადამიანი ოთახში. Beneath ხაზი ორი არის ხაზზე სამი, რომელიც აღწერს რამდენად ჩვენ წავიდეთ შესახებ დათვლის. წანაცვლება გულისხმობს, რომ ეს ხაზი სამი, რომელიც ვიმეორებ. ასე რომ, pseudocode კოდი არის არის ის, რომ მას შემდეგ, რაც დაწყებული 0 თითოეული ადამიანი ოთახი ჩვენ გაზრდის n 1 ახლა არის ეს ალგორითმი სწორია? კარგად მოდით bang მასზე ცოტა. მუშაობს იგი, თუ არსებობს ორი ადამიანი ოთახში? ვნახოთ. ხაზი ერთი ჩვენ ინიციალიზაცია n 0. თითოეული ეს ორი ადამიანი, ჩვენ მაშინ ნამატი n 1. ამიტომ პირველ მოგზაურობა მეშვეობით მარყუჟის, ჩვენ განახლება n from 0 to 1. მეორე მოგზაურობის დროს, რომ იგივე მარყუჟის, ჩვენ განახლება n 1 დან 2. და ასე, ამ ალგორითმი ბოლოს და ბოლოს, N 2, რომელიც მართლაც შეესაბამება ნომერი ადამიანი ოთახში. ჯერჯერობით, იმდენად კარგი. როგორ შესახებ კუთხეში შემთხვევაში, თუმცა? დავუშვათ, რომ არსებობს 0 ადამიანი ამ room-- ჩემს გარდა, რომელიც აკეთებს დათვლის. შეესაბამება ერთი, ჩვენ კიდევ ერთხელ ვრთავ n 0. ამ დროს, თუმცა, ხაზი სამი არ შეასრულოს ყველა მას შემდეგ, რაც არ არის ადამიანი ოთახში. და ა.შ. რჩება 0, რომელიც მართლაც შეესაბამება იმ ადამიანთა რიცხვი, ოთახში. საკმაოდ მარტივია, არა? მაგრამ დათვლის ადამიანი ერთ დროს საკმაოდ არაეფექტური, ძალიან, არა? რა თქმა უნდა, ჩვენ შეგვიძლია გავაკეთოთ უკეთესი. რატომ არ ითვლიან ორი ადამიანი დროს, ნაცვლად დათვლის ერთი, ორი, სამი, ოთხი, ხუთი, ექვსი, შვიდი, რვა, და სხვ. რატომ არ ითვლიან ორი, ოთხი, ექვსი, რვა, და ა.შ.? ეს კი ჟღერს უფრო სწრაფად. და ეს აუცილებლად. მოდით გამოვხატოთ ამ ოპტიმიზაცია in pseudocode კოდი. მიადევნე n თანაბარი 0. თითოეული წყვილი ადამიანი ოთახი, მითითებული n ტოლია n plus 2. Pretty მარტივი ცვლილება, არა? ვიდრე ითვლიან ადამიანი ერთ დროს, ჩვენ ნაცვლად ითვლიან მათ ორი დროს. ეს ალგორითმი, აქედან გამომდინარე, ორჯერ სწრაფად ბოლო. მაგრამ ეს არის სწორი? ვნახოთ. მუშაობს იგი, თუ არსებობს ორი ადამიანი ოთახში? შეესაბამება ერთი, ჩვენ ინიციალიზაცია n 0. რომ ერთი წყვილი ადამიანი, ჩვენ მაშინ ნამატი ო 2. და ასე ამ ალგორითმი ბოლოს N 2, რომელიც მართლაც შეესაბამება ნომერი ადამიანი ოთახში. ვარაუდობენ, მომავალ, რომ არსებობს ნულოვანი ადამიანი ოთახში. ხაზი ერთი ჩვენ ინიციალიზაცია n 0. როგორც ადრე, ხაზი სამი არ შეასრულოს ის ყველა მას შემდეგ, რაც არ არსებობს წყვილი ადამიანი ოთახში, და ა.შ. რჩება 0. რომელიც მართლაც შეესაბამება რაოდენობის ხალხი ოთახში. მაგრამ რა, თუ არსებობს სამი ადამიანი ოთახში? რამდენად შეესაბამება ეს ალგორითმი მგზავრობის? ვნახოთ, შეესაბამება ერთი, ჩვენ ინიციალიზაცია n 0. წყვილი იმ ხალხს, ჩვენ მაშინ ნამატი ო 2. მაგრამ მერე რა? არ არსებობს სხვა სრული წყვილი, რომელიც იმ ოთახში, ასე ხაზი ორი აღარ ვრცელდება. და ასე, ამ ალგორითმის ბოლოს, n კვლავ 2, რომელიც არ არის სწორი. უფრო მეტიც, ეს ალგორითმი განაცხადა, იყოს buggy რადგან მას შეცდომა. მოდით აღდგენის ზოგიერთი ახალი pseudocode კოდი. მიადევნე n თანაბარი 0. თითოეული წყვილი ადამიანი ოთახი, მითითებული N ტოლია n plus 2. თუ ერთი პირი რჩება unpaired, მითითებული N ტოლია n + 1. გადაჭრის ამ კონკრეტულ პრობლემას, ჩვენ დაინერგა ხაზის ოთხი მდგომარეობაში, ცნობილია, როგორც ფილიალი, რომ მხოლოდ ახორციელებს თუ არსებობს ერთი პიროვნების ვერ წყვილი ერთმანეთს. და ახლა, მიუხედავად იმისა, არსებობს ერთი, ან სამი, ან რაიმე უცნაური ადამიანების ოთახი, ეს ალგორითმი ახლა ითვლიან მათ. შეგვიძლია გავაკეთოთ კიდევ უკეთესი? კარგად, ჩვენ ვერ ითვლიან სამად, ან ოთხივე, ან თუნდაც ხუთიანი და ათობით, მაგრამ ამის მიღმა, ის აპირებს მიიღოს ცოტა რთული წერტილი. ბოლოს დღეს, თუ არა შესრულებული კომპიუტერი ან ადამიანები, ალგორითმები მხოლოდ ინსტრუქციათა , რომელიც გადაჭრას. ეს იყო მხოლოდ სამი. რა პრობლემა, რომ თქვენ გადაწყვიტოს ალგორითმი? დევიდ ჯ Malan: ასე რომ, შეგნებულად, ძალიან მარტივი პროგრამა, ძალიან მარტივი ალგორითმი, მისაღწევად რაღაც ძალიან მარტივია, დათვლა რაოდენობის ხალხი ოთახში. მაგრამ მოდით აჯავრებენ გარდა ზოგიერთი წარმომადგენელი მახასიათებლები აქ, რომ რეალურად ეს იქნება სასარგებლო, მაშინაც კი, როდესაც განხორციელების ყველაზე რთული პროგრამული უზრუნველყოფა. ასე მაგალითად, ამ პირველი ხაზი, ჩვენ გვაქვს ის, რაც ჩვენ მოვუწოდებთ ცვლადი, და ალგებრა, თქვენ ზოგადად იცნობს გამოყენებით x და y და z ზოგჯერ, და სხვ. მაგრამ პროგრამირებაში, ცვლადები მაინც, ბოლოს დღეს, ძალიან ჰგავს, რომ. მაგრამ ეს, ალბათ, მარტივი ვფიქრობ ცვლადი როგორც მხოლოდ კონტეინერი. და, ფაქტობრივად, ეს არის გარკვეული რაოდენობის ბიტი განხორციელებული რატომღაც თქვენს მყარ დისკზე ან თქვენი კომპიუტერის მეხსიერებაში, მაგრამ უფრო, რომ მომავალში. უბრალოდ კონტეინერი. და თუ თქვენ ამბობთ, რაღაც მინდა მოდით n თანაბარი 0, ისე რომ მოსწონს მოუწოდებენ მინის თასი აქ n, მხოლოდ თვითნებური სახელი, და აყენებს არაფერი იყო. ასე რომ, არც ამ თასი ახლა არის ნულოვანი. და რა თქმა უნდა, თუ თქვენ გეჩვენებათ მომდევნო ხაზი, რეალურად იყოს ზოგიერთი ხაზი კოდი, როგორც ეს მესამე ხაზი აქ, 1, რომელიც იგივეა, თითქოს ამბობდა, რა არის მიმდინარე ღირებულების n, 0, პლუს 1, დააყენა რაღაც ping pong ბურთი აქ. ახლა ღირებულების ამ ცვლადი უბრალოდ 1. და შეიძლება ძალიან სწრაფად შესაფასებლად, მაგრამ ახლა ეს 2, ახლა კი 3, და ასე შემდეგ. ასე რომ ყველა ცვლადი. ეს ნაჭერი შენახვის რეალურად შესანახად ზოგიერთი მონაცემები. ახლა ეს ping pong ბურთი. არსებობს ეს ნომერი. მაგრამ ეს შეიძლება იყოს სიტყვები ლექსიკონი, როგორც მართლწერის შემოწმება მე გააკეთა მინიშნება ოთხშაბათს შარშან პრობლემა კომპლექტი. ახლა კიდევ ერთი მნიშვნელოვანი მოსაზრება, რომ ასეთივე საკმაოდ ინტუიციური I აცხადებენ, ის არის, რომ loop. და loop პროცესში დათვლის ყველას , რა თქმა უნდა, აკეთებს იგივე რამ ისევ და ერთხელ ან ერთი დროს ან ორი დროს. და თქვენ შეგიძლიათ გამოხატოს ეს, ინგლისურად ან pseudocode კოდი, ნებისმიერი რაოდენობის გზა, მაგრამ გამოყენების ეს წინდებული "for" არის ძალიან გავრცელებული გზა აკეთებს, რომ. თითოეული ადამიანი ოთახში, ამის გაკეთება. ისევ და ისევ. და ის ფაქტი, რომ indented, ხაზი სამი, მხოლოდ იმას ნიშნავს, რომ ის, რაც თქვენ უნდა გავაკეთოთ პერსონალი, რომელიც indented ხაზს ქვემოთ ორი თვით. მხოლოდ ადამიანის კონვენცია, მაგრამ საერთო ერთი როგორც ვნახავთ, ფაქტობრივი უმაღლესი დონის პროგრამირების ენაზე. ახლა ცოტა უფრო საინტერესო არის როდესაც თქვენ კუთხეში შემთხვევაში. მაგალითად, კუთხეში საქმე ის იყო, როდესაც არსებობს სამი ადამიანი, ან ხუთი ან შვიდი, ან რაიმე უცნაური ადამიანების ოთახი, იმიტომ აკეთებს, რომ twos მუხრუჭები საბოლოოდ, რადგან თქვენს აპირებს გამოგრჩეთ ვინმეს, ან იმ თავიდანვე ან ბოლომდე დამოკიდებულია იმაზე, თუ თქვენ ამის გაკეთება. და ასე შემდეგ, ახლა, მაქვს ეს ფილიალი, ან მდგომარეობა, თუ ერთი პირი რჩება, მაშინ წავიდეთ წინ და გაუმკლავდეს, რომ ერთი lonesome პირი, რომელიც არ მიუღია დაწყვილებული ვინმე. ასე რომ, ის, რასაც ჩვენ ვუწოდებდით მდგომარეობა, ან ფილიალი. ახლა pseudocode კოდი უფრო ზოგადად შეიძლება იყოს წერილობითი გადაწყვიტოს ნებისმიერი რაოდენობის პრობლემები. და რა ვიფიქრე ჩვენ გვინდა აქ არის მომენტი მოიწვიოს ვიტყვით CS50-ს საკუთარი Rob Bowden სცენაზე შეუერთდა ორი მოხალისე, რომელიც არ ვიცი, რა ელის. მხრივ წავიდა ქვემოთ, როგორც კი ვთქვი, რომ. როგორ შესახებ თქვენ მთავრდება აქ, მოდის up. და რა ეხლა შორს მოშორებით, რა გზა უკან. უკან ზედიზედ, მოდის up თქვენი ხელები. კარგად, და რა გქვია? ANITA: Anita. დევიდ ჯ Malan: Anita. Okay, კარგია თქვენთან შეხვედრა. ნება მომეცით წარმოგიდგინოთ to Rob Bowden. ეს არის Anita. და რა გქვია? KIERSTEN: Kiersten დევიდ ჯ Malan: Kiersten. Kiersten, მოდის up და შეხვდება Rob Bowden და ანიტა. კარგია თქვენთან შეხვედრა. KIERSTEN: კარგია თქვენთან შეხვედრა. დევიდ ჯ Malan: Alright, Rob. რობ Bowden: კარგია თქვენთან შეხვედრა. დევიდ ჯ Malan: Anita. KIERSTEN: Hi Anita. დევიდ ჯ Malan: და თქვენი რამდენიმე ასეული თანაკლასელები. ასე რომ, ახლა ნება მომეცით წავიდეთ წინ და გაიყვანოს up უბრალოდ მარტივი პროგრამა აქ on Mac OS, რომ ნება მომეცით რეალურად jot შენიშვნები ქვემოთ. და თუ თქვენ ბიჭები მინდა თითოეულ მიიღოს პოზიცია ერთ იმ სკოლებში, იქ, ნება მომეცით წავიდეთ წინ და იწყებს სია საქართველოს pseudocode კოდი, თუ გნებავთ. და რა მინდა აქ, საბოლოო ჯამში, არის ტიპის თქვენთვის ინსტრუქციები, რომ ჩვენი აუდიტორიის წევრები რეალურად აპირებს უყვებიან ჩვენთვის. ნება მომეცით წავიდეთ წინ და მხოლოდ შეცვალოს ეს დანომრილი სია ემთხვევა, რასაც ჩვენ ვაკეთებდით იქ. და რა მე ვაპირებ უნდა გააკეთოს თქვენი დახმარებით, არის წერენ პროგრამა in pseudocode, რომელთანაც ეს ბიჭები ვაპირებთ განახორციელოს peanut კარაქი და ჟელე sandwich. ასე რომ, ეს, ალბათ, შეთანხმდებიან, რომ გამოჩნდება რაღაც, ზოგიერთ თქვენგანს შეიძლება არ ჩანს ინტერნეტში მხოლოდ მოკლე შემაშფოთებელი მომენტი. [MUSIC BUCKEWHEAT BOYS "Peanut კარაქი  Jelly დრო "] დევიდ ჯ Malan: OK. ეს არის საკმარისი, რომ. ასე რომ, აქ კი, რომელიც მე მაქვს წყვილი Google Glasses რომელიც ჩვენ დააყენა on CS50 საკუთარი Rob Bowden ვხედავ მსოფლიოს თავის თვალში. და ჩვენ ყველაფერს გავაკეთებთ იმისათვის, პოსტ წარმოების რეალურად ხელს უწყობს კადრები რა რობ ხედავს ახლა, ამ ფაქტობრივი ლექცია ვიდეო ჩვენს ორ მოხალისეები მასთან. მერე რა მე ვაპირებ ამის გაკეთებას არის, მე ვიქნები მემანქანე. ჩვენ გვაქვს მიზანი აქ რეალურად პროგრამის წერა ერთად, რომელიც, რათა, საბოლოოდ, peanut კარაქი და ჟელე sandwich, მაგრამ ამ სამი ვაპირებთ მოიქცევა თითქოს ისინი კომპიუტერებს. და კომპიუტერები, დღის ბოლოს, რეალურად საკმაოდ dumb მოწყობილობების. ისინი სუპერ სწრაფი, მაგრამ მათ ვერ ამის გაკეთება, ფაქტიურად, რასაც მათ ეუბნებიან. თქვენ არ შეგიძლიათ უბრალოდ ვიტყვი, რომ არაქისის კარაქი და ჟელე sandwich. თქვენ უნდა პროგრამა მათ ამის გაკეთება. თქვენ უნდა ვუთხრათ ზუსტად რა უნდა გააკეთოს, ნაკლები რამ წავიდეთ horribly და, იმედია, amusingly awry. ამრიგად, რომ განაცხადა, ჩვენ უნდა ერთი ზარის out აუდიტორიას რა უნდა გადადგეს ერთი იქნება, თუ მიზანი აქ , რათა peanut კარაქი და ჟელე sandwich. დიახ? აუდიტორია: [INAUDIBLE] ტომარა პური. დევიდ ჯ Malan: გახსნა ტომარა პური. ასე რომ, თუ სამი პრეტენდენტი მინდა გაგრძელება უნდა გავაკეთოთ, რომ გავიგოთ. გახსნა ტომარა პური. [აუდიტორია იცინის] დევიდ ჯ Malan: ასე რომ, მოდით ვიმუშაოთ, რომ. ყველა უფლება. ასე ნაბიჯი ორი, how-- მოდით ეს კიდევ უფრო. ჰო, წინ. აუდიტორია: [INAUDIBLE] პური. დევიდ ჯ Malan: რა არის ეს? აუდიტორია: ამოღება პური. დევიდ ჯ Malan: ამოღება პური. ასეთივე ლაკონური. დიდი მადლობა. [ტაში] დევიდ ჯ Malan: ეს არის ის? OK, ასე ნაბიჯი ორ აპირებს უნდა იყოს ამოიღონ პური. კარგად, ვინმე გვინდა მოგვწერეთ აღარ სასჯელი? ვინმე? ცოტა მეტი [INAUDIBLE]. არა, არაფერი არ არის. დიახ? აუდიტორია: ადგილი ორ ნაჭერი შემდეგი ერთმანეთს. დევიდ ჯ Malan: ადგილი ორ ნაჭერი შემდეგი ერთმანეთს. [აუდიტორია იცინის] დევიდ ჯ Malan: ადგილი ორ ნაჭერი შემდეგი ერთმანეთს. ნაბიჯი ოთხი. დიახ? აუდიტორია: აიღეთ ხელი და შეიქმნა ეს მსუბუქად თავზე არაქისის კარაქი სახურავი. [აუდიტორია იცინის] აუდიტორია: [INAUDIBLE] შემდეგი არაქისის კარაქი. დევიდ ჯ Malan: რა? ამბობენ, რომ ერთხელ. აუდიტორია: Unscrew სახურავი და დააყენოს იგი ნაზად შემდეგი არაქისის კარაქი. დევიდ ჯ Malan: ამას ნაზად შემდეგი არაქისის კარაქი. OK, პროგრესი. ნაბიჯი ხუთ. შესანიშნავი. დიახ? აიღეთ დანა. დევიდ ჯ Malan: აიღეთ დანა. OK, ნაბიჯ ექვსი. ჰო? აუდიტორია: Hold დანა ტარით. დევიდ ჯ Malan: Hold დანა ტარით. გამართავს დანა ტარით. ნაბიჯი შვიდი. დიახ? აუდიტორია: [INAUDIBLE] დანა peanut კარაქი და როგორც პატარა out [INAUDIBLE]. დევიდ ჯ Malan: განათავსეთ დანა in-- I ისმის "დააყენა დანა peanut კარაქი და როგორც პატარა, როგორც შესაძლებელია. " სხვათა შორის, ამოიღონ ქაღალდის პირველი. ყველა უფლება, გადადგას ცხრა. ნაბიჯი ცხრა. ნაბიჯი ცხრა. ჩვენ რეალურად არ გააკეთა sandwich ამჟამად. დიახ? აუდიტორია: გამოყენება დანით არაქისის კარაქი, ვრცელდება peanut კარაქი განაცხადა პური. დევიდ ჯ Malan: გამოყენება დანით არაქისის კარაქი, ვრცელდება peanut კარაქი განაცხადა პური. [აუდიტორია იცინის] დევიდ ჯ Malan: ყველა უფლება ნაბიჯი 10. ნაბიჯი 10. დიახ? აუდიტორია: Taste peanut კარაქი, რომ უზრუნველყოს ხარისხის. [აუდიტორია იცინის] დევიდ ჯ Malan: ნაბიჯი 11. ნაბიჯი 11. ნაბიჯი 11. მოდის. ჰო? უფლება არსებობს. აუდიტორია: ყურადღებით შეარჩიო ჟელე. დევიდ ჯ Malan: ყურადღებით შეარჩიო ჟელე. OK, შემდეგ კი სხვა მხრივ იყო. უფლებას უკან თქვენ. ჰო, ლურჯი. აუდიტორია: ყველა უფლება, ამოიღონ სახურავი საწყისი [INAUDIBLE], yeah, ამოიღონ lid ვაზელინი. [აუდიტორია იცინის] დევიდ ჯ Malan: საწყისი ჟელე. ჰა ჰა. [აუდიტორია იცინის] დევიდ ჯ Malan: And? აუდიტორია: და ძლივს პერსონალი ბარათს გაატარებს ნებისმიერი [INAUDIBLE]. [აუდიტორია იცინის] აუდიტორია: რა თქმა უნდა, სანამ [INAUDIBLE], ამოიღონ ქაღალდის საწყისი ჟელე. დევიდ ჯ Malan: ამოიღონ ქაღალდი საწყისი ჟელე. ნაბიჯი 14. ჩვენ თითქმის არ არსებობს. დიახ? აუდიტორია: Invert jelly ბოთლი ადრე ყველაფერი მოდის. დევიდ ჯ Malan: ყველა, მონიშნულის გარდა jelly ბოთლი სანამ jelly მოდის. ნაბიჯი 15. აუდიტორია: ჩანაცვლება cap. დევიდ ჯ Malan: ჩანაცვლება cap. ნაბიჯი 16. ჰო? აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ამბობენ, რომ ერთხელ. აუდიტორია: Take cap off თქვენი ჟელე. დევიდ ჯ Malan: Off თქვენი ჟელე. ასე really-- Oops. მოდის. შეცვლის ქუდი. განათავსეთ cap-- თქვენ თქვით, ამოიღონ cap საწყისი ჟელე. გრძნობს, როგორც ჩვენ ცოტა loop. ნაბიჯი 17. დიახ? აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ამბობენ, რომ ერთხელ. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: დაბრუნება step-- აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: წაშლა cap საწყისი არაქისის კარაქი. დიახ? აუდიტორია: Drop ყველა jelly on პური. დევიდ ჯ Malan: Drop ყველა ჟელე პური. დევიდ ჯ Malan: ჩვენ თითქმის არ არსებობს. ნაბიჯი 19. აუდიტორია: ამოიღონ ჭარბი რძე. დევიდ ჯ Malan: აბა, რძე. [ტაში] დევიდ ჯ Malan: რატომ არ we-- კიდევ ერთი ნაბიჯი ამ სახლში. კიდევ ერთი ნაბიჯი და შემდეგ ჩვენ ემსახურება სენდვიჩები. დიახ? აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: მიუხედავად იმისა, ნებისმიერი sandwich remains-- მოდით აბზაცის ამას ჭამა. [აუდიტორია სიცილი] დევიდ ჯ Malan: ყველა უფლება, მადლობა თქვენ ჩვენი მოხალისეები აქ. [ტაში} დევიდ ჯ Malan: ჩვენ გვაქვს ლამაზი დამშვიდობებისას საჩუქრები თითოეულ თქვენგანს. საკუთარი არაქისის კარაქი, რძე, და პური, რათა სახლში. დიდი მადლობა. KIERSTEN: დიდი მადლობა. დევიდ ჯ Malan: [INAUDIBLE] მივესალმებით. [ტაში] დევიდ ჯ Malan: ასე რომ, ეს, რა თქმა უნდა, სასაცილოა მაგალითად. არა? მაგრამ ეს იმას სახის გამოვლენა როგორ ჩვენ ადამიანები უბრალოდ მიიღოს სიცხადე მიანიჭა. და ის ფაქტი, რომ მე ყოფილა საუბარი სხვა ადამიანის, იგი მხოლოდ ის იცის, რას ნიშნავს. კომპიუტერი არ აპირებს ვიცი, რას ნიშნავს, მაშინაც კი, როდესაც გამოყენებით, როგორც ჩვენ უნდა გავაკეთოთ დღეს, პროგრამირების რაღაც ნულიდან, drag და წვეთი, თავსატეხი ცალი style ენაზე. კი განკუთვნილია ახალგაზრდა ბავშვები, თქვენ უნდა უნდა იყოს ისე მკაფიოდ და ასე ლიტერატურული ერთად რა გსურთ თქვენი პროგრამა უნდა გააკეთოს. ახლა საბოლოოდ, ჩვენ იქნება პროგრამირების არ pseudocode კოდი, ინგლისური მსგავსი სინტაქსი, მაგრამ კოდი ან, უფრო სწორად, კოდის. კოდის მხოლოდ ლამაზი გზა აღწერს კოდი, რომ თქვენ რეალურად წერა კლავიატურის, რომელიც არის არა ინგლისური თავისთავად. ეს არის C ან Java ან C ++ ან რამე როგორც, რომ, როგორც ჩვენ მალე დაინახავთ. და ფაქტობრივად, მხოლოდ დააშინოს რამდენიმე თქვენგანს, ერთი შეხედვით, ეს არის პროგრამა დაწერილი ენა მოუწოდა C. მაგრამ გაეროს საფრთხესთან რამდენიმე თქვენგანს, თქვენ მთლიანად გავიგოთ, რა ხდება on მომავალ ორშაბათს, როდესაც ის მოდის რაღაც მსგავსი. გულწრფელად ვამბობ, რომ ეს არის ძველი ენა. ეს საკმაოდ arcane, მაგრამ ეს წარმომადგენელი ბევრი ენები ამ დღეებში, რომ აქვს უამრავი ბრჭყალების და curly braces და გაცემა ნიშნები და semicolons. და ბევრი ამ სინტაქსური პერსონალი, რომელიც არ არის ყველა ინტელექტუალურად საინტერესო. ის ფაქტი, რომ სრული განადგურების ეხლა ძალიან მარტივი იდეები რომ ვნებათაღელვა us სახე. ეს პროგრამა, რადგან, შესაძლოა, უბრალოდ ვხვდები, ნამუშევარი ვიღაცის კომპიუტერის ეკრანზე სიტყვა "Hello მძიმე მსოფლიოში." ეს არის ის. ასე ნათლად, არსებობს ბევრი პერსონალი, მიღების გზა ზოგიერთი obviousness არსებობს, მაგრამ ეს ხდება ძალიან სწრაფად გადაიჩეხო მოშორებით და მთლიანად ინტუიციური. მართლაც, რასაც ჩვენ ვაპირებთ, რომ გავაკეთოთ დღეს გამოიხადოს ამ საკმაოდ რთული ეძებს პროგრამა, რომელიც კიდევ ერთხელ თქვენ მოვიდა უნდა გვესმოდეს, სწრაფად, მაგრამ რაღაც ბევრად უფრო მარტივია. მოდით უბრალოდ, ვამბობთ, რა იგულისხმება. მოდით დავხატოთ სურათი, თუ რას ვგულისხმობთ, გზით ამ თავსატეხი ცალი აქ. ასე რომ, ეს არის პროგრამირების ენა ცნობილია როგორც Scratch. იგი მიერ შემუშავებული MIT-ის მედია ლაბორატორია. და რა დაინახავთ პრობლემების შექმნას ნულოვანი, რომელიც იქნება მოგვიანებით დღეს, ჩვენ უნდა წასვლა ამ URL აქ scratch.mit.edu. და მათ აქვთ ვებ დაფუძნებული ინტერფეისი მეშვეობით, რომელიც თქვენ დაწეროთ თქვენი პირველი პროგრამის. ან იმ თქვენ წინასწარი გამოცდილება, თქვენი მეორე პროგრამების, მაგრამ გარემო, რომელიც ალბათ ცოტა იციან და რომ დააყენებს თქვენ შექმნათ რაღაც გამოყენებით ამ ძალიან ვიზუალური გარემო. ახლა, რა მე ვაპირებ აქ არის გახსნას თვითონ პროგრამას. იგი არსებობს არა მხოლოდ ბრაუზერში, არამედ, როგორც Best პროგრამა ასე რომ თქვენ შეგიძლიათ რეალურად გამოვიყენოთ თუ არ გაქვთ ინტერნეტი. და მე ვაპირებ ამის გაკეთებას აქ, Sanders, მხოლოდ იმ შემთხვევაში, Wi-Fi არ ითანამშრომლოს super კარგად. და რა მე ვაპირებ ამის გაკეთებას წერტილი რამდენიმე თვისებები ეს პროგრამა. ასე რომ, უნდა იყოს მკაფიო, მაქვს მხოლოდ ორჯერ დააწკაპებთ ხატი მაგიდაზე, ან equivalently წავიდა scratch.mit.edu, და ეს გამოყვანილია ეს ფანჯარა. ეს არის პროგრამირების გარემო. ეს ნაჭერი პროგრამული უზრუნველყოფა, რომელიც ზოგიერთი ჩვენი მეგობარი MIT წერს, რომ მოდით და თქვენ დაწერეთ პროგრამები ენის მოუწოდა Scratch. ახლა ეს ხდება, კატა, რომელიც ასევე დაასახელა Scratch და ეს არის მისი სამყარო, რომელშიც ის ცხოვრობს. ეს არის ეტაპი, ასე ვთქვათ, ოთხკუთხედი ზედა მარცხენა კუთხეში. და მას არ აქვს ჰგავს კატა. შეგიძლიათ მას გამოიყურება მსგავსი არაფერი და თქვენ შეიძლება ბევრი ასეთი sprites, ან გმირები, პროგრამა. იმავდროულად, მეტი აქ გაცილებით მარჯვენა, დიდი ცარიელი ფურცლიდან. და ეს არის, სადაც ამ მომენტში, ჩვენ ვაპირებთ დავიწყოთ პროგრამირების გადმოიყვანა და ჩაშვების ამ გრაფიკული თავსატეხი დარტყმები, რომ უფლება აქ შუა. და არ არსებობს გზა უფრო, ვიდრე ჩვენ დროის გასატარებლად, აქ კლასში იმიტომ, რომ თქვენ იპოვით, რომ ისინი ყველა საკმაოდ ინტუიციური. ერთხელ, ის განკუთვნილია შვილი, მაგრამ ჩვენ გამოვიყენოთ რომ აჯავრებენ გარდა ზოგიერთი იმ ფუნდამენტური იდეები ცვლადები, მარყუჟების, პირობები, და მალე, რამ მსგავსი ფუნქციები და მოვლენები და თემა და სხვა ლამაზი რამ ჩვენ მისაღებად დიდი ხნის განმავლობაში, ფაქტობრივად შექმნა რაღაც ნულიდან. Pun განკუთვნილი. ახლა, რა მე ვაპირებ აქ არის დააწკაპუნეთ არა შუამდგომლობა, მაგრამ კონტროლი. და ეს მხოლოდ კატეგორიზაციის აქ და ვხედავ სხვადასხვა ფერი კომპლექტი ბლოკები. მაგრამ შეამჩნია რამდენიმე ნაცნობი სიტყვები. "თუ" და "სხვას თუ" და "განმეორებითი". და თქვენ ალბათ შეუძლია გამოიცნოს რომ თქვენში ფილიალი, ან პირობები ვნახეთ და კი looping მშენებლობა. ასე რომ ჩვენ გვაქვს მსგავსი ბლოკები აქ. მაგრამ ყველაზე საინტერესო ერთი ეს ერთი აქ. როდესაც მწვანე დროშა დააწკაპებთ, ეს, მათთვის, ვისაც ადრე programing გამოცდილება, უდრის მისი ძირითადი ფუნქცია. მაგრამ იმ უცნობ, ეს არის თავსატეხი ცალი რომ დაიწყება დაიწყოს ჩვენი მთელი პროგრამა. ეს ნიშნავს, როდესაც მე, ამ პროგრამა და დააჭირეთ მწვანე flag-- რომელიც შეგიძლიათ იხილოთ აქ, რომ ზედა მარცხენა კუთხეში UI, ასე რომ ვნახოთ, მწვანე დროშა შემდეგი წითელ გაჩერების ნიშანი? როდესაც მე დააჭირეთ რომ, ჩემი პროგრამა აპირებს. ახლა, მე ვაპირებ, რომ რამე სუპერ მარტივი ერთად Scratch. მე ვაპირებ წავიდეთ წინ და წასვლა გამოიყურება პანელი აქ, სადაც მე მაქვს bunch of purple თავსატეხი ცალი, და მე ვაპირებ წავიდეთ წინ და ამის გაკეთება რაღაც სუპერ მარტივი მოსწონს, ამბობენ. და შემდეგ შეამჩნია ეს ტექსტის თეთრი ყუთი არის editable-- მე ვაპირებ ვთქვა, "Hello world", ისევე, როგორც ჩვენ გააკეთა, რომ ტექსტური მობილური მომენტში წინ. და ახლა, თუ მე და დააჭირეთ მწვანე დროშა, მე უკვე დაპროგრამებულია. ეს არ არის განსაკუთრებით საინტერესო პროგრამა, მაგრამ მე კომპიუტერული რაღაც. მე დავიწყე პროგრამა და გააკეთა ის, რაც მე ვთქვი, ის უნდა გააკეთოს. ახლა, მე ვერ გაგრძელდება გადააადგილება უფრო და უფრო მეტი ამ თავსატეხი ცალი და ისინი აპირებენ interlock, მაგრამ მოდით Slap გარკვეული ტერმინოლოგიის აქ ჩვენ დავინახავთ განმეორებადი მთელი კურსი, და მართლაც კომპიუტერში მეცნიერების და პროგრამირების უფრო ზოგადად. ეს "ამბობენ" ბლოკი, შინდისფერი, მოდით დავიწყო მოუწოდებს განცხადებაში. ეს იგივეა დადასტურებული ფაქტი. ამის გაკეთება. ასე რომ, ეს ის კატეგორიაა, ინსტრუქციას, რომ თქვენ შეიძლება შესანახი კომპიუტერის ნაწილი პროგრამა ან ალგორითმი. და იყოს ნათელი, თქვენ ალბათ მიღებული მიანიჭა რომ თქვენ გაქვთ პროგრამების თქვენს კომპიუტერში. და ისინი სახის ალგორითმები, მაგრამ პროგრამა არის რამოდენიმე ალგორითმები რომ ზოგიერთი ადამიანი წერდა. ისინი დაფასოებული ეს და მათ გაიყიდა, ასე რომ თქვენ, ან ისინი გამოქვეყნდება ნახვა თქვენ ჩამოტვირთვა. ასე რომ, პროგრამა მხოლოდ მთელი bunch of zeros და პირობა, რომ, რატომღაც, ადამიანები შეიქმნა. და იმ ნიმუში zeros და პირობა წარმოადგენს რამ, საბოლოო ჯამში, როგორც "მიესალმები მსოფლიოში" ან "თამაში ეს მუსიკა "ან" თამაშობენ ამ ვიდეო " ან "გაუგზავნე ელ". მაგრამ ჩვენ დავბრუნდებით ისე, უფრო დეტალურად რა პროგრამა როდესაც თქვენ, თავს, წერენ ისინი. აქ არის კიდევ ერთი statement-- "დაელოდეთ ერთი წუთით". მე არ გამოიყენოს ეს არ არის, მაგრამ თუ მინდა ჩემი პროგრამა პაუზის ერთი წუთით რომ რამე, მე შემიძლია გითხრათ, რომ ამის გაკეთება. დაველოდოთ ერთი მეორე. ახლა კიდევ ერთი, შესაძლოა, "ითამაშოს sound." ასე რომ, ეს არის უნიკალური ნულიდან, ის აქვს უნარი ითამაშოს კინო. ასე რომ, განაცხადი მე შეიძლება გამოყენება, აქ, "ითამაშებს sound." იმავდროულად, ლოგიკური გამოხატვის, ასე რომ ეს არის fancier სიტყვა სახელობის ბიჭი სახელად ბატონი Bool, და ეს ყველაფერი არის კითხვა. True ან false მაუსის ქვემოთ? ლოგიკური გამოხატვის მხოლოდ ზოგიერთი გამოთქმა ინგლისურში რომ არის ჭეშმარიტი ან ცრუ. ან გამოსართავად. ერთი ან ნულოვანი. თქვენ შეგიძლიათ ვფიქრობ, რომ ნებისმიერი რაოდენობის გზა, მაგრამ ჭეშმარიტი ან ამ ცრუ, საბოლოო ჯამში. ასე რომ, "მაუსის ქვემოთ კითხვის ნიშნის" რომ იქნება ლოგიკური გამოხატულებაა. და შეგიძლიათ წარმოიდგინოთ, რომ სხვები, ალბათ. მაგალითად, "არის მარცხენა ნომერი ნაკლებია, ვიდრე სწორი ნომერი? " ეს, ძალიან, იქნება ლოგიკური გამოხატულებაა. "ნაკლები" არის ლოგიკური გამოხატულებაა. ეს ერთი, ძალიან, "ეხება მაუსის მაჩვენებელი." მე არ ვარ დარწმუნებული, თუ რატომ უწოდა მაუსის მაჩვენებელი. ეს მხოლოდ იმას ნიშნავს, არის კურსორი, არის arrow ეკრანზე, ეხება კატა, მაგალითად. ან სხვა ასპექტი ეკრანზე. და ეს საკითხი, ერთხელ და რომ ნიშნავს ლოგიკური გამოხატულებაა. რაღაც, რომ თქვენ შეიძლება გსურთ გამოიყენოთ მდგომარეობა. ასე რომ, ჩვენ მოვიდა, რომ რაღაც მომენტში. თქვენ შეგიძლიათ "და" რამ ერთად. ასე რომ, თუ გსურთ შეამოწმოთ, თუ ამ საქმე და ეს საქმე, თქვენ შეგიძლიათ გამოიყენოთ "და" ბლოკ მოსწონს ეს. და აი, ასეთ მდგომარეობაში. შეამჩნია ფორმის პატარა გახსნა ზედა ამ ყვითელი თავსატეხი ცალი, ეს თქვენში ფორმა რომ ჩვენ უბრალოდ დაინახა მომენტში წინ. თითოეული ამ ლოგიკური გამონათქვამები აქვს ეს აღნიშნა edges მარცხენა და მარჯვენა. და ეს იმიტომ, MIT ეგ გადაწყვიტა რომ ვიზუალურად გადმოცემის ფორმებს, შეგიძლიათ სახის დავეხმაროთ ხალხს, სტუდენტები და ბავშვების მსგავსად, სახის შეავსონ ბლანკები სიტყვასიტყვით. ახლა რომ puzzle-- რომ გახსნის ცოტა პატარა, და, როგორც ვნახავთ, პროგრამა, ნულიდან, ის გაიზრდება ჯდება. ის შეინარჩუნებს თავის ფორმის, საბოლოო ჯამში. ასე რომ, მდგომარეობა მოდით თქვენ გადაწყვიტეთ "უნდა რაღაც თუ არა?" ლოგიკური გამოხატვის ეს არის ნამდვილი კითხვა თქვენ იყენებთ გადაწყვიტოს შემიძლია წასვლა მარცხენა OR შემიძლია მარჯვნივ როდესაც მე ექმნებათ ამ ე.წ. ჩანგალი საგზაო? თქვენ შეგიძლიათ ორ შტოს. IF რაღაც მართალია, ამის ეს, სხვას რომ გზა, ან შეგიძლიათ უბრალოდ არაფერი ყველა, როგორც ამ ბლოკის ნაგულისხმევი. მსგავსად ამისა, შეგიძლიათ ბუდე ეს ყველაფერი. ასე რომ, თუ გსურთ, რათა გასამმაგდეს ჩანგალი გზა, ან ამის გაკეთება, ან ამა თუ იმ, თქვენ შეგიძლიათ მხოლოდ ბუდე ეს ყველაფერი ერთად. და იწყება მისაღებად ცოტა მახინჯი, საბოლოოდ, რა თქმა უნდა, მაგრამ ლოგიკა უცვლელი რჩება. თქვენ შეგიძლიათ სიტყვასიტყვით წაკითხული ეს ყველაზე ქვედა და ნათქვამია, თუ რას means-- თუ ეს მართალია, ამისათვის, სხვას თუ სხვაგან. Loop არ მიიღოთ მარტივი Scratch. Forever შემდეგ. ახლა თქვენ შეიძლება არ ფიქრობთ თქვენ ბევრი რამის გაკეთება შეუძლია, რადგან იქ არ არის ბევრი სივრცეში შორის ყველაზე და ბოლოში ამ თავსატეხის ნაწილის გახსნა. მაგრამ დაინახავთ Scratch აპირებს იზრდება ჯდება როგორც მრავალი თავსატეხი ცალი როგორც გსურთ cram არსებობს. სხვა მარყუჟი შეიძლება იყოს გამოითქვა ერთად იმეორებს. თუ იცით წინასწარ, "მე მინდა, რომ რამე 10 ჯერ, " თქვენ შეგიძლიათ უბრალოდ ვუთხრა Scratch რაღაც 10 ჯერ. და, ამავე დროს, ჩვენ შეგვიძლია ცვლადები. ასე რომ, აქ თვითნებური ერთი, ეს ნარინჯისფერი ამ შემთხვევაში, და ეს არის სწრაფი ტურნეს. ერთხელ, თქვენ იპოვით ამ ძალიან ხელმისაწვდომი ერთხელ თქვენ დაიწყოს მიუთითებს და დაწკაპვით. მე სახელად ჩემი ცვლადი n, მაგრამ მე შეიძლება დაასახელა ის არაფერი მინდა, და მე მიიღწევა იგი აქ, ამ თვითნებური მაგალითად, ნულოვანი. ახლა ვხედავთ პროგრამის მოსწონს hello მსოფლიოში არ არის ყველა, რომ მყარი, მოდით რეალურად ქმნის რაღაც რომ ყოფილი სტუდენტი გააკეთა. ნება მომეცით წავიდეთ წინ და ქმნის, მაგალითად, აქ, რომელიც მე მიყვარს აქვს მოხალისეთა. ყველა უფლება, თუ როგორ about-- მოდით წავიდეთ შორს. დიახ, მოდის up. რა გქვია? ABBY: Abby. დევიდ ჯ Malan: Abby, მოდის up. ასე რომ ოდესმე ითამაშა ეს თამაში ადრე? ABBY: არა დევიდ ჯ Malan: ყველა უფლება. დავით, კარგია თქვენთან შეხვედრა. Come on დასრულდა. და რა არის თქვენი პროგრამირების ფონზე, თუ რაიმე. ABBY: მე გავიგე, რაღაც C ++. დევიდ ჯ Malan: თქვენ გავიგე ზოგიერთი C ++. და რა არის თქვენი თამაში სათამაშო ფონზე? ABBY: არ ბევრი. დევიდ ჯ Malan: OK, ასე რომ ჩვენ მიიღოს, რომ. ასე რომ, აქ არის თუ როგორ თამაში იმუშავებს. მე ვაპირებ წავიდეთ წინ და დააჭირეთ მწვანე დროშა, რომელიც არის აქ ზედა მარჯვენა. ახლა თქვენი წინამორბედი კლასის მოცემული ზოგიერთი ინსტრუქციები აქ. და რაღაც მომენტში, იგი ამბობს "სივრცეში უნდა დაიწყოს." ასე რომ წავიდეთ წინ და მოხვდა spacebar. კომპიუტერული თამაში: Pikachu. დევიდ ჯ Malan: და მიზანია დაჭერა საკვები, როგორც გამოსახული იქ მარცხენა. და [INAUDIBLE] [GAME მუსიკის დაკვრა] დევიდ ჯ Malan: Aww, ასევე, დიდი მადლობა სათამაშოდ. ჩვენ გვაქვს პატარა დამშვიდობებისას საჩუქარი თქვენთვის. ჩვენ გვაქვს CS50 სტრესი ბურთი, თუ გსურთ აირჩიოს. ყველა უფლება, კარგი თქვენთან შეხვედრა. დიდი მადლობა ჩამოსვლისათვის და რთული. ასე რომ, ჩვენ გვაქვს უფრო სტრესი ბურთები, ისე მოდით კიდევ ერთი მაგალითი, რომ მოტივაცია. მოხალისე? ყველა უფლება, როგორ შესახებ სწორედ აქ წინაშე. რა გქვია? PHILLIP: Phillip. დევიდ ჯ Malan: ფილიპ. მოდის up, Phillip. ასე რომ, Phillip იქნება დადგა ერთად ერთი თამაში რომ ერთი თქვენი წინამორბედები წერდა, როგორც ნაწილი პრობლემა მითითებული ნულოვანი, ე.წ. Ivy ის მძიმე თამაში. და ჩვენ ვხედავთ, მხოლოდ მომენტი, რა იგულისხმება ამ. Phillip, კარგია თქვენთან შეხვედრა. რა არის თქვენი ფონზე? PHILLIP: შესრულებულია ბევრი კოდირების. ვაკეთებ პატარა სათამაშო, ძალიან. დევიდ ჯ Malan: OK. მივიღე ბევრი სათამაშო, ძალიან. და თუ ითამაშა ეს თამაში ადრე? PHILLIP: არარის დევიდ ჯ Malan: ყველა უფლება, ასე რომ აქ ჩვენ მივდივართ. მე ვაპირებ წავიდეთ წინ და დააჭირეთ მწვანე დროშა. [GAME MUSIC] [MUSIC MC Hammer, "U ვერ შეეხოთ ამ"] PHILLIP: [INAUDIBLE] დევიდ ჯ Malan: [INAUDIBLE] PHILLIP: [INAUDIBLE] [იცინის] [MUSIC MC Hammer, "U ვერ შეეხოთ ამ"] დევიდ ჯ Malan: [INAUDIBLE] გუთანი მეშვეობით. PHILLIP: [INAUDIBLE] დევიდ ჯ Malan: წავიდეთ წინ. [MUSIC MC Hammer, "U ვერ შეეხოთ ამ"] დევიდ ჯ Malan: ყველა უფლება. გილოცავთ. [ტაში] დევიდ ჯ Malan: ჩვენ, პოსტი, რომელიც მოგვიანებით ისე რომ თქვენ შეგიძლიათ procrastinate იგი ასევე. პრინსტონის მოდის შემდეგ, მას შემდეგ, რაც. ასე რომ, ახლა მოდით რეალურად გაგრძელება დავიწყოთ ნულიდან, ასე ვთქვათ, და რეალურად აშენება წლამდე ჩვენ შეგვიძლია აჯავრებენ გარდა ზოგიერთი იდეები და მიიღეთ რაღაც კიდევ უფრო რთული ბოლომდე. მე ვაპირებ აქ და მე ვაპირებ წავიდეთ წინ და შევქმნათ ახალი ფაილი. ასე რომ კიდევ ერთხელ, პრობლემა კომპლექტი ფეხით თქვენ მეშვეობით ზოგიერთი ამ ნაბიჯებს. მაგრამ, ყველა გავაკეთე იყო go ფაილის მენიუ და მე განაცხადა, რომ "ახალი", იმდენად ჰგავს Microsoft სიტყვა, ან რაიმე პროგრამა, როგორიცაა, რომ. და მოდით წავიდეთ წინ ახლა და ჩვენ განხორციელებული "Hello world" მომენტში წინ, მაგრამ მოდით რაღაც პატარა cuter. მე ვაპირებ წასვლა მდე მოვლენები. და მე ვაპირებ ამის გაკეთებას ", როდესაც მწვანე დროშა დააწკაპებთ ". და შემდეგ მე ვაპირებ გამოყენება, უნდა ითქვას, ფილიალი. ამიტომ, მე ვაპირებ გამოიყენოთ "თუ" მდგომარეობაში. და შეამჩნია, როგორ, როგორც კი მივიღებ ახლოს ის, რომ სურს ვადამდელი ერთად. ასე რომ მე გაუშვებენ და ის snaps ერთად. და ახლა შემიძლია რაღაც საინტერესო. თუ მე გადახვევა მეშვეობით აქ, მე ვაპირებ ვხედავ მთელი bunch of ბლოკები. თუ მივდივარ "მონაცემები", - ნება მომეცით დააშორებს in-- არსებობს რაღაც შესახებ ცვლადები. თუ მივდივარ "მოძრაობის," თქვენ შეგიძლიათ როგორც ჩანს, გახდეს რამ გარშემო. თუ მივდივარ "ოპერატორები", - ო, ეს არის საინტერესო, მე შეგიძლიათ აირჩიოთ შემთხვევითი რიცხვების. ასე რომ, ნება მომეცით რაღაც მხოლოდ ზოგიერთი ალბათობა, მხოლოდ იმიტომ. მე ვაპირებ წავიდეთ წინ და გადაიტანეთ ეს თავსატეხი ცალი, ეს არის, რომ ნაკლები ბლოკი, ასე რომ, ეს მხოლოდ "ეს ნაკლებია, ვიდრე ერთი?" მაგრამ მე არ მინდა, რომ მძიმე კოდი რიგი იმის გამო, რომ იყოს საკმაოდ უაზრო. ამიტომ, მე ვაპირებ, რომ გადაიტანეთ ეს ნაჭერი აქ, და შეამჩნია, როგორ ეს snaps, და ახლა ნება მომეცით წავიდეთ წინ და აცხადებენ, რომ "თუ ნომერი, რომელიც აიყვანეს შემთხვევით ნაკლებია, ვიდრე ექვსი წლის შემდეგ. " რატომ ნაკლებია, ვიდრე ექვსი? რა ალბათობა არის ეფექტურად მომცემს, უბრალოდ ინტუიციურად? დაახლოებით 50%, არა? თუ რაოდენობის, რომ ვხვდები შემთხვევით 1 და 10 შორის ნაკლებია, ვიდრე ექვსი, ნათელია, რომ ეს არის ერთი, ორი, სამი, ოთხი, თუ ხუთი. და ისე, რომ აპირებს მომეცი 50% ალბათობა იმისა, თუ რა ხდება? კარგად მოდით გავაკეთოთ რაღაც, ეს "თამაში ხმის meow". და შეამჩნია, კიდევ ერთხელ, თავსატეხი ცალი იზრდება ჯდება, ასე რომ, სანამ ფორმის ემთხვევა. ეს არის ის, რაც მნიშვნელოვანია. ნება მომეცით წავიდეთ მეტი Scratch აქ და დააჭირეთ "ითამაშებს." არაფერი ხდება. ის არის, რომ შეცდომა? არა, არ არის საჭირო. ეს შეიძლება იყოს, რომ დიდი რაოდენობის შეირჩა. ასე რომ, მოდით ეს კიდევ ერთხელ. არაფერი. [Meow] დევიდ ჯ Malan: არსებობს ეს. [Meow] დევიდ ჯ Malan: Again. პოსტები [Meowing] დევიდ ჯ Malan: ასე რომ, თუ თქვენ ოდესმე ითამაშა თამაში, რა თქმა უნდა, სადაც პერსონალის ხდება შემთხვევით, როგორც ცუდი ბიჭები მოდიან თუ არა მოდის ეკრანზე, ან ყველაფერი დაცემა და არ ეცემა, ეს მხოლოდ იმიტომ, რომ რაღაც სუპერ მარტივია, როგორც ეს ხდება. აირჩიოთ შემთხვევითი ნომერი, და თუ ეს ნაკლებია, ვიდრე ზოგიერთი ღირებულება, იქნებ ამის გაკეთება ან იქნებ გავაკეთოთ, რომ. ჩვენ შეიძლება ითვალისწინებდეს რომ შევიდა მდგომარეობაში. მოდით რაღაც განსხვავებული. მიადევნე თვალი იმისათვის, რომ მოშორებით. თქვენ შეგიძლიათ მოშორება პერსონალის მიერ უბრალოდ გადმოიყვანა ეს off to მარცხენა და გაუშვან. ნება მომეცით წავიდეთ წინ და ამის გაკეთება მარადიულად ბლოკი და ძალიან სწრაფად გააკეთოს რაღაც უსიამოვნოს. ნება მომეცით წავიდეთ წინ და ამბობენ, რომ "თამაში ხმის meow". მაგრამ მე არ მინდა, რომ ეს იყოს ძალიან შემაშფოთებელი, ასე რომ, ნება მიბოძეთ აითვისებდა ამ ბლოკში, "დაველოდოთ ერთი მეორე," და ცნობა არ არსებობს უფრო ოთახი მას. მაგრამ თუ თქვენ ახლო საკმარისი, მას სურს იქ. ასე რომ მე გაუშვებენ და ის იზრდება შეავსოთ ბლოკი. ასე რომ, ახლა, ეს არის loop. [Meowing] დევიდ ჯ Malan: მე ვარ ფაქტიურად ამით სამუდამოდ. ისევ და ისევ. რომ უბრალოდ არ არის ბუნებრივი sounding. ნება მომეცით წავიდეთ წინ და შეცვალოს ეს რომ არა ერთი, მეორე, ორ წამში და დააჭიროთ. და რა არის ლამაზი შესახებ Scratch არის რომ თქვენ შეიძლება პროგრამის ინტერაქტიულად. ცვლილება, შესაძლოა, დააჭიროთ და ითამაშეთ ერთხელ, და ეს უბრალოდ შეინახოს აპირებს. ისე, ახლა რატომ არ ვაკეთებთ რაღაც ცოტა cuter? იმის ნაცვლად, რომ ყველაფერი ნულიდან, ნება მომეცით წავიდეთ წინ და ქმნის წინასწარ გააკეთა ის, რომ მე წინასწარ გამომცხვარი, ე.წ. "Pet კატა". და ჩვენ პოსტი ყველა ეს ფაილი შემოსული, და პრობლემა მითითებული ნულოვანი გეტყვით როგორ შედიხართ და გახსნა მათ up. და შენიშნავს, რომ ეს არის საკმაოდ მარტივია. მაგრამ წინასწარ, როგორც ჩანს, არ მოგვეწონა "სამუდამოდ" ბლოკი, ასე რომ მაქვს ციკლი. და შემდეგ მაქვს "თუ" მდგომარეობა. მაქვს ლოგიკური გამოხატულებაა. ასე რომ, ინგლისური, მხოლოდ glancing ზე ეს, განსაკუთრებით, თუ თქვენ არასდროს პროგრამირდება ადრე, უბრალოდ ინტუიციურად, რა არის ეს აპირებს, ეს პროგრამა? [აუდიტორია თემა] დევიდ ჯ Malan: თუ თქვენ PET, კატა, კატა აპირებს meow, არა? იმის გამო, რომ "სამუდამოდ unchecking" არის მაუსის მაჩვენებელი ეხება კატა. ასე უნდა იყოს მკაფიო და მე არ ვამბობ, ეს ადრე, ყველა ამ თავსატეხი დარტყმები და წარწერა, ჩვენ შერწყმული მათ, ასე ვთქვათ, დამწერლობის არის სინონიმი პროგრამა, მართლაც, ეკუთვნის ამ კატა. და მიზეზი is-- რადგან გაფრთხილების როგორ ეს იგივე cat აქ არის ასახული, ქვემოთ აქ თქვენ შეგიძლიათ შექმნათ მეორე კატა ან ძაღლი ან მართლაც არაფერი გსურთ გრაფიკულად. შეგიძლიათ იმპორტი რაღაც Photoshop, ან მოსწონს, და ინტეგრირება რაღაც თუ გვინდა, რომ ეს პროექტი. და რას იპოვით, საბოლოო ჯამში, არის ის, რომ თქვენ შეგიძლიათ დაამატოთ სკრიპტები, დაამატოთ თავსატეხი ცალი, ინდივიდუალური სიმბოლო. ასე რომ, ეს ყველა ეკუთვნის ამ კონკრეტულ კატა. ახლა, თუ წავიდეთ წინ და ითამაშოს ეს პროგრამა, არაფერი ხდება. მაგრამ ეს არის გაშვებული. პროგრამა არის სამუდამოდ loop, სახის ელოდება რა მოხდება? [აუდიტორია თემა] დევიდ ჯ Malan: To pet კატა. ასე რომ, თუ მე გადაადგილება ჩემი მაუსის მიმართ him-- [Meowing] დევიდ ჯ Malan: ასე რომ, ახლა მე petting კატა. ამავდროულად, ჩვენ გვაქვს ორმაგი ფილიალი. ნება მომეცით წავიდეთ წინ და გახსნა up არ pet კატა. ჩვენ პოსტი ამ ონლაინ ისევე. ეს არის ცოტა მეტი რთული, მაგრამ ცხადია, თქვენ ვერ ვხვდები, ალბათ, რა მოხდება. [Meowing] დევიდ ჯ Malan: კატა meowing, გრანდიოზული ძველი დრო. მაგრამ ეს პროგრამა რა თქმა უნდა, სახელწოდებით "არ Pet კატა" ასე ნათლად, მინდა pet კატა. [ROARING] დევიდ ჯ Malan: არ pet კატა. ახლა, მოდით, შევხედოთ კიდევ ერთი მაგალითია აქ. ამ ერქვას "Hi, Hi, Hi," ამისთვის რომ იქნება, იმიტომ, რომ როგორც კი მე აწარმოებს ამ რამ [SEAL Barking] დევიდ ჯ Malan: ძალიან ადვილად წერენ შემაშფოთებელი Scratch პროგრამები. [SEAL Barking] დევიდ ჯ Malan: ახლა ჩვენ არ უნდა დიდი დეტალურად ყველა ამ, მაგრამ შეამჩნია რამდენიმე ახალი ფუნქცია აქ. არსებობს ცვლადი, მოუწოდა "მდუმარე" და მაშინ არსებობს რამოდენიმე პირობები. და ახლა, ნება მომეცით მხოლოდ tease თქვენ განაცხადა, რომ თუ ეს ბიჭი იღებს ძალიან შემაშფოთებელი, მე ვერ მოხვდა spacebar და ის გაჩერდება. იმის გამო, რომ როლი წყდება ამ ორი სკრიპტები ასეთია. ერთი მათგანი აკეთებს ყეფა ყოველ რამდენიმე წამში. მეორე კი უბრალოდ ელოდება ჩემთვის მოხვდა spacebar. და თუ მოხვდა spacebar, ის აპირებს შეცვალოს სახელმწიფო ცვლადი ღირებულება ამ ცვლადი, რომელიც, როგორც ჩანს, ე.წ. "მდუმარე" მე არ გამოიძახა ეს რაღაც მოსაწყენი მოსწონს N, მე მას ინგლისური სიტყვა, "მდუმარე". 1 დან 0 ან 0 1. საწყისი ჭეშმარიტი ყალბი ან მცდარი ჭეშმარიტი. და ასე რომ თქვენ შეგიძლიათ რეალურად ვხედავთ, რომ თქვენ შეიძლება ორ სკრიპტები, ორ პროგრამების გაშვებული ერთდროულად, და ორივე მათგანი შეიძლება იყოს სხდომაზე მარყუჟის აკეთებს რაღაც. ელოდება ადამიანს გააკეთოს რაღაც დარტყმის spacebar. [SEAL Barking] დევიდ ჯ Malan: ახლა ის თავის გზაზე კიდევ ერთხელ. [SEAL Barking] დევიდ ჯ Malan: ასე რომ რა შეიძლება გავაკეთოთ ამ მაგალითებიდან? კარგად, მოდით წავიდეთ წინ და ამის მაგალითად დათვლის ცხვარი. ჩვენ გავაგრძელებთ ამ გასწვრივ ხაზი აქ of-- მოდით გახსენით ცხვრის მაგალითი. და შენიშნავს, ისევე როგორც ადრე, ამ ერთი, საბედნიეროდ, ცოტა ნაკლებად შემაშფოთებელი. ერთხელ მოხვდა ითამაშოს აქ Oh არა, ეს არის შემაშფოთებელი. იგი აპირებს baa ზოგიერთი ალბათობა. მოდით ითამაშოთ ამ ერთხელ. [ცხვარი BLEETING] დევიდ ჯ Malan: ერთადერთი განსხვავება არის ჩვენ შეიცვალა კოსტუმი, ასე ვთქვათ, და ჩვენ განახევრებას და აცხადებენ, რა, რომ რეალური რიცხვი არის. კარგად მოდით წავიდეთ წინ და ეს ერთი ნაბიჯი შემდგომი. და ნება მომეცით აჯავრებენ თქვენ ერთი სხვა ფუნქცია აქ. მოდით წავიდეთ წინ და ქმნის პროგრამას სახელწოდებით Threads. იმდენად, როგორც თქვენ შეიძლება ჰქონდეს ერთი sprite, რომელსაც სხვადასხვა სკრიპტები, თქვენ შეგიძლიათ ორი sprites, ფრინველის კატა, რომელთაგან თითოეულს საკუთარი დამწერლობა აქვს. და თითოეული მათგანი შეგიძლიათ მუშაობას ერთდროულად. თუ თქვენ ოდესმე მსმენია სიტყვა "multithreading" კომპიუტერი "multithreaded" ნიშნავს მას შეუძლია გააკეთოს მრავალჯერადი რამ ერთბაშად, და, მართლაც, ასე რომ შეგიძლიათ ნულიდან. და ახლა შეამჩნია ფრინველის სახის dumb. უბრალოდ აკეთებს რამ, შემთხვევით, bouncing off ეკრანზე. ცხადია, რომ ეს კატა უკვე პროგრამირდება სახის აქვს ეძებს შესაძლებლობები სახლში ფრინველის რადგან ის ყოველთვის მიუთითებს მას. სანამ საბოლოოდ, იჭერს ფაქტობრივი ფრინველი. ასე რომ მე არ დაეფუძნება დეტალები აქ, მაგრამ შეგიძლიათ სახის glimpse იგივე ფორმის, ზოგი "თუ" პირობებში, ზოგიერთი ცვლადის, შესაძლოა, რამდენიმე მარყუჟების, რომლებიც საბოლოოდ აკეთებს იგივე. ახლა ნება მომეცით წავიდეთ წინ და გახსნა up რაღაც საერთოდ, გაღიზიანება, ზოგიერთ თქვენგანს, განსაკუთრებით იმ უფრო კომფორტული, რა შეგიძლიათ რეალურად გავაკეთოთ ეს. მე ვაპირებ წავიდეთ წინ და ქმნის Button აქ. და ეს არის სუპერ მარტივი, ერთი შეხედვით, პროგრამა, მაგრამ უყურებს, რა მოხდება როდესაც I-- Watch რა ხდება, როდესაც მე გახსნა ამ ვერსიაში ეს, აქ ბრაუზერი scratch.mit.edu. და როდესაც მე დააჭირეთ ამ დიდი წითელი ღილაკს, შეამჩნია, რა ხდება. ასე რომ, რა ხდება აქ? არსებობს რეალურად გაცილებით მეტი სირთულე ხდება ქვეშ hood, მიუხედავად იმისა, რომ მე განხორციელებული ამ, ან გულწრფელად, Dan Bradley განხორციელებული აქვს ეს ასე მარტივად. იგი შექმნილია საბაჟო Scratch თავსატეხი ნაჭერი, რომელიც ცნობილია როგორც Scratch გაფართოება, მან ეს თემა. და რა Toggle არ არის ის აგზავნის გაგზავნა ინტერნეტით. და რომ თავად გზავნილი გამოიყურება პატარა cryptic. მაგრამ ეს, ძალიან, თქვენ გვესმის ტერმინი ბოლოს. გაგზავნა, რომ ის რეალურად გაგზავნის გამოიყურება პატარა რაღაც მსგავსი. ეს უბრალოდ ტექსტი. Cryptic. თქვენ მიხვდებით მას დრო მივიღებთ პრობლემა კომპლექტი შვიდი. უბრალოდ გაგზავნის ტექსტური გაგზავნა ინტერნეტში სერვერზე. და რომ სერვერზე არის, საბოლოო ჯამში, საუბარი ამ ნათურა, რომელიც აქვს ერთი იმ ლამაზი ნათურები ის, რომ თავად არის საუბარი რომ Wi-Fi ქსელი, სადაც ადგილობრივი მოწყობილობის ქვემოთ აქ და, საბოლოო ჯამში, ეს, ფაქტობრივად, გარდამტეხი შუქი და off. მაგრამ ჩვენ შეგვიძლია გავაკეთოთ მეტი საინტერესო რამ მაინც. ყურადღება მიაქციეთ, რა Dan ასევე ჩვენთვის. მან რამდენიმე sprites, თითოეული რომელსაც აქვს script ელოდება დაჭერით. და თუ მე დააჭირეთ წითელი, იგი მიდის წითელი. თუ მივიღებ ლურჯი, იგი მიდის blueish. მწვანე, ყვითელი, ნარინჯისფერი. და ეს ყველაფერი ხდება აპირებს გამოსავალი გადატანა ინტერნეტით, უკან ქვემოთ აქ ნათურა, on და off. და თუ თქვენ შეგიძლიათ დარწმუნებული it-- და ეს არის ალბათ ერთ ერთი ყველაზე რთული Scratch პროექტები ვინმეს აქვს implemented-- მან გააკეთა ის, რომ სამართლიანობა, ერთ დღეში. და ეს იყო გამოწვევა, რომელიც ჩვენ ჩამოაგდო დენ, როცა დავინახეთ, აქვს ორობითი ნათურებით, ჩვენ გვაქვს Scratch, თუ როგორ შეგვიძლია დააკავშიროთ მათ? და, მართლაც, ეს არის აბსოლუტურად რაღაც ვინმე ამ ოთახში შეიძლება არ სემესტრის end-- არის ის reimplemented ორობითი ნათურებით გამოყენებით იგივე ინტერფეისი, რომელიც ჩვენს iPad ოთხშაბათს. ასე რომ, ახლა, თუ რეალურად დააჭირეთ პლუს აქ, ჩვენ გვაქვს ერთი, ორი, სამი. მე ვერ მოხვდა 16 და აქციოს, რომ ერთი. 128, და ასე შემდეგ. ახლა თუ ეს მარტო და წყალში თქვენი აზრით, თქვენ შეიძლება გავაკეთოთ რამ, ბევრად უფრო ხელმისაწვდომი, არ მოიცავს ნებისმიერ ტექნიკის, რა თქმა უნდა. უბრალოდ რამ ეკრანზე თავისთავად. და, მართლაც, რაც ყველაზე მეტად სტუდენტები დასრულდება მდე აკეთებს, რომ რაღაც თამაში, რამდენიმე ნაჭერი ხელოვნების ნაწარმოების, გარკვეული სახის ინტერაქტიული ანიმაცია. და მინდა ვთქვა, ერთი ჩვენი ჩადება უკვე ეს ერთი. და ვიფიქრე, რომ თუ ჩვენ შეიძლება dim განათება, ჩვენ მიიღოს glimpse ამ ბოლო Scratch პროექტის დასკვნა. მაგრამ ის, რაც თქვენ უნდა გვახსოვდეს, რადგან შემიძლია tease თქვენ ერთი ბოლო დეტალი, sectioning მომავალი კვირიდან დაიწყება. ოფისი საათის მომავალი კვირიდან დაიწყება. პრობლემა მითითებული ნულოვანი დაიდება CS50.harvard.edu დღესვე. და თქვენ დაგხვდებათ პრობლემა მითითებული ნულოვანი რომ CS50 საკუთარი Zamyla Chan, რომელიც უძღვება საუკეთესო ჩვენი walkthroughs. ეს არის ჩანერგილი ვიდეო პრობლემა კომპლექტი რომ გამართავს თქვენი მხრივ ბევრი თავდაპირველი წყობის და მრავალი შესაძლო დიზაინის გადაწყვეტილებები. ასე რომ, თუ თქვენ ოდესმე რომ გრძნობები როცა კრეფა up საშინაო დავალება და მაინტერესებს, სად უნდა დაიწყოს? მას მოუწევს, რომ პასუხი თქვენთვის. ახლა კი, საბოლოო პროგრამა ერთი თქვენი წინამორბედები პასუხი კითხვაზე "რას fox ვთქვა?" [MUSIC Ylvis, "რა FOX თქვით?] Ylvis: (სიმღერისა) Dog მიდის woof. კატა მიდის meow. Bird მიდის tweet და მაუსის გადის squeak. Cow moo მიდის. Frog მიდის croak. და სპილო მიდის toot. Ducks ამბობენ quack და თევზის წასვლა BLUB. და ბეჭედი მიდის ow ow ow, მაგრამ არსებობს ერთი ხმა, რომ არავინ იცის, რას მელა ვთქვა? და დევიდ ჯ Malan: ეს არის ის, CS50. ვნახავთ თქვენ at Puzzle დღე და ორშაბათს. [ტაში] [MUSIC Ylvis, "რა FOX ვთქვა?"] მთხრობელი: და ახლა ღრმად აზრები, მიერ Daven Farnham. დღეს მე მივიღე მოხვდა პირისპირ სატელეფონო წიგნში. გაუგებარია, რადგან მე ვარ, სახლში თვალს ონლაინ რეჟიმში.