[მუსიკის დაკვრა] ეს არის CS50-- ჰარვარდის უნივერსიტეტის დანერგვა ინტელექტუალური საწარმოების კომპიუტერულ მეცნიერებათა და ხელოვნების პროგრამირების. და ჩემი სახელი არის დავით Malan და მე მხოლოდ ფიქრი ამ დილით, ეს იყო საოცრად 20 წლის ხდება მას შემდეგ, რაც მე ბოლო იჯდა, სადაც თქვენ ბიჭები ახლა. ეს იყო 1996 წელს. მე ვიყავი მეორე, და მე იღებდა CS50 ძალიან პირველად. და მე კი არ მიღებული მდე ნერვის მიიღოს იგი თავს freshman წელი, ნაწილობრივ იმიტომ, რომ დრო. კომპიუტერულ მეცნიერებათა ჩემთვის იყო სახის მოსწონს, meh. მე ვიყავი ცოტა geek იზრდება , მაგრამ მე ნამდვილად არ გააჩნია არც ინტელექტუალური ინტერესი, რაც გამოჩნდა უნდა იყოს მხოლოდ მთელი bunch of ადამიანებს პროგრამირების ყველა დროის. და შემეშინდა რომ იყოს პატიოსანი. რა თქმა უნდა, და კომპიუტერულ მეცნიერებათა მეტი საერთოდ ჰქონდა და, გარკვეულწილად, ჯერ კიდევ აქვს ამ რეპუტაციას სფერო სიფრთხილით მოვეკიდოთ, თუ მხოლოდ იმიტომ, რომ ბევრი ჩვენგანი იციან ეს და დარწმუნებული იგი. და ეს ნამდვილად არ იყო, სანამ მე მზად ამ კლასში, რომ მეორე fall-- და მაშინაც კი, მე მხოლოდ ჩარიცხულ იმის გამო, რომ professor-- ერთ-ერთი პირველი მფარველების, ბრაიან Kernighan ახლა Princeton-- საშუალება მომცა მიიღოს კლასის უღელტეხილზე ვერ. და მართლაც, ამიტომ დღეს ჩვენ არ დავუშვებთ და ხელი შეუწყოს სტუდენტებს მიიღონ ამ კლასში SAT / UNSAT. და მხოლოდ მაშინ, მიერ სემესტრის ბოლოს ვერც კი წარმოვიდგენდი,, აბა, ამ არ იყო ასეთი უცნობ სფეროში. მართლაც, ეს იყო ძალიან განამტკიცებს სფეროში, და უფრო საინტერესოდ, განსაკუთრებით მოგვიანებით, როგორც მე კურსები დრამატული ხელოვნების 101 და ლათინური და მაშინ საბოლოოდ გრადის სკოლა არქეოლოგია, მე ნამდვილად დაიწყება სანახავად გზაჯვარედინებზე ამ სფეროში, კომპიუტერული მეცნიერებას, ჰუმანიტარული, საბუნებისმეტყველო მეცნიერებები, ხელოვნება, მედიცინა, და ასე შემდეგ. და ისე, რომ ის, რაც უბრალოდ ისე სისუფთავე კომპიუტერულ მეცნიერებათა საბოლოო ჯამში, როგორც ჩვენ ვიმედოვნებთ, რომ თქვენ see-- მისი გამოყენების ეს სხვა სფეროებში, და როგორ შეგიძლიათ გარკვეული დღევანდელი და სემესტრის იდეები და პრაქტიკული უნარ-ჩვევების უკან საკუთარ domain, და რეალურად შეისწავლონ ამ გადაკვეთაზე ლიბერალური ხელოვნებისა და მეცნიერებათა. ასე რომ, 73%, თუ ბოლო წელს არის რაიმე ნიშნებს, არასდროს აღებული CS რა თქმა უნდა, ადრე. ასე რომ, თუ, როგორც მე, თქვენ შეგრძნება ცოტა ეშინია, ან გულწრფელად თქვენ არ ნამდვილად დარწმუნებული ვარ, რატომ თქვენ კი აქ. ალბათ მხოლოდ შემდეგ ზოგიერთ მეგობრები მეტი Sanders ახლავე. სწორედ მთლიანად ჯარიმა. მიზანი აქ არის Hook და დაგარწმუნოთ, რომ თუ გვსურს, მარცხენა და მარჯვენა, თქვენ ვაპირებთ ვხედავ თანაკლასელები როგორც პატარა ან დიდი გამოცდილება რომ თქვენ საკუთარ თავს ალბათ. და მართლაც, ჩვენ გავიზიარო ზოგიერთი სტატისტიკური დღესვე , თუ რა დემოგრაფიას კლასში, როგორც წესი, გამოიყურებოდეს. და დასძინა reassurance-- და ჩვენ ნიშნავს მას შემდეგ, რაც მე აიღო, რა თქმა უნდა რამდენიმე წლის ago-- in რა თქმა უნდა, სილაბუსი არის ამ რომ ის, რაც, საბოლოო ჯამში, საკითხების ეს კურსი არ არის იმდენად სადაც თქვენ დასრულდება მდე ნათესავი თქვენს თანაკლასელები, მაგრამ სადაც თქვენ კვირაში 11, ბოლოს სემესტრის დასრულდება მდე ნათესავი თავს კვირაში 0, რომელიც არის სადაც ჩვენ ვართ დღეს აქ. და ეს არის ის, რაც მივხვდი, ყველა იმ წლის წინ. და მე ვიცი, რომ ბევრი კატეგორიები ამბობენ, რომ ეს, მაგრამ ეს განსაკუთრებით კომპიუტერულ მეცნიერებაში. ბოლოს დღეს, ამ სფეროში უცხო, როგორც ეს იყო ჩემთვის და შეიძლება იყოს, რომ თქვენ, მართლაც მხოლოდ პრობლემის გადაჭრის. და, როგორც ასეთი, მას აქვს ამ გამოყენების მიიღოს სხვა სფეროებში. და სინამდვილეში, თუ ჩვენ შევეცადეთ უნდა distill ეს რას ნიშნავს, ეს არის პრობლემის გადაჭრის თავისი არსით, მე თამამად. არსებობს შეყვანის ასე შემდეგ, რაც მას არის, რომ თქვენ ცდილობთ მოგვარებას. არსებობს გამომუშავება, რომელიც იმედია გამოსავალი, რომ პრობლემა. და შემდეგ, როგორც ჩვენ გვინდა ამბობენ, კომპიუტერული მეცნიერების, არსებობს ამ შავი ყუთი შუა, რომ თქვენ არ არის აუცილებელი აინტერესებს, როგორ მუშაობს. თქვენ თავს საბოლოოდ შეიძლება განხორციელება, რა არის შიგნით, რომ ყუთში. მაგრამ დღევანდელი მიზნებისათვის და მეტი ზოგადად ცხოვრებაში, თქვენ აინტერესებს ის არის, რომ ეს პრობლემები მისაღებად გადაწყდეს. და რა თქმა უნდა, არის საბოლოო ჯამში დაახლოებით შესასწავლად კვეთა ამ საშუალებებით და შედეგები, და ეს ე.წ. ალგორითმები, როგორც ჩვენ მალე, რომ განახორციელოს, თუ რა არის ქვეშ იქ, hood. მაგრამ ამ საშუალებებით და ამ outputs-- რას ნიშნავს რეალურად? ისე, დღის ბოლოს, ჩვენ გვჭირდება ზოგიერთი გზა წარმოადგენს ინფორმაციას. ეს განსაკუთრებით ეხება კომპიუტერი, რომელიც, როგორც ლამაზი და რთული, როგორც ეს შესაძლოა, როგორც ჩანს, ეს არის საკმაოდ dumb მოწყობილობა. იგი იღებს electricity-- თუ არა საკაბელო ან ბატარეის შეყვანის და მაშინ იგი აწარმოებს რამდენიმე preprogramed პასუხები ეკრანზე. მაგრამ როგორ უნდა მიიღონ დასაწყისიდან დასრულებამდე იქ? ისე, რა პრობლემა უნდა მოგვარდეს? ასევე, შესაძლოა, ჩვენ შეგვიძლია, at დაწყება ნებისმიერი სემესტრის ცდილობენ მიიღონ დასწრება ოთახში მოსწონს ეს. ასე რომ, მე შეიძლება გავაკეთოთ, როგორც ერთი, ორი, სამი. ან იქნებ, თუ მე ეს ერთგვარი ტრეკზე of myself-- შენარჩუნება სიმღერა რამ მე ვერ სწრაფად ამოიწურა თითების. ასე რომ, მე შეიძლება მხოლოდ hash marks-- ერთი პირი, ორი, სამი, ოთხი, ხუთი, ექვსი, შვიდი, რვა. და ყველა ჩვენგანი ალბათ კეთდება ეს, თუ არა თქვენს ხელში ან ნაჭერი ქაღალდი. და ეს არის რეალურად მხოლოდ რაღაც მოუწოდა unary notation-- სადაც, თუ თქვენ გაქვთ მხოლოდ ერთი წერილი თქვენს ანბანი, ერთი ან hash ჩანაწერები ამ შემთხვევაში, თითოეული შეყვანის გსურთ ითვლიან, თქვენ უნდა ჩაახშო ერთი ამ წერილები ერთ-ერთი ასეთი ნიშნები. კარგი. ეს არის ყველა კარგი და კეთილი და არ არის, რომ რთულია. მაგრამ კომპიუტერი არ არის ყველა რომელიც ბევრად უფრო რთული. მართლაც, თქვენ, ალბათ, ვიცი, მაშინაც კი, თუ თქვენ ნამდვილად არ განიხილება, თუ რა ეს იმას ნიშნავს, რომ კომპიუტერი მხოლოდ მესმის zeros და პირობა ე.წ. ორობითი სისტემა. ჩვენ, ადამიანები, პირიქით, იმდენად ბევრად უფრო დახვეწილი იმდენად, როგორც ჩვენ გვესმის zeros მეშვეობით nines. მაგრამ მაშინაც კი, თუ ორობითი არის, პირველ რიგში, ერთი შეხედვით, არ არის, რომ იცნობს, აღმოჩნდება, რომ ეს, ისევე, როგორც სისტემები და იდეები, რომ ჩვენ უკვე ვიცით. ასე მაგალითად, მიგვაჩნია, რომ ეს. ეს არის უბრალოდ თანმიმდევრობა სიმბოლოები. და თქვენ, როდესაც გადავავლე მას, ალბათ, ვფიქრობ, 123 არაფერი მართლაც ძალიან საინტერესო იყო. მაგრამ რატომ არის ეს ამ ნომერზე, 123? ეს არის მხოლოდ Glyphs on ეკრანზე უბრალოდ ნიმუშები რომ ვინმე შეიძლება არ შედგენილი ან აკრეფილი. მაგრამ თუ თქვენ, ისევე როგორც მე, თქვენ ალბათ, გახსოვთ კლასის სკოლა რომ არსებობს ერთგვარი სვეტების ან ადგილებში აქ. აქ არის ერთი ადგილი და ათი ადგილი და ასი ადგილი. და იმის გამო, რომ ეს არის 123 და არა მხოლოდ ნიმუში სამი სიმბოლო იმიტომ, რომ, რა თქმა უნდა, თუ ჩვენ აქვს ერთი ასობით ადგილი მათემატიკის 100-ჯერ ერთი, და შემდეგ ორი ათი ადგილი. ასე რომ, 10-ჯერ 2 და მაშინ სამი ერთი ადგილი და რომ 1-ჯერ 3. და როდესაც თქვენ დაამატოთ ყველა იმ მდე, რა თქმა უნდა, თქვენ 100 + 20 + 3. ასე რომ, ჩვენ დაიწყო უბრალოდ ნიმუში of ნიშნები alphabet-- მაგრამ მაშინ ჩვენ დატანილი მნიშვნელობა გადატანა ეს გზით ამ სვეტები. ისე, გამოდის, რომ კომპიუტერები ნამდვილად არ არის რომ განსხვავდება თქვენ და მე. მაგრამ ნაცვლად გამოყენებით უფლებამოსილების 10, ასე ვთქვათ 1, 10, 100, 1000, 10,000 ადგილი და ასე forth-- ისინი რეალურად უბრალოდ გამოიყენოთ უფლებამოსილების 2- ასე რომ, ერთი, 2, 4, და მაშინ თუ ჩვენ მეტი ციფრები, 8, 16, 32, 64, 128, და სხვ. ასე რომ, ეს არის, თუ როგორ კომპიუტერი იქნებოდა წარმოადგენს რაოდენობა 0, ისევე, როგორც ჩვენ ადამიანები. 0, 0, 0-და თქვენ ალბათ შეუძლია გამოიცნოს რა ნიმუში zeros და პირობა, თუ კომპიუტერი მხოლოდ საუბარი 0 ან 1-- რა ნიმუში აპირებს წარმოადგენს რაოდენობის ჩვენ ადამიანები, რომლებიც დღეს 1? Yeah-- 0, 0, 1. კარგი. ასე რომ, 0, 0, 1, თუ როგორ წარმოვადგენთ 1, ასე რომ თქვენ შეიძლება ჩართულნი შემდეგ წარმოადგენს რაოდენობა 2, თუ თქვენ გაქვთ ოთხი ადგილი და ორი ადგილი როგორც ერთ ადგილას, შეიძლება ითქვას, ასევე, თუ ჩვენ გვქონდა 1 ერთი ის ადგილი, და ახლა ჩვენ გვინდა იმედი 2, თქვენ შეიძლება ამისათვის და დატოვონ ეს უნდა იყოს ნულოვანი. რა თქმა უნდა, ეს არ არის, თუ როგორ ათობითი სისტემა მუშაობს ან. თუ თქვენ დააყენა ციფრი in ორივე სვეტები, თქვენ მოხვდით გავაკეთოთ არითმეტიკული. ასე რომ, თუ რა რაოდენობის არ მინდა შემთხვევით უბრალოდ წარმოადგენს? ეს არის 3, რადგან 2-ჯერ 1 + 1 ჯერ 1, რა თქმა უნდა, გვაძლევს სამი. ასე რომ, ეს იქნება ორი. ცოტა ერთგვარი შეიჭრება, ასე ვთქვათ, როგორც 0 ხდება ერთი, ჰგავს 9 როლები მეტი და ხდება 0, როდესაც თქვენ განახორციელოს 1. ეს მაშინ იქნება სამი რა თქმა უნდა. Four-- ერთი საინტერესო რამ ხდება, სადაც პირობა გააფართოვოს ზე მეტი და თქვენ განახორციელოს 1, ასე ვთქვათ. ასე რომ, ეს, რა თქმა უნდა, არის 4. მაგრამ თუ თქვენ სწრაფი წინ, ახლა, რა არის ყველაზე დიდი რაოდენობის აპირებს უნდა იყოს, რომ კომპიუტერული შეუძლიათ? ასე რომ, ეს მხოლოდ შვიდი ამ შემთხვევაში, არა? იმის გამო, რომ თქვენ გაქვთ ერთი ოთხი, ერთი, ორი, ერთი ერთ. ასე რომ, 4 + 2 + 1. ასე რომ, რომელიც გაძლევთ შვიდი. და მართლაც, რომ ის ერთი შეხედვით რომ კომპიუტერები შეუძლია იმედი არ აღემატება ამ. მაგრამ ეს, რა თქმა უნდა, სიმართლეს არ შეესაბამება. რა ჩვენ ადამიანები გაკეთება, როდესაც ჩვენ გვინდა ითვლიან მაღალია, ვიდრე, როგორც 999? უბრალოდ შეასრულოს ერთი და მხოლოდ რჩეულებში მეოთხე ციფრი მარცხენა. ასე რომ, მართლაც შეგვეძლო. ჩვენ შეგვეძლო რვა ს განათავსეთ და მე -16 ადგილი, და 32 ადგილზე, 64, 128-- და თქვენ შეგიძლიათ უბრალოდ შეინახოს მიმდინარეობს მდე უსასრულობა. ასე რომ, ეს zeros და პირობა ე.წ. ორობითი system-- არის ის, რაც კომპიუტერის მეცნიერი იქნებოდა ზოგადად მოვუწოდებთ ცოტა, ან ორობითი ციფრი. მაგრამ ახლა, როგორ უნდა მიიღონ კონცეფცია და გრაფიკული ასეთი რამ ფაქტობრივი კომპიუტერი? ჩვენ, როგორც ჩანს, გადაახტა ნაბიჯი აქ. ისე, ერთადერთი შეტანის ბოლოს დღეს, ჩემი ლეპტოპი აქ ეს ნაკადი ელექტროენერგიის. მაშინაც კი, თუ ის უკვე დიდი ხანია მას შემდეგ, რაც თქვენ ფიქრობდა და არასოდეს მიფიქრია როგორ ელექტროენერგიის მუშაობს, იქ ელექტრონები მიედინება ან out, და ეს არის ჩემი სახის შეყვანა. ასე რომ, თუ ყველა, რომ ჩვენ მისაღებად, როგორც შეყვანის აქ, რა შეგვიძლია გავაკეთოთ, რომ ინფორმაცია? ისე, შეიძლება ვიფიქროთ ნულოვანი როგორც მხოლოდ უშუქობა. არაფერი არ არის flowinw, არაფერი არ არის მოძრავი, არაფერი არ ხდება. ეს მხოლოდ ძირითადად state-- ნულოვანი. მაგრამ თუ არსებობს ელექტროენერგიის მიედინება, რატომ არ ჩვენ უბრალოდ თვითნებურად, მაგრამ გლობალურად თანმიმდევრულად, მოვუწოდებთ, რომ ერთი. ასე რომ, უბრალოდ, რომელსაც აქვს ძალა, ჩვენ გვაქვს ნულოვანი, დიახ ძალა, ჩვენ გვაქვს one-- არსებობს ძალა, დიახ ძალა. და ამ გზით, გამოყენებით რაღაც მეტი ფიზიკური ან ელექტრონული ჩვენ დაიწყება განახორციელოს ეს ცნება რაღაც ან ერთ-ერთი ან ნულოვანი. მართლაც, ჩვენ შეგვიძლია მხოლოდ ამის გაკეთება აქ. ასე რომ, აქ, მე მაქვს არა სამი, არამედ რვა ნათურებით, რომელთაგან თითოეული აქვს საკუთარი შეცვლა. ასე რომ, თუ მინდოდა წარმოადგენს ნომერი შვიდი აქ, მე შესაძლოა, ამ სამი ნათურებით. და მართლაც, შიგნით ჩემი კომპიუტერი მილიონი, მილიარდობით რამ, რომ მხოლოდ ნაკლებია, ვიდრე, სახელწოდებით ტრანზისტორები, კონცენტრატორები, რომ თქვენ უბრალოდ ჩართოთ და off. ასე რომ ეს big-- შედარებით big-- კონცენტრატორები შიგნით ჩემი laptop-- ბევრი, ბევრი, ბევრი, მრავალი სხვა კონცენტრატორები. მაგრამ ყველა ისინი ზუსტად that-- გახდეს რაღაც, გახდეს რაღაც off. და როგორც ასეთი, კომპიუტერული შეუძლიათ, იმ მილიონობით და მილიარდობით ტრანზისტორების, უამრავი და უამრავი zeros და პირობა. და არ არსებობს სხვა ტექნიკის მაინც, რომ გაძლევთ შეინახოთ ინფორმაცია გრძელვადიანი, ასე რომ, როდესაც თქვენ გაიყვანოს დანამატი, თქვენ არ კარგავს მას. მაგრამ ეს ამბავი მეორე დღეს. ასე რომ, რა შეგვიძლია გავაკეთოთ ამ ბიტი? შეიძლება ჩვენ უბრალოდ მიიღოს წნევის off of ჩემთვის შეიძლება ვინმე მინდა მოსვლა აქ და გთავაზობთ დემო? ვნახე ამ მხრივ პირველი. რა გქვია? Maday: Maday. დავით Malan: Maday, მოდის up. სასიამოვნოა თქვენი გაცნობა. Maday: Nice შეგხვდებით. დავით Malan: მოდით ამ გზით. მე არ უნდა lip თქვენ მდე. კარგი. ასე რომ, აქ, ჩვენ გვაქვს, გაფრთხილების ერთი, ორი ჩვენ შეცვალონ, რომ out-- ერთი, ორი, ოთხი, რვა, 16, 32, 64, 128. ეს არის მიზანმიმართული. არსებობს რვა ბიტი აქ ორობითი digits-- zeros და პირობა. და ცოტა არის სასარგებლო ერთეული measure-- არა როგორც სასარგებლო ერთეული ზომის გადატანა თავად. როგორც წესი, თქვენ მინდა მინიმუმ რვა რამ, a.k.a. byte. ასე რომ, ჩვენ გვაქვს byte ბიტი აქ. ასე რომ, თუ გვინდოდა გამოწვევას თქვენ, მაგალითად, მართლწერის out, ორობითი, ეს მნიშვნელობა აქ 42. გსურთ მიიღოს stab რომ? Maday: [INAUDIBLE]. დავით Malan: ჰო, უბრალოდ დააყენებს პატარა თეთრი კონცენტრატორები წინაშე. და თქვენ გინდათ, რომ სიტყვიერად out 42 და up for grabs ეს არის CS50 სტრესი ბურთი თუ თქვენ ამ. კარგი. ასე რომ, თქვენ გაქვთ 32. ჩვენ ვაპირებთ, რომ უნდა 42. ასე რომ, რვა, ასე რომ 40. და excellent-- ძალიან ლამაზად შესრულებული. გმადლობთ. [ტაში] კარგი. ასე რომ, ჩვენ კიდევ ერთი სტრესი დაადასტურა. მოდით ეს კიდევ ერთხელ, თუ ჩვენ შეგვიძლია. ერთი სხვა მოხალისე? უფასო სტრესი დაადასტურა, უფასო სტრესი დაადასტურა. კარგი. მეტი აქ შუა, გინდა ჩამოდი? კარგი. მე ვიცი. იქ ჩვენ წავიდეთ. ასე ნომრები აქ მოდის ქვემოთ. რა გქვია? DAVEY: დეივი. დავით Malan: დეივი. კარგი. ამოდი, დეივი. სასიამოვნოა თქვენი გაცნობა. და რასაც ჩვენ ვაპირებთ, რომ თქვენ spell-- თუ შეიძლება linger არსებობს მხოლოდ ერთი წუთით არის რიგი 50. მაგრამ, მაგრამ, მაგრამ, მაგრამ, მაგრამ, ეს არის კლასის სკოლის მაგნიტები მიზეზი. უბრალოდ მიიღო ცოტა რთული, ყველა უფლება? იქ ჯერ კიდევ რვა. კარგი. ასე რომ, რა გვაქვს იქ? ჩვენ გვყავს 32. Nice. 32 + 16 გვაძლევს 48-- ასე ახლოს. და მშვენიერი. ვულოცავთ დეივი ასევე. [ტაში] კარგი. ასე რომ, ჩვენ შეგვიძლია ამის გაკეთება მთელი დღის განმავლობაში, და ეს არ მიიღოს ყველა, რომ ბევრად უფრო საინტერესო და უფრო რთული. მაგრამ ეს ნამდვილად point-- არის, თუ როგორ შედარებით მარტივი ეს არის, ბოლოს დღეს, რა კომპიუტერში აკეთებს ინფორმაციის შესანახად, შესანახად საშუალებებით და საბოლოო ჯამში, შესანახად და წარმოადგენს იმ შედეგები. მაგრამ ნომრები მარტო არ არის ყველა, რომ საინტერესოა. ასე რომ ადამიანები, რამდენიმე წლის წინ, გადაწყვიტა, იცით, რა? კარგი იქნება, თუ კომპიუტერი არ იყო მხოლოდ კალკულატორები არითმეტიკული ოპერაციები, მაგრამ რეალურად შეიძლება რამ, როგორიცაა სიტყვა დამუშავება, ან ელ, ან უფრო თანამედროვე incarnations ამ სახის ტექნოლოგიები. ასე რომ, მსოფლიოს გადაწყვიტა თვითნებურად, მაგრამ საყოველთაოდ, იმ შემთხვევაში, თუ გსურთ შეინახოთ დედაქალაქში წერილში კომპიუტერი, იცით, რა? მოდით, უბრალოდ ყველა ვთანხმდებით შესანახად ზოგიერთი ნიმუში zeros და პირობა ბიტი, რომ საბოლოო ჯამში წარმოადგენს ათობითი ნომერი 65. ჩვენ უბრალოდ ყველა შევთანხმდეთ, რომ. 66 წარმოადგენს B, 67 წარმოადგენს C, და იქ bunches სხვა ნიმუშების zeros და პირობა, ან ძირითადი ნომრები, რომელიც წარმოადგენს სხვა წერილები მაინც. ასე რომ, თუ სახის გონებრივი აღიქვას ეს ერთი წუთით, მე შეგნებულად დაფასოებული მეშვეობით I, სადაც H 72 და მე 73. თუ კომპიუტერი, მაშინ კონტექსტში სიტყვა დამუშავების პროგრამის ან e-mail, გამოვლინდა ქვეშ hood აქვს ამ ნიმუშების ბიტი ნიმუში ბიტი წარმოადგენს 72, მაშინ 73, მაშინ 33-- რა შეიძლება ეს სიტყვიერად, რომ პროგრამა? ასე რომ, hi და შემდეგ რაღაც. ჩვენ არ ემთხვეოდეს ვიცი, მაგრამ მართლაც 33-- არ სქემა ადრე უბრალოდ ძახილის წერტილი. ასე რომ, 72 იყო H, 73 I, 33 ხდება უნდა იყოს ძახილის წერტილი მაინც. მაგრამ ეს ყველაფერი კარგი და კეთილი, და, ფაქტობრივად, დღეს, ვიდრე უბრალოდ გამოიყენოთ შვიდი ან რვა ბიტი წყალობით რაღაც მოუწოდა Unicode განსხვავებით to ASCII უკან დღეს, ჩვენ რეალურად შეგვიძლია წარმოადგენს კიდევ უფრო საინტერესო პერსონაჟი, ვიდრე უბრალოდ ამ ორიგინალური ინგლისური მიკერძოებული წერილები. მაგრამ ჩვენ შეგვიძლია ასევე წარმოადგენს კი neater რამ, როგორიცაა ფერები. თუ თქვენ ოდესმე მსმენია აბრევიატურა RGB, წითელი, მწვანე, ლურჯი, რომელიც მხოლოდ იმას ნიშნავს, რომ კომპიუტერი როგორც წესი, იყენებს სამი კომპლექტი ბიტი გარკვეული რაოდენობის ბიტი, რომ წარმოადგენს დიდი რაოდენობით რამდენად წითელი გსურთ, კიდევ ერთი კომპლექტი ბიტი რამდენად მწვანე გსურთ, და კიდევ ერთი კომპლექტი ნომერი რამდენად ლურჯი გსურთ. ასე რომ, დიდი რაოდენობით იმას ნიშნავს, უამრავი წითელი, მცირე რაოდენობის იმას ნიშნავს, არ წითელი. ასე რომ, ეს არის სახის საშუალო ღირებულებების აქ. მომეცი რაღაც წითელი, მომეცით მწვანე, და მომეცი ცოტა ლურჯი. და თუ აურიეთ იმ სამ ფერებში ფერი ერთად, ამ შემთხვევაში, თქვენ ამ ბნელი ჩრდილი ყვითელი ან ყავისფერი. მაგრამ, რომ ნიმუში რვა პლუს რვა პლუს eight-- ასე 24 ბიტი მარცხნიდან მარჯვნივ, არის, თუ როგორ კომპიუტერი წარმოადგენს, რომ კონკრეტული ფერი. ახლა ეს არის მხოლოდ dot ეკრანზე. თუ გადავხედავთ ძალიან ახლოს თქვენს სატელევიზიო თქვენი კომპიუტერი, დაინახავთ წერტილების ან pixels. და თუ თქვენ გაქვთ მთელი ქსელის pixels, ჰორიზონტალურად და ვერტიკალურად, თქვენ გაქვთ images. და მაშინ, თუ თქვენ მიიღოს იმიჯი და შემდეგ სარეცხი აჩვენებს თავს სხვა სურათი, სხვა სურათი, სხვა სურათი, სხვა სურათი, მართლაც სწრაფი, თქვენ, რა თქმა უნდა ფილმები. და ასე რომ შეამჩნია, სადაც ჩვენ დავიწყეთ. ჩვენ დავიწყეთ ამ zeros და პირობა. ჩვენ მუშაობდა იქიდან ათობითზე ციფრები, თუ როგორ წარმოვადგენთ მათ. ახლა ჩვენ გვაქვს ასო ანბანი. მაგრამ სხვა კონტექსტში დაველოდოთ, ჩვენ შეგვიძლია გამოვიყენოთ რამდენიმე ბიტი და წარმოადგენს ფერები. როგორც კი თქვენ გაქვთ უნარი წარმოადგენს ფერები, თქვენ გაქვთ უნარი წარმოადგენს ფოტოები და ანიმაციური gifs და სხვა ამგვარი გმირები ეკრანზე. და როდესაც თქვენ გაქვთ მთელი bunch სურათები საფრენი ადამიანის ერთდროულად, ეს ჰგავს გადაღება, და ასე რომ თქვენ videos ისევე. ასე გამოყენებით ძალიან მარტივი primitives ვყოთ აქვს გზა წარმოადგენს საბოლოო ჯამში, ყველა ამ სახის მედია. და ჩვენ ამოღებული ერთხელ და ისევ და ისევ, სანამ ჩვენ მიიღონ ყველაზე დაბალი დონე ამ უმაღლეს დონეზე. ასე რომ გვაძლევს ამ ზოგადი იდეა, აბსტრაქცია. მაგრამ ჩვენ აქედან დაიწყო. ახლა, ჩვენ შეგვიძლია წარმოადგენენ კომპიუტერი ჩვენი საშუალებებით zeros და პირობა, ჩვენი შედეგები zeros და პირობა, მაგრამ რა მიდის შიგნით ყუთი? სწორედ იქ, სადაც კომპიუტერული მეცნიერება იღებს საინტერესოა. ეს არის სადაც თქვენ რეალურად მოიტანს თქვენი საკუთარი გონება აგებს პრობლემების მოსაგვარებლად. ახლა ჩვენ შეგვიძლია ადგენდეს, რომ დანარჩენი სემესტრში, დიახ. მე ვიცი, როგორ ორობითი სამუშაოები. მახსოვს, როგორ ASCII ან Unicode-- რუკების to წერილები სამუშაოები. და რა თქმა უნდა, დგას რომ მიზეზი, რომ ჩვენ შეიძლება წარმოადგენს წითელი და მწვანე და ლურჯი და წარმოადგენს მულტიმედიური ისევე. მაგრამ ეს არის საინტერესო პერსონალი. ეს არის ის, რაც ვინმე რომელსაც შეუძლია გადაჭრას პრობლემები. და ერთ-ერთი ასეთი პრობლემა ჩვენ გვსურს გავაკეთოთ, მართლაც, ხდება დასწრება, ან ამით ალგორითმულად. და ისევ, მე შეიძლება ამის გაკეთება. შეიძლება გავაკეთოთ ერთი, ორი, სამი, ოთხი ხუთი, ექვსი, შვიდი, რვა ცხრა. და მე ვერ წერენ, რომ ეს ქვემოთ ტრეკზე. მაგრამ ეს მხოლოდ როგორ მინდა წარმოადგენს ინფორმაციას. ან მე ვერ გავაკეთებ ამ faster-- ორი, ოთხი, ექვსი, რვა, ათი, 12, 14, 16, 18, 20, 22-- ეს იგრძნობა ორჯერ როგორც სწრაფად, მაგრამ მაინც აპირებს მთელი ბევრი დრო. მაგრამ აღმოჩნდება, რომ, თუ ჩვენ ბერკეტები ჯერ სხვა რესურს და მართლაც კომპიუტერები ამ დღეებში მქონდეს CPUs ან ტვინი. გამოდის, კომპიუტერები შეუძლია ამის უამრავი რამ ერთბაშად, და მართლაც, ჩვენ, ამ ოთახში, შესაძლოა, წარმოადგენს სწორედ ეს არის. ასე რომ, ეს არის პატარა სოციალურად უხერხულია, მაგრამ თუ იუმორის თვალი მხოლოდ სამი ნაბიჯი პროცესი, ნება მე ვთხოვ ყველას ადგილი იქ უბრალოდ აღუდგეს მომენტში. ადექი. ასე რომ, ვფიქრობ, რომ საკუთარ თავს, ნომერი one-- ასე რომ ყველას ამ ოთახში, გარდა იმ ხალხს, ვინც არ ავალდებულებს, ფიქრობენ ნომერ პირველი. ასე რომ, თქვენი ნომერი ახლავე. ეს არის პირველი ნაბიჯი, ან როგორც კომპიუტერული მეცნიერი და პროგრამისტი როგორც წესი, ამის გაკეთება, ჩვენ ვაპირებთ დაიწყება დათვლის დროს ნულოვანი. იმ შემთხვევაში, თუ მცირე რაოდენობის ჩვენ შეგვიძლია წარმოადგენს იმ ნათურები ნულოვანი, მხოლოდ ტოვებს მათ ყველა, მე შეიძლება ასევე მხოლოდ დაიწყება დათვლის საწყისი ნულოვანი არის ერთის ნაცვლად. და ისე, რომ ის, რაც კომპიუტერული მეცნიერები გააკეთოს. ასე ნაბიჯი ნულოვანი, დავდგეთ და ვფიქრობ, რომ ნომერ პირველი. შემდეგი ნაბიჯი არის ამას წყვილი off ვინმე იდგა და დაამატეთ თქვენი ციფრები ერთად. მშვენიერია. ასე რომ, ამ მომენტში, ფაქტიურად ყველას მონაწილე ფიქრობს, ნომერი 2, გარდა ერთი უცნაური ადამიანი, თუ ჩვენ გვაქვს უცნაური რაოდენობის ხალხი ოთახში. და ახლა მესამე ნაბიჯი აქ აპირებს უნდა ამას ერთი თქვენ უნდა დასხდნენ. ერთ-ერთი თქვენ უნდა დასხდნენ, და თუ თქვენ ჯერ კიდევ იდგა, დაბრუნდეს დახევას ერთი. კარგი. კარგი. ასე რომ, უფრო და უფრო მეტი ადამიანი უნდა ისხდნენ. გაითვალისწინეთ, რომ ეს გამოწვეული მარყუჟის გარკვეული სახის ციკლი. ზოგიერთ თქვენგანს უნდა იყოს უხერხულად მოხდა, ბრუნდება და მეოთხე შორის ნაბიჯი ერთი და ორი, ერთი და ორი, ერთი და ორი. არაუშავს. ჩვენი პირველი შეცდომა. ჩვენ გაუმკლავდეთ რომ. კარგი. ნება მიბოძეთ, რომ ხელს შეუწყობენ რამ ერთად. თეორიულად, მხოლოდ ერთი პირი დგას როგორც ყველას აგრძელებს წყვილი off. მაგრამ ნება მიბოძეთ ასაჩქარებლად იმ ხალხს, ჯერ კიდევ იდგა. რა რაოდენობის ფიქრი? 46. კარგი. წავიდეთ წინ და დასხდნენ. თქვენ ბიჭები ჯერ კიდევ იდგა. რომელიც ჯერ კიდევ იდგა? რა რაოდენობის ფიქრი? კარგი. ასე რომ, ჩვენ დავბრუნდებით თქვენ. უკან? რა არის ეს? 22. OK ვინმეს up top-- yeah? 34. კარგი. მეტი აქ ჩემი right-- აქ? 132, ძალიან ლამაზი. 22? კარგი. და რომელიც ჯერ კიდევ დგას? აქეთ? 46, არის ძალიან ლამაზი. 72. მე ვერ ჩერდება ბევრად უფრო. ჰო? 30, ლამაზი. აქეთ? 23? 23. და მე ვფიქრობ, რომ ყველას გარდა თქვენ ბიჭები, არ ზეწოლა. მოიცადე. 28? მხოლოდ რვა. კარგი. მხოლოდ რვა. ქვემოთ აქ? 30. 23. 24. 18. ეს არის ყველაზე ცუდი განხორციელება ეს ალგორითმი ოდესმე. კარგი. ასე რომ ვინმეს? ნებისმიერი სხვა? კარგი. კიდევ ერთი. 16? კარგი. 16. კარგი. ასე რომ, თუ მე არ გაუშვა ვინმეს თვალისმომჭრელ ელვარებას იქ, აქ, როდესაც მე Enter, ვნახავთ, algorithmically, რომ საერთო რაოდენობის ხალხი Sanders. იმის გამო, რომ კიდევ ერთხელ, ეს თითქოს ყველას როგორც თქვენ დაჯდა, გავიდა თქვენი ნომერი off ვინმეს, ვინმე, ვინმეს, ასე რომ თეორიულად, საბოლოოდ, მხოლოდ ერთ უხერხულ პირი უნდა დარჩეს იდგა. მაგრამ ეს ჯარიმა. ჩვენ sped რამ ხელით. ეს განსაკუთრებით რთული ვხედავ, ამ კონკრეტულ სივრცეში. და საერთო რაოდენობის ხალხი ჩვენ მიგვაჩნია, რომ აქ არის 546. საერთო რაოდენობა ვიყავი გადასცა მიერ სწავლების პრაქტიკის, ვინც ეს გააკეთა, ძველი სკოლა ნელი გზა, იყო 820. [იცინის] [ტაში] არაუშავს. ასე რომ აუცილებლად შემდეგ, არსებობს ამ შეცდომები. და ეს ჯარიმა. ასე რომ, ვფიქრობ, უკან ამ პირველად რაღაც წერთ სულაც არ იმუშავებს. ეს მოხდა ჩემთან აქაც. მაგრამ მოდით ახლა განვიხილოთ, თუ როგორ შეიძლება გამოიყენოს ეს იგივე იდეა, რომ რაღაც თქვენ შეიძლება არ მინახავს ადრე, რომელიც ეს არის ძველი სკოლა ტექნოლოგია აქ მართლაც დიდი სატელეფონო წიგნი. და ვფიქრობ, რომ ამ სატელეფონო წიგნი 1000 გვერდები და 1,000 სახელები და ციფრები ალფავიტის შიგნით მას. ისე, ჩვენ შეგვიძლია სახის ვრცელდება მსგავსი იდეა ამ ფიზიკური პრობლემა, მხოლოდ გამოყენებით ჩემთვის. მე უბრალოდ სახის მოტყუებული ოპერაციული ყველა თქვენგანს უამრავი და უამრავი სხვადასხვა CPUs ან ტვინი შესრულებაში გარკვეული ალგორითმი. მაგრამ თუ ეს მხოლოდ პატარა ძველი me, მე მაინც ბერკეტები, რომ იგივე არსი იდეა გამყოფი და დაპყრობის, რომ პრობლემა ისევ და ისევ, რომლის ნახევარი თქვენ, ნახევარი თქვენ, ნახევარი თქვენ, ნახევარი თქვენ, თეორიულად ისხდნენ ქვემოთ, სანამ ჩვენ დარჩა, თეორიულად, მხოლოდ ერთ ადამიანს. ასე რომ, ამ ძველი სკოლა technology-- ჩვენ არ უნდა ამ map-- ეს ძველი სკოლა ტექნიკა, ჩვენ შეიძლება დაიწყოს ეძებს ვინმეს, მინდა მაიკ სმიტი, ერთი გვერდი დროს. და მე ვხედავ, რომ არა, Mike არ არის აქ. მე მაინც იმ მონაკვეთზე. საბოლოოდ, მე თავს B განყოფილება. და ეს არის ალგორითმი ნაბიჯ-ნაბიჯ ინსტრუქციას. დაწყება დასაწყისში და ერთ გვერდზე იმ დროს, ვეძებოთ მაიკ სმიტი. არის თუ არა ეს correct-- ეს ალგორითმი ან მიდგომა? ჰო, ეს სწორი. თუ Mike აქ, საბოლოოდ მე მას. მაგრამ ეს არ არის ეფექტური. ეს აშკარად ძალიან ნელი. ასე რომ, შემიძლია ბერკეტები იგივე twosies მიახლოება. მე შემიძლია ამის ერთგვარი ორი, ოთხი, ექვსი, რვა, 10, 12. ეს ორჯერ უფრო სწრაფად. მე ვაპირებ მისაღებად Mike სწრაფად, თუ ის არსებობს. ეს არის სწორი? დიახ, მაგრამ გავიგე little-- არსებობს. ახლა გავიგე არსებობს. ჰო. იქ ხარვეზების პოტენციურად. იქნებ Mike უბრალოდ შემთხვევით იღებს მოქცეულია ორ გვერდს, იმიტომ, რომ მე საფრენი მეშვეობით ამ ორი დროს. ასე რომ, როგორც მინიმუმ, ჩვენ გვჭირდება გარკვეული სახის პირობითი სარემონტო. მე უნდა ვთქვა, hey, თუ მოხვდა ვინმე, რომელთა სახელი იწყება T ნაცვლად S, მე უკეთესი გაორმაგდება უკან მინიმუმ ერთ გვერდზე. ასე რომ, buggy პირველი, მაგრამ fixable. მაგრამ არც ერთი ჩვენგანი არ ვაპირებთ უნდა ვეძებოთ მაიკ სმიტი მეშვეობით 1000 გვერდი ტელეფონი წიგნის ერთ გვერდზე დროს. რა არის ნორმალური ადამიანი აპირებს? თქვენ აპირებს წასვლა S ს, თუ იცოდა, სადაც S ს. თქვენ შეიძლება წავიდეს დაახლოებით შუა ან ოდნავ არასათანადო დასასრულს. და მე ქვემოთ აქ და მე M მონაკვეთზე. მაგრამ რა იცით ამ პრობლემის შესახებ, ახლა, რომ ჩვენ აუცილებლად არ ვიცი ადრე ყველა ჩვენგანს მხოლოდ დამთვლელი თავს equivalently? ისე, მაიკ აშკარად აპირებს უნდა იყოს ამ ნახევარი წიგნი თუ ის აქ იყო, რადგან ეს დახარისხებული. და ასე რომ თქვენ ძალიან dramatically-- [აქოშინებულები] მე ვიცი. [ტაში] ეს, ფაქტობრივად, მართლაც ადვილია თუ თქვენ ამის გაკეთება ქვემოთ ხერხემლის არსებობს. მაგრამ შეგიძლიათ შემდეგ გადააგდოთ ნახევარი პრობლემა დაშორებით. ახლა, მე დარჩა იგივე პრობლემის მოვძებნოთ მაიკ სმიტი სატელეფონო book-- მაგრამ ახლა სატელეფონო წიგნი იწყება M და მიდის Z, მაგრამ ეს ნახევარი, როგორც დიდი. მაგრამ ეს არის ის, რაც შთამბეჭდავი. ისევე, როგორც თეორიულად, შენ, როდესაც თქვენ ყველა დაჯდა მხოლოდ ნახევარი დროს, პრობლემა მივიღე ნახევარი, როგორც დიდი, ნახევარი, როგორც დიდი, ისევ და ისევ. ასე აქვს ეს პრობლემა გახდეს იგივე პრობლემა მაგრამ ნახევარი, როგორც დიდი. ახლა ეს 250 გვერდი პრობლემა. როგორც კი ხვდები, რა, მე ვარ ტ განყოფილებაში შემთხვევით. მე ძალიან შორს წავიდა. მე შემიძლია სახიფათოა, რომ ნახევარი სატელეფონო წიგნი დაშორებით. ახლა, მე ვარ ქვემოთ კვარტალში პრობლემა. და შეგიძლიათ ვიმეორებ, ვიმეორებ, ვიმეორებ, სანამ, თეორიულად, თქვენ დარჩა მხოლოდ ერთი გვერდი. და თუ მაიკ რომ გვერდზე, მე ახლა ამ პრობლემის მოგვარებას. მაგრამ რამდენად სწრაფად I გადაჭრას? პირველ შემთხვევაში, ეს წამიყვანეს მოსწონს იქნებ 1,000 ნაბიჯები, რათა იპოვოს მაიკ სმიტი. ეს ჰქონოდა ჩემთვის მე აიყვანეს სატელეფონო წიგნი და დავიწყე ერთ გვერდზე დროს, და მაიკ შეიძლება იყოს 1000 გვერდების მოგვიანებით. მეორე მიდგომა შესაძლოა იღებს ჩემთვის 500 ნაბიჯები, იმიტომ, რომ მე საფრენი ორი დროს. და მესამე მიდგომა, თუმცა, ეს განსაკუთრებით ძლიერი. მაგრამ მოდით განიხილავს, თუ რა ჩვენ რეალურად გააკეთა ამ მესამე მიდგომა. მე, რაც მე მოვუწოდებ მხოლოდ ამ განცხადებები აქ, ერთ დროს. აიღეთ სატელეფონო წიგნი. გახსნა შუა სატელეფონო წიგნი. შეხედეთ სახელები. და შემდეგ რამ ცოტა უფრო ინტელექტუალურად საინტერესო, თუ ჯერ კიდევ მარტივია. თუ სმიტი შორის სახელები, რომ მიმდინარე გვერდზე, შემდეგ რაღაც პირობით. ეს იგივეა, გზის გასაყარი. ზარის მაიკ. თუ მაიკ შორის სახელები რომ გვერდზე, სახელწოდებით მაიკ. მაგრამ მხოლოდ ამის line ოთხი, თუ ხაზი ხე, თუ გნებავთ, მართალია. პასუხი ამ კითხვაზე არის დიახ. სხვაგან თუ სმიტი ადრე book-- სხვა სიტყვებით, თუ მე ვარ M განყოფილებაში და ვეძებ ვინმე მარცხენა, მაშინ რა უნდა გავაკეთოთ რაღაც ძალიან ჰგავს. მაშინ მე უნდა გახსნას შუა მარცხენა ნახევარში წიგნი. ასე რომ წავიდეთ მარცხენა, და შემდეგ დაბრუნდეს დახევას ორი. შეხედეთ სახელები არსებობს. ასე რომ, სხვა სიტყვებით, გააკეთოს იგივე, მაგრამ პრობლემა, რომელიც უკვე განახევრდა. თქვენ იცით, რა? თუ სმიტი შემდეგ წიგნი საფუძველზე გვერდი დავყურებ, ღია შუა მარჯვენა ნახევარში წიგნი და მერე ისევ დახევას ორი, else-- რომ მეოთხე შანსი აქ. მაიკ ან აქ ან მარცხნივ ან მარჯვნივ ან არ არსებობს. და აქ ჩვენ უკეთესი განიხილოს ეს. და სინამდვილეში, თუ თქვენ ოდესმე თქვენს კომპიუტერში მხოლოდ ავარიის თქვენ, რომ ზოგჯერ, მაგრამ არა ყოველთვის, შედეგად მხოლოდ ადამიანის პროგრამისტი არ ხვდებიან, oh გადაღება, არსებობს რეალურად ეს მეოთხე სცენარი. და თუ თქვენ არ წერენ კოდი გაუმკლავდეს, რომ სცენარი, ზოგჯერ თქვენ არ იცით, რა კომპიუტერი შეიძლება გავაკეთოთ. და მართლაც პროგრამა შეიძლება მისაწოდებლად. მაგრამ ამ შემთხვევაში, მე ვფიქრობდი, ამის შესახებ, და მე ვუთხარი, სხვა დატოვა, იმიტომ, რომ ის მეოთხე ლოგიკური შესაძლო სცენარი. ახლა, მოდით უბრალოდ დაამატოთ ზოგიერთი ლექსიკა ასე რომ, ჩვენ შეიძლება დაიწყოს toss გარშემო თვალსაზრისით, რომ სხვაგვარად საკმაოდ ინტუიციური. ყველა რამ, მე უბრალოდ მონიშნულია ყვითელი აქ, მე უბრალოდ აპირებს ფუნქციები და პროცედურები. ისინი უბრალოდ სახის ქმედებები. ასე გააშუქა, ღია, გამოიყურება at, მოვუწოდებთ, ღია, ღია, quit-- ეს არის მხოლოდ ქმედებები, ან ჩვენ მოვუწოდებთ მათ უფრო ფორმალურად, ფუნქციები. იმავდროულად, ახლა ყვითელი, მე ხაზგასმით რამ that-- მოდით დავიწყოთ მოუწოდებს მათ პირობების ან ფილიალი. ეს არის გადაწყვეტილება, რაოდენობა, სადაც თქვენ შეიძლება წავიდეთ ამ გზით, ამ გზით, ან სხვა მიმართულება მაინც. ასე რომ, ეს იქნება პირობებში. და ახლა ეს ერთი პატარა fancier. მოდით მოვუწოდებთ ამ კითხვებზე ლოგიკური გამონათქვამები, შემდეგ ვინმე გვარი Bool. და ლოგიკური გამოხატვის არის რაღაც ეს არის ის, ჭეშმარიტი ან მცდარი, თუ არა. ასე რომ, ეს არის კითხვა, რომლის პასუხი აინტერესებს, ისე, რომ ამ მდგომარეობაში მიიღოს decision-- დავუბრუნდეთ პასუხი, და მერე მარცხნივ ან მარჯვნივ, ან რამე დანარჩენი საერთოდ. და მერე ბოლოს, ამ ხაზები აქ დაბრუნდეს დახევას ორი, დაბრუნდეს დახევას two-- შეგვეძლო ამ იდეის განხორციელებისთვის სხვადასხვა გზები. ხოლო შემდეგ თქვენ პროგრამირების გამოცდილება შეიძლება გაკეთდეს და წარმომიდგენია, ამით განსხვავებულად. მაგრამ დღევანდელი მიზნებისათვის, ეს იდეა, რომ მნიშვნელოვანია. ეს inducing რა ჩვენ ზოგადად მოვუწოდებთ მარყუჟის გარკვეული სახის ციკლი, რადგან ის მიღების მომეცით რაღაც ერთხელ. ახლა, მოდით, უბრალოდ მიგვაჩნია რამდენად კარგი ეს ალგორითმი. სწორია. თუ მაიკ წიგნი, ეს არის ერთ ერთი იმ ოთხი scenarios-- ისევ და ისევ და კიდევ ერთხელ, ჩვენ მას. მაგრამ რამდენად კარგი არის ეს? ისე, ჩვენ არ გვაქვს უნდა იყოს ძალიან ფორმალური აქ. მაგრამ მოდით უბრალოდ ნაკვეთი რაღაც, x და y, მიიღოს გრძნობა ფორმის ამ პრობლემას. On x- ღერძი აქ არის ზომა ჩემი პრობლემა. და ისინი y ღერძი აქ იქნება დრო უნდა გადაწყვიტოს. იქნებ ეს გვერდების რაოდენობა. იქნებ ეს არის წამი ან გვერდი turns-- რასაც. თუმცა გსურთ ითვლიან არის რა ეს სურათი წარმოადგენს. და რომ პირველი ალგორითმი, მე ვაპირებ აღწერს, როგორც მხოლოდ ერთი სწორი ხაზი. თუ არსებობს n გვერდები სატელეფონო წიგნი, მაშინ ეს შესაძლოა, ჩემთვის, როგორც ბევრი როგორც n ნაბიჯები, რათა იპოვოს მაიკ. თუ Verizon და სატელეფონო კომპანია დასძენს კიდევ ერთი გვერდი მომავალ წელს, შესაძლოა, ჩემთვის კიდევ step-- კიდევ ერთი ერთეული დრო, რათა იპოვოს მაიკ. ასე რომ, მხოლოდ ამ ერთ ერთ რაციონი. ეს არის სწორი ხაზი ფერდობზე. იმავდროულად, რომ მეორე ალგორითმი, თუ მე ვარ აპირებს ორი იმ time-- ორი, ოთხი, ექვსი, რვა ან ორმაგი გადის გვერდებზე ორჯერ დროს, ორი დროს, ის მაინც სწორი ხაზი. აქ არის ერთი ორი რაციონი, მაგრამ ცოტა დაბალია. ასე რომ, თუ არსებობს ამ ბევრი გვერდები სქემა აქ ყვითელი, რომ შესაძლოა, ჩემთვის ეს ბევრი ნაბიჯი ან წამი, წინააღმდეგ შემთხვევაში, ეს აპირებს ჩემთვის ორჯერ მეტი წითელი ხაზი. მაგრამ მწვანე ხაზი არის რეალური takeaway. ეს არის ის, რაც ჩვენ, ზოგადად, მოვუწოდებთ logorithm-- შესვლა ო, სადაც n გვერდების რაოდენობა. მაგრამ ეს არის ფორმა, რომელიც მნიშვნელოვანია, დღეს, რადგან ჩვენ არ გვაქვს კი ვიფიქროთ შეთქმულება რაოდენობა. დაფიქრდით, უკიდურესი სცენარი. დავუშვათ, რომ Verizon ხვალ ორჯერ გვერდების რაოდენობა, რომ სატელეფონო წიგნი, 1000-დან 2000-მდე. პირველ ალგორითმი, I შეიძლება დაგვრჩა დამატებით 1,000 ნაბიჯები ეძებს Mike, მხოლოდ იმიტომ, Verizon გაორმაგდა ზომა წიგნი. მეორე ალგორითმი შესაძლოა, წამიყვანე დამატებით 500 ნაბიჯები. 1000 მეტი გვერდი, მე ორ საათზე time-- 500 მეტი ნაბიჯები, რათა იპოვოს მაიკ. მაგრამ, რომ მესამე ალგორითმი არის ერთგვარი ჯადოსნური. Verizon აორმაგებს გვერდები 1,000 2,000, მაგრამ რამდენი ნაბიჯები აკეთებს ეს ჩემთვის ვეძებოთ Mike? ეს მხოლოდ ერთი, იმიტომ, რომ მე შემიძლია უბრალოდ გაანადგურეს სატელეფონო წიგნი კიდევ ერთი დრო საწყისი 2000 გვერდი პრობლემის შესახებ 1000 გვერდი პრობლემა, და voila. მე აღებული მასიური bite გარეთ. და თუ მართლაც უკიდურესი, ვარაუდობენ, რომ სატელეფონო წიგნი კომპანია იძულებული რაღაც Crazy მოსწონს 4 მილიარდი გვერდი სატელეფონო წიგნი. ისე რამდენი ნაბიჯები შეიძლება მიიღოს, იპოვოს მაიკ სმიტი 4 მილიარდი გვერდი სატელეფონო წიგნი? ეს არის დიდი რაოდენობით, მაგრამ მხოლოდ 4 მილიარდი 2 მილიარდ 1 მილიარდ 500 მილიონი, 250 million-- ჯერ ჟღერს დიდი, მაგრამ მე ძალიან სწრაფად მიღების მცირე ღირებულებებს. და სინამდვილეში, თუ მე მათემატიკის მარჯვენა, მე შემიძლია მხოლოდ დაყოფა 4 მილიარდი უხეშად 32 ჯერ ადრე მე მისაღებად ქვემოთ მხოლოდ ერთი. ასე რომ, თუ სატელეფონო წიგნი იყო 4 მილიარდი გვერდს, არ არის დიდი გარიგება. რამდენიმე წამში, შესაძლოა, 32 წამი, მე ვერ ყოფს მას ნახევარი და საბოლოოდ მოვძებნოთ Mike ან დავასკვნათ, რომ ის არ არსებობს. და ეს არის არსი ალგორითმი კარგი ალგორითმი. და ეს არის ერთ-ერთი მიზნების კლასის მოსწონს, ცდილობს გაერკვნენ, თუ როგორ შემიძლია პრობლემის მოგვარება არ არის მხოლოდ სწორად, როგორიც მე ყოველთვის ვიცოდი, თუ როგორ უნდა გავაკეთოთ ერთი გვერდზე time-- მაგრამ სწორად და კარგად. როგორ შემიძლია შეიმუშავებს კარგი პრობლემების? ასე რომ, მოდით ერთი წუთით აქ და გაძლევთ გრძნობა ახლა of CS50 რა თქმა უნდა, თავად გააცნობს რამდენიმე კურსის შემადგენლობა. უბრალოდ ადრე 2:00, ჩვენ მიიღოს მოკლე შესვენების ასე რომ, იმ თქვენ, რომლებიც სავაჭრო შეიძლება იხვი და მიიღოს შევხედოთ ზოგიერთი სხვა კლასის და უყუროთ დანარჩენი ამ ონლაინ რეჟიმში. მაგრამ ახლა, ნება მომეცით წარმოგიდგინოთ CS50, კლასის თავად, და, განსაკუთრებით, რა არის ახალი. ასე რომ, გასულ გაზაფხულზე, ჩვენ გაატარა საკმაოდ ცოტა time-- რა თქმა უნდა, პერსონალი და არ მე ფიქრი შესახებ, თუ რა გვინდა, CS50 უნდა იყოს, და ბრუნდება პირველი პრინციპები, ასე ვთქვათ, განიხილოს ის, რაც ჩვენ გვინდა ეს, რა თქმა უნდა გამოიყურებოდეს და ისევე როგორც მისი სტუდენტები. ასე რომ, თქვენ დაინახავთ პრობლემების მითითებული ნულოვანი ასევე, მოწვევა უნდა შევხედოთ, რომ URL რომელიც თავს უყრის ზოგიერთი მოტივაციასთან შემდეგი მახასიათებლების შემოდგომაზე 2016 წელს. ასე რომ, როგორც თქვენ შეიძლება არ მოპოვებული საწყისი TL: DR კონსპექტად სილაბუსი დღეს, ისევე როგორც რა თქმა უნდა, კატალოგი, წელს CS50, თქვენ მხოლოდ დაესწრება today-- ასე სამუშაოს კარგად done-- და ბოლო ლექცია 21 ნოემბერს. და თქვენ მივესალმებით, მაგრამ არ არის მოსალოდნელი დასასწრებად იმ ლექციებს შუა, იმიტომ, რომ, რასაც ჩვენ ვაკეთებთ ამ წელს, სროლა რეალურ დროში, რა თქმა უნდა მატერიალური. ასე რომ, ყველაფერი დარჩება მიმდინარე და მოიცავს როგორც საუკეთესო, ჩვენ can-- მიმდინარე მოვლენების და საუბარი, რომ ეგ შეიძლება რომელსაც წარმოებაში მსოფლიოში, მაგრამ მიღების, რომ მასალა შესაძლებელია, როგორც შედეგი, მაშინაც კი, ადრე სრული სრული ტექსტი ტრანსკრიპცია და searchability და ბმულები სხვა რესურსების. და მართლაც, ჩვენ უკვე ამტკიცებენ, გარკვეული დროის და ჩვენ ახლა მჯერა, რომ ჩვენ შეგვიძლია შევქმნათ, ციფრული, უფრო immersive, უფრო მყარი საგანმანათლებლო გამოცდილებას, როგორც ეწინააღმდეგებოდა შეგროვების აქ ზოგიერთი 23-ჯერ პირი, მოსმენის ჩემნაირი უბრალოდ ვსაუბრობთ კომპიუტერული მეცნიერების, როგორც ეწინააღმდეგებოდა ჩართვით უფრო აქტიურად. ასე რომ, თქვენ ხედავთ, რა თქმა უნდა სილაბუსი ესკიზის სემესტრის აქ, ერთად, როდესაც ლექციები იქნება გადაღებული, რომელიც თქვენ მისასალმებელი, მაგრამ არ არის მოსალოდნელი, და როდესაც მათ გათავისუფლდება კურსის ნახვა. და რასაც ჩვენ გავაკეთებთ აქ ოთხშაბათს დაწყებული მომავალ კვირას, არის ბევრი უფრო მჭიდროდ, მხოლოდ ეგ, რომელთაც სურთ მონაწილეობა, არის ე.წ. გავლა, სადაც მე და კურსის ხელმძღვანელები რეალურად რამ ცოტა უფრო ინტიმური ქვემოთ აქ ორკესტრი განყოფილებიანი, ჯერ კიდევ აქვს გარკვეული ტექნოლოგია და გავლა მიმდინარე კვირის პრობლემა კომპლექტი, და გთავაზობთ particularly-- თუ შორის იმ ნაკლებად comfortable-- ყველა მეტი ხელმძღვანელობით, რომელიც თქვენ გსურთ ან საჭიროა კვირის გამო. და ასევე, მათთვის, ვინც არ შეუძლია დასწრება იმ ადამიანს, არ არის დიდი გარიგება. იქნება ასეთივე რომელსაც ერთი რა თქმა უნდა, მაღალი რანგის თანამშრომლები, Zamalya, იგივე შესაძლებლობა ჩართული პრობლემა ადგენს თავს. პრობლემა ადგენს ამ წელიწადში გამოვა პარასკევს და აღარ შვიდი დღის შემდეგ, მაგრამ 10 დღის later-- განზრახ გადახურვის თითოეული პრობლემის მოგვარებას მითითებული, რათა უკეთ დაბინავება, ჩვენ იმედი გვაქვს, ebb და ნაკადის სტუდენტური გრაფიკით, განსაკუთრებით მაშინ, როდესაც შუალედური ან მძლეოსნობის ან აკადემიური ან extracurriculars როგორც წესი, მოდის და წავიდეთ განსაკუთრებით შუა რიცხვებში სემესტრის. რომ უნდა მოგცეთ ცოტა მეტი შეხედულებისამებრ, თუ რამდენად წინ ჩატვირთვა თქვენი კვირაში CS50 ან უკან დატვირთვის მას შემდეგ კვირას ნაცვლად. ასე გამოიყურება, რა თქმა უნდა სილაბუსი აქ გრაფიკის შესახებ. და თქვენ შეამჩნევთ ძალიან შორის ცვლილებები ამ წელს, მათთვის უფრო იცნობს პროგრამირების წარსულში, ჩვენ დავიწყებთ სემესტრის ჩვენ დღეს Scratch, ყურადღება განსაკუთრებით ენის მოუწოდა C და შემდეგ გადასვლას არ PHP, არამედ ენის მოუწოდა Python მიმართ სემესტრის ბოლოს კონტექსტში ვებ პროგრამირების, ერთად SQL და JavaScript, HTML, CSS, და კიდევ. და პასუხი კითხვა, ეს მართლაც შემთხვევაში, რომ CS არ არის ისეთი საშიში, როგორც მე კიდევ ეგონა, რომ ეს იყო, მაგრამ ეს არის კიდევ ბევრი სამუშაოა როგორც მე მოვისმინე ეს შეიძლება იყოს. მაგრამ ეს არის ვთქვათ, რომ აქ არის გარკვეული სტატისტიკური შემოდგომაზე 2015 სტუდენტი ორგანო, რომლის დროსაც ჰორიზონტალური ლურჯი ხაზები წარმოადგენს საშუალო საათების რაოდენობა ცნობით. და დაინახავთ საშუალოდ ექვსი 10 12-- შესაძლოა 16 ან ასე და ასე შემდეგ, მაგრამ მაღალი ეწინააღმდეგება ნათელია. და ასე, რომ არ არის მხოლოდ სტუდენტები უფრო კომფორტული და ნაკლებად კომფორტული, რა თქმა უნდა, მაგრამ შესაბამისი მხარდაჭერა სტრუქტურა, რომ მიიღოს ის სტუდენტები მეშვეობით სემესტრის წარმატებით. მართლაც, პასუხი კითხვა, უნდა თქვენ მიიღოს CS50, როგორც პირველ წელს? აბსოლუტურად. და სინამდვილეში, ვწუხვარ, ვითარცა არა პოვნეს ჩემი გზა ან ი ახალ სფეროში რომ პირველი წელსაც. და უნდა მიიღოს CS50 ერთად სხვა კურსები, რა თქმა უნდა, როგორც well-- და ზოგადი რჩევები ჩვენ შეგვიძლია მისცეს სტუდენტებს, რომ CS50, ალბათ, არ არის იმ ტიპის კლასის ან intro კლასის რომ თქვენ უნდა მიიღოს სამი სხვა და სხვა ოთხი P- ნაკრები კლასი. მაგრამ თუ თქვენ აღების ორი სხვა p-set კლასი, რაღაც, და CS50, აბსოლუტურად მართვადი. მე მქონდა ბევრი სტუდენტების ბოლო გაკეთდეს ისე, საკმაოდ წარმატებით. და მიიღოს თქვენ მიმართ, რომ დასრულება ხაზი წარმატებით, ჯერ რა თქმა უნდა sections-- სხვადასხვა ტრეკები სტუდენტებისთვის ნაკლებად კომფორტული, უფრო კომფორტული, და სადღაც შორის, რომლის დროსაც რა თქმა უნდა, ის პირველი პრობლემა კომპლექტი, თქვენ უნდა სთხოვეს აღწერს საკუთარ თავს. და თუ თქვენ ხართ იმ ნაკლებად კომფორტული, ეს სახის რამ, რომ თქვენ უბრალოდ საკმაოდ ვიცი. და მართლაც, ეს იყო მზარდი დემოგრაფიული CS50 საკმაოდ რამდენიმე წლის განმავლობაში. როგორც გასულ შემოდგომაზე მაგალითად, 58% კლასის საკუთარ თავს იმ ნაკლებად კომფორტული, 9%, მათ შორის მეტი კომფორტული და შემდეგ სხვა სტუდენტებს იქ red, სადაც აღწერილია თავად როგორც სადღაც შორის. და დაინახავთ აქ თემა საერთო და გრაფიკი სექციები, რაც სთავაზობენ პირი, რეალური დრო, რა თქმა უნდა, საოცარი პერსონალის სწავლების პრაქტიკის და რა თქმა უნდა, თანაშემწეები, რომელთაგან ზოგიერთი თქვენ აკმაყოფილებდეს რაღაც მომენტში. განყოფილებები თავს, როგორც დაინახავთ, ნება იქნება ორშაბათს და სამშაბათს და ოთხშაბათს, ისე, რომ საშუალებას გაძლევთ ჩაყვინთვის მას შემდეგ, ჩართვით, თუ ასე აირჩიოთ, რა თქმა უნდა, ლექცია ადრე, რომ კვირას. და შემდეგ საათებში, რომელიც რა თქმა უნდა, ყოველ წელს, არ ყოფილა ნაკლები გამოწვევა, რა თქმა უნდა. და ამ წელს, ჩვენ ვგეგმავთ არა მხოლოდ თანამდებობაზე საათთან ერთი ერთი შესაძლებლობები დახმარება სტუდენტები ოთხშაბათს ხუთშაბათს და კვირას, ბოლო იმ უკვე დღის მეორე ნახევარში, დიზაინი შეამციროს ზოგიერთი სტრესის, რომ ყოველთვის ჩნდება გვიან ღამით p-settting ვადა looming-- მაგრამ საათებში ასევე იქნება შეთავაზებული ორშაბათს და სამშაბათს და ოთხშაბათს და პარასკევს და შაბათს, მადლობა ჩვენს მეგობრებს HSA. CS50 ახლა აქვს საკუთარი ფართი სტუდენტებისა და CS50 პერსონალი, atop 67 Mount Auburn Street, სწორედ იქ ჰარვარდის მოედანზე. ხედვა არის, რომ CS50 ს TFs და CAS მთელი კვირის განმავლობაში, საკმაოდ ბევრი მასშტაბით ყველაზე დღის განმავლობაში, იქნება მხარდაჭერა. ასე რომ, თუ თქვენ მოხვდით გარკვეული კითხვაზე P-კომპლექტი ან თქვენ შეგრძნება ცოტა დაბლოკა ან ცოტა დაბნეული, და heck, თქვენ მოხვდით საათი ან ნახევარი საათით შორის კლასი, განსაკუთრებით square-- შეგიძლიათ პოპ და აქვს, რომ კითხვაზე უპასუხა საქართველოს აქვს, რომ დაბნეულობა clarified-- ძალიან ბევრი სული, თქვენ იცნობს, მათემატიკის დეპარტამენტის საკუთარი მათემატიკის კითხვები ცენტრი, მაგრამ საკმაოდ ბევრი საათის პოსტი [? გკალ?], რომ ჩვენ, ონლაინ რეჟიმში. ვასწავლი ასევე ხელმისაწვდომია მათთვის, სტუდენტები, თავისუფლად, რა თქმა უნდა თანამშრომლები თუ სურს უფრო ინტიმური ერთ ერთი, ორი ან სამი თანაკლასელები მხოლოდ, სამუშაო ერთი რა თქმა უნდა, თანამშრომლები. და მართლაც, ეს აქ მხოლოდ ზოგიერთი რა თქმა უნდა, თანამშრომლები, რამდენიმე რომელთანაც თქვენ შეხვდება მხოლოდ ერთი წუთით. ფაქტობრივად, CS50 საკუთარი უფროსი სწავლების თანამემამულე, და ხელმძღვანელი, რა თქმა უნდა თანაშემწე, და preceptor, ვერ მოდის up, საშუალებას მათ მიესალმები. [ტაში] დინამიკები 1: [INAUDIBLE]. [ტაში] დინამიკები 2: [INAUDIBLE]. [ტაში] დინამიკები 3: [INAUDIBLE]. [ტაში] დავით Malan: საშუალებას გვაძლევს მოუტანს ბორტზე ორი CS50 ყველაზე მაღალი რანგის თანამშრომლები, Rob და Zamayla ისევე. [ტაში] მართლაც, როგორც Rob და Zamayla ჩვენთან ამდენი ხანი, რომ მე შეძლო წასვლას CS50 არქივები და ეს ძალიან SD კადრები მათ მონაწილეობას სცენაზე თავს რამდენიმე წლის წინ. ROB: [INAUDIBLE]. [ტაში] ZAMAYLA: [INAUDIBLE] [ტაში] დავით Malan: დიდი მადლობა. ასე რომ, გარდა ამისა, ეს გუნდის წევრები აქ, CS50 აქვს გუნდი თითქმის 100 თანამშრომლები, რომლებსაც ხელმისაწვდომი იქნება სექციები და საოფისე საათი და ასე უფრო მეტი. და როგორც რობ ამბობს ძალიან, ეს არის ყველაზე მნიშვნელოვანი კაპიტალური რემონტი of CS50 10 წლის, რომ მე უკვე [INAUDIBLE]. [INAUDIBLE] ორიენტირებული განსაკუთრებით უზრუნველყოფის მხარდაჭერა სტრუქტურა, ჩასწორება მოშორებით ბევრი ნაყარი, რომელიც უკვე დაგროვილი 10 წლის of განმეორებითი განვითარებული მოვლენები რა თქმა უნდა, პრობლემა კომპლექტი. ასე რომ ამ წელს, არა მხოლოდ კლასში, მაგრამ ასევე სახით კურსის პრობლემა კომპლექტი, უნდა იპოვოს რამ უფრო გაამარტივა, საპარსები, ბევრი უფრო მართვადი, ვიდრე გასულ წლებში, როგორც ჩვენ დაიღვარა ზოგიერთი ბარგის, რომ მიერ შემუშავებული ბუნების ვითარდება წელი შემდეგ წელს და iterating. ასე რომ, ახალი და გაუმჯობესებული დღეს იწყება. თქვენ შეხვდება კიდევ რამდენიმე რა თქმა უნდა პერსონალი გარეთ [INAUDIBLE] at 2:30, სადაც ვემსახურებით, როგორც ტრადიცია, ტორტი. იქ ცოტა მეტი ტორტი ვიდრე, მაგრამ თქვენ შეხვდება Erin ტობიას და სხვები მაინც. და ნება მომეცით ტური ადრე გვესმის ზოგიერთი სხვა თანამშრომლები კლასში, თუ რა ელის ისევე. ფაქტობრივად, ჩვენ ყოველთვის იწყება CS50 ს სემესტრის ამ მოდის შაბათს, ერთად რასაც CS50 Puzzle დღე. მას აქვს არაფერ შუაშია კომპიუტერულ მეცნიერებათა per se, მაგრამ პრობლემის შესახებ გადაჭრის უფრო ზოგადად. და თუ ამას გადაწყვეტენ, მიიღოს, პოსტი ზოგიერთი მოსაწვევები, თქვენ შეიძლება არ მინახავს კარი დაეცა ან სცენაზე აქ, ეს არის შესაძლებლობა, გუნდი ორი ან სამი ან ოთხი, მონაწილეობა გამოცანები და pizza და პრიზები და more-- ამ შაბათს, ადევნეთ თვალყური მეტი. თქვენ იპოვით ძალიან, რომ ყოველ პარასკევს, ცეცხლი და ყინული, ამჯამად CS50 მოუტანს მთელი bunch of სტუდენტები სადილი, რათა დიდი კლასის გრძნობს უფრო ინტიმური, და საერთოდ მოუყრის კურსდამთავრებულთა და მეგობრები ინდუსტრიის ვისაუბროთ, თუ რა ისინი ყოფილა მდე წლიდან დამთავრების. ანალოგიურად, ამ წელს, ჩვენ ინაუგურაცია პირველი CS50 50 კოდირების contest-- შუა რიცხვებში სემესტრის შესაძლებლობა, რათა ყველას on დამ საფუძველზე, აქვს გამოწვევა wits წინააღმდეგ თანაკლასელები, ერთხელ გუნდები ორი ან სამი ან ოთხი, გამოყენებით მხოლოდ, რომ პროგრამირების საზრიანი რომ თქვენ მაშინ უნდა ქვეშ თქვენი ქამარი შემდეგ მხოლოდ ექვსი ან შვიდი კვირის კლასის და მონაწილე ამ სახის კონკურენცია online-- თუ გსურთ აიფოუნ თქვენი საკუთარი ცოდნა, მით უფრო, რომ გამოწვევა. ბოლოს სემესტრის ე.წ. CS50 Hackathon-- შესაძლებლობა, რომ იწყება 7:00 PM მთავრდება 7:00, და გზაზე 12 საღამოს საათებში, რომლითაც ჩაყვინთვის შევიდა, რა თქმა უნდა საბოლოო პროექტის შესაძლებლობა, რათა შეიმუშავონ და განახორციელოს ყველაზე არაფერი საინტერესო თქვენ კი თქვენი სწავლებით მონაწილის ხელმძღვანელობით. დაახლოებით 9:00 AM გავაკეთოთ ჩვენ, როგორც წესი, ემსახურება პიცა, 1:00 AM, ფილიპ ის და რამდენიმე ჩვენგანი ვინც ჯერ კიდევ მეძინა at 5:00, არიან სამარშრუტო bussed ქვემოთ გზის IHOP საუზმე. და შემდეგ რამდენიმე დღის შემდეგ არის ე.წ. CS50 fare-- ბოლოს სემესტრის გამოფენა დღესასწაული, თუ რამდენად შორს ამდენი CS50 სტუდენტებისთვის არ მოდის კვირაში ნულოვანი ყველა გზა კვირას, და იმის გათვალისწინებით, რომ 73% იმ თანაკლასელები და თქვენი ამ წელიწადში არასდროს გადაღებული CS კლასის წინაშე. ფაქტობრივად, ყურადღების გამახვილება იმდენი, აქ არის კიდევ რამდენიმე სახეები CS50 პერსონალი. დინამიკები 4: [INAUDIBLE]. დინამიკები 5: [INAUDIBLE]. დინამიკები 6: [INAUDIBLE]. დინამიკები 7: [INAUDIBLE]. დინამიკები 8: [INAUDIBLE] დინამიკები 9: [INAUDIBLE]. დინამიკები 4: [INAUDIBLE]. დინამიკები 10: [INAUDIBLE]. დინამიკები 11: [INAUDIBLE]. დინამიკები 12: [INAUDIBLE]. დინამიკები 13: [INAUDIBLE] დინამიკები 14: [INAUDIBLE]. დინამიკები 13: [INAUDIBLE]. დინამიკები 15: [INAUDIBLE] დინამიკები 16: [INAUDIBLE]. დინამიკები 11: [INAUDIBLE] დინამიკები 5: [INAUDIBLE]. დავით Malan: ზოგიერთი გუნდი თავად სავაჭრო კლასი. მაგრამ თუ ის წევრები CS50 პერსონალი აქ ვართ, ვერ მოდის up for რაღაც მომენტში. CS50 ის TFs და CAS და [? თანამშრომლებს?] წევრები აქ ეს არის მხოლოდ რამდენიმე საქართველოს faces-- რომელთაგან ერთ-ერთი უბრალოდ დაინახა, და რამდენიმე other-- და რამდენიმე სხვა ისევ. რატომ არ უნდა წავიდეთ წინ და საშუალებას თქვენ ბიჭები ხუთი წუთის შესვენების. თუ თქვენ გჭირდებათ იხვი გარეთ მაღაზია კლასი, რომ ჯარიმა. და ხუთ წუთში, ჩვენ განაახლონ, აღების შევხედოთ ნულიდან პირველი ჩვენი პროგრამირების ენა, შეხვდება რა თქმა უნდა პერსონალი აქ კიდევ, და ფოკუსირება საბოლოოდ on პრობლემა მითითებული ნულოვანი. ასე რომ, ჩვენ ვიქნებით ხუთ წუთში. [ტაში] კარგი. ასე რომ, ჩვენ უკან. და ჩვენი დარჩენილი დღეს, მიზანი არის დონეზე თანაბარი თვალსაზრისით ზოგიერთი ტერმინოლოგია, თვალსაზრისით გარკვეული იდეები. იმის გამო, რომ მართლაც, როგორც პოსტი ზოგიერთი სქემები ადრე, იქ სპექტრი დონის გამოცდილება კლასში, ზოგიერთი რომელთა სტუდენტებს აქვთ მიღებული რამდენიმე პროგრამირების ადრე, ზოგიერთი მათგანი არ. ასე რომ, ეს პირველი პრობლემა მითითებული და ამ პირველი ენა გვაქვს შესაძლებლობა დაიწყოს თავისთავად შემდეგ დღეს ზოგიერთი საერთო ლექსიკა და იდეა. და ჩვენ ყველაფერს გავაკეთებთ ამ გზით რა თქმა უნდა, პირველი languages-- გარდა ამისა, C და Python და JavaScript და SQL და HTML და CSS, ჩვენ უნდა ფოკუსირება თავდაპირველად და მხოლოდ პრობლემის მითითებული ნულოვანი ამ გრაფიკული ენა, ე.წ. Scratch, მიერ შემუშავებული MIT მედია ლაბორატორია ქვემოთ გზა, რათა დაეხმაროს სტუდენტები და ბავშვები განსაკუთრებით გამოხატონ საკუთარი თავი algorithmically-- ისე, უფრო შეესაბამება რა ჩვენ შეიძლება მოვუწოდებთ კომპიუტერული აზროვნება. და ეს არის სასარგებლო ენის რადგან ძალიან სწრაფად მომავალ კვირას კვირაში ერთი, ჩვენ გადასვლას უფრო ტრადიციული და arcane ენის მოუწოდა C, რომელიც წმინდა ტექსტური. თქვენ მხოლოდ თქვენს კლავიატურაზე იმისათვის, რომ წერენ ინსტრუქციები მოსწონს ეს ეკრანზე. მაგრამ მაშინაც კი, თუ თქვენ არასოდეს მინახავს პროგრამირების ენა ადრე, მხოლოდ glancing ზე ეს, ყველა იქნება ეს cryptic, თქვენ ალბათ შეუძლია გამოიცნოს, რომ ალბათ ბეჭდავს Hello World. მაგრამ არსებობს ბევრი სინტაქსური ოვერჰედის არსებობს. არსებობს უცნაური hash სიმბოლო ან hash tag up დაბრუნება. არსებობს კუთხე ფრჩხილებში, ზოგიერთი ფრჩხილებში, Curly braces, ნახევრად colon-- არსებობს მხოლოდ იმდენად, ვიზუალური სინტაქსი, რომ იღებს გზა. ვიწყებთ რა თქმა უნდა, Scratch ისე, რომ მიიღოთ წარსულში ყველა იმ ინტელექტუალურად უინტერესო distractions, და ფოკუსირება ნაცვლად იდეები. ფაქტობრივად, ეს შეიძლება იყოს ადრე. ეს, ეს, week უნდა იყოს შემდეგ. ეს, ამ გრაფიკული ენის Scratch, არის, თუ როგორ განახორციელოს იმავე პროგრამაში არის პროგრამა, რომელიც როდესაც აწარმოებს, უბრალოდ ამბობს hello მსოფლიოში. და რა ლამაზი Scratch არის ის, რომ ეს გრაფიკული პროგრამირების გარემო, რომელიც იყენებს თავსატეხი ცალი ან ბლოკები, რომ მხოლოდ interlock ერთად თუ ეს ქმნის ლოგიკურ აზრი ამის გაკეთება. და Scratch შეიძლება განვითარდეს ანიმაციის და ინტერაქტიული თამაშები და ხელოვნების, და ნებისმიერი რაოდენობის რამ, რომ თქვენ წარმოიდგინეთ საკუთარი გონება, და განახორციელებენ მათ უბრალოდ გადმოიყვანა და ჩაშვების თავსატეხი ცალი. და მართლაც, ჩვენ გვაქვს შესაძლებლობა, გამოვხატო ზოგიერთი იგივე იდეები რომ მე მხოლოდ აღნიშნული მომენტი წინ კონტექსტში მაიკ სმიტი და ძებნას ტელეფონი book-- რამ მსგავსი ფუნქციები, უბრალოდ ქმედებები, რამ, როგორიცაა მარყუჟების, რომ ამის გაკეთება რამ ისევ და ისევ, ცვლადები, რომელიც არის რაღაც ჩვენ დანერგვა, მაგრამ ეს ნაცნობი ალბათ ალგებრა უბრალოდ რაიმე სახის placeholder შესანახად გარკვეული მნიშვნელობა თქვენ შეიძლება უნდა later-- ლოგიკური გამონათქვამები, სადაც მათ კი არა და ნამდვილი ყალბი კითხვები წლამდე. პირობები იმ ჩანგლები road-- იმ ფილიალი ასე ვთქვათ. და მაშინ არსებობს გარკვეული fancier თვისებები, ჩვენ დავინახავთ, დღესაც, მოუწოდა მასივები და თემა და მოვლენები, რომ ჩვენ მაშინ დავუბრუნდეთ მეტი დრო სხვადასხვა ენებზე. მაგრამ Scratch საშუალებას გვაძლევს შეისწავლონ ეს ყველაფერი. ასე რომ, აქ Scratch, ეს purple ბლოკი რა ფუნქცია, როგორც წესი, აპირებს გამოიყურებოდეს. ეს purple თავსატეხი ცალი რომ აქვს სიტყვა, როგორიცაა ვთქვათ, რომელიც არის ქმედება, და მაშინ შეიძლება ჰქონდეს არგუმენტი ან parameter-- რამდენიმე გზა სახის შეცვლა რა, რომ ბლოკი აკეთებს ასე, რომ ეს არ არის წინასწარ განსაზღვრული MIT, რაც ამ purple ბლოკი ამბობს. ფაქტობრივად, თქვენ დავინახავთ მომენტი, რომ მე ვარ, რათა ჩაწეროთ სიტყვები, როგორიცაა მიესალმები მსოფლიოში, ან გამარჯობა დავით, ან hello Zamayla, და რაც არ მინდა, არგუმენტი რომ თავსატეხი piece-- თეთრი ყუთი არსებობს. ამასობაში, თუ გსურთ მარყუჟის, ჩვენ ვხედავთ, რომ იქ თავსატეხი ცალი, რომ გამოიყურება პატარა ნარინჯისფერი მოსწონს ეს. და მათი ფორმის სახის ვარაუდობს, რომ რაღაც ხდება ისევ და ისევ ციკლი. ასე რომ, თუ მე გადაიტანოთ მიესალმები მსოფლიოში ბლოკი ერთად სამუდამოდ დაბლოკოს Scratch, ის უბრალოდ აპირებს შეინარჩუნოს ამბობდა მიესალმები მსოფლიო სამუდამოდ, საკმაოდ სიტყვასიტყვით. იმავდროულად, არსებობს კიდევ ერთი ტიპის loop in Scratch რომ ჩვენ see-- განმეორებითი ბლოკი, სადაც, თუ ვიცი წინასწარ, რამდენჯერ გსურთ loop შეასრულოს სასრული რაოდენობის ჯერ ის ფაქტი, რომ თქვენ შეგიძლიათ მიუთითოთ, რომ ის აკრეფით ნომერი ან თუნდაც ჩართვის ცვლადი, როგორიცაა x ან y როგორც ვნახავთ. ფაქტობრივად, ცვლადები, როგორიცაა მე ამ შემთხვევაში, რომელიც საერთო სახელი ამისთვის მთელი ცვლადი, რომ მხოლოდ ინახავს რიცხვი მთელი რიცხვი უნდა იყოს, უნდა გამოიყენოს ეს ნარინჯისფერი ბლოკი აქ მითითებული ცვლადი, როგორიც მე ნულის. აი მაგალითად, მწვანე არის ლოგიკური გამოხატვის Scratch. მიუხედავად იმისა, რომ ეს ჰგავს მათემატიკის ფორმულა, მათემატიკის უთანასწორობა მოსწონს ეს ნამდვილად არის ლოგიკური გამონათქვამები. ეს არის ჭეშმარიტი ან მცდარი. მე ნაკლებია, ვიდრე 50. ეს არც დიახ ან არა პასუხი ან ჭეშმარიტი ან მცდარი პასუხი. და ჩვენ ზოგადად მოვუწოდებთ იმ ლოგიკური გამონათქვამები. და ეს არ უნდა იყოს 50. ეს შეიძლება იყოს x ნაკლებია ვიდრე Y, უფრო მეტი, ვიდრე y ტოლია y-- ნებისმიერი რაოდენობის სხვა შეკითხვები შეიძლება სთხოვა. ახლა, ერთი შეხედვით, ეს შეიძლება გამოიყურებოდეს მოულოდნელად საკმაოდ თამამი აქ, და ეს არის. მაგრამ კონცეფცია ბრძენი, ეს საკმაოდ ნაცნობი ადრე. თუ x ნაკლებია ვიდრე Y, ვიდრე ვთქვათ იმდენი. Else თუ x მეტია ვიდრე y, მაშინ ამბობენ, იმდენი. სხვა ვთქვა, რომ x უდრის y. ასე რომ, ჩვენ გვაქვს მაგალითი არსებობს მესამე scenario-- მხოლოდ მესამე possibility-- x ან მეტი, ნაკლები, ან ტოლია. ასე რომ, ჩვენ გვაქვს სამი გზა გზის გასაყარი. და შენიშნავს რა მაგარი აქ Scratch, როგორც ჩანს, აქვს მხოლოდ ერთი თავსატეხი ცალი, ამ შემთხვევაში, თუ სხვა ბლოკი. და კიდევ, რომ, როგორც ჩანს, გულისხმობს, შეგიძლიათ მხოლოდ ორი გზა გზის გასაყარი. თქვენ შეგიძლიათ წასვლა მარცხენა ან მარჯვენა, მაგრამ რაც შეეხება, რომ მესამე სცენარი? რა მოხდება, თუ x უდრის y? პრობლემა არ არის. მიიღეთ ერთი თავსატეხი ცალი, ბოლო კიდევ ერთი შიგნით შექმნათ სემანტიკური ექვივალენტი საქართველოს თუ სხვაგან, თუ, else-- და ახლა თქვენ თქვენი სამი გზა გზის გასაყარი. და, როგორც ვნახავთ, რომ Scratch თავსატეხი ცალი შეიძლება გადაჭიმული და იზრდება, ასე რომ როგორც cram მეტი პერსონალი მათ. თქვენ არ უნდა მოერგოს ყველაფერს თავის სტანდარტულ ზომა. ეს არის რაღაც ჩვენ მალე დაინახავთ არის მოუწოდა მასივი. ეს იგივეა list-- რამდენიმე გზა შენახვის მრავალჯერადი ცალი ინფორმაცია ცვლადი, არა მხოლოდ ნომერი. ეს ჩვენ დავინახავთ წარმომადგენელი რაღაც მოუწოდა მრავალ threading. ფაქტია, რომ ყველა თქვენი Macs და კომპიუტერით ამ დღეებში მხარდაჭერა მრავალ threading, რაც იმას ნიშნავს, რომ თქვენ შეგიძლიათ სიტყვასიტყვით ამის მრავალი რამ დროს. თქვენ შეგიძლიათ Microsoft Word მდე წინა პლანზე, მუშაობს ზოგიერთ ესსე. ალბათ ბრაუზერის ფონზე გახსნა G-ფოსტა ან Facebook ან მოსწონს. თქვენი კომპიუტერი შეიძლება გავაკეთოთ მრავალჯერადი რამ დღეს, რადგან ეს არის მრავალ ნაკადიან, და პროგრამების ისინი ამ კერძოდ, ასევე მრავალ ნაკადიან. იქ რამ მოუწოდა მოვლენები, როგორც ასევე მსოფლიოში Scratch, და შემდეგ იქ ისე ძალიან, რომ ჩვენი საკუთარი თავსატეხი ცალი, თუ რამ არ არსებობს, წინასწარ. ასე რომ, მოდით მოტივაცია ამ ასეთია. რამდენიმე წლის წინ, როდესაც მე პირველად აღმოაჩინეს Scratch, როდესაც მე რეალურად გრადის სტუდენტი MIT, ჩვენ თავს დაევალათ, რათა საშინაო დავალება. და მე implemented-- რომელიც რეტროსპექტივაში, იყო ძალიან ცუდი გადაწყვეტილება იმიტომ, რომ ეს საუკეთესო infuriating სიმღერა მსოფლიოში მოუსმინოს რვა საათის განმავლობაში მუშაობისას homework-- მაგრამ რაღაც მე დაურეკა Oscar დრო, რომელიც ალბათ ნაცნობი სიმღერა. CS50s ფლობენ იორდანიაში Hayashi, ერთ-ერთი ჩვენი უფრო მაღალი რანგის თანამშრომლები, განახლებული ის 2015 და ახლა 2016, მას შემდეგ, რაც უკან დღეს, ყველაფერი მქონდა უბრალოდ აპირებს შევიდა ოსკარ ნაგვის შეიძლება. ახლა ჩვენ მხარს ვუჭერთ გადამუშავება და კომპოსტირება. მაგრამ ხატავს სურათს რა შეგვიძლია გავაკეთოთ აქ და მოტივირება ზოგიერთი ქვედა დონეზე მაგალითები, შეიძლება ჩვენ კიდევ ერთი სხვა მოხალისე უბრალოდ მოდის up და ითამაშოს ჩემი პირველი საშინაო დავალება ოდესმე? მოდის up. რა გქვია? HENRY: Henry. დავით Malan: Henry, მოდის up. მოდის up. უხელმძღვანელებს შეიკავა და დაინახავთ ამ მომენტში, მე ვაპირებ წავიდეთ წინ და მოხვდა მწვანე დროშა ზედა მარჯვენა კუთხეში, რაც იმას ნიშნავს, წავიდეთ. პატარა გაჩერების ნიშანი ხატი თქმას გაჩერება, და ეს მაშინ, როდესაც თქვენ დაიწყოს და შეწყვიტოს პროგრამა. სასიამოვნოა თქვენი გაცნობა. კარგი. ამიტომ, ჩვენ ვაპირებთ, რომ მითითებებს ეკრანზე რაღაც მომენტში. და მხოლოდ თამაშობენ ამ თამაშში რამდენიმე წამი მერწმუნეთ, ჩვენ არ ვაპირებთ, რომ გსურთ ითამაშოს ყველა გზა end-- თქვენ მისაღებად გრძნობა რა პროგრამა აკეთებს. და მეტი, ვიდრე უბრალოდ ფოკუსირება Henry რომ კარგი და ცუდი თამაში, აქცენტი და როგორ ახორციელებს me თავდაპირველად და შემდეგ იორდანიაში. სხვა სიტყვებით, სად არიან ცვლადები? სად არიან მარყუჟების? სად არიან ფუნქციები? და ჩვენ დავინახავთ, თუ ჩვენ ვერ ვხედავთ იმ ქვეშ hood. მხოლოდ დაწკაპეთ და გადაათრიეთ trash შესაბამისი bin. [მუსიკის დაკვრა] კარგი. ძალიან კარგია. რატომ არ უნდა შეწყვიტოს ეს არ არსებობს. გმადლობთ. ვულოცავთ Henry. გმადლობთ. [ტაში] წარმოიდგინეთ, გამართვის, რომ პროგრამა. თუ არსებობს პრობლემა ორ ე წუთზე song-- მაგრამ ასე რა ხდება აქ ნამდვილად? როგორც რთული, შესაძლოა, დაიწყოს, როგორც ჩანს, კიდევ მეტი დრო, მართლაც უფრო და უფრო პერსონალის დაიწყო დაცემა, რა არის საინტერესო ამ სახის მაგალითად და ვნახავთ, რამდენიმე others-- არის, რომ თუ გამოიყურებოდეს წარსულში სირთულის ან დახვეწილობის თამაში, არსებობს ძალიან მარტივი შენობა ბლოკები, რომ play-- რაც, თუ გამოიხადოს მათ, სამშენებლო ბლოკი, ძალიან ხელმისაწვდომი განხორციელებადი და უთხრა თავს. მაგალითად, ეს გარკვეული დრო, მაგრამ მე საკმაოდ დარწმუნებული ვარ, რაც მე თავდაპირველად გააკეთა, როდესაც რაც ამ თამაშში პირველად მე მთლიანად მოსწონს ჭიანურდება. მე არ ფოკუსირება ყველა იმ ლოგიკა ან თავსატეხი ცალი, მე ორიენტირებულია გრაფიკა და დასკვნა ქუჩაში პოსტი და ნაგვის ურნა და ყველა რომ. მაგრამ ეს იყო აუცილებელი ინგრედიენტები პირველი. და კიდევ მე დასრულდა procrastinating და იმასთან დაკავშირებით, ძირითადი ჩარჩო, გადავწყვიტე, ნება მომეცით, მხოლოდ ერთი ნაჭერი ნაგვის დაეცემა საწყისი ცაში. და ვნახავთ Scratch მხარს უჭერს რამ მოუწოდა sprites-- პერსონაჟი, რომელიც გვაქვს სხვადასხვა კოსტიუმები, რათა მათ გამოიყურება სხვადასხვა. და ასე რომ მე დააყენა trash კოსტუმი ერთ-ერთი ასეთი Sprite. და მე უბრალოდ საჭიროა, რომ დაეცემა საწყისი ცაში. ასე რომ, თურმე, Scratch, ისევე, როგორც ყველაზე პროგრამირების ენები, მხარს უჭერს შემთხვევითი ნომრები ან ტექნიკურად pseudocode შემთხვევითი ნომრები, ასე რომ გადმოიყვანა და მითუმეტეს გარკვეული თავსატეხი ცალი, მე შეძლო აქვს trash მოდის მარცხენა პირველი. და მაშინ მომავალი დრო იგი დაეცა, ეხლა მარჯვნივ და შემდეგ შუა. და ყველა თამაშის არ იყო მხოლოდ აქვს trash დაცემით საწყისი ცა. თქვენ შეიძლება არ აღვნიშნო, რომ ის და დაწკაპეთ იგი. თქვენ ვერ გახსნა ნაგვის შეიძლება. თქვენ ვერ არაფერი. მაგრამ ეს იყო ბავშვი ნაბიჯი მიმართ ჩემი საბოლოო ხედვა. და ამის შემდეგ, მე რეალურად განხორციელებული გარკვეული სახის ზონდირების ასე რომ, თუ თქვენ დარწმუნებული დააჭირეთ და გადაიტანეთ ცალი ნაგვის მეტი trash can, ოსკარ სახურავი, რომ გახსნა და დახურვა. არაფერი მოხდებოდა, რომ ნაგავი, არამედ მინიმუმ სახურავი, რომ გახსნა და დახურვა. ასე რომ, მაშინ შემოწმება, ნაბიჯ ორი ორი. და ეს არის ის, რაც იქნება გასაღები ორივე პრობლემა კომპლექტი ნულოვანი და პროგრამირების უფრო ზოგადად, არის ის, რომ მიიღოს ამ ძალიან მიზანმიმართული ბავშვი ნაბიჯები. იმის გამო, რომ არა მხოლოდ იგი საშუალებას გაძლევთ გრძნობს პატიოსნად შესრულებული ბევრად უფრო quickly-- ეს ყველაზე უარესი, რაც მსოფლიოში ცდილობენ განახორციელონ ყველა ოსკარ დრო, მაშინ საათის შემდეგ მოხვდა მწვანე დროშა, და არაფერი მუშაობს, როგორც მოსალოდნელი რადგან იქ, სადაც თქვენ კი დაიწყოს გამართვის ან პრობლემების, რომ პროგრამა? ეს არის მხოლოდ აბსოლუტური. ასე რომ, ნამდვილად მოიცავს ამ იდეას აღების ნაბიჯების ბავშვი ნაბიჯები ერთხელ და ისევ მშენებლობაზე არის რაღაც, რომ, საბოლოოდ, მართლაც შთამბეჭდავი და რთული, მაგრამ პირველ რიგში, არ არის თითქმის როგორც ისე. ფაქტობრივად, მოდით გავაკეთოთ ეს. ნება მომეცით წავიდეთ წინ and-- Scratch თავად არსებობს ვებგვერდი ზე Scratch.MIT.edu, და თქვენ უნდა უთხრა, როგორც ბევრი კვლავ პრობლემაა მითითებული ნულოვანი, დაზუსტება რომელიც უკვე CS50 ნახვა. მაგრამ ეს არის ის, რაც Scratch თავისთავად. და არ არის ნამდვილად სამი ძირითადი სფეროებში. ზედა მარცხენა არსებობს არის ე.წ. ეტაპზე. ეს არის Scratch. ნაგულისხმები კოსტუმი არის კატა. და ეს არის მართკუთხა მსოფლიოში რომელიც შეგიძლიათ გადაადგილება up, down, მარცხენა, უფლება და სხვა პერსონალი. შუა აქ არის ჩვენი კატეგორიები ან ჩვენი pallets თავსატეხი ცალი, და სხვადასხვა ფერის ნიშნავს, სხვადასხვა ნივთები. და თუ poke გარშემო, დაინახავთ, რამ, როგორიცაა მარყუჟების და პირობები და ცვლადები და სხვა ინგრედიენტებს. და მერე აქ არის სკრიპტები ტერიტორიაზე. ეს არის სადაც მე შეგიძლიათ გადააადგილება იმ თავსატეხი ცალი რამ. ასე რომ, მოდით ერთი ასეთი რამ. ნება მომეცით წავიდეთ წინ and-- და მე ვიცი, სადაც ის არის. ამიტომ, მე ვაპირებ, რომ დაუყოვნებლივ დააჭირეთ სადაც მე ვიცი, რამ მზად უნდა იყოს, მაგრამ მიუთითებს და დაჭერით და გააღიზიანოს გარშემო გარდაუვალია. ასე რომ, როდესაც მწვანე დროშა დააწკაპებთ, რა უნდა გავაკეთოთ? მე ვაპირებ ამის გაკეთება. მე ვაპირებ გადაიტანეთ ეს purple თავსატეხი ცალი, მიესალმები ორი წამი, და ნება მომეცით მიუახლოვდით. და მე ვაპირებ, რომ შეიცვალოს ეს უნდა იყოს, რაც მე მინდა, რომ იყოს hello მსოფლიოში ორი წამი კარგად არის. ახლა, მე ვაპირებ დააჭირეთ მწვანე დროშა, ან თუ ნამდვილად გვინდა, შემიძლია სრულ ეკრანზე და შემდეგ დაბრუნდება. უბრალოდ გააგრძელებს ყველაფერი ერთ ფანჯარაში. Green დროშა Hello მსოფლიოში. კარგი. არა ყველა, რომ საინტერესოა. ნება მომეცით, წავიდეთ წინ და ამის გაკეთება. ნება მომეცით ცდილობენ კიდევ ერთი. როდესაც მწვანე დროშა clicked-- მოდით ამის გაკეთება რაღაც ხმა. და შეამჩნია, რომ გარეთ ყუთი უფასოდ თქვენ კატა ხმა, როგორც ნაგულისხმები Sprite. ახლა ნება მომეცით წავიდეთ წინ და მოხვდა მწვანე დროშა. [Meowing] Aw. სწორედ adorable. მე პროგრამირების. ასე რომ, რა ჩავიდინე? ეს არის ეკვივალენტი პროგრამა. ეს აშკარად სუპერ მარტივია. ეს ნამდვილად არ მიიღოს, რომ ბევრი ძალისხმევა და MIT გააკეთეს მუშაობა, მაგრამ მე არ მოუწოდა ფუნქცია. მე არ გამოიყენება ფუნქცია. მე გარკვეული ქმედება, გამოყენებით მხოლოდ რომ ერთი purple თავსატეხი ცალი. ისე, თუ მე მინდა, რომ სამი meows ზედიზედ? ნება მომეცით წავიდეთ წინ და ორი და სამი. და შენიშნავს, რომ, როდესაც თქვენ hover მიმდებარე თავსატეხი ცალი, პატარა თეთრი ხაზი, როგორც ჩანს, ერთგვარი მაგნიტურად, და ეს იქნება ვადამდელი ერთად, როდესაც თქვენ გაუშვებენ. ვნახოთ, რა ხდება აქ. [Meowing] აქ არის შეცდომა. მე მხოლოდ მოვისმინოთ ერთი meow. რატომ შეიძლება რომ იყოს? ჰო? ჰო. ჩვენ ნამდვილად არ გესმით, მაგრამ, რომ კარგი ინტუიცია. ისინი ყველა სათამაშო ამავე დროს. რატომ? ისევე, კომპიუტერი მხოლოდ აპირებს რა თქვენ ვუთხრა მას ამის გაკეთება. ასე რომ, თუ ვთქვათ, თამაში ხმის, თამაში ხმის, თამაში ხმის, მაგრამ თქვენ არ ვამბობ, რომ ითამაშოს, სანამ თქვენ გაკეთდეს, ითამაშოს, სანამ თქვენ გაკეთდეს, ის აპირებს აფეთქება მეშვეობით პროგრამა მართლაც სწრაფი და მხოლოდ ის, რაც თქვენ ვუთხრა მას ამის გაკეთება. ასე რომ რეალურად უნდა დააფიქსიროს ეს არის ორი გზა. მე შეიძლება მხოლოდ ამის გაკეთება, თავი დაეღწია ამ. ნება მომეცით ცდილობენ ამ სხვა თავსატეხი piece-- თამაში ხმის meow სანამ გაკეთდეს, და შემდეგ გადაიტანეთ სამი ამ და დაწკაპეთ Play. [Meowing] ეს ნამდვილად არ არის very-- მადლობა you-- ძალიან ბუნებრივია. რატომ არ შევიდე მიადევნე მე წასვლა კონტროლი აქ. Nice. დაველოდოთ ერთი მეორე, და ახლა ნება მომეცით დაბრუნდეს ხმები და პიესა ხმის სანამ გაკეთდეს, და მაშინ ნება მომეცით კიდევ დაველოდოთ ერთი მეორე. და მაშინ ნება მომეცით წავიდეთ და ერთი მეტი ხმა, და აქ ჩვენ მივდივართ. [Meowing] ცოტა უფრო ბუნებრივი, მაგრამ ეს არ არის ძალიან ეფექტური. როგორიც მე არც შეწუხებული, ყველა იყოს მოკლედ, დაჭერით და უკან და მართლაც დუბლირება ჩემი work-- საკმაოდ ბევრი გადაწერა და pasting. მართლაც, თუ კონტროლი აირჩიეთ ან მარჯვნივ აირჩიეთ, მე ვერ მხოლოდ გადაწერა და გაკრული. რა იქნება უკეთესი მშენებლობა გამოყენება? რა იდეა ადრე? ჰო, ასე რომ ციკლი. და სინამდვილეში, თუ ჩვენ poked გარშემო, ჩვენ შეიძლება ზუსტად რომ. ნება მომეცით წავიდეთ თარიღები და საკმაოდ კონტროლი. ასე რომ, repeat-- მე არ გვინდა, რომ იყოს 10-ჯერ. რომ აპირებს შემაშფოთებელი სწრაფად. მაგრამ მე ვიმეორებ სამჯერ. ნება მომეცით დაბრუნდეს ხმა და ითამაშოს ხმა, სანამ ეს კეთდება. ნება მომეცით დაბრუნდეს Control და მხოლოდ დაველოდოთ ერთი მეორე. და შეამჩნია, რომ თქვენ შეიძლება ვფიქრობ, რომ ეს არ ჯდება, თუმცა თუ მაგნიტურად ასეც ვადამდელი ადგილზე, გაიზრდება შევსება. რა არის ეს თამაში არის? [Meowing] კარგი. Nice. და ეს არის ის, რაც იქნება მოუწოდა პროგრამა, რომელიც ასევე სწორი. ეს meowed სამჯერ საკმაოდ ბუნებრივია, მაგრამ ეს უკეთესი შექმნილია. მე გამოყენებით ნაკლებად redundancy. მე არ დააკოპირეთ და ჩასვით არაფერი. უბრალოდ გამოიყენება უკეთესი იდეა. ახლა, ეს ჯერ კიდევ არ არის ყველა, რომ საინტერესო Scratch არ აკეთებს არაფერი. მოდით გავაკეთოთ რაღაც ნაცვლად. მოდით რაიმე სამუდამოდ. და იცით რა? Motion, როგორც ჩანს, საინტერესო. მოდით მას გადაადგილება 10 ნაბიჯები და მოხვდა თამაში. კარგი. ასევე შეგვიძლია სახის drag მას უკან, და ის ჯერ კიდევ გაშვებული, რადგან ის ამით სამუდამოდ. ასე რომ, მარყუჟის აკეთებს რასაც ის ამბობდა, რომ გავაკეთოთ, მაგრამ ეს არ არის ყველა, რომ საინტერესოა. მოდი გავაკეთოთ ეს. მე დავამატებ მართვის ბლოკი, და ერთი იმ პირობებში პირველად. ასე რომ, ის აპირებს გადავიდეს 10 ნაბიჯების 10 წერტილები, 10 პიქსელი ეკრანზე შემდეგ ის აპირებს ამ კითხვაზე პასუხი. თუ რამე არის ნამდვილი, მაშინ რაღაც შიგნით ამ ბლოკში. გამოდის, ზონდირების აქვს მთელი bunch of ლოგიკური expressions-- შეკითხვებს დიახ არა ან ნამდვილი ცრუ form-- ნება მომეცით ამის გაკეთება. თუ touching-- და შემდეგ იქ ამ პატარა drop მენიუში. შემიძლია parameterize იგი. თუ ეხება edge-- მოდით რაღაც მსგავსი. ასე რომ, თუ ეხება edge-- მიადევნე თვალი დაბრუნდეს მოძრაობაში. და რატომ არ ჩვენ უბრალოდ ჩართოთ გარშემო 180 გრადუსი? კარგი. ასე რომ, სამუდამოდ, გადაადგილება 10 ნაბიჯები. თუ თქვენ ეხება ზღვარი, ჩართოთ 180 გრადუსი. და ეს არ არის ბოლომდე პროგრამა იმიტომ, რომ თქვენ სამუდამოდ ბლოკირება, ასე რომ, ის აპირებს წავიდეს ისევ და ისევ და ისევ და ისევ. ასე რომ, ვნახოთ, რა მოხდება. კარგი. პატარა buggy, მაგრამ სახის cool. და ჩვენ შეგვიძლია დავამატოთ ეს რაღაც სულელური რამ რომელიც არ არის ყველა, რომ ინტელექტუალურად საინტერესო. მაგრამ თუ ჩვენ მოხვდა ამ პატარა მიკროფონი button-- ouch. მიადევნე თვალი გაწმენდა ეს ყველაფერი. მიადევნე თვალი გაზარდოს ეს როგორც ისინი აცხადებენ, ტელევიზიით. გაწმენდა, რომ, შენახვა, და ახლა ახვიდეთ სკრიპტები. და ახლა, ნება მომეცით წავიდეთ ხმაზე. ნება მიბოძეთ, ეს სახელი. მე მოვუწოდებ ამ ouch. და ახლა თამაშობენ ხმის ouch. გავითვალისწინოთ, რომ, როგორც ჩანს, პატარა drop მენიუში. მოდი ვნახოთ. [ოუჩ] [იცინის] მაგრამ ჩვენ შეგვიძლია შევცვალოთ t მისი on the fly. ჩვენ შეიძლება ორჯერ შემაშფოთებელი. [ოუჩ] და თუ ჩვენ მას მოსწონს 1,000 ნაბიჯები ერთი time-- კარგი. ამიტომ, ჩვენ ვაპირებთ დატოვება, რომ ერთი მარტო. ასე რომ კიდევ ერთხელ, მშენებლობის blocks-- I დაიწყო რაღაც სუპერ მარტივი, და მერე დასძინა, ფუნქცია, დაემატა ფუნქცია, დასძინა ფუნქცია. და მე აღარ უნდა ფიქრი როგორ პირველი იმ თვისებები განხორციელდა როგორც მე გაგრძელდება ფენის რამ თავზე. ასე რომ, ფაქტობრივად, ნება მომეცით ერთი სხვა აქ. ნება მომეცით წავიდეთ წინ და გახსნა ფაილი, რომელიც მე მოუტანა წინასწარ, მოუწოდა ცხვარი. ასე რომ მას აქვს ოდნავ განსხვავებული ხასიათი, რომელიც ასე გამოიყურება. და ვნახოთ თუ არ შემიძლია ამის გაკეთება რაღაც გამოყენებით counter ამ შემთხვევაში ე.წ. ცვლადი. მე ვაპირებ წავიდეთ წინ და ქვეშ Events-- ნება მომეცით კიდევ მწვანე დროშა დააწკაპებთ. მაშინ ნება მომეცით წავიდეთ დათა, რაც მე ვიცი მხოლოდ სათამაშო გარშემო ადრე, სადაც ცვლადები არიან. და მე ვაპირებ წავიდეთ წინ და გადაიტანეთ ეს. ასე რომ, ცვლადში counter, და მე ვაპირებ ინიციალიზაცია იგი ნულის. მე არ შემიძლია ეძახით anything-- x ან y ან z-- მაგრამ პროგრამირებაში, რაღაცის in სემანტიკურად სასარგებლო გზა, ისევე როგორც counter, რომელიც აღწერს, რა არის, ეს არის ბევრი ადვილია წაიკითხოთ თქვენი კოდი მოგვიანებით. ნება მომეცით წავიდეთ წინ და მიიღეთ სამუდამოდ დაბლოკოს აქ. და ნება მომეცით წასვლა გამოიყურება გვერდი და ნუ Say ბლოკი. მაგრამ რა არის მაგარი ცვლადები I არ უნდა უბრალოდ აკრიფოთ რაღაც მოსწონს hello მსოფლიოში, რომელიც ჩვენ უკვე კეთდება, მე შემიძლია ნაცვლად წასვლა მონაცემები და გადაიტანეთ ჩემი ცვლადი, და კიდევ მიუხედავად იმისა, რომ ფორმა არ საკმაოდ ჰგავს ეს უნდა ჯდება, ეს გაიზრდება შევსება. და მე უბრალოდ, ვამბობთ counter ერთი second-- spoiler-- ის აპირებს ითვლიან. ჩვენ ვამბობთ, რომ ეს ერთი მეორე. ამის შემდეგ მე ვაპირებ წასვლა და აქვს მას დაველოდოთ ერთი მეორე, ასე რომ, ეს არ ითვლიან up ძალიან სწრაფად. და მერე ბოლოს, შეიცვალოს counter მიერ one-- სხვა სიტყვებით, ნამატი Counter ერთი დამატებითი ღირებულების და გავაკეთებ ამ სამუდამოდ. ასე რომ, ცხვარი ძალიან, მოსწონს პროგრამისტი, ითვლის 0-დან. და თუ ჩვენ დაველოდოთ ხანგრძლივი საკმარისი, იგი ყველაფერს გააკეთებს ამ სამუდამოდ. მაგრამ ეს არ არის ზუსტად ასეა, რადგან ფაქტობრივად, როგორც ჩვენ აღმოჩენა კვირაში ერთი, რიცხვებით და კომპიუტერები უფრო ზოგადად, ტექნიკურად აქვს მხოლოდ finite-- კარგად, საკმაოდ კომპიუტერები, როცა ისინი წარმოადგენენ რიცხვებით, მხოლოდ სასრული რაოდენობის ბიტი. იმ ნათურებით არ მხოლოდ ითვლიან იმდენად მაღალი სანამ თქვენ გარეთ ნათურებით. და კომპიუტერი ძალიან, მხოლოდ იმდენად, მეხსიერება, მხოლოდ აქვს ამდენი ტრანზისტორები, ასე რომ მხოლოდ იმედი იმდენად მაღალი. გამოდის, რომ ცხვარი, მე ვფიქრობ, რომ იმედი 2 მილიარდი ან რაღაც საკმაოდ დიდი. ასე რომ, ჩვენ არ ვაპირებთ დაველოდოთ, რომ ეს მოხდეს. თუმცა, საბოლოოდ, ზოგიერთი ხარვეზის მოხდება რომელიც შეიძლება ჰქონდეს რამდენიმე ძალიან რეალური სამყაროს დაჯდა. მაგრამ მიღმა ცხვარი, რომელიც გაგაცნობთ ცვლადი. მოდით წავიდეთ წინ და გახსენით რაღაც მე წინასწარ აქ მოუწოდა ცხოველებისათვის Cat-- Pet კატა აქ. და შენიშნავს, აქ ის რამდენიმე კორპუსები, მაგრამ როდესაც მწვანე დროშა აირჩიეთ, სამუდამოდ აკეთებს შემდეგ. თუ თქვენ ეხება თაგვის მაჩვენებელი ასე კურსორი ეკრანზე, arrow-- პიესა ხმის meow და მაშინ დაველოდოთ ორი წამი. და მხოლოდ ამის სამუდამოდ. უბრალოდ მუდმივად დაველოდოთ თუ მაჩვენებელი თუ კატა ეხება მაჩვენებელი. ასე რომ, მე მოხვდა პიესა. არაფერი ხდება. მაგრამ, როგორც მე გადატანა კურსორი მეტი კატა, [Meowing] და თუ მე გადატანა მოშორებით, არ ნებივრობს კატა აღარ. ასე რომ, გარკვეული პირობითი ლოგიკის წყობილი შიგნით loop. როგორ შესახებ, მაგალითად, განზრახ მოუწოდა არ Pet კატა? რა არის ეს აპირებს? [Meowing] რატომ არ უნდა pet კატა? [Meowing] კარგი. ასე რომ, ეს არის მაგალითი იმისა, თუ სხვაგან. ეს გადაწყვეტილება წერტილი და იმიტომ, რომ ის იჯდა მარყუჟის, ისინი ორივე მიღების შემოწმდება. ეს მართალია? ეს მართალია? ეს მართალია? ეს მართალია? და ბოლოს, ერთ-ერთი იმ აპირებს მიმართოს და ასე გესმით ან Meow ან roar, ლომის, ამ შემთხვევაში. ისე, მოდით გავაკეთოთ ოდნავ უფრო ლამაზი ერთი რომ მე წინასწარ too-- თემა. ასე რომ, თემა არის მხოლოდ ერთი რამ, რომ კომპიუტერი არ შეუძლია გააკეთოს. ასე რომ, მრავალ ნაკადიან პროგრამა არის პროგრამა რომ არ შეუძლია გააკეთოს მრავალი რამ ერთბაშად. და ყველა ეს მაგალითები დღემდე არ ჰქონდა მხოლოდ ერთი script, ასე ვთქვათ ერთ პროგრამაში ისევე როგორც ეს აქ. მაგრამ შეამჩნია ეს პროგრამა ორი sprites, ორი სიმბოლო. ერთი არის ფრინველი. ერთი კატა. და შეამჩნია, როდესაც მე დააჭირეთ ამ ქვემოთ მარცხენა, მათ აქვთ საკუთარი სცენარების ან პროგრამების მათთან ასოცირებული. და ორივე პროგრამების, შეამჩნია, დაწყების როდესაც მწვანე დროშა clicked-- მოდით შევხედოთ cat-- როდესაც მწვანე დროშის დაწკაპავთ. ასე რომ, მართლაც, როდესაც მე მოხვდა პიესა ახლა, ორი რამ, რაც უნდა მოხდეს ერთდროულად. კატა და ჩიტი ორივე აპირებს ერთდროულად შექმნა ამ ეფექტი. და თქვენ წარმოიდგინეთ, რა ხდება. არსებობს loop და ფრინველის და კატა არიან loop. ფრინველის მხოლოდ bouncing მოსწონს მე ვიყავი ადრე, როდესაც ვთქვი, ouch. მაგრამ კატა ნათლად აქვს უპირატესობა. არსებობს კიდევ ერთი ზონდირების ბლოკი რომელიც მიუთითებს კატა განზრახ ფრინველის ამ შემთხვევაში აქ. ასე რომ ჩვენ შეგვიძლია აჯავრებენ გარდა, ეძებს მეშვეობით იმ ბლოკები, რა ხდება. მაგრამ გასაღები ნივთიერება, აქ არის ერთი. ფრინველის, ისე, რომ ეს თამაში არ არის სრულიად boring-- ან ამ animation-- იწყება შემთხვევითი მიმართულებით. კომპიუტერი და კრეფა რიგი შორის 90 და 180 არსებითად, ისე, რომ ოდნავ სხვადასხვა ანიმაცია ყოველ ჯერზე. და შემდეგ შეამჩნევთ აქ, თუ კატა ეხება ფრინველის, მაშინ ითამაშოს lion ოთხი sound-- roar,. მაგრამ ამ დროს, ჩიტის პალიტრა, ჩვენ გვაქვს ეს. სამუდამოდ, თუ არ ეხება კატა, უბრალოდ შეინახოს მოძრავი სამი ნაბიჯი. და მერე აქ არის კიდევ ერთი თავსატეხი ცალი. თუ თქვენ ზღვარზე, ახსნას. ასე რომ ფრინველის მხოლოდ სახის minding საკუთარი ბიზნესის, უბრალოდ საფრენი გარშემო და bouncing, და ეს მართლაც კატა, რომელიც ჰქონდა პირობითი ლოგიკის რათა დადგინდეს, თუ იგი დაჭერილი ფრინველის. კარგი. მოდით გავაკეთოთ ერთი აქ, ეს ერთი მიმდინარეობს მოუწოდა Hi Hi Hi. და ეს ერთი აქ უბრალოდ აკეთებს ეს სამუდამოდ loop. მაგრამ შეამჩნია, თუ როგორ უნდა შეწყვიტოს ეს ძალიან შემაშფოთებელი პროგრამა? მოხვდა სივრცეში ბარი. იმიტომ, რომ თუ გავაკეთო, მარცხენა პროგრამაში შენიშნავს, რომ ის მუდმივად listening-- არის გასაღები სივრცეში პრესაში. იმ შემთხვევაში, თუ სივრცეში ბარი დაპრესილი, და თუ ასეა, რას აკეთებთ? ამას ძალიან გავრცელებული ტექნიკით. იგი ადგენს ცვლადი ტოლია გარკვეული მნიშვნელობა. მაგრამ ეს toggles რომ მნიშვნელობა. [? ასე რომ გამოჩენა?] საფუძველზე shape-- I ცვლადი, რომ მე დავწერე წინასწარ მოუწოდა მდუმარე, რომელიც ამბობს, რომ დიახ ან არა. ხმა მდუმარე თუ არა? ჭეშმარიტი ან მცდარი? და შეამჩნია, მე ვამბობ ამას, თუ მდუმარე არის ნულოვანი, მაშინ შეცვალოს ერთი, სხვაგან მითითებული მუნჯი მას ნულოვანი. ასე რომ, მხოლოდ flip მნიშვნელობა ნულიდან ერთი. მე შეიძლება done-- შეცვალოს იგი ორი სამი და სამი ორ ან ოთხი, ხუთი ან ოთხი ექვსი. მაგრამ ამას მნიშვნელობა არ აქვს რა ნომრები გამოვიყენო, ასე რომ, სანამ მე შენარჩუნება შეცვლის მას, პირიქით. და ყველაზე ნებისმიერი პროგრამისტი უბრალოდ აირჩიეთ ნულოვანი და one-- ცრუ და ჭეშმარიტი, და on-- წარმოადგენს ამ. და ეს კვლავ მიმდინარეობს. თუ მოხვდა სივრცეში ბარი ერთხელ [SEAL ხმები] პროგრამა კვლავ მიმდინარეობს. იმის გამო, რომ ეს სხვა სკრიპტი რომელიც ამბობს, სამუდამოდ ამის შემდეგ. იმ შემთხვევაში, თუ მდუმარე ცვლადი უტოლდება ნულოვანი ასე რომ, თუ თქვენ არ მდუმარე არის ლოგიკა, თუ ეს ცრუ თუ არა, მაშინ ითამაშოს ხმა, იმიტომ, რომ თქვენ არ მდუმარე. თქვენ უნდა ითამაშოს ხმა და შემდეგ ვფიქრობ, hi hi hi ორი წამი და მაშინ დაველოდოთ, და ამის გაკეთება ისევ და ისევ და ისევ. ასე რომ, ამ გზით გვაქვს გზა ადამიანი, რომელთა მიზანია პროგრამების შეარჩიონ. და ისინი არ უნდა იყოს, როგორც დათარიღებული, როგორც სხვები. ფაქტობრივად, გააღიზიანოს around-- არ pun განკუთვნილი ვინმე დახარჯული უზარმაზარი დრო ინტერნეტში ახორციელებს PokemonGo ნულიდან. ეს კი geolocates თქვენ კემბრიჯის ან Allston აქ. ასე რომ, თუ გვინდა, რომ ძალიან, რა ხალხი შეგიძლიათ გააკეთოთ ამას ძალიან ლამაზი მენიუ. დააჭირეთ აქ. ეს არის ჩემს arrow keys ახლა. მე ვაპირებ ამის შემდეგ. დააჭირეთ. და ახლა თქვენ დააჭირეთ PokeBall. მე ვგულისხმობ, მე ვფიქრობ, თქვენ უნდა დააწკაპუნეთ PokeBall. კარგი. ასე რომ, მე რომ. შემიძლია წავიდეთ აქ. და ეს პიროვნება განხორციელებული კიდევ რამდენიმე Pokeballs მეტი აქ სამი Pokeballs. ჩვენ პოსტი ბმული ამ ამჟამად, ასე რომ თქვენ შეგიძლიათ ითამაშოთ. მაგრამ შეამჩნია, რომ იქ უბრალოდ ზოგიერთი ძირითადი შენობა ბლოკად. ეს გამოიყურება ბევრი fancier, და ეს არის. ეს არის შთამბეჭდავი და უფრო ვიდრე ჩვენ, როგორც წესი, ველით, რა თქმა უნდა, პრობლემა მითითებული ნულოვანი. მე არ ვიცი, რამდენი ხანი ამ ადამიანს გატარებული. მაგრამ ეს ყველაფერი უბრალოდ loop. არსებობს ხმის სათამაშო. არსებობს რამდენიმე სახის მარყუჟის მოსმენის თუ არა მე დარტყმის ისარი ან ქვემოთ arrow ან მაუსის მარცხენა და მარჯვენა, და მაშინ, თუ ეს ასეა, მოძრავი ეს გარკვეული რაოდენობის პიქსელი. და მაშინ, თუ მე დააწკაპუნეთ სხვა Sprite, არსებობს გარკვეული სახის თუ მდგომარეობა არ არსებობს. ჰო, ეს ხდება ძალიან ინტენსიური. ჩვენ ვაპირებთ, რომ შეწყდეს. ეს არის ყველა იმ ძირითად შენობა ბლოკად. არ არსებობს სხვა ინგრედიენტები სხვა ვიდრე ჩვენ შევხედე უკვე. და ჯერ კიდევ აქ, ნება მომეცით ამის ერთი საბოლოო კომპლექტი მაგალითები რომ ხატავს სურათს ძალიან რა შეგიძლიათ გააკეთოთ აქ. აქ არის ძალიან მარტივი პროგრამა, რომელიც უბრალოდ აკეთებს ამას ხველა, ხველა, ხველა. და მხოლოდ იმაზე, თუ რა ჩვენ შევხედე ჯერჯერობით, სად არის აშკარა შესაძლებლობა გაუმჯობესებას. ეს პროგრამა არის სწორი. ეს coughs სამჯერ, რაც მე განკუთვნილი. მაგრამ ის ცუდად შესრულდა. ეს ცუდად შემუშავებული. რატომ? ჰო. ეს არ არის loop. და ეს არ არის იმდენად რომ ეს არ არის მარყუჟის, ის არის, რომ იქ ბევრი redundancy. არსებობს გადაწერა და გაკრული კოდი, ასე ვთქვათ. და გამოსავალი, ალბათ, მართლაც loop. ნება მომეცით წავიდეთ წინ და გაუმჯობესების საფუძველზე, რომ. და მე ვაპირებ გადაიტანეთ ეს აქ. ნება მომეცით წავიდეთ წინ და გამეორების ბლოკი, შეცვალოს ამ სამ. მე ვაპირებ გადაყარეთ ზოგიერთი იმ ბლოკები. და თქვენ შეამჩნევთ, რომ ეს არის საკმაოდ ინტუიციური. თქვენ გადააადგილება და რამ გამოჩნდება და გაქრება საბოლოოდ. და შემიძლია უბრალოდ გადაიტანეთ ეს აქ, და ახლა მე მაქვს სუფთა ვერსიას მაინც. მაგრამ იცით, რა? იქ ეს შესაძლებლობა ახლა abstraction-- დაიწყოს, რათა განისაზღვროს ახალი ლექსიკა რომ MIT არ გავუსწრო. არსებობს დაველოდოთ და ვიმეორებ და სამუდამოდ, თუ მაგრამ რა, თუ მინდა წარმოგიდგინოთ სიტყვა ხველა, როგორც ბლოკი? რა მოხდება, თუ მინდა თავსატეხი ცალი რომლის მიზანი ცხოვრებაში არის ხველა? ისე, მოდით შევხედოთ ამ ვერსიას აქ, რომელიც მე მივიღე ასეთია. Magically, მე შევქმენი ამ თავსატეხი ცალი აქ, რომელიც Scratch საშუალებას გაძლევთ ამის გაკეთება. და მართლაც C და Python და JavaScript არიან აპირებს საშუალებას გაძლევთ ამის გაკეთება, ისევე. თქვენ შეგიძლიათ შექმნათ თქვენი საკუთარი საბაჟო ცალი, რომ თქვენ მოვუწოდებთ, რაც გსურთ. ამ შემთხვევაში, ხველა გრძნობს , გონივრული განმარტება. და შემდეგ ეს დარტყმები ქვემოთ აქ შეგიძლიათ რას ნიშნავს. მე ისხდნენ და ამოვარდა ეს პალიტრა აქ მეტი blocks-- ამ დიდი purple ბლოკი, სადაც მე აკრეფილი ხველა როგორც სახელი ჩემი ახალი თავსატეხი ცალი. და მაშინ მე ვამბობ, ნებისმიერ დროს შესახებ მოუწოდებს ახალი ხველა თავსატეხი ცალი, ნუ ვთქვათ და დაველოდოთ. ასე რომ, აქ ჩემი განმეორებითი ბლოკი, მე შემიძლია მხოლოდ ხველა სამჯერ. და მე ვიტყოდი,, განსაკუთრებით თუ ახლა თქვენ დამალვა ეს დეტალი. ვინ ზრუნავს, თუ როგორ ხველა ხორციელდება? ყველა მე ზრუნავენ, როგორც პროგრამისტი, რომ მე შეიძლება ხველა. მე არ მაინტერესებს, როგორ ამბობენ ხორციელდება. მე უბრალოდ მაინტერესებს, რომ კატა შეიძლება ითქვას რაღაც. შემიძლია აბსტრაქტული მოშორებით, რომ დეტალურად და მხოლოდ ფოკუსირება რა არის ეკრანზე აქ. მაგრამ მე შეუძლია მიიღოს ამ ერთი ნაბიჯია. ყურადღება მიაქციეთ, რომ აქ, მე მაქვს განხორციელებული loop სამჯერ. მაგრამ რა, თუ ნაცვლად მე დაიბრუნოს ამ ვერსიაში? და რა, თუ ნაცვლად ეს ვერსია აქ, მე უბრალოდ შეცვლა თავსატეხი ცალი მიიღოს არგუმენტი და შეყვანის თავზე? და რომ შეყვანის შეიძლება იყოს რიგი, სამი. ახლა, თუ მე წერა პროგრამა და მე მინდა კატა რომ ხველა, მე შემიძლია რეალურად გითხრათ თავსატეხი ცალი რამდენჯერ ხველა, რადგან ბოლოში აქ, fancier ვერსია ამ საბაჟო თავსატეხი ცალი საშუალებას ჩემთვის დააკონკრეტა, რომ ხველა რეალურად იღებს შეყვანის იღებს არგუმენტი მოსწონს ეს. და იცით რა? იქნებ მე გააცნობიეროს, დაველოდოთ წუთში. ხველების არის same-- ეს ფუნდამენტურად იგივე იდეა, ცემინება. ეს არის უბრალოდ სხვადასხვა სიტყვა ეკრანზე. შემიძლია აბსტრაქტული მოშორებით უფრო და განხორციელება ამ საბოლოო ვერსია ხველა, რომელიც ერთი შეხედვით არის გზა უფრო რთული ეძებს. მაგრამ შეამჩნია, რასაც მე ვაკეთებ. მე ახლა generalized-- genericized ნამდვილად ამ თავსატეხი ცალი ეწოდოს ვთქვა სიტყვა n ჯერ. და ახლა მე მაქვს ორი ახალი თავსატეხი ცალი ქვემოთ აქ განსაზღვროს ხველა N ჯერ. და რას ხველა ფუნქცია გავაკეთოთ? რას ჩემი საბაჟო თავსატეხი ცალი გავაკეთოთ? უბრალოდ მოუწოდებს აცხადებენ, რომ ბლოკი, გავლის სიტყვა მინდა ვთქვა, გავლის ნომერი ჯერ მე მინდა ვთქვა. იმის გამო, რომ ახლა მე შეიძლება განახორციელოს sneeze უბრალოდ ამბობდა Achoo, ამ შემთხვევაში, გარკვეული რაოდენობის ჯერ. ასე რომ, მე layering და layering. ისევ და ისევ, აქ მთავარია არ არის როგორ უნდა განხორციელდეს ეს, მაგრამ ფაქტია, იმ შემთხვევაში, თუ უბრალოდ სიტყვასიტყვით გადაადგილება ამ off ეკრანზე, შევხედოთ, თუ როგორ მარტივია თუ არა საკმაოდ ჩემი პროგრამა ახლა გამოიყურება. იმის გამო, რომ ის აკეთებს რასაც ამბობს, მე ამოღებული მოშორებით, რა არის შიგნით, რომ შავი ყუთი. ეს ხდება, რომ purple ყუთი აქ, მაგრამ მე ჩაშალა მოშორებით, რა არის შიგნით იმიტომ, რომ მე არ მაინტერესებს, როგორ მუშაობს. მე უბრალოდ მაინტერესებს ახლა, რომ მუშაობს. და მართლაც, პრობლემა მითითებული ნულოვანი, ეს არის ზუსტად სახის layering იდეები თქვენ გაქვთ შესაძლებლობა შეისწავლონ. ეს არის ზუსტად ის შესაძლებლობა ვრცელდება პრობლემის გადაჭრის ტექნიკა, თუ რა არის, ალბათ, უცნობ გარემოში. და თუ არა თქვენ არ პროგრამირდება ადრე ან დაპროგრამებულია ადრე, თქვენ ნახავთ, რომ იქ ცოტა რაღაც ამ გარემოში ყველასთვის. და პრობლემა კომპლექტი ერთი კვირის განმავლობაში, ჩვენ უნდა გადავიდა აქცენტი მაღალ დონეზე ენის მოუწოდა , C ან უფრო დაბალი დონე ენის მოუწოდა , C, რომ კიდევ უფრო ძლიერი, მიუხედავად იმისა, რომ ცოტა მეტი cryptic ერთი შეხედვით. და თქვენ გააცნობიეროს, ერთ დღეს TL: DR, რომ ამ პრობლემის მითითებული აქვს მოკლე ფანჯრის დროს, ვიდრე მომავალში პირობა, უბრალოდ იმიტომ, რომ თქვენ უნდა იპოვოთ იგი საკმაოდ ხელმისაწვდომი. და არ უნდა ფიქრი, თუ თქვენ დაამატოთ კლასი გვიან. ჩვენ მივმართო, რომ ხანგრძლივი. და სანამ ჩვენ adjourn ტორტი, მოდით დასრულდება მხოლოდ ორი წუთი სახე რა გელით აქ CS50. [მუსიკის დაკვრა] კარგი. სწორედ ეს CS50. ჩვენ ვნახავთ მალე. ტორტი არის მსახურობდა. [მუსიკის დაკვრა] დინამიკები 17: გსმენიათ ერთი სასწავლო, მთავარი? დინამიკები 18: ალბათ არსებობს უფრო ქვეშ hood.