სპიკერი: მე ვარ [inaudible]. და მე უფროსი at Leverett სახლი. ვსწავლობ კომპიუტერულ მეცნიერებათა და მე TF for CS50. როგორც freshman, მე კი არ ლეპტოპი ან სმარტფონი. არ მქონდა პროგრამირების გამოცდილება. CS50 იყო ყველაზე დასამახსოვრებელი, რა თქმა უნდა, რომ მე ჰარვარდის რადგან ეს იყო ბრძოლა, მაგრამ ეს იყო ნამდვილად fun ბრძოლა ამავე დროს. და მე უამრავი საოცარი, მუდმივ მეგობრები და გავიგე, ბევრი ნამდვილად მოქმედი უნარი. მე მხოლოდ ასე მოხარული ვარ, რომ მე არ ნება ჩემი ნაკლებობა ფონზე იყოს საბაბი me არ მიიღებს CS50. მე ვარ [inaudible]. მე ვარ უფროსი ზე Leverett სახლი, კლასი 2014 წელს. და მე CS50. დავით Malan: ასე რომ, ეს CS50. ეს არის ბოლომდე კვირაში ნულოვანი. და გავიხსენოთ, სადაც ჩვენ დავიწყეთ ბოლო დროს, იყო ეს ნათურები, რომლებიც იმდენად პოპულარული, რომ წავედით და იყიდა უფრო დღეს. ამიტომ, მე ვფიქრობ, ეს იქნება ჩვენი რამ წელს - სამაგიდო ნათურები თუ ამუშავება სცენაზე, სულ ცოტა, სანამ ჩვენ ამოიწურა. მაგრამ ჩვენ გამოიყენება ამ გაწვევას, დანერგვა საფუძვლები წარმომადგენლობა მონაცემები. ჩვენ გვჭირდებოდა გზა დაიწყოს წარმოადგენს ინფორმაციას შიგნით კომპიუტერი. და მარტივი გზა უნდა გააკეთოს, რომ იყო ერთი ნივთიერება, ელექტროენერგია. და მარტივი, რაც შეგიძლიათ გააკეთოთ ერთად ელექტროენერგიის აქციოს ეს და ეს off. მოდით ელექტრონები ნაკადი თუ არა. და გამოყენების ორი ძირითადი ქვეყნების, შუქი და თუ ცრუ და ჭეშმარიტი, ან ნულოვანი და ერთი, ჩვენ დავიწყეთ, რომ ჩვენ ვერ ავაშენებთ up, ამ შემთხვევაში, მსუბუქი ბოლქვები, უფრო ნომრები, ვიდრე უბრალოდ ნულოვანი და ერთი. ჩვენ დათვლილი რაც შვიდი, მაგალითად, ბოლო დროს. მაგრამ ყველა ჩვენ უნდა გავაკეთოთ არის შენარჩუნება სროლა უფრო და უფრო მეტი ნათურებით იმ პრობლემა და, მართლაც, ჩვენ შეგვიძლია წარმოადგენს ნებისმიერი რაოდენობის, რომ ჩვენ შესაძლოა, შესაძლოა სურთ. ასევე, ჩვენ transitioned სწრაფად შემდეგ ოთხშაბათს ამ byte მოხალისეთა. 8 ბიტი არის ის რასაც ჩვენ ზოგადად მოვუწოდებთ ნაწილად, ასე რომ რვა მოხალისეთა ოთხშაბათს, რომლებიც ერთობლივად იყო წარმოადგენს რვა ბიტი. ხოლო როდესაც ხელში მივიდა up, ისინი ერთი. ხოლო როდესაც მათ ხელში იყო ქვემოთ, იყო ნულოვანი. და ჩვენ გვქონდა ეს ხალხი ამუშავება სცენაზე რატომ? რასაც ჩვენ ვერ გააკეთებს ერთად ამ რიგითობა ბიტი? შესაქმნელად ანბანი. ჩვენ შევძელით აშენება თავზე რომ წინამორბედი გაკვეთილი ისწავლა და რეალურად დაიწყოს, რათა უფრო საინტერესო ინფორმაციას, რომ სულ ცოტა მეტი ნაცნობი us ადამიანები. და ეს იქნება განმეორებითი მთავარი თემა 50, არამედ კომპიუტერში მეცნიერების უფრო ზოგადად, ამ იდეის layering, სადაც დასასრულს დღეს, თუ მართლა დაიწყო საფუძვლები კომპიუტერული, დიახ, ეს zeros და პირობა. და ქვეშ, რომ ეს უბრალოდ ელექტროენერგია. მაგრამ ჩვენ ძალიან სწრაფად დაიწყოს მიიღოს იმ დაბალი დონე დეტალების მიანიჭა და დავიწყოთ ფენის თავზე წარსულში მუშაობდა გაკეთდეს ისე, რომ ჩვენ, საბოლოო ჯამში, მიერ სემესტრის ბოლოს და, მართლაც, ზოგადად, კომპიუტერული მეცნიერები და პროგრამებში, შეუძლია გააკეთოს რამდენიმე მართლაც ძლიერი რამ by ოპერაციული მუშაობა რომ ჩვენ ჩვენს თავს არ კეთდება და ასევე იდგნენ უნდა სხვები. ახლა ჩვენ სწრაფად transitioned ოთხშაბათს მხოლოდ სჭირდება წარმოადგენს ინფორმაციას სურვილს რაღაც ეს. ასე რომ, რა მივიღეთ განსაზღვრავს ალგორითმი როგორც? რიგი ინსტრუქციები. ასე რომ, მთელი რიგი ინსტრუქციები, რიგი ნაბიჯები, რომლებიც თქვენ, ადამიანური, ან კომპიუტერი, უფრო, როგორც წესი, რომ შეასრულოს ერთ შემდეგ სხვა, რათა რათა მივაღწიოთ გარკვეული მიზანი. და ჩვენ გვქონდა რამდენიმე მიზნებს ბოლო დროს, რომელთაგან ერთი იყო დათვლა ადამიანი ოთახში. და კიდევ ერთი ასეთი მაგალითი იყო, რათა იპოვოს მაიკ სმიტი გამართული სატელეფონო წიგნში. ასე, რომ თქვენ შეიძლება გავიხსენოთ, რომ მე დახიეს ტელეფონი წიგნის ნახევარი მიმართ ამ მიზნით up მოძიებაში მაიკ სმიტი. მიზნით, რომ ვიზუალური იყო დემონსტრირება, კიდევ ერთხელ, რომ ჩვენ ფაქტიურად tearing ამ პრობლემას ნახევარი, ნახევარი, ნახევარი, და ძალიან სწრაფად მიმდინარეობს, როგორიც 1000 გვერდიან მხოლოდ ერთი გვერდი. იმ თქვენ რომელმაც გაუშვა ეს კვირა, მეგონა, ჩვენ მინდა ითამაშოს უკან ზოგიერთი მასალა, რაც თქვენ გაუშვა. მოდით შევხედოთ. [ვიდეო აღწარმოების] -იქ წასვლა. 1500 გვერდების, ნიცაში სუფთა ხაზი, ლეგიტიმური ცრემლსადენი. [END ვიდეო აღწარმოების] დავით Malan: ასე რომ იყო ოთხშაბათს. ჩვენ გარდამავალი, თუმცა, ოთხშაბათს ახლა to სურვილს წარმოადგენს ალგორითმები ზოგიერთ გარკვეულწილად სტანდარტული გზა, არა მხოლოდ სადაც აღწერილია სიტყვიერი, მაგრამ ცდილობენ გამოხატონ მათ წერილობით ან კომპიუტერის ეკრანზე, ისე, რომ შეგვეძლო დაიწყოს გაუმჯობესების საფუძველზე, და ცვლილებები მათ შორის, და, საბოლოოდ, ფაქტობრივად, ანალიზი, თუ რამდენად სწორი ან რამდენად სწრაფად ისინი. ასე რომ, ჩვენ დანერგა ეს ცნება საქართველოს pseudocode, რომელიც, layman-ის თვალსაზრისით, არის ის, რაც? კარგი, სიტყვა. მოდით ცოტა უფრო ღრმა, ვიდრე. ინგლისური, რა თქმა უნდა, არის, მაგრამ მიმართ, თუ რა მიზნისთვის? Words, რომლის შექმნა ან წარმოადგენს ალგორითმები. ასე რომ არ არსებობს ერთი ენა ცნობილია როგორც pseudocode მსოფლიოში. უბრალოდ, თქვენ, ინგლისური, ან რაც თქვენი სალაპარაკო ენა, გამოიყენოთ სახის cursory notation გადასცეს იდეა ძალიან აღწეროთ. მაგრამ ჩვენ ვხედავთ, რომ, რა თქმა უნდა ერთად ინგლისურ pseudocode და აღმოჩნდება, ყველაზე პროგრამირების ენები თავს არის წარმოებული და ინგლისურ თავად, ჩვენ ვხედავთ, რომ არსებობს გარკვეული სტანდარტი გზები წარმოადგენს pseudocode და ასევე პროგრამირების კოდი. ასე რომ, როგორც თქვენ დაიწყოს სანახავად კი იმ მარტივი მაგალითები დღეს, გააცნობიეროს ეს იგივე მოტივები იქნება განმეორდება მომავალ კვირას. ასე რომ pseudocode იყო ერთგვარი ენის მსგავსი პროგრამირების ენაზე. და პირველი მაგალითი ვნახეთ ვიზუალურად ჩაიწერება იყო ეს ერთი. ეს იყო მხოლოდ სამი ნაბიჯი პროგრამა, მიზანი იყო რაოდენობის ადამიანი dorm ოთახი რომ ვიდეო ოთხშაბათს. მაგრამ იყო რამდენიმე მომენტი ამ მარტივი პროგრამა. და ეს იქნება განმეორებითი თემები. ასე რომ, ის, რომ არ იციან ამ, ერთი, შემოვიღეთ ცვლადი. და ალბათ ყველას ამ ოთახში არის იცნობს ცვლადი in კონტექსტში ალგებრა. მაგრამ აქ პროგრამირებაში, ცვლადები მათ, ერთი, შეიძლება იყოს მოუწოდა არაფერი გვინდა. ჩვენ ბევრი გამოყენებით ო როგორც counter. მაგრამ ჩვენ შეგვიძლია გამოვიყენოთ სიტყვა მრიცხველი, ან, როგორც დაინახავთ, ყველაზე ნებისმიერი ფრაზა, რომ თქვენ ალბათ მინდა ისე, სანამ ეს აღწერილობითი, მაგრამ რეალურად მხოლოდ შენახვის კონტეინერი. ეს ბლოკი მეხსიერება, ზოგიერთი ნომერი ბიტი, და ეს მერყეობს კომპიუტერული, როგორ ბევრი bits არსებობს, რომ დაკომპლექტებას, რომ განსხვავებულია. მაგრამ ჩვენ შეგვიძლია დააყენა ღირებულებების იგი. ჯერჯერობით ჩვენ მხოლოდ დააყენა ნომრები. მაგრამ ჩვენ შეგვიძლია დააყენა ფაქტობრივი სიტყვები. ჩვენ შეგვიძლია ჩადოთ. ჩვენ შეგვიძლია დააყენა სურათები - არაფერი, მართლაც, ჩვენ შეგვიძლია წარმოადგენს ერთად zeros და პირობა, ჩვენ შეგვიძლია დააყენა ამ უმაღლესი დონის ცნება საქართველოს განსხვავებულია. ასე რომ, საკმაოდ სწორი წინ იქ. სწორედ ხაზის ერთი. მაგრამ ჩვენ ძალიან სწრაფად გადავიდა ეხლა ხაზი ერთი რეალურად გააკეთებს რაღაც ერთად რომ განსხვავებულია. და ხაზი სამი, ჩვენ განახლებული ნ ჩვენ incremented ნ ჩვენ შეეძლო დაეწერა ამ ნებისმიერი რაოდენობის გზები. მაგრამ ალბათ ყველაზე აშკარა არის უბრალოდ რომ ვთქვათ, მითითებული N გაუტოლდება რაც არ უნდა N არის პლუს 1. ასე რომ, იყო ჩვენი იყოს. იმავდროულად, იყო ციკლი. ეს ერთი, ძალიან, ალბათ საკმაოდ ინტუიციური. მარყუჟის მხოლოდ რაღაც პროგრამა ეს მოხდება ისევ და ისევ, ზოგიერთი სახის ციკლი. ეს გასაღები ფრაზა აქ, თითოეული, არის რეალურად ძალიან გავრცელებული მთელ საუკეთესო პროგრამირების ენაზე, მათ შორის ვინც ჩვენ დავინახავთ, რა თქმა უნდა. ნებისმიერი ხედავთ სიტყვას, იგი როგორც წესი, შედგება იმ აზრს, რომ მარყუჟის, რაღაც ციკლურ, დაახლოებით მოხდეს. მაგრამ აღსანიშნავია ერთი სხვა სინტაქსური დეტალურად. ის ფაქტი, რომ მესამე ხაზის არსებობს რეალურად indented მიერ მიღებული მოხვდა სივრცეში ბარი რამდენიმეჯერ არის მიზანმიმართული. იმის გამო, რომ ადამიანის კონვენციის ისეთია, რომ, როდესაც თქვენ აკეთებთ რაღაც ისევ და ისევ და ისევ მარყუჟის, როგორც დაიწყო ხაზი ორი, თქვენ აბზაცის ყველაფერი, რაც ეკუთვნოდა იმ მარყუჟის მხოლოდ იმისათვის, რომ ნათელია, რომ ეს ხაზი სამი და არა, მაგალითად, ხაზის ოთხი თუ ხუთი, თუ იყო ხაზების ან ხუთი, რომლებიც ნაწილი, რომ მარყუჟების. ასე რომ, ეს უბრალო indentation თანაგრძნობას, რომ ძირითადი იდეა. ამიტომ მივმართეთ ეს ალგორითმი, ახლა, რომ რამდენიმე მაგალითი. ეს კი, ძალიან, უბრალო მაგალითი რეალურ ცხოვრებაში. მაგრამ ეს იქნება წარმომადგენელი თუ როგორ წავიდოდა შესახებ ტესტირების თქვენი ფლობდეს უფრო რთული პროგრამები. თქვენ ცდილობენ რამდენიმე სცენარი, ზოგიერთი წარმომადგენლები პორტები, და თუ თქვენ მიიღონ სასურველი შედეგები. ასე რომ, ეს მაგალითი კიდევ ორი ​​ადამიანი სხდომაზე dorm ოთახი. მარცხენა არის, რომ იგივე ფსევდო კოდი. და ეს არის ეკრანზე shot of ძალიან ბოლო ნაბიჯი მოცემული ალგორითმი იმ საშუალებებით, სადაც არ ორი ადამიანი ოთახში და, გავიხსენოთ, როგორც ჩვენ მიმართეთ ხაზები ერთი, და ორი და სამი და ორი და სამი და გაკეთდეს - წლის ბოლოსთვის, რომ ალგორითმი, ჩვენ გვქონდა მართლაც დათვლილი ორი სტიპენდიანტები, რომლებიც ოთახში. ასე რომ, ჩვენ შევეცადეთ კიდევ ერთი მაგალითია. და ჩვენ ვთქვით, რა, თუ არსებობს ნულოვანი ადამიანი ოთახში? არის თუ არა ეს კოდი მაინც სწორი? მართლაც, ეს იყო. ეს უბრალოდ ისე ხდება, რომ ხაზი ორი და, აქედან გამომდინარე, ხაზი სამი ან არ აპირებს შეასრულოს. ისინი არ მოხდება ყველა იმიტომ, რომ ისინი უბრალოდ არ გამოიყენება, თუ არსებობს ნულოვანი ადამიანი ოთახში. თუმცა არ არის დიდი გარიგება. ხაზი ერთ ინიციალიზაცია N ნულის, ისე მიუხედავად იმისა, რომ მხოლოდ ერთი ხაზი ამ პროგრამის რეალურად მთავრდება მყოფი სასარგებლო, ის კვლავ უკომპრომისო სწორი პასუხი, როგორც მიერ მითითებულ ფორთოხალი ნულოვანი ბოლოში. მაგრამ შემდეგ ჩვენ გადავწყვიტეთ, რომ იყო სახის სულელური ალგორითმი. ეს იყო საკმაოდ ნელი. რა თქმა უნდა, შემიძლია ორი, ოთხი, ექვსი, რვა, ათი, როდესაც დამთვლელი ადამიანი ოთახში. ასე რომ, ჩვენ tweaked ალგორითმი, pseudocode, ვთქვა, ახლა უკვე ხაზი ორი, თითოეული წყვილი ადამიანი ოთახში, გაგრძელება, რომ ამჟამად სამი, სიზუსტით ამ ორი თითოეულ iteration. ასე რომ არ მუშაობდა აქ ამ წყვილის პირთა ოთახში. მაგრამ შემდეგ, თუ დავიწყოთ ფიქრი ეს, და ეს არ დაუყოვნებია, მაშინვე აცნობიერებენ, დაველოდოთ წუთში ეს აპირებს დაარღვიოს, იგი არღვევს რა მარტივი შემთხვევაში? თუ არსებობს სამი ადამიანი ოთახში ან, ზოგადად, როდესაც არსებობს უცნაური რაოდენობის ხალხი ოთახი, მათ შორის ერთი. ჩვენ გვინდა გამოგრჩეთ, რომ ადამიანი აქ იმიტომ არ არსებობს ასეთი წყვილი. ასე რომ, ჩვენ სწრაფად სიტყვით ნაცვლად შემოღების რა დამატებითი პროგრამირების აშენებს to ფსევდო კოდი. ასე რომ, მდგომარეობა, ჩვენ მოუწოდა ეს, ან ფილიალი. და ეს იმას ნიშნავდა, რომ გადავცემთ, ვიზუალურად, იდეა ფილიალი, ჩანგალი საგზაო სადაც თქვენ შეგიძლიათ ან გაკეთება ან, იქნებ, რაიმე. მართლაც, ჩვენ ამ პრობლემის მიერ დასძინა ხაზი 4, განაცხადა, რომ, რეალურად, ზე ბოლომდე, თუ ერთი პირი რჩება, მერე წავიდეთ წინ და მათი დათვლა სპეციალური. ასე, რომ თქვენ ერთგვარი განსაკუთრებული შემთხვევაა მათთვის, ასე საუბარი, ასე, რომ ახლა ჩვენ შეუძლია როგორც კი რაოდენობის ხალხი და უცნაური ადამიანების რიცხვი. ახლა ნებისმიერი რაოდენობის გზები ჩვენ შეგვიძლია გამოხატეს ამ. და გულწრფელად, მე უკვე კიდევ უფრო Nit picky როდესაც საქმე ჩემი არჩევანი ინგლისური pseudocode. მაგრამ მაინც სულისკვეთებით იდეა გადმოცემული. თუ თქვენ გადასცა ეს კოდი მეგობარს ვინ არ CS, ან არასდროს ყოფილა CS, შანსი მათ ვერ ახერხებს, სამი ადამიანი ოთახში, თუ როგორ უნდა ითვლიან იმ ხალხს საფუძველზე აღნიშნულ მითითებებს. და ეს ყველაფერი ნამდვილად გვსურს ერთად pseudocode, რატომღაც სტანდარტიზაციისთვის თუ როგორ ვაპირებთ შესახებ წარმოადგენს იდეები ასე რომ ჩვენ შეგვიძლია დაიწყოს ამის გაკეთება უფრო რთული რამ მაინც. ასე რომ, მივყავართ შემდეგ, დღეს, რეალური კოდი. ვიწყებთ პროგრამის დღეს, თუმცა მეგობრულ გარემოში. და მაშინ ჩვენ გარდამავალი ძალიან სწრაფად მეტი arcane სინტაქსი, მაგრამ, რომელიც დაინახავთ ძირეულად იგივე, რაც იდეები ნახავთ გამოიხატება ერთად ამ სხვა ენაზე გააკეთა. უბრალოდ აპირებს გამოიყურებოდეს ცოტა განსხვავებული. ასე რომ, არა მხოლოდ მოვუწოდებთ ამ კოდექსის მე იქნება უფრო ზუსტი და აცხადებენ, ამიერიდან, როდესაც წერილობით პროგრამა, თქვენ წერილობით წყაროს კოდი. ეს არის სახის მსგავსად pseudocode. მაგრამ ჩვენ დავინახავთ, ეს არ არის ერთგვარი ფხვიერი როდესაც საქმე არჩევის სიტყვა რომ გამოიყენოთ. როდესაც programing ენაზე, თქვენ გამოყენება სიტყვები, ფრაზები, სინტაქსი, რომ სხვა ადამიანების გადავწყვიტეთ წარმოადგენს კონკრეტულ ენაზე. ასე რომ pseudocodes არის თქვენი. ფაქტობრივი პროგრამირების ენა, როგორიცაა C, როგორც ჩვენ საბოლოოდ ვხედავთ, არის სტანდარტიზებული სხვების მიერ. ასე რომ, როგორ უნდა წავიდეთ შესახებ წერილობით ზოგიერთი წყაროს კოდი? მე ვაპირებ წასვლა წინ და ამის გაკეთება. მე ვაპირებ წავიდეთ წინ და გახსნას ფანჯარა აქ. მეტი ამ მომავალ კვირას. მაგრამ ეს არის მოწყობილობა მოუწოდა CS50 მოწყობილობების. მე გაშვებული ნაჭერი პროგრამული უზრუნველყოფა, ჩემი Mac, თუმცა შეგიძლიათ გააკეთოთ იგივე on Windows კომპიუტერი, რომ იძლევა მე იმის ილუზია, გაშვებული სხვადასხვა ოპერაციული სისტემა საერთოდ უფლება აქ ფანჯარა ჩემს Mac. მე მხოლოდ სრული ნაჩვენები ეს ასე რომ თქვენ არ რეალურად ვხედავ Mac OS ახლა. ეს არის ოპერაციული სისტემა მოუწოდა Linux. ძალიან პოპულარულია. ეს ძალიან სწრაფად. ძალიან თავისუფალი, რომელმაც ძალიან დამაჯერებელი, განსაკუთრებით კომერციული მსოფლიოში. და ხმა ამაზე მიმართ ბოლომდე სემესტრის როდესაც ვიყენებთ Linux საკმაოდ მწირი ვებ პროგრამირების და ჰოსტინგი რეალური საიტები და პროექტი. ახლა, მხოლოდ ის ვიცით, რომ ეს არის სამუშაო მაგიდაზე ეს იმას ნიშნავდა, რომ გამოიყურება vaguely ნაცნობი Windows და Mac OS. ეს მხოლოდ რამდენიმე სხვადასხვა სახელები და ხატები რამ. მაგრამ ეს ე.წ. CS50 მოწყობილობების, ვირტუალური მანქანა, რომელიც, დაწყებული მომავალ კვირას, ბიჭებს იქნება აწარმოებს შიგნით ფანჯარა თქვენი Mac ან კომპიუტერი. დღეისათვის, მე ვაპირებ გახსნა მარტივი პროგრამები. ეს მოუწოდა gedit. და ეს მხოლოდ გრაფიკული რედაქტორი. ეს სახის როგორიცაა Microsoft სიტყვა, მაგრამ მარტივია. ეს არის სახის მსგავსად შესწორება ან notepad. უბრალოდ ძალიან მარტივია პროგრამა რაც დაწერა სიტყვა ეკრანზე. ეს უბრალოდ ისე, რა მოხდება, რომ თუ გადარჩენა ფაილი რომ შევქმნა, როდესაც ეს პროგრამა სპეციალური გაგრძელების მოსწონს. გ, ნაცვლად საქართველოს. doc, ან. xls, ან რასაც თქვენ იცნობთ, შემიძლია რეალურად შექმნა პროგრამების გამოყენებით კი ეს მარტივი ტექსტური რედაქტორი. ნება მომეცით, რომ. ნება მომეცით წავიდეთ წინ და გადარჩენა ამ წარადგინოს პირველი როგორც hello.c. ისევ და ისევ, ეს ინტერფეისი იქნება გაეცნოს, რომ თქვენ სწრაფად. მაგრამ ახლა, მე მხოლოდ აკრეფით ამ ფაილის სახელი. მე ვაპირებ შენახვა ჩემს ჯონ ჰარვარდის სახლის დირექტორია. ახლა კი გვაქვს ეს tab მიანიშნებს მე ნამდვილად რედაქტირება ფაილი სახელად hello.c. ასე რომ არაფერი ძალიან საინტერესო არ არის. ახლა უკვე აპირებს მიიღონ საკმაოდ cryptic. მე ვაპირებ მასშტაბის გასაზრდელად, უბრალოდ ამიტომ უფრო ჩანს. და მე ვაპირებ ბეჭდვის დაწყებამდე შედის stdio.h, int, მთავარ ბათილად, ღია curly მუდმივი წინააღმდეგობა გაუწიოს, ერთი, ორი, სამი, ოთხი ფართები საქართველოს indentation, ბეჭდვითი ვ, ბეჭდური რაღაც ფორმატირებული, გაცემა unquote, "Hello, world" წარმატებული, N, ახლო გაცემა, დახურული ფრჩხილებში, მძიმით, შესვლის backspace, backspace, backspace, backspace, დახურული curly მუდმივი წინააღმდეგობა გაუწიოს - მე პროგრამირდება. ყველა უფლება ასე რომ ეს არის სუპერ მარტივი პროგრამა,, რეალურად, პროგრამა, რომელიც ვინმე დაიწყებს off პროგრამირების ერთად. და ყველა ეს ასეა, მისი ყველა სირთულის, არის ბეჭდვის გარეთ ეკრანზე, რას? მშვენიერია. მაგრამ ეს არ არის საკმარისი მხოლოდ დაწერა პროგრამა. ასე რომ, ეს კოდი. ეს არის წყარო კოდი ენის მოუწოდა გ. ეს გადაარჩინა ამჟამად ფაილი სახელად hello.c. ახლა შევხედოთ ბოლოში საქართველოს ეკრანზე აქ. გაძლიერებული გამომდინარე, ისევ და ისევ კვირის მოვა. მაგრამ ეს არის ის, რაც ჩვენ მოვუწოდებთ ტერმინალში ფანჯარა. ეს მოციმციმე, შავი და თეთრი ზოლზე. ეს ერთგვარი ძველი სკოლა ინტერფეისი კომპიუტერი, ზოგადად არ გამოყენება მაუსის ან სხვა გრაფიკული ელემენტები. უბრალოდ იყენებს თქვენს კლავიატურაზე. მე მინდა აკრიფოთ ბრძანებები ზე ამ მოციმციმე ზოლზე. ხოლო დღევანდელ მიზნებისათვის, მე მხოლოდ აპირებთ შეიტანოთ შემდეგი - მიიღოს hello. და ეს პროგრამა, რათა, მხოლოდ პროგრამა, რომელიც, რეალურ ცხოვრებაში ამ დღის განმავლობაში, რომ ჩვენ ორმაგად დაწკაპეთ. მაგრამ ამ ინტერფეისით დღეს, ჩვენ აპირებთ შეიტანოთ თავისი სახელი ამ ზოლზე. მიიღოს მიესალმები რომელიც სიტყვასიტყვით აპირებს მე პროგრამას სახელწოდებით hello. და ეს ხდება ამის გაკეთება მიერ ეძებს ამისთვის ფაილი, მხოლოდ ჩვეულებრივ, უწოდებენ hello.c. ეს შეითავსებს მინდა C პროგრამის ბუნებით, თუ როგორ ამ კომპიუტერის არის კონფიგურირებული. ასე, რომ წავიდეთ წინ და დააჭიროთ. მე ვხედავ რაღაც cryptic გამომავალი, მაგრამ ამ გახდება ძალიან ნაცნობი ადრე ხანგრძლივი. ეს მოხდა აწარმოებს შემდგენელი, უფრო რის შესახებაც მას მომენტში, სახელწოდებით Clang. მაგრამ ახლა, მაქვს კიდევ ერთი მოციმციმე ზოლზე. მე მინდა წავიდეთ წინ ახლა და ტიპის dot ხაზი, ამისთვის უინტერესო მიზეზების გამო ჩვენ გამოგიგზავნით დაბრუნდება მომავალ კვირას - hello. ასე რომ, ყველა ამ ძალისხმევის ჯერჯერობით მხოლოდ იმის წერა მარტივი პროგრამა, რომელიც, როგორც კი მოხვდა შეიტანეთ, აკეთებს, რომ. ასე რომ, დაწერილი ჩემი პირველი პროგრამა. ასე რომ, მე შეგნებულად დასცინის სწორედ მარტივი პროგრამა რამდენიმე მიზეზის გამო. ერთი, ეს იმისთვის, რომ მიიღოთ აღფრთოვანებული მიჰყავდა კლასი, თუ ეს ბოლოს თამაში. მაგრამ მეტია, აქ არის ბევრი distractions აქ. პირველად თქვენ ვისწავლოთ პროგრამა, იმ თქვენ ნაკლებად კომფორტული, და მაშინაც კი, მე, ჯერ კიდევ დღეს, როდესაც პირველად ნახა რაღაც მსგავსი - შეგიძლიათ სახის ფიგურა, რომ ყველა უფლება, ამ არის ბეჭდვის Hello World. მაგრამ იმდენად განადგურების. აქ არის იმდენად syntax ეკრანზე რომ იგი იღებს გზა ძალიან მარტივი, წინააღმდეგ შემთხვევაში მარტივი, იდეები. ასე რომ, რასაც ჩვენ ვაპირებთ დღეს არის ვართ აპირებს გადადოს C და მოდის უკან რომ ორშაბათს. და ჩვენ ვაპირებთ გამოვიყენოთ გრაფიკული პროგრამირების ენა უწოდა ნულიდან. ეს არის პროგრამირების ენა, რომელიც მე გააკეთა მინიშნება ოთხშაბათს, რომ აპირებს to საშუალებას გვაძლევს გავაკეთოთ მსგავსი პერსონალი მაგრამ დახუჭოს თვალი, დღეისათვის, to curly აფრთხილებს, ფრჩხილებში, semicolons, და ეს ყოველივე სულელური distractions, რომ მიიღონ გზაზე, ამ პირველ დღეს, რამდენიმე ძირითადი, საკმაოდ საინტერესო იდეები. ასე რომ, მიმართ ამ მიზნით, მე ვაპირებ წასვლა უკან სამუშაო მაგიდაზე მეტი აქ და წარმოგიდგინოთ ალტერნატივა, რომელიც პროგრამა, რომელიც აპირებს გამოიყურებოდეს ცოტა რაღაც სინათლე ამ. ასე ჩვენ ვაპირებთ განვახორციელოთ, რომ ამავე პროგრამის დღეს - ორი თავსატეხი ც, რომ როდესაც interlocked და დაკლიკავთ, იტყვის მსოფლიოში, Hello World. მოდით რეალურად გვაქვს. ამიტომ, მე ვაპირებ წავიდეთ წინ და გახსნა ნახვა ცნობილია როგორც scratch.mit.edu. ეს გამოიწვევს ჩემთვის ამ ვებ აქ. წინასწარ, მე შესული ამ ნახვა და პირველი პრობლემა, რომელიც ფეხით თქვენ მეშვეობით ზოგიერთი ნაბიჯები. მე ვაპირებ წავიდეთ წინ და დაწკაპეთ ჩემს ნულიდან ფოლდერი აქ. და ეს აპირებს აჩვენებს ჩემთან ზოგიერთი პროექტი, რომელიც მე რეალურად შეიქმნა წინასწარ. და აღმოჩნდება, რომ ამ გრაფიკული პროგრამირების ენა არა მარტო აპირებს to მოდით პროგრამის მიერ გადმოიყვანა და მითუმეტეს, რომ ეს თავსატეხი ცალი, თქვენ არც კი საჭირო სპეციალური პროგრამული უზრუნველყოფა. ეს ყველაფერი ჩართული ფარგლებში ბრაუზერის ასე რომ თქვენ შეგიძლიათ ამის გაკეთება, თეორიულად, on თქვენი კომპიუტერი ახლა, როგორც ზოგიერთ თქვენგანს შესაძლოა, ისე სჭირდება პროგრამული უზრუნველყოფის მსგავსად CS50 მოწყობილობების, რომელიც მოვა მომავალ კვირას. ამიტომ, მე ვაპირებ ახვიდეთ მაღალ კუთხეში აქ და დააკლიკეთ შექმნა. ხოლო მომენტში მე ვაპირებ მისაღებად ცარიელი ეკრანზე მეშვეობით, რომელიც მე შეიძლება დაიწყოს პროგრამირების ამ გრაფიკული პროგრამირების გარემო. მაგრამ ამ დროს, ეს იქნება ბევრად, ბევრად უფრო მარტივია, რეალურად ამის გაკეთება. ასე რომ, მხოლოდ ახლა, როდესაც უკაბელო თანამშრომლობს, ჩვენ ახლა ამ ეკრანზე. ასე სწრაფად სიტყვიერი ტური, მაგრამ მე ვერ გაბედავს ამბობენ, რა თქმა უნდა, როდესაც თქვენ dive შევიდა პირველი პრობლემა კომპლექტი, თქვენ ვინ ყველა ძალიან ხელმისაწვდომი და საკმაოდ ინტუიციური. მაგრამ მოდით ხატავს ფსიქიკური სურათზე მხოლოდ ერთი წუთით. ასე ქვეშ ამ სწრაფი და განაცხადა აიღო ცვლილებები, თქვენ შესახებ, რომ ნახოთ ნულიდან. ეს არის Sprite. ეს ხასიათი. ხოლო იგი ცხოვრობს, რაც ჩვენ ამას დავარქმევთ ეტაპზე, ეს დიდი თეთრი მართკუთხედი წლის რომელიც მან შეიძლება გადავიდეს up, down, მარცხნივ, უფლება, და ამის გაკეთება, ნამდვილად, სხვა სახის ქმედებები. ამასობაში, შუა ამ მომხმარებელს ინტერფეისი, ჩვენ გვაქვს მთელი თაიგული თავსატეხი ცალი. და დაინახავთ, რომ ისინი აცხადებენ რამ, როგორიცაა გადაადგილება 10 ნაბიჯები, აღმოჩნდა 15 გრადუსი, წერტილი გარკვეული მიმართულებით. მაგრამ კატეგორიებს ბლოკად აქ ძალიან. ასე რომ, თუ მე გამოიყურება, დაინახავთ, რომ არსებობს სხვა თავსატეხი ცალი, რომ როგორც ჩანს, გეტყვით ამ CIT to მიესალმები, ვიფიქროთ რათა ნახოთ თავად მალავს თავის ვინაობას. თუ მე დაცემას ხმები, აღმოჩნდება, არსებობს გზები, რათა ითამაშოს ჟღერს meow, შეჩერება ყველა კინო, უნდა ითამაშოს drum. ასე რომ, გრძელი ამბავი მოკლედ, აქ არის მთელი რამოდენიმე თავსატეხი ცალი, რომელიც საშუალებას გაძლევთ ვუთხრა ამ კატა, ან ნებისმიერი რაოდენობის სხვა სიმბოლოები, რა უნდა გააკეთოს. მაგრამ იმისათვის, რომ ეს ყველაფერი მოხდეს თქვენ უნდა დაიწყოს პროგრამირების. ეს დიდი თეთრი ყუთი, ან ნაცრისფერი ყუთი, on მარჯვენა მხარეს, ეს არის სადაც მე ვაპირებ, ფაქტობრივად, გადაიტანეთ და ჩამოაგდეს იმ თავსატეხი ცალი. ეს ჩემი ცარიელი ტექსტი ფანჯრის ექვივალენტს. ამიტომ, მე ვაპირებ წავიდეთ წინ და დაწკაპეთ კონტროლის ცენტრიდან. უფრო სწორად, დავიწყებ up ქვეშ ღონისძიებები. ქვეშ თარიღები სკამზე, შეამჩნევთ რამდენიმე რამ, რაც შეგნებულად curved ზედა ისე, რომ ალბათ არ interlock წლის დაბრუნება of თავსატეხი ცალი. და ეს იმიტომ, რომ ისინი demark დაწყების პროგრამის, დაწყების სცენარი, ასე ვთქვათ. ასე რომ, თუ მე წავიდეთ წინ და გადაიტანეთ, როდესაც მწვანე flag დაწკაპავთ მეტი აქ, და მერე გვინდა, რომ ეს კატა ვთქვა რაღაც დროს გააკეთა. ამიტომ, მე ვაპირებ წასვლა ქვეშ გამოიყურება პანელი. და მე ვაპირებ წავიდეთ წინ და დაიბრუნოს მიესალმები ბლოკი და გადაიტანეთ და ვარდნა, და გაუშვებენ ისე, რომ იგი ავტომატურად ბლოკირება არ არსებობს. და მაშინ შეამჩნია შემიძლია დააწკაპუნეთ ტექსტი. მე მინდა override, რომ იყოს უფრო კონკრეტული მინდა, ვთქვათ, Hello World. ახლა ჩვენ გვაქვს პროგრამა, რომელიც მე პრეტენზია ტოლფასია, რომ ბევრად უფრო arcane პროგრამის I განხორციელდა in C მომენტში წინ. თუ მე მეტი ახლა მარცხენა მხარეს, შეამჩნია არის დიდი გაჩერება ნიშანი და დიდი მწვანე დროშა. ნება მომეცით zoom in for სიწმინდე. და როდესაც მე ახლა დააჭირეთ მწვანე დროშა, თქვენ ალბათ რას პირველი პროგრამა არის გაკეთებას აპირებს. ასე რომ, ძალიან, ჩვენ პროგრამირებაში, არამედ ჩვენ რეალურად არ ხდება bogged ქვემოთ ზოგიერთ იმ სინტაქსური, წუთი დეტალები. მაგრამ მოდით ძიებასა ცოტა უფრო საინტერესო. ნება მომეცით წასვლას ჩემი Scratch ფოლდერი აქ. და ფაქტობრივად, ნება მომეცით ნება მომეცით გახსნა ცალკე პროგრამა აქ მხოლოდ მომენტი, გაზრდა ეს ფანჯარა, ფაილის ღია, და მე ვაპირებ წასვლას დღეს წყაროს დირექტორია. როგორც ყოველთვის, თქვენ მოვძებნოთ დღეს და შემდგომი, რომ ყველა დღევანდელი მაგალითები ხელმისაწვდომია შიგნით რა თქმა უნდა ნახვა. და მე ვაპირებ წავიდეთ წინ აქ და გააშუქა ოდნავ რაღაც განსხვავებული. ეს აქ, რისთვისაც მე უნდა მოხალისე. ვინ მინდა სამაგიდო ნათურა დღეს? კარგი, რა ვინმე ცოტა - ხართ წლის ბოლომდე? კარგით ქვემოთ. ახლა გსურთ მონაწილეობა, ან უბრალოდ, ვამბობთ იწყება სამაგიდო ნათურა? Vanessa: [inaudible]. დავით Malan: OK. შესანიშნავი, რა თქვენ სახელი? Vanessa? დავით. კარგია თქვენთან შეხვედრა. ასე რომ მოვა მდე და Vanessa აპირებს აღებას ჩემი კლავიატურის მხოლოდ ერთი წუთით. და რას ვაკეთებ აქ, უბრალოდ დროის ნახვა გულისთვის, როგორც მე მიხვდა უკაბელო იყო ცოტა ნელი, ნულიდან, პროგრამირების გარემო, რომელიც ჩვენ გამოყენებით, ასევე შეიძლება გადმოწერილი და აწარმოებს თქვენს კომპიუტერში. ასე რომ, რა გავაკეთე ადრე ლექცია, in შემთხვევაში, რაც ხდება, არის მე გადმოწერილი ყველა ფაილი ჩვენ შესახებ თამაში ასე რომ შეიძლება აწარმოებს ცოტა მეტი სწრაფად სწორედ აქ ჩემს ლეპტოპში. ასე რომ, ამიტომ ახლა მე ხედავს Mac სპეციფიკური ინტერფეისი. ამიტომ, მე ვაპირებ წავიდეთ წინ და ქმნის ამ ერთი. მე ვაპირებ წავიდეთ წინ არის და სრულ ეკრანზე ფანჯარა. და როგორც დაინახავთ, ჩვენ შეგვიძლია ძალიან სწრაფად, როგორც ამ სტუდენტმა გააკეთა, ერთი თქვენი წინამორბედები, აქედან Hello World to ბევრად უფრო მყარი განაცხადის. ასე რომ, აქ არის ინსტრუქციები. ოჰ, და ჩვენ გვაქვს ერთი რამ. ვფიქრობდი, რომ ეს იქნებოდა fun, რადგან, ჩვეულებრივ, ჩვენ უნდა გადაეღოთ კამერები ამ გზით. ვფიქრობდი, რომ ეს იქნებოდა fun, თუ, Vanessa, ჩვენ ვერ ვხედავთ მსოფლიოში თქვენი თვალები. ასე რომ, აქ ჩვენ გვაქვს გარკვეული Google შუშა. [გაოგნებულია GASPS] დავით Malan: ჩვენ მხოლოდ მაშინ აძლევდა მოშორებით სამაგიდო ნათურები დღეს. [სიცილი] ნება მომეცით, სწორედ ეს ყველაფერი. ყველა უფლება, შეეხოთ ამ. OK, შუშა, ჩაწერა ვიდეო. ყველა უფლება, ვანესა? ახლა, როგორც განზე, რომელმაც არაფერი გავაკეთოთ ერთად ნულიდან, თუ გადავხედავთ ოდნავ მაღლა და მარჯვნივ, დაინახავთ, ლიტერატურული მინის და თქვენ უნდა ვხედავ პატარა მართკუთხა ფანჯარა. უნდა ნახოთ ყველა თქვენი თანაკლასელები მიმდინარეობს გადაიღეს ახლა? დიახ. Vanessa: დიახ. დავით Malan: OK. ასე რომ, ჯარიმა. ჩვენ ყველაფერს გაათავისუფლოს ამ კადრების მოგვიანებით. ახლა აქციოს თქვენი ყურადღება ეკრანზე აქ. და რა წინამორბედს აქვს შესრულებული არის დააყენა რამდენიმე ინსტრუქციები ეკრანზე უბრალოდ გამოყენებით საღებავი პროგრამა. ასე რომ, თქვენ აპირებს, ამ მომენტში, დააჭირეთ სივრცეში ბარი დაიწყოს. და მაშინ ზოგიერთი თავსატეხი ცალი ვაპირებთ უნდა დაიწყოს მოძრავი up ეკრანზე. და გსურთ მოხვდა arrow გასაღებები, უბრალოდ მინდა რეალურ DDR, შესაბამისად რამ უგულებელყოფა მდე იმ ისრებით. Vanessa: OK. დავით Malan: თქვენ ითამაშოს ამ ადრე. Vanessa: ჰო. დავით Malan: ყველა უფლება, Vanessa, წავიდეთ წინ და მას მოშორებით. [მუსიკა - KAYNE დასავლეთი, "Stronger"] [ტაში] დავით Malan: მოდით ახლა მიიღოს ნაბიჯი, რომელიც. ასე ნათლად, რომ ის ბოლომდე თამაში. ბოლოს თამაში არ მიესალმები მსოფლიოში. მაგრამ თქვენ არ აუცილებლად უნდა გააკეთოს რამ, რაც იმდენად ინტერაქტიული. თქვენ ასევე გავაკეთოთ ანიმაცია. ასე მაგალითად, მეორე კი თქვენი შთამომავლების გააკეთა ეს პროგრამა აქ რომელიც მოგვითხრობს ზე მეტი ეს იმას განხორციელებული თამაში. ნება მომეცით, წავიდეთ წინ და ქმნის აქ პროგრამა ჩვენს ამავე წყაროს დირექტორიაში დღეიდან. ეს ერთი გამოძახილი და დავიწყოთ ერთად, cookie სიყვარულის ისტორია. და არა, რომ ეს ძალიან აკადემიური, არამედ, როგორც თქვენ უყურებს ამ ერთი, ვფიქრობ თავს რომელიც იმ მარტივი პროგრამირების ცნებები ჩვენ ვილაპარაკეთ შესახებ ჯერჯერობით - ცვლადები და მარყუჟების და პირობები, არც წინამორბედს ალბათ გამოიყენოს მხოლოდ განახორციელოს ზოგიერთი თვალსაჩინოება. ხედავთ აქ. ასე რომ, მე გაძლევთ ბმულების სიყვარულის ისტორია. [მუსიკა - GREEN DAY "დღესასწაული"] [CRASH] [მუსიკა - Turtles, "ბედნიერი ერთად"] დავით Malan: ყველა უფლება, ასე რომ, ჩვენ გვქონდა ბმულების სიყვარულის ისტორია. იქაც - [ტაში] დავით Malan: ყველა უფლება, იქაც, ვიფიქროთ, როგორც იმ გული წავიდნენ ბოლოში ზედა ეკრანზე, იყო რეალურად ცოტა randomness მიმდინარეობს. მართლაც, ჩვენ დავინახავთ, რომ ჯერ კიდევ მარტივი გარემოში, ისევე როგორც Scratch, როგორც C, შეგიძლიათ გენერირება შემთხვევითი ნომრები, ან ილუზია შემთხვევითი ნომრები, ისე, რომ თამაშში არის უფრო საინტერესოა, ვიდრე ეს შეიძლება იყოს თუ ჰქონდა სრულიად რთული კოდირებული ყველაფერი. In მოძრაობა, რომ ხედავთ, არსებობს გარკვეული სახის რეაგირებას. როგორც კი gingerbread კაცი გრძნობს gingerbread ქალბატონი როგორც ჩანს, გადაადგილება მოშორებით. ასე რომ, რა თქმა უნდა, შეგიძლიათ განახორციელონ ყველაზე პროგრამირების ენებზე, ცნება მოვლენებს, რომლის დროსაც, თუ ერთი მხრივ ეხება მეორე მხრივ, რომელიც შეიძლება გამოიწვიოს გარკვეული თქვენი წყაროს კოდი რეალურად შეასრულოს. მოსმენა შეგიძლიათ ასეთი რამ ეკრანზე. მოდით მიიღოს სწრაფი ტური, მაშინ, ზოგიერთი შენობა ბლოკად შეიძლება გამოვიყენოთ რათა მივაღწიოთ ზოგიერთი ამ მიზნების მისაღწევად. ასე რომ, აქ არის ის, რაც ჩვენ გამოგიგზავნით ამიერიდან მოვუწოდებთ განცხადებაში. განაცხადი ხდება, რომ purple in ნულიდან, ცოტა რაღაც მსგავსი, მაგრამ ეს უკანონო. ინიციატივა მხოლოდ თავსატეხი ცალი, ან უფრო ზოგადად, დავალებით, რომ მოგვითხრობს კომპიუტერულ უნდა გააკეთოს რაღაც, განცხადებაში. ასე რომ, აქ არის მარტივი ნიმუში. მიესალმები მსოფლიოში. მეორე, შესაძლოა, დაველოდოთ ერთი მეორე. ასე რომ, ეს თავსატეხი ცალი, რომლის ზურგს უკან ამ Scratch, ჩვენ ნება თქვენი გმირები პაუზის გარკვეული რიგი წამში. ეს, ძალიან, არის მხოლოდ განცხადებაში. აქ მომავალი, ჩვენ გვაქვს კიდევ უფრო საინტერესოა, პიესა ხმის meow და პატარა ისარი იმას ნიშნავს, რომ ნულიდან, ეს drop მენიუში. ასე რომ, შეგიძლიათ იმპორტი ხმები. თქვენ შეგიძლიათ ჩაწეროთ ხმები და გავაკეთოთ სხვა fun რამ ნულიდან. და ეს, ძალიან, თუმცა, ბოლოს დღეს, მხოლოდ განცხადებაში. მაგრამ ახლა მოდით გააცნობს მეტი საინტერესო, რომ ცნობილია, როგორც ლოგიკური გამოხატულებაა. Capital B სახელობის თანამემამულე დაასახელა bool. და ლოგიკური გამოხატულებაა მხოლოდ თავსატეხი ცალი ან უფრო ზოგადად, ცნობა, რომელიც არც ჭეშმარიტი ან მცდარი - ერთი ან ნულოვანი, თუ არა. ასე რომ, ეს მხოლოდ იმ ორი opposites. ასე რომ, ერთი ასეთი ლოგიკური გამოხატვის მსოფლიოს Scratch ასე გამოიყურება ლურჯი თავსატეხი ცალი. და ეს პასუხში შეკითხვა, მაუსი ქვემოთ, და რომ შეიძლება იყოს, რა რა თქმა უნდა, ჭეშმარიტი ან მცდარი. ამრიგად, ეს თავსატეხი ნაჭერი ნულიდან, კარგად, თქვენ გექნებათ აღმოაჩინოს, თუ თავსატეხი, თუ მაუსი, ფაქტობრივად, მიმდინარეობს გაიმართა მიერ ადამიანის ურთიერთქმედება თქვენი პროგრამა. ეს ერთი პატარა უფრო აბსტრაქტული, მაგრამ იმ ორი თეთრი ყუთები არის მხოლოდ ციფრები. ასე რომ შეგიძლიათ გააკეთოთ რამ, როგორიცაა ეს ნომერი ნაკლები სხვა? და თუ, Scratch მოიქცევა ერთი გზა, ან სხვა. ეს ერთი პატარა გრაფიკული. ეს თუ Sprite, თუ კატა, ამისთვის მაგალითად, რეალურად ეხება მაუსის მაჩვენებელი. ასე რომ, თუ პატარა ისარი, არის hovering მეტი კატა, მაშინ ეს თავსატეხი ცალი შეაფასებს ჭეშმარიტი. ეს იქნება ნამდვილი, ამ შემთხვევაში, თუ გამოიყენოს ეს ლოგიკური გამოხატულებაა, რადგან ჩვენ გამოგიგზავნით ვხედავთ მომენტში, ამ შტოს, შეგიძლიათ ან გააკეთებს, ან თქვენ მოხვდება, ჰგავს გვქონდა პირობით, რომ შეამოწმა, არსებობს კიდევ ერთი ბოლო პირი ოთახში? თუ ასეა, დაამატოთ ერთი. წინააღმდეგ შემთხვევაში, არ ინერვიულოთ შემდგომი. ასე რომ ლოგიკური გამოხატულებაა ასევე შეიძლება და-ed ერთად ან ან-ed ერთად. ასე, რომ თქვენ შეგიძლიათ დააკავშიროთ ლოგიკური გამონათქვამების და ამბობენ, რომ ეს და ეს უნდა იყოს ჭეშმარიტი მთელი რამ უნდა იყოს ნამდვილი. აქ არის უფრო რეალური მაგალითი. თუ თქვენ გამოყენებული CS50 კურსები ამის გაკეთება, რა თქმა უნდა სავაჭრო, ეს გამშვები ყუთები იქ, სადაც თუ თქვენ შეამოწმოს, რომ ყუთში შემდეგი to კურსები, რომ იტყვის, დიახ, მხოლოდ ეჩვენებინა კურსების რომელიც Q ღირებულება არის 4.5 ან უფრო მაღალი. თუ თქვენ მონიშვნის მოხსნა მას, არა, არა ფიქრი, რომ. ან მსგავსი, მარჯვენა, არ კონფლიქტში კურსები ვარ იმის, ეს არის ის, არც ჭეშმარიტი და მცდარი. უბრალოდ ლოგიკური გამოხატულებაა. ასე რომ, მთელი ამ ხნის როდესაც თქვენ გამოყენებული საიტებზე ერთად გამშვები ყუთები, თქვენ მხოლოდ ამ toggling ეკვივალენტს ლოგიკური გამოხატვის on და off. ასე რომ, რა სახით იყენებთ ეს? ასევე, ნულიდან, ჩვენ დავინახავთ შემდეგ მომენტში რომ არ არსებობს პირობები, რომ გამოიყურება ასე. სწორედ ასეთი საღად მოაზროვნე, რადგან ბევრი ისევე როგორც pseudocode, ჩვენ indented სახის U-ფორმის თავსატეხი ცალი, საშუალო რომ არაფერი შიგნით რომ U არის აპირებს შეასრულოს, თუ არა, იმის მიხედვით სად არის. ასე რომ, თუ ლოგიკური გამოხატულებაა, მაშინ რაც არ უნდა შიგნით მიიღებენ შესრულებული. ამავდროულად, არსებობს თუ / სხვას ბლოკი. ასე რომ, თუ გსურთ ფილიალი, რომელიც მიდის ამ ასე თუ ისე, რომ Scratch გვაძლევს, რომ. და ამ ლოგიკით, ახლა, მიუხედავად იმისა, რომ თავსატეხი ცალი აშკარად ძალიან მცირე to Wedge რაღაც სხვა შიგნით ეს, ნულიდან თავსატეხი ცალი, ისინი უბრალოდ აპირებს იზრდება. როდესაც თქვენ გადათრევა მეტი რამე, ის მხოლოდ იზრდება შეესაბამება რაც არ არის თქვენ ცდილობთ. ასე რომ, შეგვიძლია ორი რამ და მიიღოს სამი გზა ჩანგალი გზის ისე რომ თქვენ ან გააკეთებს, ან, თუ ეს სხვა რამ მხოლოდ მობუდარი მათ ამ გზით. რა თქმა უნდა, თუ, რომ ძალიან ბევრი, იწყება მიიღოს მახინჯი. მაგრამ იმ ეტაპზე, თქვენ, ფაქტობრივად, ალბათ, არ პროგრამირების ძალიან კარგად. ასე რომ, რომელიც იქნება განმეორებითი თემა, ძალიან, რომ სტილი. თუ რამდენად კარგად რეალურად ფორმატის თქვენი კოდი? ან რამდენად კარგად თქვენ როგორ შეიმუშავონ კოდი? მაგრამ უფრო, რომ მომავალში. ახლა ჩვენ გვყავს მარყუჟების. აქ არის ლამაზი სამუდამოდ მარყუჟის in Scratch რაც ფაქტიურად იმას ნიშნავს, რომ - do რაც არ არის შიგნით ეს კიდევ ერთხელ, და ისევ, და ისევ. თქვენ შეიძლება იყოს უფრო კონკრეტულ და აცხადებენ, გავაკეთოთ შემდეგი რამ 10 ჯერ. თქვენ ასევე შეგიძლიათ ცვლადი. შეგიძლიათ ამუშავება ნებისმიერი სახელის ცოტა ვარდნა ქვემოთ და აცხადებენ, მომეცი ცვლადში ო და მითითებული იგი გაუტოლდება გარკვეული მნიშვნელობა. და მაშინ აქვს ფუნქციები. მაგრამ უფრო იმ რაღაც მომენტში. ნება მომეცით დაბრუნდეს ჩემი ნულიდან ინტერფეისი. და ნება მომეცით წავიდეთ წინ ამ დროს. და მოდით წავიდეთ წინ და ქმნის, ასე ვთქვათ, მაგალითი - რომ ცოტა უფრო საინტერესო. ნება მომეცით წავიდეთ წინ, და, ფაქტობრივად, ნება მომეცით მხოლოდ იგი თავს. მე არ უნდა გახსნა ეს ერთი. ნება მომეცით წასვლა ფაილი, New. მე ვაპირებ წასვლა ღონისძიებები. მე ვაპირებ მისვლას, როდესაც მწვანე დროშა დაწკაპავთ, და მე ვაპირებ წასვლა ხმით. და მე ვაპირებ და გადაათრიეთ ამ თავსატეხი ცალი, ხმის meow. ეს latches ერთად. ახლა კი, თუ მე დააწკაპუნეთ მწვანე flag - [Meow ხმის] დავით Malan: adorable. OK, ასე რომ, ახლა მოდით რაღაც პატარა უფრო ლოგიკური მხოლოდ იმის დემონსტრირება, რომ ჩვენ შეგვიძლია, ამ დროისთვის. მე ვაპირებ unlatch ეს რომ ბიჭი. მე ვაპირებ წასვლა კონტროლი. და მე ვაპირებ დაიბრუნოს მდგომარეობაშია. ასე რომ, თუ რამე იყო. ასე რომ ასე იქნება. ასე რომ, მე უნდა ლოგიკური გამოხატულებაა. და ნება მომეცით წავიდეთ წინ და აცხადებენ, ნება მომეცით წასვლა ოპერატორები. მე ვაპირებ, რომ რამე ოდნავ mathy, მხოლოდ ჩათვლით. მე ვაპირებ წასვლა აქ და აცხადებენ, იმ შემთხვევაში, თუ რაღაც ნაკლებია, ვიდრე რაღაც, წავიდეთ წინ და რაღაც. ასე რომ, ახლა, იცით, რა, შემთხვევით ბლოკი. ასე რომ შეამჩნია, როგორ, თუ hover მეტი ამ ისაა, რომელიც ვადამდელი იქ. ახლა, შეტყობინება, მე დაწყებული უნდა გააკეთოს რაღაც უკვე ლოგიკურად საინტერესოა. თუ შემთხვევითი რიცხვი 1 და 10 ნაკლებია, ვიდრე, ვთქვათ ექვსი. თუ მე აირჩიოს ექვსი, რაც არსებითად საშუალება, გააკეთოს შემდეგ 50% ალბათობა. ეს იგივეა flipping მონეტა. ეხლა უკვე შემიძლია რაღაცის გაკეთება პირობითად. და ეს რაღაც მე ვაპირებ ამისათვის არის ითამაშოს sound. ახლა, როდესაც მე დააკლიკეთ ეკრანზე დროშა, ეს როგორც tossing მონეტა. [Meow ხმის] დავით Malan: ეს იყო ხელმძღვანელები ან whatnot არსებობს. მოდით კიდევ ერთხელ. [Meow ხმის] დავით Malan: მეთაურთა ერთხელ. [Meow ხმის] დავით Malan: მეთაურთა ერთხელ. Phew, OK. Tails იმ დროს. ასე რომ, 50% დროს, თუ ამას ვაკეთებთ უსასრულოდ გრძელი, მივიღებთ 50% meows და 50% silences. ასე რომ, მხოლოდ ძირითადი შენობა ბლოკი, რომელიც საშუალებას გვაძლევს, რომ. მაგრამ ეს ერთგვარი tedious რომ მაქვს შენარჩუნება დაწკაპვით რომ ღილაკს. მოდით უბრალოდ გადაიტანეთ და გადაყარეთ ყველა იმ მოშორებით. თუ თქვენ ისხდნენ მათ შუა, ისინი ყველაფერს ვშლით თავს. ნება მომეცით გადასვლა up აკონტროლებს. ნება მომეცით წასვლა სამუდამოდ. ამჯერად, მე ვაპირებ ამის გაკეთებას რაღაც minorly შემაშფოთებელი. [სიცილი] დავით Malan: ნება მომეცით წავიდეთ წინ და გააკეთოს კონტროლი. მოითმინეთ ერთი მეორე, მხოლოდ ასე ეს არ არის ძალიან grating. [Meow ხმის] დავით Malan: ეს არ არის ბუნებრივი. OK. [Meow ხმის] დავით Malan: და შეამჩნია რა, ნიცაში შესახებ Scratch, მათთვის, ვინც აქვს წინასწარი programing გამოცდილება, თქვენ არ უნდა დაიწყოს და შეწყვიტოს. თქვენ არ უნდა შეადგინოს. თქვენ უბრალოდ შეცვლის, და პროგრამა იქნება მოერგოს დინამიურად ვითარდება. ასე რომ, ეს ხდება პატარა საინტერესო. მაგრამ ავიღოთ ერთი ნაბიჯია. ნება მომეცით წავიდეთ წინ და მიიღეთ ჩამოშორებას, რომ პროგრამა. [Meow ხმის] დავით Malan: ეს არის ის რაც ჩვენ გამოგიგზავნით მოვუწოდებთ ხარვეზების ნულიდან. მან არ უნდა შევინარჩუნოთ მიღების, რომ ხმა. ასე რომ, ჩვენ ჩვენ გეტყვით მის შესაჩერებლად. ყველა უფლება, ასე რომ, ახლა მე ვარ აპირებს წასვლას - მე ნება MIT ვიცი. გავემგზავრებით მეტი აქ სამუდამოდ. ახლა კი, მე მინდა, რომ რამე ისევ და ისევ. მე ვაპირებ წასვლას კონტროლი. და ვნახოთ, მე ვაპირებ რომ გადაიტანეთ ჩემი თუ პირობა არსებობს. ასე რომ, ახლა შეამჩნია ლოგიკა. როდესაც მწვანე დროშა დაწკაპავთ, ამის გაკეთება რაღაც სამუდამოდ, მაგრამ მხოლოდ ამის გაკეთება რაღაც თუ ეს სხვა რამ არის ჭეშმარიტი. მე ვაპირებ წასვლა, მოდით ამბობენ, იგრძნო. და მე ვაპირებ წავიდეთ წინ და აირჩიოს ეხება და ჩამოაგდეს ის არსებობს. ეს არის ის, ლოგიკური გამოხატულებაა. ახლა კი, შეამჩნია, ამ წვეთი მენიუში, არის რამდენიმე წინასწარ განსაზღვრული ფასეულობები. ასე რომ, შემიძლია ვთქვა, თქვენ ეხება ზღვარზე ეკრანზე? თუ ამ ეხება მაუსის მაჩვენებელი, arrow ეკრანზე? ამიტომ, მე ვაპირებ, რომ. და თუ ასეა, მაშინ მე ვაპირებ წასვლა წინ და ხმის meow. ასე რომ, ახლა მე ასეთი აქვს დასაწყისი თამაში - adorable თამაში. [Meow ხმის] დავით Malan: კარგი, adorable, buggy თამაში. ნება მომეცით დაველოდოთ, ასე ვთქვათ, ერთი მეორე არ არსებობს. ახლა ითამაშოს ერთხელ, დაჭერით მწვანე დროშა. [Meow ხმის] დავით Malan: ასე რომ ახლა ისევე როგორც petting კატა. [Meow ხმის] დავით Malan: ყველა უფლება, ახლა ეს ერთი მე მიიღოს წინასწარ. ძალიან გვიან, ის იღებს სახის ადვილია სულელური რამ. ნება მომეცით, წავიდეს აქ. ვთქვათ, რომელიც ცხოველებისათვის Cat. მოდით ახლა გახსნა არ ცხოველებისათვის Cat. ახლა, თუ ჩვენ ითამაშოს ამ ერთი, შეგიძლიათ ვხვდები, თუ თქვენ ეძებს ეკრანზე - [Meow ხმის] დავით Malan: ახლა, თუ pet კატა [ლომის Roar] დავით Malan: ასე რომ არ რეალურად pet კატა ამ შემთხვევაში. ასე რომ, ახლა ჩვენ უბრალოდ უნდა მაგალითია ფილიალი, რომ ხდება ორი მიმართულებით. ახლა ნება მომეცით წავიდეთ წინ და გახსნა კიდევ ერთი აქ. ეს ერთი, ასევე, მათ შორის ჩვენი წყარო კოდი ფაილებს დღეში. ნება მომეცით, დავუბრუნდეთ ჩემს წყარო კატალოგი, და წასვლას, მოდით ავირჩიოთ ეს ბიჭი აქ და ვნახოთ რა არის განსხვავებული. Wow, ყველა უფლება, ასე რომ, ახლა ის მიღების ცოტა უფრო რთული. სანამ ჩვენ ვხედავთ, თუ რა ეს ბიჭი აკეთებს, მოდით ცდილობენ infer, საწყისი პროგრამა ზე მარჯვენა მხარეს. ახლა კი ნულიდან ნათლად საშუალებას გვაძლევს რამდენიმე სცენარი მრავალჯერადი პროგრამები ასოცირდება ერთი Sprite, ერთი ხასიათი, და, როგორც ჩანს, ისინი ორივე აპირებს ამ lockstep. იმის გამო, რომ ორივე ამ პროგრამების იწყება ერთად, როდესაც მწვანე დროშის დაწკაპუნებით, ეს მან მიანიშნა დროს მოწინავე თემა, რომელსაც რაც ზოგიერთი შეიძლება იყოს ნაცნობი, ცნობილია როგორც threading, ან მრავალ threading. გამოდის, გრძელი ამბავი მოკლედ, კომპიუტერი დღეს შეიძლება არსებითად გააკეთოს მრავალჯერადი რამ ერთდროულად. ან მათ შეუძლიათ ერთი რამ იმ დროს, ისე სწრაფად, რომ თქვენ არ შეამჩნია, რომ ეს, ფაქტობრივად, აკეთებს ერთი რამ დროს. მაგრამ ახლა, მოდით ვივარაუდოთ, რომ ორივე ამ პროგრამების ვაპირებთ, რათა შესრულდეს ზე ამავე დროს. და შეამჩნია, ორივე მათგანი სამუდამოდ თავსატეხი ცალი. ასე რომ, ისინი ორივე აპირებს შენარჩუნება გაშვებული სანამ მოხვდა წითელი გაჩერების ნიშანი. ასე რომ, რას აპირებთ? On მარცხენა მხარეს, მე ვარ როგორც ჩანს გამოცხადების ცვლადში მდუმარე. ასე რომ, მე არ ვუწოდებ, რომ მსგავსი რამ მოსაწყენი, ისევე როგორც ნ I უწოდა მდუმარე ამ დრო სჩანს მნიშვნელობა აქვს. მე მითითებული ეს ნულის ტოლია. მოდით ვიფიქროთ, რომ როგორც ყალბი, ან მოდით ვიფიქროთ, რომ როგორც ყალბი. ახლა, სამუდამოდ გავაკეთოთ შემდეგ. თუ კლავიატურის სივრცეში ბარი დაპრესილი, შემდეგ, თუ მდუმარე ნულის ტოლი, შემდეგ შეცვლის მდუმარე ერთნაირი ერთი. სხვაგან, მითითებული მდუმარე ნულის ტოლია. ასე რომ ლოგიკურად, მიუხედავად იმისა, რომ მთელი რამოდენიმე თავსატეხი ცალი რომ არის უბრალოდ ამბობდა, როდესაც მე მოხვდა ფართი ბარი, რა უნდა გავაკეთოთ, რომ ცვლადის მოუწოდა მდუმარე? შეცვლის ერთი ნულოვანი, ან ნულოვანი ერთი. ეს იყო. ასე რომ, ეს როგორც გარდამტეხი მსუბუქი შეცვლა ან გამოსართავად და დამახსოვრების, ერთად ცვლადი, რომ მე ვაკეთებ, რომ. იმავდროულად, მარჯვენა მხარეს, layman პირობები, რა მიზანს ემსახურება დამწერლობის მარჯვენა? სტუდენტი: იმისათვის, რომ ითამაშოთ ზღვის ლომის ხმა. დავით Malan: იმისათვის, რომ ითამაშოთ ზღვის ლომის ხმა, თუ იგი არ არის მდუმარე მიერ ბუნების, რომ განსხვავებულია. ასე რომ, ჩვენ გაზიარების სახელმწიფო, ასე ვთქვათ, გაცვლის ინფორმაციას მთელი ამ ორი სცენარების იმიტომ, შეამჩნია აქ ვართ სამუდამოდ აკეთებს შემდეგ. თუ მდუმარე ნულის ტოლია, ასე რომ თუ ეს ასე არ არის მდუმარე - თუ მდუმარე სიცრუეა, მაშინ ითამაშებს ამ ზღვის ლომის ხმა. და ვფიქრობ, საკუთარ თავს, hi, hi, hi, ამისთვის ორი წამი, დაველოდოთ ერთი წუთით, შემდეგ კი შეამოწმოს ერთხელ. ასე რომ, თუ ჩვენ უკვე დასრულებულია აქ მარცხენა, იქ, სადაც ეს ბიჭი არის, და მოხვდა მწვანე დროშა, [SEA LION ხმის] დავით Malan: როდის აკეთებს ამ მიიღოთ მართლაც შემაშფოთებელი? იმიტომ, რომ ეს იქნება მხოლოდ წასვლა სამუდამოდ. ასე რომ, ზოგჯერ, უსასრულო მარყუჟების, ასე ვთქვათ, არის მიზანმიმართული. მაგრამ ამ შემთხვევაში, როგორც კი მოხვდა ფართი ბარი, ის შეწყვეტს. ახლა პროგრამა არ დატოვა. დღემდე მიმდინარეობს ეს მარყუჟების. მაგრამ თუ მივიღებ სივრცეში ბარი ერთხელ - [SEA LION ხმის] დავით Malan: ის აპირებს პიკაპის up სადაც ის შეჩერდით. ასე რომ, არსებობს ერთი გზა ჩვენთვის უნდა გააკეთოს რაღაც ისევ და ისევ, მაგრამ, რომ დრო, მხოლოდ პირობითად. ისე, ხოლო ჩვენ ამ ვენის აკეთებს რამ ისევ და ისევ, მინდა წასვლას კიდევ ერთი მაგალითია აქ. ეს ერთი ჩვენ ამას დავარქმევთ დათვლის ცხვარი. და შეამჩნია რა ეს ბიჭი აკეთებს. ეს, ფაქტობრივად, ცოტა უფრო pseudocode ჩვენ ითამაშა წლის კვირა, რომლის დროსაც იგი ადგენს გარკვეული მრიცხველი, ვფიქრობ, ეს არის როგორც N კიდევ ერთხელ, რომ ნულოვანი, ის სამუდამოდ არ შემდეგ. მისი თქმით, მრიცხველის ღირებულების ერთი მეორე, ელოდება მეორე, შემდეგ კი ცვლის counter ერთი. და ამ კონტექსტში, რომ მხოლოდ ნიშნავს მდე იგი. ასე რომ, ის დასძენს, ერთი იგი. ასე რომ, ეს ფაქტიურად - ეს არ არის საკმაოდ, რასაც ჩვენ ვფიქრობთ, როგორც დათვლის ცხვარი. ეს ცხვარი აკეთებს დათვლა, სამუდამოდ up ნულიდან. ასე რომ ჩვენ შეგვიძლია გავაკეთოთ ასეთი რამ იქ, ლოგიკურად. მაგრამ ახლა მოდით ცდილობენ გაწმენდა ზოგიერთი რამ მდე. ნება მომეცით წავიდეთ წინ ახლა შევიდა მარტივი მაგალითად, სადაც ჩვენი კატა უბრალოდ აპირებს დაიწყოს ხველა. ყველა უფლება, ასე რომ აქ გვაქვს ხველა 0 - კომპიუტერული მეცნიერები დაიწყება დამთვლელი 0. ასე რომ, ეს კატა მხოლოდ აპირებს to ხველა სამჯერ. აი, როგორ განხორციელდება ეს. როდესაც მწვანე დროშა დაწკაპავთ, ხველა, დაველოდოთ, ხველა, დაველოდოთ, ხველა, დაველოდოთ. და მე ეს უბრალოდ გადმოიყვანა და ჩაშვების თავსატეხი ცალი. ან თუ დაიწყება Tinker ერთად ნულიდან, დაინახავთ, თქვენ შეგიძლიათ რეალურად დუბლიკატი ცალი ასე რომ შეგიძლიათ გააკეთოთ რამ უფრო სწრაფად გარეშე გადმოიყვანა და ჩაშვების რეკლამა nauseum. მაგრამ ჩვენ არ საუკეთესო გზას აქ. იმის გამო, რომ როგორ უნდა მას ხველა მეოთხედ? ისე, მე შეიძლება ერთგვარი დაცემას აქ. მე ვერ დუბლირებას და შემდეგ ჩასვით ეს იქ. როგორ შემიძლია მას ხველა მეხუთედ? ისე, დააკოპირეთ და ჩასვით ისევ. ან მასში წვეთი კვლავ. და ძალიან სწრაფად, ეს პროგრამა იწყება მიიღონ რეალურად, მართლაც ზედმეტი, მართლაც ხანგრძლივი, მაგრამ მართლაც უინტერესო. მაგრამ არსებობს გზა გაწმენდა ეს ყველაფერი. რა არის აშკარა გზა გაწმენდა ეს ყველაფერი? OK, ასე რომ, ჩვენ შეიძლება რეალურად მართლაც წავიდეთ გარეთ და, როდესაც თქვენ მოხვდა სივრცეში ბარი, აქვს მას ხველა. მაგრამ თუ მინდა, რომ რამე repetitively, გავიხსენოთ, რომ ჩვენ გვყავს ზოგიერთი კონტროლის აშენებს. ნება მომეცით გადაადგილება ამ გარეთ გზა, წავიდეთ კონტროლის ქვეშ. ნება მომეცით მხოლოდ ამის განმეორება, ამბობენ, სამჯერ. ახლა კი ნება მომეცით იპარავს რაღაც ამ თავსატეხი ცალი. ნება მომეცით ვადამდელი ეს აქ. ნება მომეცით სახიფათოა ამ მოშორებით საერთოდ. ახლა კი, მე მაქვს უკეთესი შექმნილია პროგრამა. რატომ? თუკი მინდა, რომ შეიცვალოს არაერთხელ ამ კატა coughs, ყველა მე უნდა უნდა შეცვალოთ ერთ ცვლადი, ან ერთი ღირებულება, საკმაოდ სამი, ოთხი, ან ხუთი, თუ ექვსი. შეიძლება, რომ რამე პირობითად, მაშინაც კი, იმ სივრცეში ბარიერი თუ მინდოდა. ასე რომ, ეს არის ზოგადი პრინციპი. მას შემდეგ დაიწყება გადაწერა და pasting კოდი, თუ არა ამ Scratch, ან C, თქვენ აკეთებთ რაღაც არასწორი, სავარაუდოდ. ან თუნდაც, ერთხელ თქვენ გადააჭარბა გარკვეული გონივრული რაოდენობით ასლი და პასტები, თქვენ ალბათ აკეთებს რაღაც. მაგრამ იცით რა? მე ნამდვილად არ მოსწონს ეს. ეს არ არის სუფთა დიზაინი. ვუსურვებ იყვნენ თავსატეხი ცალი მოუწოდა ხველა რადგან მაშინ მე არ უნდა განახორციელოს ეს თავს, მოძველებული გზა, რომელსაც რომელმაც ამბობენ, და დაველოდოთ - რა მოხდება, თუ ისინი მხოლოდ ხველა თავსატეხი ცალი. ისე, მე შეიძლება რეალურად გაგვაჩნია. ნება მომეცით წავიდეთ ქვეშ მეტი ბლოკები, დააჭირეთ გააკეთეთ ბლოკი და ახლა მივიღებ ამ ფანჯარა აქ. მე ვაპირებ მოვუწოდო ამ რამ ხველა. მე ვაპირებ წავიდეთ წინ და დააჭირეთ OK. ახლა კი ცნობა, მე ახალი დაწყებული ცალი რომ curved ზედა. და რა მე ვაპირებ ვუყოთ, მე ვარ აპირებს უბრალოდ იპარავენ ეს ბლოკად. მე ვაპირებ ისინი აქ. ახლა კი, ამ სამი ცალი, მე განხორციელებული, რაც მე ვაპირებ მოვუწოდო ფუნქცია, ან პროცედურა, ან რომელიმე მოგეხსენებათ, რომ ეს მეთოდი. ოდნავი განსხვავებები შორის სიტყვა. მაგრამ ახლა, მოდით, უბრალოდ მოვუწოდებ ამ ფუნქციას. ეს არის მხოლოდ ახალი თავსატეხი ცალი. ახლა კი ხორციელდება მოსწონს ეს. მაგრამ შეამჩნია, რომ Scratch მოგვცა ფიზიკური წარმომადგენლობა, რომ მთელი ბლოკირება აქ. ასე რომ, ახლა, მე შემიძლია მხოლოდ გადაათრიეთ ამ მეზობელი, ამბობენ, ვიმეორებ სამჯერ და რა მოხდება ახლა, როდესაც მე ითამაშოს ეს სცენარი, მხოლოდ ერთი პროგრამა მიმდინარეობს დროს. არის მხოლოდ ერთი, როდესაც მწვანე დროშის დაწკაპავთ. მაგრამ ეს purple ბლოკის მოუწოდა ხველა არის ეფექტურად ვეუბნებოდი Scratch, ყოველ დრო თქვენ ხედავთ, რომ თავსატეხი ცალი, რეალურად შეასრულოს ეს ნაბიჯი, რომ მე მოხდეს განხორციელება ხელით. ასე რომ, ერთგვარი გარღვევა. მაგრამ ახლა, ვივარაუდოთ, რომ გადავწყვიტე, მე არ გვინდა, რომ ეს კატა მხოლოდ იმიტომ, რომ ხველა. მინდა, რათა მათ შეძლონ to sneeze ასევე. ასევე, თუ როგორ უნდა წავსულიყავით შესახებ ახორციელებს sneeze? ისე მე ვერ საკმაოდ ბევრი გავაკეთოთ იგივე. მე შესაძლოა კიდევ ერთი ბლოკი. მე ვერ დავარქმევთ sneeze, დააჭირეთ OK. ამის შემდეგ, აქ მე ვერ რეალურად არ, მინდა დუბლიკატი ამ - და იქ, სადაც თქვენ უნდა გრძნობდეს მოსწონს თქვენ ალბათ არ აკეთებს რაღაცას საუკეთესო საშუალებაა. მე ვიტყოდი, რომ მსგავსი რამ, achoo, ერთი მეორე. მოითმინეთ ერთი მეორე. ახლა ახალი ბლოკი მოუწოდა sneeze. მართლაც, არ არსებობს ეს არის. მაგრამ ეს, ძალიან, უნდა დაიწყოს თავს - იქნებ არ პირველ კვირას კლასის, მაგრამ მეორე - უბრალოდ ცოტა ზედმეტი. ცხადია, არსებობს გარკვეული redundancy აქ. ნება მომეცით, შესთავაზოს, ნაცვლად, რომ ჩვენ დახვეწა ეს განსაზღვრება ასეთია. ნება მომეცით ახვიდეთ ჩემი ფაილი მენიუში. მე არ ვაპირებ, რათა გადავარჩინოთ ეს ვერსია. მე ვაპირებ წასვლას ერთი ჩემი premade ფაილი აქ. და მე ვაპირებ წავიდეთ წინ და ქმნის ხველა 2. Whoops რომ იყო ხველა 2. ნება მომეცით წავიდეთ წინ და ქმნის ხველა 3, რაც ამ წყაროს დირექტორია. ხველა 3 და შეამჩნია - oh, მე ვუთხარი ამბავი არასწორი მიზნით. ნება მომეცით აღადგინონ ეს ამბავი. ამბავი მე იმას ნიშნავდა, რომ გითხრათ მთავრდება ხველა 4 - იქ ის არის. მერე რა რომ, ნაცვლად, განსაზღვრავს უფრო დიდი თავსატეხი ცალი მოუწოდა განსაზღვრავს, ვთქვათ სიტყვა ო ჯერ. Sneezing მხოლოდ, როგორც ჩანს, ამ ნულიდან, achoo. ასე რომ, ჩვენ გამოვხატოთ ის, როგორც სიტყვა, მხოლოდ იმიტომ, რომ ეს არის ის, შეზღუდვა პროგრამის. და ხველა არის [ხველა], მაგრამ ხველა, C-O-U-G-H. ასე რომ, მხოლოდ ორი სხვა სიტყვები აკეთებს, არსებითად, იგივე. ასე, რომ შეიძლება რეალურად გააკეთოს ახალი ბლოკი მოსწონს ეს. მე არ გამოიყენოს ეს მენიუ ვარიანტი ადრე. მაგრამ მხოლოდ ზედა სასტარტედ ბლოკი, შეგიძლიათ რამდენიმე ვარიანტი. თქვენ შეიძლება ითქვას, რომ ამ ბლოკის რეალურად სჭირდება გარკვეული საშუალებებით, წინააღმდეგ შემთხვევაში ცნობილია როგორც არგუმენტები, ან პარამეტრების, ასე რომ თქვენ შეგიძლიათ საქციელი თქვენი ბლოკში. ასე რომ, რა მე ერთი წუთით წინ იყო დავურეკე ამ ბლოკის ითქვას. და მაშინ ვთქვი, ეს ხდება სიმებიანი შეყვანა. ახლა კი შეამჩნია, ჩვეულებრივ, იგი აცხადებს, სიმებიანი 1. სიმებიანი მხოლოდ სიტყვა, ან ფრაზა, ჩვენი მიზნებისთვის. მაგრამ მე მხოლოდ აპირებს დააყენა რამდენიმე placeholder ტექსტი არ არსებობს, ისევე, როგორც ნახვა, როდესაც ხედავთ სახელი, ან პაროლი, შემდეგ კი ქრება, როდესაც დაიწყება აკრეფით. ეს არის ის, რომ არის. ახლა კი მე ვაპირებ დაამატე ნომერი შეყვანა. და მე ვაპირებ მოვუწოდო ამ n - მაგრამ ეს არის საკმაოდ თვითნებური. და შემდეგ უბრალოდ label, მხოლოდ იმისათვის, რომ ამ ბლოკში ცოტა მეტი თვით განმარტებითი - ჯერ ის, რაც მე უბრალოდ გააკეთა. და ბოლოს შედეგი ის არის, რომ მე ბლოკი რომ ასე გამოიყურება. ახლა კი შეამჩნია, მე გამოყენებით განმეორებითი ბლოკი. მაგრამ ვიდრე მძიმე კოდირების სამი, მე ვარ გადმოიყვანა და ჩაშვების ო იქ ასე რომ მე შეიძლება parametrize ფუნქცია. მე შემიძლია ამ ფუნქციის რომ რამე სხვადასხვა არაერთხელ საფუძველზე რომ მნიშვნელობა. და შეამჩნია, აცხადებენ, რომ ეს რა გავაკეთე აქ, თუ გადაიტანეთ სიტყვა, შემიძლია ვთქვა, არ რთული კოდირებული სიტყვა, მაგრამ რაც არის მიღებული ერთი მეორე. იმავდროულად, როგორ უნდა ხელახლა განხორციელება ხველა? I ნაცვლად განისაზღვროს ხველა, როგორც ამბობდა ხველა ო ჯერ. ასე რომ, მოკლედ, მე ვაპირებ ამ გზით სწრაფად, მაგრამ ძირითადად, ეს როგორც კი როგორც თქვენ დაიწყოს ხედავს თქვენს პროგრამა რომ, დაველოდოთ ერთი წუთით, მე ვაკეთებ რაღაც მსგავსი ადრე, შემიძლია ფაქტორი ბრძოლის ერთიანი ფუნქციონალური? შემიძლია გახრწნის რა მე ვაკეთებ რამდენიმე ძირითადი იდეები? ეს არის ის, რასაც ჩვენ ვაკეთებთ აქ. და მე stacked ეს ყველაფერი, ვიზუალურად, თავზე ერთმანეთს რადგან ეს არის აღთქმა, რომ იდეა დაწყებული ორობითი, აპირებს ASCII, მიღების გრაფიკული პროგრამები, ერთგვარი layering უფრო რთული იდეები დაბრუნება ერთმანეთს. იგივე იდეა აქ. დავიწყე ნულიდან, ახორციელებს ხველა, მაშინ მიხვდა, ხველა არის უბრალოდ ამბობდა რაღაც. ნება მომეცით, ნაცვლად განახორციელებს ცნება ამბობდა რაღაც. და ზევით რომ, შემიძლია განხორციელება achoo, ან ხველა? და ჩვენ შეიძლება მეტი ასეთი ვარიანტი მაინც. ასე რომ ამ ძირითად პრინციპს, ჩვენ შეგვიძლია დავიწყოთ უნდა გააკეთოს უფრო რთული პროგრამები. ნება მომეცით ქმნის ამ ერთი. ჩვენ შეგვიძლია რეალურად რამდენიმე sprites ძალებთან ეკრანზე ერთდროულად. თუ მე ჩემს წყაროს დირექტორიაში და აითვისებდა ერთი წოდებული თემა, გავიხსენოთ, რომ თემა არის უბრალოდ ნამდვილად უნარი ორი სცენარების აწარმოებს გვერდით მხარე ამავე დროს. გავითვალისწინოთ, ახლა, ორივე ფრინველი Sprite და კატა Sprite, რაც აქვს საკუთარი სცენარი. ასე რომ, შეტყობინება, როდესაც მე დააწკაპუნეთ კატა, მე ეს სცენარი. როცა დააწკაპუნეთ ფრინველი, მე ეს სცენარი. ასე რომ თითოეული ამ ბიჭებს აქვს საკუთარი პროგრამები. როდესაც მე ახლა დააწკაპუნეთ მწვანე დროშა, შეამჩნია რომ ის, რაც ამ პროგრამის აკეთებს აქვს კატა, წარმოუდგენლად ნელა, დევნის ფრინველის. მაგრამ კატა აქვს უპირატესობა, რომელსაც უკვე დაპროგრამებულია ისე რომ არა აქვს მნიშვნელობა, სადაც ფრინველის არის, კატა მიდის მიმართ მას. ჩვენ შეუძლია, რომ თამაში უფრო სწრაფად. ასე რომ, თუ მე მე კატა, შეამჩნია, რომ მე გამოყენებით, ვთქვათ გადატანა ერთი ნაბიჯები. მოდით მას გადაადგილება ხუთი საფეხურით ზე დრო, ასე ხუთი წერტილი დროს. ნება მომეცით დაჭერით ითამაშოს. [ლომის Roar] დავით Malan: ყველა უფლება, ახლა კი მართლაც მისცეს კატა უპირატესობა. 10 ნაბიჯები დროს. [ლომის Roar] დავით Malan: ყველა უფლება, ასე რომ ძალიან სწრაფად, იგი იღებს პატარა უპირატესობა ამისთვის კატა. მაგრამ მე ტალღის ჩემი ხელი ზოგიერთ დეტალს. თუმცა იმ მიზეზით, რომ ამ გზას არის დაწყებული ცოტა განსხვავებული ყოველ ჯერზე ის არის, რომ მე ვაკეთებ ცოტა randomness. მე რეალურად მიუთითებს კატა სხვა მიმართულებით საფუძველზე, სადაც მე მინდა მას დაიწყოს ისე, რომ ყოველ ჯერზე თამაში, ან ანიმაცია, არის ცოტა განსხვავებული. ნება მომეცით წარმოგიდგინოთ ერთი სხვა მშენებლობა აქ. ასე რომ, ამ შემთხვევაში, ჩვენ გვქონდა ფუნქციები. არის ასევე იქნება თავსატეხი ცალი ცნობილია, როგორც მასივი, ან სია, რომელიც საშუალებას გაძლევთ შესანახად მრავალჯერადი ღირებულებები შიგნით განსხვავებულია. ჩვენ ვნახეთ თემა და ახლა იქ მოვლენები. ასე რომ, აქ არის ღონისძიება გამოყენებით ამ ორი ბიჭები აქ. და თუ გახსნას ფაილი სახელად თარიღები დღევანდელი მაგალითები, ჩვენ ვხედავ პროგრამა, რომელიც გამოიყურება ცოტა მოსწონს ეს. ახლა კი შეამჩნია ეს ბიჭი - ასე შეამჩნია მაქვს ლურჯი Muppet დაწკაპავთ - ის მხოლოდ შემდეგ. მას არა აქვს ერთი იმ მწვანე დროშის თავსატეხი ცალი. მას აქვს როცა ვიღებ ღონისძიება - ასე რომ ზოგიერთი თვითნებური სიტყვა. უბრალოდ აკრეფილი out ღონისძიების - ის აპირებს ამბობენ, პოლო, ორი წამი. ასე რომ, ვინც იცნობს ეს თამაში ალბათ იცით სადაც ეს ხდება. თუ მე ახლა დააწკაპუნეთ ფორთოხალი Muppet, მისი გადაცემა აკეთებს ამას. სამუდამოდ, თუ კლავიატურის სივრცეში ბარი აღკვეთილი, იგი აპირებს ამბობენ, მარკო, ორი წამი ეკრანზე. მაგრამ ის ასევე აპირებს გამოიყენოს ეს fancier ბლოკირება ცნობილია როგორც მაუწყებლობა. ის აპირებს ეთერში გაცემა unquote, "ღონისძიება". იმავდროულად, ლურჯი ბიჭი, გაწვევას, არის მოსმენის for გაცემა unquote, "ღონისძიება". ასე რომ, რატომღაც, ახლა, რომ შეგვიძლია ორი sprites ძალებთან. ხოლო როდესაც ჩვენ ვიღებთ ვებ პროგრამირებაში, მოგვიანებით ტერმინი, ასევე იქნება ამ იყოს მომგებიანი თქვენი ნახვა რაიმე ამის საპასუხოდ, for მაგალითად, დაჭერით კლავიატურის. ნება მომეცით, წავიდეთ წინ და მოხვდა სივრცეში ბარი. ნარინჯისფერი ბიჭი ამბობს მარკო. ლურჯი ბიჭი ამბობს Polo. თუ მე კიდევ ერთხელ ფორთოხლის ბიჭი ამბობს მარკო, ლურჯი ბიჭი აცხადებს, polo. ასე რომ, მოდით ეს ერთი ნაბიჯია. ამჯერად, გავემგზავრებით, ალბათ, მხოლოდ რამდენიმე წუთის აქ. გვაქვს - სამაგიდო ნათურა, მოდის ქვემოთ. თქვენ ხართ უფლება ბოლომდე. OK, ჩვენ შეგვიძლია ამუშავება. ჩვენ გვყავს სამაგიდო ნათურები ყველასთვის. კარგით. არ ვიცი, შევძლებთ თუ არა შენარჩუნება ამ სასაცილოა gag up ყველა სემესტრში, თუმცა. ყველა უფლება, მოდის ქვემოთ. და იმავდროულად, შემდეგ მაგალითები უნდა გაიყვანოს up, უბრალოდ დააჩქაროს რამ არის, ასეთი, რომ ჩვენ აქვს გამოვლინება სხვა წინამორბედი თქვენი გამოყენებით იგივე ძირითადი შენობა ბლოკად. რა არის შენი სახელი? JOHN: ჯონ. დავით Malan: ჯონ. კარგია მე თქვენ. და? SETZ: Setz. დავით Malan: Setz, ლამაზი ჩემთვის თქვენ. ჯონ, თუ გსურთ მოსვლა მდე პირველი, ეს არის ძველი სკოლის თამაში დაასახელა Frogger. თქვენ იყენებთ კლავიატურის ეს ასევე. და მიზანია, რომ მთელი ქუჩის და წყალი. [Frogger მუსიკა და ხმის ნათამაშები] დავით Malan: მე ბოდიში, არ სამაგიდო ნათურა თქვენთვის დღეს. ყველა უფლება, Setz, რომ თქვენ მინდა მოდის up? ყველა უფლება, მოდით კიდევ ერთხელ. SETZ: შევიდე გამოიყენოთ ისრები? დავით Malan: უბრალოდ arrow გასაღებები. Up, down, მარცხნივ, მარჯვნივ. [Frogger მუსიკა და ხმის ნათამაშები] დავით Malan: ჩვენ მოვუწოდებთ მათ ნუგეში პრიზები დღეს მაშინ, ძალიან კარგად გაკეთდეს. აქ, როგორც თქვენ, ჯონ და Setz. გილოცავთ, ყველა უფლება. ასე რომ, კიდევ ერთხელ, როგორც ეს თამაში უკრავს, ვფიქრობ იმაზე, თუ რა ხდება? ერთი, იქ აშკარად ბევრი შუამდგომლობა. მაგრამ ჩვენ ვნახეთ, თუ როგორ, ერთად კატა და ფრინველის მაგალითად, თუ როგორ შეგიძლიათ ილუზია მოძრაობის მხოლოდ მოძრავი ზოგიერთ რიგი pixels ისევ და ისევ. და თუ თქვენ გაქვთ სამუდამოდ ბლოკი, თქვენ შეიძლება ეს მანქანა ამით სამუდამოდ. ჩვენ გვყავს უნარი გარკვეული randomness. ასე რომ, ეს თამაში არ უნდა იყოს ზუსტად ყოველ ჯერზე. იმ ჟურნალები, იმ მანქანაზე, შეგიძლიათ დაიწყება ოდნავ განსხვავებული ჯერ ისე, რომ თამაში თავად უფრო საინტერესო ყოველი თამაში. და იმავდროულად, ჩვენ ვნახეთ უნარი მოსასმენად სივრცეში ბარი. მაგრამ ნათლად, ამ Scratch, შეგიძლიათ ასევე მოვუსმინოთ მდე, ქვემოთ, მარცხენა, მარჯვენა და მართლაც ნებისმიერ ღილაკს ხელს კლავიატურაზე. და ასევე შეგიძლიათ დაკავდით სხვა რამ. ნება მომეცით წავიდეთ წინ და დაბრუნდეს ინტერნეტში ვერსია. ნება მომეცით წასვლას ჩვენი კოლექცია მაგალითები აქ. და ქვეშ ჩემი სტუდია, ვიდეო, რომელიც არის, არსებითად, საქაღალდე scratch.mit.edu. ჩვენ გვყავს ვებ ვერსიებს ყველა ამ პროექტებს. და ვნახოთ, თუ შეიძლება მიიღოს ჩემი კომპიუტერული ითანამშრომლონ აქ. ეს არის დაწერილი ერთი ჩვენი მეგობარი at MIT, სახელწოდებით გადატანა პეპელა. და კიდევ ამ ხსნის, რომ ეს არის აპირებს რეალურად გამოიყენოს მეტი ჩემი კომპიუტერის აპარატურა. Scratch ხდება განხორციელდება ერთად Flash. Flash შეიძლება გაიგო თქვენი webcam, თუ ერთი. ასე რომ, თუ მე წავიდეთ წინ და სრულ ეკრანზე ამ აქ, დააკლიკეთ მწვანე დროშა, გაფრთხილების რომ Flash უსაფრთხოების გაგზავნა ამბობს, გნებავთ საშუალებას იძლევა გამოიყენოთ ჩემი webcam? როგორც წესი, უნდა ალბათ ამბობენ უარყოფენ. მაგრამ ამ შემთხვევაში, ჩვენ ვთქვათ, საშუალებას მისცემს. ამის შემდეგ მე ვაპირებ ვუთხრა Chrome დაუშვას ამ ასევე. ახლა კი, რაღაც მომენტში, ხედავთ მე, Yep, მე. და თუ ჩემი მხრივ მიდის - მაქვს, რომ არ გადავა ჩემს ხელმძღვანელი ამავე დროს. არის ასევე ასახვა ეკრანზე. კარგით, იქ წასვლა - შეგიძლიათ გადატანა ეკრანზე, რადგან არის ასევე თავსატეხი ცალი - oh, თქვენ ვიცით, რა არის, ეს იმიტომ, რომ თქვენ ასევე ვხედავ პროექტორი ეკრანზე ჩემს უკან. ასე რომ, ჩვენ გვაქვს პატარა უსასრულო რამ ხდება. ყველა უფლება, ასე რომ მე ითამაშოს ქვემოთ აქ. იქ ჩვენ წავიდეთ. ასე რომ, არის ასევე თავსატეხი ცალი, რომ ამბობს, როდესაც ხედავთ მოძრაობა ქვეშ ერთი sprites, შეგიძლიათ ხელიდან up, down, მარცხნივ, მარჯვნივ ან მოსწონს. ასე რომ, ჩვენ ცოტა ვირტუალური რეალობის ხდება აქ, ისევე, ყველა ფარგლებში confines, ჩემი ბრაუზერის, უბრალოდ აქ გამოყენებით ჩემი ვებკამერა. რა არის მერე ჰორიზონტზე. პირველი პრობლემა კომპლექტი, როგორც ნახავთ, ან ნახვა იქნება მოგვიანებით ჩაირთვება დღეს გამართულ cs50.net, საკმაოდ ბევრი იქნება ღია დასრულდა. და განხორციელება Scratch პროექტი საინტერესო იყოს თქვენთვის, თამაში, ურთიერთქმედების, რაღაც მხატვრული და გამოწვევას თავს გამოიყენოს ნებისმიერი რაოდენობის ამ თავსატეხი ცალი. და ეს შეიძლება იყოს ინტერაქტიული ამ გზით. ან შეიძლება იყოს რაიმე უფრო შეგნებულად გააკეთა ვუთხრა ამბავი. მართლაც, რომ ის, სადაც ჩვენ დასრულდება off დღეს, ერთი საბოლოო მაგალითი. ნება მომეცით წასვლას Scratch ადგილობრივად. ნება მომეცით წავიდეთ წინ და გახსნა, და თამაშობენ ერთი ბოლო პროგრამის მიერ დაწერილი ერთი თქვენი წინამორბედები, კერძოდ რომ აქ. კარგი, ამაღლება ტომი ეს ერთი. [მუსიკალური სათამაშო] მთხრობელი: მომდევნო CS50, დავით იწვევს მოხალისე სცენაზე. დავით Malan: ამ აქციას, ჩვენ ვაპირებთ, საჭიროა ერთი მოხალისე. გსურთ მოდის ქვემოთ? რა არის შენი სახელი? მოძრავი.