>> [เล่นเพลง]
>> -Alright!
>> นี้เป็น CS50
[MUSIC - อิกกี้ชวนชม "แฟนซี"]
>> หน่วยความจำของผมชื่นชอบจาก CS50 ก็ตอนที่ผมไปปริศนาวัน
>> -Probably เพียงแค่เวลา ใช้เวลาทำงานในชุดปัญหา
กับเพื่อนและคนของฉันที่เวิลด์ ในที่สุดกลายเป็น blockmates ของฉัน
>> หน่วยความจำของผมที่ดีที่สุดจาก CS50 เป็น Hackathon
-The CS50 Hackathon
>> -Hackathon
-Hackathon
-The Hackathon
-Rob โบว์
เพียงแค่ทุกอย่างเกี่ยวกับเขา
>> [MUSIC - อิกกี้ชวนชม "แฟนซี"]
>> หน่วยความจำของผมชื่นชอบคือเมื่อฉันอยู่ใน เวทีและผมเล่นบทบาทอันทรงเกียรติ
ของโหนด [? ในการเชื่อมโยง?] [? รายการ ?]
>> ตอนไหนที่เราทุกคนมีพื้นที่ Dropbox ฟรีและ เดวิดเป็นเหมือนมองภายใต้ที่นั่งของคุณ
และมันก็เหมือนกับพื้นที่สำหรับทุกคน!
>> [MUSIC - อิกกี้ชวนชม "แฟนซี"]
>> คำแนะนำของผมสำหรับการใด นักศึกษาที่เข้ามาจะ
จะมีการทำงานจริงๆใน P-ชุดกับเพื่อน ๆ
>> ชั่วโมง -Office เป็นอย่างมากที่เพื่อนของคุณ
>> -Make มากที่สุดของประสบการณ์ของคุณ และตอบสนองความเป็นคนจำนวนมากเท่าที่คุณสามารถ
>> Don 'กลัวที่จะขอความช่วยเหลือ
-Start P-ชุดในช่วงต้นสัปดาห์
-I คิดว่าสิ่งที่ใหญ่ที่สุดคือการ ใช้ประโยชน์จากทรัพยากรทั้งหมด
CS50 ที่มี
>> -GO เวลาทำงานในช่วงต้นสัปดาห์
>> -Definitely ดูกางเกงขาสั้น
>> Don 'เลื่อนบน P-ชุดของคุณ
-Make แน่ใจว่าคุณหากลุ่มที่ดี ของคนที่จะทำงานใน P-ชุดที่มี
คุณสามารถมีจำนวนมากสนุก และได้รับการทำงานร่วมกัน
>> Don 'กลัวที่จะผลักดันตัวเอง
ไปสำหรับรุ่นแฮกเกอร์บางครั้ง
>> สิ่ง -write บนกระดาษก่อน คุณเคยสัมผัสเครื่องคอมพิวเตอร์ของคุณ
>> -CS50 เป็นจริงดีที่ ให้วิธีการที่จะได้รับความช่วยเหลือ
>> ของผมชิ้นหนึ่งของคำแนะนำคือการนอนหลับ
มีใครกล่าวว่า?
การนอนหลับเพื่อตรวจสอบว่า
มันเป็นเรื่องง่ายที่จะไม่ทำ แต่ คุณได้มีที่จะทำมันฉันคิดว่า
>> -I จะพูดจริงๆต้องเตรียมจิตใจ เพราะคุณกำลังจะรักมัน
[MUSIC - อิกกี้ชวนชม "แฟนซี"]
>> นี้เป็น CS50
[MUSIC - อิกกี้ชวนชม "แฟนซี"]
>> นี้เป็น CS50
>> [APPLAUSE]
>> เดวิดเจลัน: ดังนั้นนี่คือ CS50 และนี่คือจุดสิ้นสุดของสัปดาห์ 0
และนั่นก็เป็นเพียงบางส่วน ของเจ้าหน้าที่ของ CS50 ที่
รอคุณอยู่ไม่เพียง แต่ในส่วน และเวลาทำงาน แต่
นอกจากนี้ยังมีวันหยุดสุดสัปดาห์มานี้ วันที่ปริศนา CS50
ซึ่งอีกครั้งไม่ได้ ทั้งหมดเกี่ยวกับการเขียนโปรแกรม
อันที่จริงก็คาดได้เลยว่า จะไม่ต้องเขียนโปรแกรมอะไร
แต่แก้ปัญหาในการใช้ ปัญญาและเพื่อนเคียงข้างคุณ
>> เราจะเข้าร่วมโดยบางส่วน ของเพื่อนของเราที่ Facebook--
ถ้าคุณลงทะเบียนตรงนี้ที่ เป็นเวลาหลายปีที่ผ่านมา
มีจริงรับการเขียน ความท้าทายเหล่านี้กับเรา
และเพื่อให้พวกเขาจะเป็นคนที่ ในที่สุดการทำงานวันปริศนา
และเพื่อให้คุณจะถูกท้าทาย ที่มีได้อย่างแม่นยำชนิดของสิ่งที่
และปัญหาที่ folks ที่ Facebook ชอบที่จะคิดเกี่ยวกับ
เพื่อให้เป็นวันพรุ่งนี้
ลงทะเบียนได้ที่ cs50.harvard.edu/register
>> ตอนนี้คำที่สอง ของพนักงานโดยเฉพาะอย่างยิ่ง
ที่นี่เป็นธานเซลดัฟฟ์ ที่เป็นจริงหนึ่ง
ของผู้เขียนร่วมของไบนารีเหล่านี้ หลอดไฟที่เราเห็นในวันพุธที่
นอกเหนือไปจากการ CS50 ของตัวเองแดนแบรดลีย์
ธานเซลดัฟฟ์ยังเป็นอดีต advisee น้องของฉัน 3 ปีที่ผ่านมา
และจริง ๆ แล้วเขาได้สร้างขึ้นโต๊ะนี้
เขาไปที่จะทำ วิทยาศาสตร์วิศวกรรมและอื่น ๆ
ตอนนี้ภาพของเขาที่นี่เป็นจริง ธานเซล 3 ปีที่ผ่านมาที่ CS50 Hackathon
เมื่อตอนที่เขายืมมาอย่างใดอย่างหนึ่งของเรา ลูกโป่งติดอยู่กับแล็ปท็อปของเขา
และสำหรับอีก 12 บางอย่างแปลก ชั่วโมงมุ่งเน้นไปที่โครงการสุดท้ายของเขา
หยุดพักการเดียวที่จะเปิด ถุงขนมที่ Hackathon
>> แต่เขาก็มากขึ้นเมื่อเร็ว ๆ นี้ ใช้จ่ายฤดูร้อนที่ผ่านมานี้กับเรา
ตั้งแต่ CS50 สำหรับพนักงานของตนและ ตอนนี้นักเรียนภาคการศึกษานี้
มีเครื่องพิมพ์ 3D ของตัวเอง
และสั้น 3D เครื่องพิมพ์เป็น อุปกรณ์ที่มีลักษณะค่อนข้างเช่นนี้
คุณกรอกด้วยหลอดพลาสติก ที่ละลายลงโดยอุปกรณ์
และคุณสามารถสร้างสิ่งที่ แท้จริงจากอะไร
เหมือนเครื่องพิมพ์อิงค์เจ็ทที่คุณจะเริ่ม คายออกจุดเล็ก ๆ จากพลาสติก
รูปแบบเข้าด้วยกันเพื่อที่ รูปแบบวัตถุทั้ง
และอื่นธานเซลเช่นก่อนหน้านี้ ช่วงฤดู​​ร้อนนี้มี iPhone 5
และตัดสินใจที่เขาต้องการจริงๆ เพื่อประคับประคองขึ้นบนโต๊ะทำงานของเขา
แต่เขาไม่ได้ต้องการที่จะ ออกไปและซื้อบางสิ่งบางอย่าง
จากร้านแอปเปิ้ลหรือชอบเพื่อให้เขา นั่งลงและเริ่มวาดภาพอะไรบางอย่าง
เขาเอาไม่กี่วัด เป็นวิธีการที่มีความหนา
และวิธีการที่กว้าง iPhone ของเขาคือ เขาดึงภาพนี้ที่นี่
เขาตัดสินใจว่าเขาต้องการ ที่จะมีการเอียง 75 องศา
ขณะที่มันกำลังจ้องมองที่ เขาอยู่บนโต๊ะทำงานของเขามี
จากนั้นเขาก็หันมานี้ใช้ ซอฟแวร์ในรูปแบบ 3D CAD
ที่ดูเล็ก ๆ น้อย ๆ บางสิ่งบางอย่างเช่นนี้
และแล้วเขาก็เดิน, ในที่สุดที่จริงสร้างมันขึ้นมา
ดังนั้นในความเป็นจริงถ้าใด ๆ ของคุณมาที่นี่บางทีอาจจะ ในแถวที่ผมสามารถโยนถึงมี
an-- มีเรามีคนที่มี iPhone 5 และที่นี่เรามีอีกสองคน
>> ตอนนี้ไม่ได้ให้น้อย, CS50 ของตัวเอง เฉิงกงยังมีกำหนดออกช่วงฤดู​​ร้อนนี้
ในการสร้างค่อนข้างบางสิ่งและ ในความเป็นจริงด้วยเหตุผลที่ยังคง
ชัดเจนได้รับช้า พิมพ์กองทัพของช้าง
ด้วยแขน articulating และลำต้น
คู่ที่เป็นจริงที่นี่ถ้า ทุกคนตอนนี้จะ like-- ช้าง
สิทธิทั้งหมด แต่สิ่งที่เฉิงยังได้ สำหรับเราคือเขามากกรุณาตั้งค่ากล้อง
เพราะช้างที่ เชื่อหรือไม่ว่า
จะใช้เวลาบางส่วนที่สองและ ชั่วโมงครึ่งในการพิมพ์
แม้ยืน iPhone เอา ชั่วโมงครึ่งในการพิมพ์
และสิ่งที่เฉิงเดินไปข้างหน้าและทำ ถูกจัดตั้งขึ้นกล้องมีความสุขในหน้า
เครื่องพิมพ์ 3D นี้ถ่ายทำสำหรับชั่วโมง และครึ่งหนึ่งของการออกแบบของธานเซลพิมพ์
เราซ้อนทับกันบางเซ็กซี่ เพลงมันเพื่อ
ที่จะให้คุณนี้เพื่อดู ที่ผลงานการพิมพ์วิธี 3D
และแม้ว่านี้ เป็นจริงในพลาสติก
ตระหนักดีว่าหากเป็นพื้นที่ ที่สนใจของคุณวิชาการ
มีคนในหมู่ พวกเขาเจนนิเฟอร์ลูอิสที่นี่
ที่โรงเรียน วิศวกรรมที่เป็นจริง
ที่ทำงานเกี่ยวกับการพิมพ์ 3D ของวัตถุพลาสติก
แต่ถึงแม้จะเพิ่มมากขึ้น วัสดุทางชีวภาพที่จะแก้ปัญหา
ปัญหาทางสรีรวิทยาสำหรับมนุษย์
แต่ที่นี่เป็นเพียงเล็กน้อย อะไรบางอย่างจาก CS50
>> [ดังกลเสียง]
เดวิดเจลัน: มันไม่เสียง อะไรเช่นนั้นในความเป็นจริง
แต่มันก็เย็นมากที่จะดูมัน ที่ความเร็วนั้นและด้วยเสียงที่
>> ตอนนี้ในวันพุธว่า ครั้งแรกที่เราไม่ได้รับที่นี่?
เราเริ่มต้นพูดคุยเกี่ยวกับคอมพิวเตอร์ วิทยาศาสตร์และเราถามว่ามันคืออะไร
และมันเป็นเรื่องเกี่ยวกับจำนวนของสิ่งและ มีทิศทางที่แตกต่างกันมากมาย
ที่คุณสามารถมุ่งหน้าไป หลังจากจบหลักสูตรเช่น CS50
ในความเป็นจริงถ้าคุณหยิบขึ้นมาหนึ่ง ของคำแนะนำอย่างไม่เป็นทางการที่
เพื่อ CS นอกหนังสือเล่มเล็กที่ เราได้ให้ไม่ว่าคุณจะ
คิดของการเพียง CS50, หรืออาจจะทำรอง,
หรืออาจจะมุ่งเน้น ใน CS ไม่พลิกที่
และคุณจะเห็นแผนภาพ ไปยังจุดสิ้นสุดที่
แสดงให้เห็นทิศทางที่แตกต่างกันหลาย ใน CS ที่คุณสามารถไปออกใน
>> แต่สำหรับวันนี้เราจะมุ่งเน้นอีกครั้งในวันที่ จริงๆเป็นหนึ่งในมุมมองพื้นฐานที่
บางทีที่คุณมี ปัจจัยการผลิตที่จะเกิดปัญหา
คุณมีเอาท์พุทจาก ปัญหาและคุณมี
ขั้นตอนวิธีการที่จะสร้าง เอาท์พุทที่มาจากปัจจัยการผลิตเหล่านั้น
และหนึ่งในตัวอย่างเช่นเป็นของ แน่นอนสมุดโทรศัพท์ที่นี่
และเราใช้เป็นตัวอย่างที่จะไป ผ่านขั้นตอนวิธีที่ถูกต้อง
แล้วอีกอย่างหนึ่งก็คือ ถูกต้อง แต่เร็วขึ้นเล็กน้อย
แล้วอีกอย่างหนึ่งที่เป็นเพียงเล็กน้อย อย่างมาก แต่พื้นฐาน
เร็วขึ้น
>> สิทธินี้เราสมุดโทรศัพท์ อ้างว่ามีประมาณ 1,000 หน้า
และวิธีการที่หลายต่อหลายครั้งที่ฉันต้องทำ ที่จะฉีกสมุดโทรศัพท์ในช่วงครึ่งปี
ที่จะหาคนที่ชอบไมค์สมิ ธ สูงสุดในหนังสือหน้า 1000 หรือไม่
ดังนั้น 10 ให้หรือใช้เวลา
และอื่น ๆ เมื่อฉันฉีกสิ่งนี้ใน ครึ่งหนึ่งหรือเพียงมากขึ้นอย่างสมบูรณ์,
แบ่งออกในช่วงครึ่งปีก็เพียง 10 หน้าจาก 1,000
และถ้าคุณคาดการณ์เล็กน้อย บวกสำหรับสมุดโทรศัพท์
แต่ถ้าสมุดโทรศัพท์นี้มีบาง 4 พันล้านหน้าในนั้นเพื่อให้สมบูรณ์
เทอะทะร่างกายกี่ ครั้งที่คุณแบ่ง 4 พันล้าน
สมุดโทรศัพท์หน้าในช่วงครึ่งปี?
ดังนั้นจึงเป็นจริง 32, ให้หรือใช้เวลา
และอื่น ๆ 32 ครั้งเท่านั้นออก 4 พันล้านหน้าสามารถ
คุณพบคนที่ชอบไมค์สมิ ธ
และที่มีประสิทธิภาพ
นั่นเป็นวิธีการที่ดี daresay
>> แต่แล้วเราย้ายจากที่ พยายามที่จะเป็นระเบียบแบบแผนมัน
และผมเสนอรหัส pseudocode นี้
รหัส pseudocode อะไรที่ไม่เป็นทางการ
มันไม่ใช่สิ่งที่คุณจดจำ
มันเป็นแค่สิ่งที่คุณแสดง เป็นธรรมอย่างสังหรณ์ใจการใช้ภาษาอังกฤษ
หรือภาษาใด ๆ จริงๆว่า บ่งบอกถึงความคิดของคุณชัดถ้อยชัดคำ
แต่สิ่งที่สำคัญเกี่ยวกับ รหัส pseudocode คือคุณ
พยายามที่จะคาดหวังทั้งหมดของ กรณีที่เป็นไปได้ที่อาจจะเกิดขึ้น
และแน่นอนใน pseudocode นี้ รหัสมีจริงๆสามกรณี
ทุกครั้งที่ผมแบ่งออกสมุดโทรศัพท์ทุก
ไมค์อาจจะไปทางซ้าย
ไมค์อาจจะไปทางขวา
หรือเขาอาจจะอยู่บนหน้าฉัน
หรือกรณีที่มุมที่สี่จึงจะพูด
สถานการณ์ที่เลวร้ายอาจเป็นหนึ่ง which-- สิ่งที่เกิดขึ้น?
ไมค์ก็แค่ไม่ได้อยู่ใน สมุดโทรศัพท์ในทุก
>> และเมื่อโปรแกรม crash-- เมื่อ Mac และซอฟแวร์คอมพิวเตอร์ที่พวกคุณเรียกใช้
บนเครื่องคอมพิวเตอร์ของคุณบางครั้ง แฮงค์หรือหยุดกะทันหัน
ที่โดยทั่วไปหมายถึงว่าบาง โปรแกรมเมอร์มนุษย์บางคนเช่นเดียวกับคุณเร็ว ๆ นี้
เพียงแค่เมาขึ้นและทำผิดพลาดบางอย่าง
อาจจะไม่ได้คาดหวังว่าอาจจะมี ไม่มีไมค์สมิ ธ ในสมุดโทรศัพท์
และถ้าคุณไม่ได้เป็นผู้เขียน รหัสที่จะจัดการกับสถานการณ์เช่นนั้น
คาดเดาไม่ได้โดยทั่วไป สิ่งที่สามารถเกิดขึ้นได้
เครื่องของคุณสามารถตรึง
มันสามารถรีบูต
โปรแกรมที่สามารถออกจาก
และอื่น ๆ สิ่งเหล่านี้ stupidities ที่คุณอาจจะ
ได้พบในที่เกิดขึ้นจริงของคุณ ชีวิตเพียงแค่ใช้คอมพิวเตอร์
มากขึ้นจะเป็นเพียง อธิบายไปโดยสัญชาตญาณนี้
และความเข้าใจในสิ่งที่เป็นนี้ จริงที่เกิดขึ้นภายใต้กระโปรงหน้ารถ
>> ตอนนี้ขอพยายามที่จะดู ที่เป็นปัญหาทั่วไปมากขึ้น
มากกว่าที่จะใช้เวลา เข้าร่วมประชุมในสถานที่เช่น
นี้ซึ่งจะช้ามาก ที่จะทำหนึ่งสองสามสี่
หรืออาจจะสองสี่หกแปด
ขอเน้นแทนใน วิธีการที่เราอาจจะเป็นระเบียบแบบแผน
อัลกอริทึมของกระบวนการโดย ซึ่งเราอาจจะใช้เวลาเข้าร่วมประชุม
และเดินไปตามทางที่ขอเริ่มต้น ที่จะใช้ระบบการตั้งชื่อบางส่วน
ที่เราจะใช้ในวันนี้เมื่อเราจริง เริ่มต้นการเขียนโปรแกรมในภาษา
ดังนั้นผมจึงให้คุณตอนนี้วิดีโอสี่นาที ที่เราใส่ร่วมกับเพื่อนของเรา
จาก TED องค์กร
โดยเราจัดสคริปต์และ พวกเขานำแอนิเมชั่ของพวกเขาที่จะทน
และที่จริงการสร้าง 2D การเคลื่อนไหวของสิ่งที่อัลกอริทึมเป็น
ถ้าเราสามารถหรี่ไฟ
>> [เล่นเพลง]
บรรยาย: คือสิ่งที่อัลกอริทึม?
ในวิทยาการคอมพิวเตอร์ อัลกอริทึมคือชุด
คำสั่งแก้ไข บางปัญหาทีละขั้นตอน
โดยปกติแล้วขั้นตอนวิธีเป็น ดำเนินการโดยคอมพิวเตอร์
แต่มนุษย์เรามีขั้นตอนวิธีการเป็นอย่างดี
ตัวอย่างเช่นวิธีการที่จะ คุณไปเกี่ยวกับการนับ
จำนวนของคนที่อยู่ในห้องหรือไม่
ดีถ้าคุณต้องการฉันคุณอาจต้องการ จุดที่แต่ละคนหนึ่งในเวลา
และนับขึ้นจากศูนย์
หนึ่งสองสามสี่และอื่น ๆ
ดีที่อัลกอริทึม
ในความเป็นจริงเราจะพยายามที่จะแสดงมันออกมา บิตมากขึ้นอย่างเป็นทางการในรหัส pseudocode
ไวยากรณ์ภาษาอังกฤษอย่างที่ คล้ายกับการเขียนโปรแกรมภาษา
>> ให้ n เท่ากับ 0
สำหรับแต่ละคนในห้องพัก ตั้ง n เท่ากับ n บวก 1
วิธีการตีความ pseudocode?
ดีสายหนึ่งประกาศ จึงจะพูดตัวแปร
เรียกว่า n และ initializes ค่าเป็น 0 เพียงแค่นี้ก็
หมายความว่าที่ จุดเริ่มต้นของขั้นตอนวิธีของเรา
สิ่งที่เรากำลัง นับมีค่าเป็น 0
หลังจากทั้งหมดก่อนที่เราจะเริ่มนับ เรายังไม่ได้นับอะไรยัง
เรียกตัวแปรนี้ n เป็นเพียงการประชุม
ฉันจะได้เรียกมันว่าอะไรมากที่สุด
ตอนนี้แถวสอง demarks จุดเริ่มต้นของวงที่
ลำดับของขั้นตอนที่จะ ทำซ้ำหลายครั้งบาง
ดังนั้นในตัวอย่างของเราขั้นตอนที่เรากำลัง การนับคนในห้อง
ใต้บรรทัดที่สองเป็นสาย สามซึ่งอธิบายถึง
ว่าวิธีการที่เราจะไปเกี่ยวกับการนับ
เยื้องหมายความว่า มันเป็นเส้นที่สามจะทำซ้ำ
ดังนั้นด้วยรหัส pseudocode เป็น กล่าวคือหลังจากที่เริ่มต้นที่ 0
สำหรับแต่ละคนใน ห้องพักเราจะเพิ่ม n 1
ขณะนี้ขั้นตอนวิธีนี้ถูกต้องหรือไม่
ดีขอปังที่มันเล็กน้อย
>> มันทำงานถ้ามี คนสองคนที่อยู่ในห้องหรือไม่
ลองมาดูกัน
ในบรรทัดที่หนึ่งที่เราเริ่มต้น n 0
สำหรับแต่ละเหล่านี้คนสองคน จากนั้นเราจะเพิ่ม n 1
ดังนั้นในการเดินทางครั้งแรกผ่าน ห่วงเราปรับปรุง n 0-1
ในการเดินทางที่สองผ่านที่ วงเดียวกันเราปรับปรุง n 1-2
และอื่น ๆ โดยอัลกอริทึมของ ปลาย, n คือ 2 ซึ่ง
แน่นอนตรงกับหมายเลข ของคนที่อยู่ในห้องพัก
เพื่อให้ห่างไกลที่ดีเพื่อให้
>> วิธีการเกี่ยวกับกรณีที่มุมว่า?
สมมติว่ามีคน 0 ใน room-- นอกจากผมที่เป็น
ทำนับ
ในบรรทัดที่หนึ่งเราอีกครั้งเริ่มต้น n 0
เวลานี้แม้ว่าสาย สามไม่ได้ดำเนินการในทุก
เนื่องจากมีไม่คนในห้อง
และอื่น ๆ ยังคง n 0 ซึ่งแน่นอนตรง จำนวนของคนที่อยู่ในห้อง
สวยเรียบง่ายใช่มั้ย?
แต่นับคนหนึ่งในเวลา ไม่มีประสิทธิภาพสวยเกินไปไม่ได้หรือไม่
แน่นอนเราสามารถทำได้ดีกว่า
ทำไมไม่นับคนสองคนในเวลาเดียวกัน แทนการนับหนึ่งสองสาม
สี่ห้าหกเจ็ด แปดและอื่น ๆ
ทำไมไม่นับสองสี่ หกแปดและอื่น ๆ ?
มันยังเร็วกว่าเสียง
และมันก็เป็น
>> ขอแสดงการเพิ่มประสิทธิภาพนี้ ในรหัส pseudocode
ให้ n เท่ากับ 0
สำหรับคู่ของแต่ละคนใน ห้องพักตั้ง n เท่ากับ n บวก 2
สวยเปลี่ยนแปลงง่ายใช่มั้ย?
แทนที่จะนับคนหนึ่งที่เวลา เราแทนนับพวกเขาทั้งสองในเวลา
อัลกอริทึมนี้จึง สองครั้งให้เร็วที่สุดเท่าที่ผ่านมา
แต่มันเป็นเรื่องถูกต้องหรือไม่
ลองมาดูกัน
มันทำงานถ้ามี คนสองคนที่อยู่ในห้องหรือไม่
ในบรรทัดที่หนึ่งเราเริ่มต้น n 0
สำหรับที่หนึ่งคู่ของคน จากนั้นเราจะเพิ่ม n 2
และอื่น ๆ โดยวิธีนี้ ปลาย n คือ 2 ซึ่ง
แน่นอนตรงกับหมายเลข ของคนที่อยู่ในห้องพัก
>> สมมติต่อไปว่ามี ศูนย์คนในห้อง
ในบรรทัดที่หนึ่งที่เราเริ่มต้น n 0
ก่อนที่จะสายสาม ไม่ได้ดำเนินการทุกอย่าง
ตั้งแต่มีไม่คู่ของคนใด ๆ ในห้องพักและอื่น ๆ ยังคง n 0
ซึ่งแน่นอนตรง ผู้คนจำนวนมากในห้องพัก
แต่สิ่งที่ถ้ามี สามคนในห้องหรือไม่
อย่างไรค่าโดยสารขั้นตอนวิธีนี้หรือไม่?
ลองมาดูในบรรทัดที่หนึ่ง เราเริ่มต้น n 0
สำหรับคู่ของคนเหล่านั้น จากนั้นเราจะเพิ่ม n 2
แต่แล้วสิ่งที่?
ที่มีอยู่ไม่เต็มรูปแบบอื่น คู่ของคนที่อยู่ในห้อง
ดังนั้นเส้นสองไม่ใช้
และอื่น ๆ โดยในตอนท้ายอัลกอริทึมนี้ n คือยังคง 2 ซึ่งไม่ถูกต้อง
อันที่จริงขั้นตอนวิธีนี้กล่าวว่า เป็นรถเพราะมันมีความผิดพลาด
>> ลองแก้ไขด้วย รหัส pseudocode ใหม่
ให้ n เท่ากับ 0
สำหรับคู่ของแต่ละคนใน ห้องพักตั้งยังไม่มีเท่ากับ n บวก 2
ถ้าคนหนึ่งที่ยังคง unpaired, ยังไม่มีการตั้งค่าเท่ากับ n บวก 1
เพื่อแก้ปัญหานี้โดยเฉพาะอย่างยิ่งเราได้ นำมาใช้ในสายสี่เงื่อนไข
หรือที่เรียกว่า สาขาที่ทำหน้าที่เพียง
ถ้ามีคนคนหนึ่งที่เรา ไม่สามารถจับคู่กับคนอื่น
และอื่น ๆ ตอนนี้ไม่ว่าจะเป็น มีหนึ่งหรือสาม
หรือเลขคี่ใด ๆ ของคนที่อยู่ในห้อง อัลกอริทึมในตอนนี้จะนับพวกเขา
ที่เราสามารถทำได้ดียิ่งขึ้น?
ดีเราสามารถนับในสาม, หรือสี่หรือแม้กระทั่งห้าและสิบ
แต่นอกเหนือจากนั้นก็จะได้รับ นิด ๆ หน่อย ๆ ยากที่จะชี้
>> ในตอนท้ายของวันไม่ว่าจะเป็น ดำเนินการโดยเครื่องคอมพิวเตอร์หรือมนุษย์
ขั้นตอนวิธีการเป็นเพียง ชุดของคำสั่ง
ที่จะแก้ปัญหา
เหล่านี้เป็นเพียงสาม
ปัญหาอะไรคุณจะ แก้ด้วยวิธี?
>> เดวิดเจลันดังนั้นจงใจ โปรแกรมที่ง่ายมาก
อัลกอริทึมที่ง่ายมาก เพื่อให้บรรลุสิ่งที่
ง่ายมากนับ ผู้คนจำนวนมากในห้องพัก
>> แต่ขอแซวกัน บางส่วนของตัวแทน
มีที่นี่ที่เป็นจริง จะเป็นประโยชน์มากเมื่อ
การดำเนินการมากที่สุด ที่ซับซ้อนของซอฟแวร์
ดังนั้นสำหรับตัวอย่างเช่นในบรรทัดแรกนี้ เรามีสิ่งที่เราเรียกตัวแปร
และจากพีชคณิตคุณ คุ้นเคยโดยทั่วไปโดยใช้ x และ y
z และบางครั้งและอื่น ๆ
แต่ในการเขียนโปรแกรมตัวแปร ยังคงอยู่ในตอนท้ายของวันที่
คล้ายกับว่า
แต่มันอาจจะง่ายที่จะคิดว่า ของตัวแปรเช่นเดียวกับภาชนะ
และในความเป็นจริงมันเป็นจำนวนบิตบาง ดำเนินการอย่างใดในฮาร์ดดิสก์ของคุณ
หรือในหน่วยความจำของคอมพิวเตอร์ของคุณ แต่เพิ่มเติมว่าในอนาคต
มันเป็นเพียงภาชนะ
และถ้าคุณพูดอะไรบางอย่าง เช่นให้ n เท่ากับ 0,
ดีว่าเหมือนเรียกแก้วนี้ ชามที่นี่ n เพียงชื่อโดยพลการ
และวางมันไม่มีอะไรในตอนแรก
ดังนั้นค่านี้ ชามตอนนี้เป็นศูนย์
และแน่นอนถ้าคุณรับรู้ เป็นเส้นต่อมา
ที่จริงการเพิ่มเส้นบาง รหัสเช่นในบรรทัดที่สามนี้ที่นี่
1 ที่เหมือนว่าสิ่งที่ ค่าปัจจุบันของ n เป็น 0, บวก 1,
ใส่สิ่งที่ต้องการ ปิงปองลูกที่อยู่ในที่นี่
ตอนนี้ค่านี้ ตัวแปรค่อนข้างเพียงแค่ 1
และคุณได้อย่างรวดเร็วสามารถคาดการณ์, แต่ตอนนี้มันเป็น 2 ตอนนี้ก็ 3 และอื่น ๆ
ดังนั้นนั่นคือทั้งหมดที่เป็นตัวแปร
มันเป็นชิ้นส่วนของการจัดเก็บ จริง ๆ แล้วการจัดเก็บข้อมูลบางอย่าง
สำหรับตอนนี้ก็เป็นลูกปิงปอง
มีเป็นจำนวนมาก
แต่มันอาจจะเป็นคำใน พจนานุกรมเช่นตรวจสอบการสะกด
ผมพูดพาดพิงถึงในวันพุธที่สำหรับ หนึ่งในชุดปัญหาของปีที่แล้ว
>> ตอนหนึ่งความคิดที่สำคัญที่เหมือนกัน สวยใช้งานง่ายที่ผมจะเรียกร้อง
เป็นที่ของวง
และห่วงในกระบวนการ ของทุกคนที่นับ
เป็นของหลักสูตรการทำแบบเดียวกัน สิ่งที่เหมือนเดิมอีกครั้งและหนึ่งอย่างใดอย่างหนึ่ง
ในช่วงเวลาหนึ่งหรือสองในเวลา
และคุณสามารถแสดงนี้ในภาษาอังกฤษหรือ รหัส pseudocode ในหลายวิธีใด ๆ
แต่การใช้คำบุพบทนี้ "สำหรับ" เป็นวิธีที่ใช้กันมากในการทำว่า
สำหรับแต่ละคนในห้องที่ทำเช่นนี้
อีกครั้งและอีกครั้ง
และความจริงที่ว่ามันเป็น เยื้องสายสาม
ก็หมายความว่าสิ่งที่ ที่คุณควรจะทำ
เป็นสิ่งที่เยื้อง ใต้เส้นสองตัวเอง
เพียงแค่การประชุมของมนุษย์ แต่อย่างใดอย่างหนึ่งที่พบบ่อย
ในขณะที่เราจะเห็นในที่สูงที่เกิดขึ้นจริง ภาษาเขียนโปรแกรมในระดับ
>> เล็ก ๆ น้อย ๆ ตอนนี้ที่น่าสนใจคือ เมื่อคุณได้รับในกรณีที่มุม
เช่นมุม กรณีที่เมื่อมี
สามคนหรือห้าหรือเจ็ด หรือเลขคี่ใด ๆ ของคนที่อยู่ในห้อง
เพราะการทำที่โดยเจ้าตัวเบรก เพราะในที่สุดก็ไปของคุณ
ที่จะคิดถึงใครบางคนทั้งที่ จุดเริ่มต้นมากหรือท้ายสุด
ขึ้นอยู่กับวิธีที่คุณทำมัน
ดังนั้นตอนนี้ผมมีสาขานี้หรือ สภาพถ้าคนคนหนึ่งยังคงมีอยู่
แล้วไปข้างหน้าและจัดการอย่างใดอย่างหนึ่งที่ คนเหงาที่ไม่ได้รับ
จับคู่กับคนอื่น
เพื่อให้เป็นสิ่งที่เราจะเรียก เงื่อนไขหรือสาขา
>> รหัสตอนนี้ pseudocode โดยทั่วไปจะมี
เขียนเพื่อแก้ปัญหาจำนวนของปัญหาใด ๆ
และสิ่งที่ผมคิดว่าเราควรที่จะ ทำนี่คือใช้เวลาสักครู่
ที่จะเชิญเราจะว่าของ CS50 เจ้าของร็อบโบว์บนเวที
ที่จะเข้าร่วมสองอาสาสมัคร ที่มีความคิดสิ่งที่รอคอยไม่
มือลงไปทันทีที่ผมบอกว่า
วิธีการเกี่ยวกับคุณใน จบที่นี่มาขึ้น
และวิธีการเกี่ยวกับการจากไปไกล ไปวิธีการเกี่ยวกับวิธีการในการกลับมา
แถวหลังที่มาขึ้นด้วยมือของคุณขึ้น
ดีและสิ่งที่ชื่อของคุณ?
>> ANITA: อานิต้า
>> เดวิดเจลัน: อานิต้า
เอาล่ะมีความสุขที่ได้พบคุณ
ผมขอแนะนำให้คุณร็อบโบว์
นี้เป็นแอนนิต้า
และสิ่งที่เป็นชื่อของคุณ?
>> kiersten: Kiersten
>> เดวิดเจลัน: Kiersten
kiersten มาในขึ้นและ พบร็อบโบว์และแอนนิต้า
มีความสุขที่ได้พบคุณ
kiersten: ยินดีที่ได้พบคุณ
เดวิดเจลัน: เอาล่ะ, ร็อบ
ROB สลิง: ยินดีที่ได้พบคุณ
เดวิดเจลัน: อานิต้า
kiersten: สวัสดี Anita
เดวิดเจลัน: และคุณ หลายร้อยเพื่อนร่วมชั้น
ดังนั้นตอนนี้ให้ฉันไปข้างหน้าและดึง ขึ้นเพียงโปรแกรมง่ายๆที่นี่
บน Mac OS ที่จะให้ฉัน จริง ๆ แล้วจดบันทึกบางลง
และถ้าพวกคุณต้องการที่จะใช้เวลาแต่ละ ตำแหน่งที่หนึ่งในโรงเรียนที่มี
ให้ฉันไปข้างหน้าและเริ่มต้นรายการ ของรหัส pseudocode ถ้าคุณจะ
และสิ่งที่ผมอยากจะทำที่นี่ ในท้ายที่สุดเป็นชนิดสำหรับคุณ
คำแนะนำบางอย่างที่เรา ผู้ชมเป็นจริง
ไปท่องสำหรับเรา
ให้ฉันไปข้างหน้าและเพียงแค่ การเปลี่ยนแปลงนี้จะเป็นรายการที่มีหมายเลข
เพื่อให้ตรงกับสิ่งที่เราทำขึ้นมี
และสิ่งที่ฉันจะทำอย่างไรกับ ความช่วยเหลือของคุณคือการเขียนโปรแกรม
ใน pseudocode ด้วยซึ่ง คนเหล่านี้จะไป
ที่จะใช้ถั่วลิสง เนยและเจลลี่แซนวิช
ดังนั้นมันอาจจะเป็นเรื่องที่จะ แสดงสิ่งที่บางส่วนของคุณ
อาจได้เห็นบนอินเทอร์เน็ต เพียงช่วงเวลาสั้น ๆ ที่น่ารำคาญ
>> [MUSIC BUCKEWHEAT BOYS "เนยถั่วลิสง เวลาวุ้น "]
เดวิดเจลัน: OK
ที่เพียงพอของที่
ดังนั้นที่นี่ในขณะที่ฉันมี คู่ของแว่นตากูเกิลที่
เราจะใส่ใน CS50 ของตัวเองร็อบโบว์ ที่จะเห็นโลกผ่านสายตาของเขา
และเราจะทำอย่างดีที่สุดในการโพสต์ การผลิตเพื่อสานจริง
ภาพของสิ่งที่ร็อบจะเห็น ตอนนี้ลงในนี้บรรยายที่เกิดขึ้นจริง
วิดีโอที่มีสองคนของเรา อาสาสมัครข้างเขา
ดังนั้นสิ่งที่ผมจะทำ คือฉันจะเป็นพนักงานพิมพ์ดีด
เรามีเป้าหมายที่นี่ของ จริงการเขียนโปรแกรม
ซึ่งจะทำให้ในที่สุด เนยถั่วลิสงและเยลลี่แซนวิช
แต่ทั้งสามจะไปทำงาน ราวกับว่าพวกเขาเป็นเครื่องคอมพิวเตอร์
และคอมพิวเตอร์ในตอนท้ายของวันที่ เป็นอุปกรณ์จริงใบ้สวย
พวกเขากำลังเร็วสุด แต่พวกเขาเท่านั้นที่สามารถ ทำอย่างแท้จริงสิ่งที่พวกเขาจะบอกว่า
คุณไม่สามารถเพียงแค่พูดให้ถั่วลิสง เนยและเจลลี่แซนวิช
คุณมีโปรแกรมที่พวกเขาจะทำอย่างนั้น
คุณมีจะบอกพวกเขา ด้วยความแม่นยำว่าจะทำอย่างไร
น้อยสิ่งที่น่ากลัวและ หวังว่าเป๋ขัน
>> ดังนั้นกับที่กล่าวว่าเราต้อง หนึ่งสายที่ออกจากผู้ชม
สำหรับสิ่งที่ควรจะก้าว หนึ่งจะเป็นถ้าเป้าหมายของที่นี่
คือการทำให้ถั่วลิสง เนยและเจลลี่แซนวิช
ใช่?
>> ผู้ชม: [ไม่ได้ยิน] ถุงขนมปัง
เดวิดเจลัน: เปิดถุงขนมปัง
ดังนั้นหากทั้งสามผู้เข้าแข่งขันจะ ชอบที่จะดำเนินการต่อไปจะทำอย่างนั้นอย่างแท้จริง
เปิดถุงขนมปัง
>> [ผู้ชมหัวเราะ]
เดวิดเจลัน: ถ้าอย่างนั้นเราทำงานในที่
ขวาทั้งหมด
ดังนั้นขั้นตอนที่สอง how-- ขอใช้เวลาต่อไปนี้
ใช่ที่อยู่ข้างหน้า
>> ผู้ชม: [ไม่ได้ยิน] ขนมปัง
>> เดวิดเจลัน: มีอะไรที่?
>> ผู้ชม: เอาขนมปัง
เดวิดเจลัน: เอาขนมปัง
รวบรัดในทำนองเดียวกัน
ขอบคุณ
>> [APPLAUSE]
เดวิดเจลัน: นั่นมันได้หรือไม่
ตกลงดังนั้นขั้นตอนที่สองที่เกิดขึ้น จะเอาขนมปัง
เอาล่ะใครบางคนต้องการที่จะ เขียนถึงเราประโยคอีกต่อไป?
คนอื่น?
เล็ก ๆ น้อย ๆ มากขึ้น [ไม่ได้ยิน]
ไม่มีอะไรตอนนี้
ใช่?
>> ผู้ชม: สถานที่สอง ชิ้นติดกัน
>> เดวิดเจลัน: สถานที่สอง ชิ้นติดกัน
>> [ผู้ชมหัวเราะ]
>> เดวิดเจลัน: สถานที่สอง ชิ้นติดกัน
ขั้นตอนที่สี่
ใช่?
>> ผู้ชม: ใช้ของคุณ มือและตั้งมันเบา
ที่ด้านบนของฝาเนยถั่วลิสง
>> [ผู้ชมหัวเราะ]
ผู้ชม: [ไม่ได้ยิน] ถัดจากเนยถั่วลิสง
เดวิดเจลัน: อะไรนะ?
บอกว่าอีกครั้ง
>> ผู้ชม: คลายเกลียวฝาและใส่ มันเบา ๆ ถัดจากเนยถั่วลิสง
>> เดวิดเจลัน: ใส่มันเบา ๆ ถัดจากเนยถั่วลิสง
ตกลงความคืบหน้า
ขั้นตอนที่ห้า
ที่ดีเยี่ยม
ใช่?
>> หยิบมีด
เดวิดเจลัน: รับมีด
ตกลงขั้นตอนที่หก
ใช่?
>> ผู้ชม: ถือมีดโดยที่จับ
เดวิดเจลัน: กด มีดโดยที่จับ
ถือมีดโดยที่จับ
ขั้นตอนที่เจ็ด
ใช่?
>> ผู้ชม: มีด [ไม่ได้ยิน] ในถั่วลิสง เนยและเป็นเพียงออก [ไม่ได้ยิน]
>> เดวิดเจลัน: ใส่มีด in-- ฉัน ได้ยิน "มีดใส่ในเนยถั่วลิสง
และใช้เวลาน้อยออกที่เป็นไปได้ ".
โดยวิธีการที่เอากระดาษครั้งแรก
สิทธิทั้งหมดขั้นตอนที่เก้า
ขั้นตอนที่เก้า
เรายังไม่ได้ทำจริงแซนวิชยัง
ใช่?
ผู้ชม: การใช้มีดในเนยถั่วลิสง ใช้เนยถั่วลิสงบนขนมปังกล่าวว่า
>> เดวิดเจลัน: การใช้มีดใน เนยถั่วลิสงใช้เนยถั่วลิสงที่
ขนมปังกล่าวว่า
>> [ผู้ชมหัวเราะ]
เดวิดเจลัน: ทุกขั้นตอนที่เหมาะสม 10
ขั้นตอนที่ 10
ใช่?
>> ผู้ชม: รสถั่วลิสง เนยเพื่อให้มีคุณภาพ
>> [ผู้ชมหัวเราะ]
เดวิดเจลัน: ขั้นตอนที่ 11
ขั้นตอนที่ 11
มาใน
ใช่?
ขวามี
>> ผู้ชม: อย่างระมัดระวังรับเจลลี่
>> เดวิดเจลัน: อย่างระมัดระวังรับเจลลี่
ตกลงแล้วอีกมือขึ้น
ขวาอยู่ข้างหลังคุณ
ใช่ในสีฟ้า
>> ผู้ชม: ทั้งหมดถูกลบ ฝาจาก [ไม่ได้ยิน] ใช่
เอาฝาจากวุ้น
>> [ผู้ชมหัวเราะ]
>> เดวิดเจลัน: จากวุ้น
ฮ่า
>> [ผู้ชมหัวเราะ]
เดวิดเจลัน: และ?
ผู้ชม: และแทบจะไม่ กวาดใด ๆ [ไม่ได้ยิน]
[ผู้ชมหัวเราะ]
ผู้ชม: แน่นอนก่อน [ไม่ได้ยิน] นำกระดาษออกจากเจลลี่
เดวิดเจลัน: เอากระดาษจากวุ้น
14 ขั้นตอนที่
เราเกือบจะมี
ใช่?
>> ผู้ชม: กลับขวดเจลลี่ ก่อนที่ทุกอย่างตกออก
>> เดวิดเจลัน: กลับวุ้น ขวดก่อนวุ้นหลุดออกมา
ขั้นตอนที่ 15
>> ผู้ชม: แทนที่หมวก
>> เดวิดเจลัน: แทนที่หมวก
ขั้นตอนที่ 16
ใช่?
>> ผู้ชม: [ไม่ได้ยิน]
เดวิดเจลัน: บอกได้เลยว่าอีกครั้ง
ผู้ชม: ใช้หมวกออกจากวุ้นของคุณ
เดวิดเจลัน: ปิดเยลลี่ของคุณ
ดังนั้นนะโอ๊ะ
มาใน
เปลี่ยนหมวก
ใส่ cap-- คุณบอกว่า ถอดฝาจากวุ้น
รู้สึกเหมือนเราอยู่ในบิตของวง
ขั้นตอนที่ 17
ใช่?
>> ผู้ชม: [ไม่ได้ยิน]
เดวิดเจลัน: บอกได้เลยว่าอีกครั้ง
ผู้ชม: [ไม่ได้ยิน]
เดวิดเจลัน: กลับไป step--
ผู้ชม: [ไม่ได้ยิน]
เดวิดเจลัน: เอา หมวกจากเนยถั่วลิสง
ใช่?
>> ผู้ชม: วางทั้งหมด เจลลี่บนขนมปัง
>> เดวิดเจลัน: วางทั้งหมด เจลลี่บนขนมปัง
เดวิดเจลัน: พวกเราเกือบจะมี
ขั้นตอนที่ 19
>> ผู้ชม: เอาวุ้นส่วนเกิน
>> เดวิดเจลัน: ฮ่า ๆ เยลลี่
>> [APPLAUSE]
เดวิดเจลัน: ทำไมไม่ we-- หนึ่งขั้นตอนมากขึ้นที่จะใช้บ้านนี้
อีกหนึ่งขั้นตอนแล้ว เราจะให้บริการแซนวิช
ใช่?
>> ผู้ชม: [ไม่ได้ยิน]
>> เดวิดเจลัน: ในขณะที่แซนวิชใด ๆ เยื้อง remains-- ปล่อยของเจ้านี่กิน
>> [หัวเราะผู้ชม]
>> เดวิดเจลัน: สิทธิทั้งหมดขอขอบคุณ คุณอาสาสมัครของเราที่นี่
>> [APPLAUSE}
>> เดวิดเจลัน: เรามีบางอย่างดี พรากจากกันของขวัญสำหรับแต่ละท่าน
เนยถั่วลิสงของคุณเองเจลลี่, และขนมปังที่จะนำกลับบ้าน
ขอบคุณ
>> kiersten: ขอบคุณ
เดวิดเจลัน: [ไม่ได้ยิน] ยินดีต้อนรับ
[APPLAUSE]
เดวิดเจลัน: ดังนั้นนี้เป็นของ แน่นอนตัวอย่างที่ไร้สาระ
ใช่มั้ย?
แต่มันก็ไม่เปิดเผยชนิดของวิธีการที่เรา มนุษย์เพียงแค่ใช้ความคมชัดในการรับ
และความจริงที่ฉันได้รับ พูดคุยกับคนอื่น
เขาหรือเธอก็รู้ว่าสิ่งที่คุณหมายถึง
>> คอมพิวเตอร์จะไม่ได้ไป ที่จะรู้ว่าสิ่งที่คุณหมายถึง
แม้ว่าจะใช้เป็น เรากำลังจะทำในวันนี้
การเขียนโปรแกรมบางอย่างในเกาลาก และวางรูปแบบภาษาชิ้นส่วนปริศนา
การออกแบบแม้กระทั่งสำหรับหนุ่ม ลูกคุณมี
ที่จะให้ชัดเจนและเพื่อให้ตัวอักษรที่มี สิ่งที่คุณต้องการโปรแกรมของคุณจะทำอย่างไร
ตอนนี้ในที่สุดเราไม่ จะมีการเขียนโปรแกรม
ไม่ได้อยู่ในรหัส pseudocode, เช่นภาษาอังกฤษไวยากรณ์
แต่รหัสหรือถูกกว่าซอร์สโค้ด
รหัสแหล่งที่มาเป็นเพียงวิธีแฟนซี สำหรับการอธิบายรหัสที่คุณจริง
เขียนด้วยแป้นพิมพ์ที่เป็น ไม่ได้อยู่ในอังกฤษต่อ
มันอยู่ใน C หรือ Java หรือ C ++ หรือสิ่งที่ เช่นนั้นในขณะที่เราจะเห็นทันที
>> และในความเป็นจริงเพียงเพื่อทำให้ตกใจ บางส่วนของคุณได้อย่างรวดเร็วก่อน
นี้เป็นโปรแกรมที่เขียนในภาษา เรียกว่าซี แต่การที่จะยกเลิกความหวาดกลัวไม่กี่ของคุณ
คุณจะสมบูรณ์ เข้าใจสิ่งที่เกิดขึ้น
ในวันจันทร์ถัดมาเมื่อ มาถึงบางสิ่งบางอย่างเช่นนี้
ตรงไปตรงมานี้เป็นภาษาเก่า
มันเป็นความลับอย่างเป็นธรรม แต่มันก็เป็นตัวแทนของ
จำนวนมากของภาษาเหล่านี้วันที่ มีจำนวนมากและวงเล็บปีกกา
วงเล็บและเครื่องหมายคำพูดและอัฒภาค
และจำนวนมากนี้ สิ่งที่ประโยคที่ไม่ได้
ที่น่าสนใจทางสติปัญญา
อันที่จริงมันเป็นสิ่งที่ทำให้ไขว้เขวที่สุด จากความคิดที่ง่ายมาก
ที่กำลังจ้องมองเราในหน้า
โปรแกรมนี้เช่นเดียวกับคุณอาจคาดเดา พิมพ์ไปยังหน้าจอคอมพิวเตอร์ของใครบางคน
คำว่า "โลกสวัสดีจุลภาค".
นั่นแหล่ะ
เพื่อให้ชัดเจนมี จำนวนมากของสิ่งที่เป็น
ได้รับในทางของ ความชัดเจนบางอย่างที่นั่น
แต่มันเป็นไปอย่างรวดเร็วลื่น ออกไปและจะใช้งานง่ายอย่างสมบูรณ์
>> อันที่จริงสิ่งที่เรากำลังจะทำ วันนี้คือการกลั่นนี้ค่อนข้างซับซ้อน
มองหาโปรแกรมอีกซึ่งคุณจะมา ที่จะเข้าใจได้อย่างรวดเร็ว แต่บางสิ่งบางอย่าง
ง่ายมาก
ขอเพียงแค่พูดในสิ่งที่เราหมายถึง
ลองวาดภาพของสิ่งที่เราหมายถึง, โดยวิธีการชิ้นส่วนปริศนาเหล่านี้ที่นี่
>> ดังนั้นนี่คือการเขียนโปรแกรม ภาษาที่รู้จักกันเป็นรอยขีดข่วน
มันถูกพัฒนาโดยเอ็มไอทีมีเดียแล็บ
และสิ่งที่คุณจะเห็นในปัญหาการตั้งศูนย์ ซึ่งจะออกมาในคืนนี้
เราจะมีคุณไปนี้ URL ที่นี่ scratch.mit.edu
และพวกเขามีเว็บ อินเตอร์เฟซที่ใช้ผ่านทางที่
คุณจะเขียนโปรแกรมครั้งแรกของคุณ
หรือบรรดาของคุณที่มีอยู่ก่อน ประสบการณ์โปรแกรมที่สองของคุณ
แต่ในสภาพแวดล้อมที่ อาจจะเล็ก ๆ น้อย ๆ ที่ไม่คุ้นเคยและว่า
จะผลักดันให้คุณสามารถสร้างบางสิ่งบางอย่าง โดยใช้สภาพแวดล้อมที่มองเห็นอย่างนี้
>> ตอนนี้สิ่งที่ฉันจะทำที่นี่ มีการเปิดโปรแกรมเอง
มันมีอยู่ไม่เพียง แต่เป็นเว็บเบราเซอร์ แต่ยังเป็นโปรแกรมที่สามารถดาวน์โหลดได้
เพื่อให้คุณสามารถใช้มัน ถ้าคุณไม่ได้มีการเข้าถึงอินเทอร์เน็ต
และฉันจะทำอย่างนั้น ในที่นี่ในแซนเดอเพียง
ในกรณีที่ Wi-Fi ไม่ได้ ความร่วมมือที่ดีสุด
และสิ่งที่ผมจะทำคือการจุด สอบคุณสมบัติไม่กี่ของโปรแกรมนี้
ดังนั้นต้องมีความชัดเจนฉันมีเพียงแค่สองครั้ง คลิกที่ไอคอนบนเดสก์ทอปของฉัน
หรือหายไปเท่าที่จะ scratch.mit.edu, และจะดึงขึ้นหน้าต่างนี้
นี้เป็นสภาพแวดล้อมการเขียนโปรแกรม
มันเป็นชิ้นส่วนของซอฟต์แวร์ที่ บางส่วนของเพื่อนของเราที่เอ็มไอที
เขียนว่าขอให้เราและคุณเขียน โปรแกรมในภาษาที่เรียกว่าเกา
>> ในขณะนี้ที่จะเกิดขึ้น แมวที่ยังตั้งชื่อเกา
และนี่คือโลกของเขาที่เขาอาศัยอยู่
นี้เป็นขั้นตอนเพื่อที่จะพูดว่า สี่เหลี่ยมผืนผ้าที่มุมบนซ้ายมือ
และเขาไม่ได้ให้มีลักษณะเหมือนแมว
คุณสามารถทำให้เขาดู ต้องการอะไรและคุณ
สามารถมีสไปรท์ดังกล่าวจำนวนมาก หรือตัวอักษรในโปรแกรม
ในขณะเดียวกันที่นี่ในที่ห่างไกล ขวาเป็นกระดานชนวนที่ว่างเปล่าขนาดใหญ่
และนี่คือที่ในช่วงเวลาที่ เรากำลังจะเริ่มต้นการเขียนโปรแกรม
โดยลากและวาง ปริศนากราฟิกเหล่านี้
ชิ้นที่มีสิทธิ์ ที่นี่อยู่ตรงกลาง
และมีวิธีการของพวกเขากว่า เราจะใช้เวลาในการที่นี่ในชั้นเรียน
เพราะคุณจะพบว่า พวกเขากำลังทั้งหมดใช้งานง่ายอย่างเป็นธรรม
อีกครั้งได้รับการออกแบบ สำหรับเด็ก แต่เรา
ใช้ในการหยอกล้อกันบางคน ความคิดพื้นฐานของตัวแปรห่วง
เงื่อนไขและในไม่ช้าสิ่งที่ เช่นฟังก์ชั่นและกิจกรรมต่างๆ
และกระทู้และสิ่งแฟนซีอื่น ๆ ที่เราจะ ได้ไม่นานในการสร้างจริง
บางสิ่งบางอย่างจากรอยขีดข่วน
เล่นสำนวนเจตนา
>> ตอนนี้สิ่งที่ผมกำลังจะทำนี่คือ คลิกที่ไม่เคลื่อนไหว แต่การควบคุม
และนี่เป็นเพียง ประเภทของตรงนี้
และฉันเห็นที่แตกต่างกัน ชุดสีของบล็อก
แต่สังเกตเห็นคำที่คุ้นเคยไม่กี่
"ถ้า" และ "อื่นถ้า" และ "ทำซ้ำ".
และคุณอาจจะสามารถคาดเดา ที่ชวนให้นึกถึงสาขาที่
หรือเงื่อนไขที่เราเห็นและ แม้โครงสร้างการวนลูป
ดังนั้นเราจึงมีบล็อกที่คล้ายกันที่นี่
แต่ที่น่าสนใจที่สุด หนึ่งเป็นหนึ่งที่นี่
เมื่อธงสีเขียวนี้มีการคลิก นี้สำหรับผู้ที่มีการเขียนโปรแกรมก่อน
ประสบการณ์เทียบเท่า กับฟังก์ชั่นหลัก
แต่สำหรับผู้ที่ไม่คุ้นเคย นี้เป็นชิ้นส่วนจิ๊กซอว์
ที่จะเตะเริ่มต้นโปรแกรมทั้งหมดของเรา
แท้จริงมันหมายความว่าเมื่อฉันไปในการนี​​้ โปรแกรมและคลิก flag-- สีเขียว
ซึ่งคุณสามารถดูได้ที่นี่ใน มุมซ้ายด้านบนของ UI ที่
เพื่อให้เห็นธงสีเขียว ถัดจากป้ายหยุดสีแดง?
เมื่อฉันคลิกที่ของฉัน โปรแกรมจะไปทำงาน
ตอนนี้ผมกำลังจะไปทำอะไรบางอย่าง ง่ายสุดที่มีรอยขีดข่วน
ฉันจะไปข้างหน้า และไปที่แผงลักษณ์
ที่นี่ที่ฉันมีพวง ของชิ้นส่วนปริศนาสีม่วง
และฉันจะไปข้างหน้าและทำ สิ่งที่ง่ายสุดเช่นบอกว่า
และแจ้งให้ทราบล่วงหน้า then-- นี้ ข้อความในกล่องสีขาว
เป็น editable-- ฉันจะบอกว่า "สวัสดีชาวโลก" เช่นเดียวกับเรา
ได้ในใจว่า รุ่นสักครู่ที่ผ่านมา
และตอนนี้ถ้าเราไปคลิกที่นี้ ธงสีเขียว, ฉันมีโปรแกรมนี้
มันไม่ได้โดยเฉพาะอย่างยิ่ง โปรแกรมที่น่าสนใจ
แต่ฉันทำคอมพิวเตอร์ทำอะไรบางอย่าง
ผมเริ่มโปรแกรมและมัน ไม่สิ่งที่ฉันบอกว่ามันจะทำ
ตอนนี้ผมยังคงสามารถลากและวาง มากขึ้นของชิ้นส่วนปริศนาเหล่านี้
และพวกเขากำลังจะเชื่อมต่อกัน แต่ ขอตบคำศัพท์บางอย่างในที่นี่
ที่เราจะเห็นเกิดขึ้นเป็นประจำ ตลอดหลักสูตร
และจริงๆตลอดทั้งวิทยาการคอมพิวเตอร์ และการเขียนโปรแกรมมากขึ้นโดยทั่วไป
>> นี้ "บอกว่า" บล็อกสีม่วงให้ เพียงแค่เริ่มต้นการเรียกคำสั่ง
มันเหมือนกับคำสั่งของความเป็นจริง
ทำเช่นนี้
ดังนั้นจึงเป็นหมวดหมู่ของ คำแนะนำที่คุณ
อาจกินคอมพิวเตอร์เป็นส่วนหนึ่ง ของโปรแกรมหรืออัลกอริทึม
และต้องมีความชัดเจนคุณได้ อาจจะเป็นที่สำหรับรับ
ว่าคุณมีโปรแกรมในคอมพิวเตอร์ของคุณ
และพวกเขากำลังชนิดของขั้นตอนวิธีการ แต่ โปรแกรมเป็นจริงพวงของอัลกอริทึม
ว่ามนุษย์บางคนเขียน
พวกเขาแพคเกจมันขึ้นมาและ พวกเขาขายมันเพื่อคุณ
หรือพวกเขาโพสต์ในเว็บไซต์ ให้คุณดาวน์โหลด
ดังนั้นโปรแกรมเป็นเพียง ทั้งกลุ่มของศูนย์และคน
ว่าอย่างใดที่มนุษย์สร้างขึ้น
และรูปแบบของศูนย์และ คนที่เป็นตัวแทนของสิ่งที่ในที่สุด
เช่น "ทักทายโลก" หรือ "การเล่น เพลงนี้ "หรือ" เล่นวิดีโอนี้ "
หรือ "ส่งอีเมล".
แต่เราจะกลับมาใน รายละเอียดวิธีการเพิ่มเติมสิ่งที่
โปรแกรมคือเมื่อคุณ ตัวเองเขียนไว้
>> ที่นี่ statement-- อื่น "รอคนที่สอง".
ผมไม่ได้ใช้ แต่ถ้าฉันต้องการ โปรแกรมของฉันที่จะหยุดสักครู่
ที่จะทำสิ่งที่ฉันสามารถบอกให้ทำเช่นนั้น
รอคนที่สอง
ตอนนี้อีกคนหนึ่งอาจจะเป็น "เล่นเสียง".
ดังนั้นนี้เป็นเอกลักษณ์ของเกามัน มีความสามารถในการเล่นเสียง
ดังนั้นคำสั่งของฉันอาจ ใช้เป็นที่นี่ "เล่นเสียง".
ในขณะที่การแสดงออกบูลีน ดังนั้นนี้เป็นคำที่คนชอบเล่น
การตั้งชื่อตามเพียงแค่ผู้ชายที่ชื่อนาย Bool, และนี่คือทั้งหมดที่เกี่ยวกับคำถาม
จริงหรือ false-- เป็นเมาส์ลง?
นิพจน์บูลีนเป็นเพียง การแสดงออกในภาษาอังกฤษบางส่วน
ที่เป็นจริงหรือเท็จ
หรือปิด
คนใดคนหนึ่งหรือศูนย์
คุณสามารถคิดว่ามัน ในหลายวิธีใด ๆ
แต่มันเป็นความจริงหรือ นี้ที่ผิดพลาดที่สุด
ดังนั้น "เมาส์ลงเครื่องหมายคำถาม" ที่จะนิพจน์บูลีน
และคุณสามารถคิดของคนอื่นอาจจะ
ยกตัวอย่างเช่น "คือจำนวนที่เหลือ น้อยกว่าจำนวนขวา? "
ที่มากเกินไปจะเป็น นิพจน์บูลีน
"น้อยกว่า" เป็นนิพจน์บูลีน
>> นี้ด้วย "ตัวชี้เมาส์สัมผัส".
ฉันไม่แน่ใจว่าทำไมพวกเขา เรียกมันว่าตัวชี้เมาส์
มันก็หมายความว่าเป็นเคอร์เซอร์เป็น ลูกศรบนหน้าจอสัมผัสแมว
ตัวอย่างเช่น
หรือด้านอื่น ๆ ของหน้าจอ
และมันก็เป็นคำถามอีกครั้งและ ที่หมายถึงนิพจน์บูลีน
สิ่งที่คุณอาจจะ ต้องการที่จะใช้ในสภาพ
ดังนั้นเราจะมาว่าในช่วงเวลาเพียงแค่
คุณสามารถ "และ" สิ่งต่างๆร่วมกัน
ดังนั้นถ้าคุณต้องการที่จะตรวจสอบว่านี้ เป็นกรณีและที่เป็นกรณีที่
คุณสามารถใช้ "และ" บล็อกเช่นนี้
และนี่คือเงื่อนไขที่ว่า
ขอให้สังเกตรูปร่างของการเปิดเล็ก ๆ น้อย ๆ ในด้านบนของชิ้นส่วนปริศนานี้สีเหลือง
ก็ชวนให้นึกถึงรูปร่าง ที่เราเพิ่งเห็นช่วงเวลาที่ผ่านมา
แต่ละนิพจน์บูลีนเหล่านี้ มีขอบชี้เหล่านี้
ด้านซ้ายและขวา
และนั่นเป็นเพราะคนที่ตัดสินใจที่เอ็มไอที ว่าด้วยรูปร่างสายตาลำเลียง,
คุณสามารถชนิดของช่วยคน นักเรียนและเด็กเหมือนกัน
ชนิดของกรอกในช่องว่างอย่างแท้จริง
>> ตอนนี้ที่ puzzle-- ที่ เปิดมีขนาดเล็กเพียงเล็กน้อย
และในขณะที่เราจะเห็นในโปรแกรม ในเกาก็จะเติบโตไปพอดี
มันจะยังคงรักษารูปร่างของมันในที่สุด
ดังนั้นสภาพช่วยให้คุณตัดสินใจ "ฉันควรจะทำอะไรบางอย่างหรือไม่"
นิพจน์บูลีน เป็นคำถามที่เกิดขึ้นจริง
คุณใช้ในการตัดสินใจที่ผมไม่ไป ซ้ายหรือฉันจะไปทางด้านขวา
เมื่อฉันพบนี้ ที่เรียกว่าแยกในถนนหรือไม่
คุณสามารถมีสองสาขา
หากสิ่งที่เป็นความจริงทำ นี้ไปทางอื่นที่
หรือคุณก็สามารถทำอะไร ทั้งหมดเป็นบล็อกนี้โดยนัย
ในทำนองเดียวกันเราสามารถรังสิ่งเหล่านี้
ดังนั้นถ้าคุณต้องการที่จะสามแยกใน ถนนทั้งทำเช่นนี้หรือนี้หรือว่า
คุณก็สามารถรังสิ่งเหล่านี้ร่วมกัน
และจะเริ่มที่จะได้รับเพียงเล็กน้อย ที่น่าเกลียดที่สุดเพื่อตรวจสอบว่า
แต่ตรรกะยังคงเดิม
คุณอักษรสามารถอ่าน ด้านบนกับด้านล่างนี้
และกล่าวว่าสิ่งที่มัน means-- ว่านี้ เป็นความจริงทำเช่นนี้อื่นถ้าอื่น
>> ห่วงไม่ได้ง่ายใน Scratch
ตลอดกาลทำต่อไปนี้
ตอนนี้คุณอาจไม่คิดว่าคุณ สามารถทำอะไรได้มากเพราะมีไม่ได้
พื้นที่มากระหว่างด้านบนและ ด้านล่างนี้เปิดชิ้นส่วนปริศนา
แต่คุณจะเห็นรอยขีดข่วนเป็นไปได้ เติบโตให้พอดีกับชิ้นส่วนปริศนามากที่สุดเท่าที่
ในขณะที่คุณต้องการที่จะอัดอยู่ในนั้น
ห่วงอีกประการหนึ่งที่อาจจะมี แสดงด้วยซ้ำ
ถ้าคุณรู้ล่วงหน้าว่า "ผม ต้องการที่จะทำอะไรบางอย่าง 10 ครั้ง "
คุณก็สามารถบอก Scratch ที่จะทำบางสิ่งบางอย่าง 10 ครั้ง
และในขณะเดียวกันเราสามารถมีตัวแปร
ดังนั้นนี่คือหนึ่งโดยพลการ มันเป็นสีส้มในกรณีนี้
และนี่คือทัวร์ลมกรด
อีกครั้งคุณจะพบนี้สามารถเข้าถึงได้มาก เมื่อคุณเริ่มต้นการชี้และคลิก
ฉันได้รับการตั้งชื่อ n ตัวแปรของฉัน แต่ฉัน จะได้ตั้งชื่อมันว่าอะไรที่ฉันต้องการ
และฉันตั้งค่าได้ที่นี่ใน ตัวอย่างเช่นข้อนี้ให้เป็นศูนย์
>> ตอนนี้เห็นโปรแกรมเช่นสวัสดี โลกไม่ใช่สิ่งที่น่าสนใจ
จึงขอจริงเปิดขึ้นบางสิ่งบางอย่าง ที่อดีตนักศึกษาที่ทำ
ให้ฉันไปข้างหน้าและเปิดขึ้น ตัวอย่างเช่นที่นี่นี้
ที่ฉันจะรัก จะมีอาสาสมัคร
ขวาทุกวิธี about-- ให้ไปได้ไกล
ใช่มาขึ้น
คุณชื่ออะไร?
>> ABBY: แอ๊บบี้
เดวิดเจลัน: แอ๊บบี้มาขึ้น
ดังนั้นคุณเคยเล่น เกมนี้มาก่อนหรือไม่
ABBY: เลขที่
เดวิดเจลัน: ทั้งหมดขวา
เดวิดมีความสุขที่ได้พบคุณ
มาในกว่า
และสิ่งที่เป็นโปรแกรมของคุณ พื้นหลังถ้ามี
>> ABBY: ฉันได้เรียนรู้ C บาง ++
เดวิดเจลัน: คุณได้เรียนรู้บาง C ++
และสิ่งที่เป็นเกมของคุณ เล่นพื้นหลัง?
>> ABBY: ไม่มาก
เดวิดเจลัน: ตกลงดังนั้นเราจะใช้เวลาที่
ดังนั้นนี่เป็นวิธีที่เกมจะไปทำงาน
ฉันจะไปข้างหน้าและ คลิกที่ธงสีเขียวซึ่ง
ขึ้นอยู่ที่นี่ที่ด้านบนขวา
ตอนนี้บรรพบุรุษของคุณในชั้นเรียน ได้ให้คำแนะนำบางส่วนที่นี่
และในเพียงสักครู่ก็ กล่าวว่า "พื้นที่ที่จะเริ่มต้น".
เพื่อไปข้างหน้าและกดสเปซบาร์
>> เกมคอมพิวเตอร์: Pikachu
เดวิดเจลัน: และเป้าหมายก็คือการ จับอาหารที่เป็นที่ปรากฎมี
ทางด้านซ้าย
และ [ไม่ได้ยิน]
>> [เกมเล่นเพลง]
>> เดวิดเจลัน: ทุกคนดี ขอขอบคุณสำหรับการเล่น
เราได้ที่นี่เล็ก ๆ น้อย ๆ พรากจากกันของขวัญสำหรับคุณ
เรามี CS50 ลูกความเครียด ถ้าคุณต้องการที่จะเลือก
สิทธิทั้งหมดที่ดีที่จะได้พบคุณ
ขอบคุณที่มาและความท้าทาย
เพื่อให้เรามีลูกความเครียดมากขึ้นดังนั้น ขอทำตัวอย่างอีกหนึ่งที่จะกระตุ้นให้
อาสาสมัคร?
ขวาทั้งหมดเกี่ยวกับวิธีการ ที่นี่ในหน้า
คุณชื่ออะไร?
>> ฟิลลิป: ฟิลลิป
>> เดวิดเจลัน: ฟิลลิป
มาถึงฟิลลิป
ดังนั้นฟิลลิปเป็นไปได้ ท้าทายกับเกมอื่น
ว่าเป็นหนึ่งในรุ่นก่อนหน้าของคุณ เขียนเป็นส่วนหนึ่งของปัญหาการตั้งศูนย์
เรียกว่าเกมที่ยากที่สุดของไอวี่
และเราจะเห็นในเวลาเพียง ขณะที่สิ่งที่มีความหมายตามนี้
ฟิลลิปมีความสุขที่ได้พบคุณ
พื้นหลังของคุณคืออะไร
ฟิลลิป: Done มากของการเข้ารหัส
ทำเกมน้อยเกินไป
>> เดวิดเจลัน: OK
มีจำนวนมากของการเล่นเกมด้วย
และมีคุณเล่นเกมนี้มาก่อนหรือไม่
>> ฟิลลิป: ไม่มี
เดวิดเจลัน: ทั้งหมด ขวาดังนั้นที่นี่เราไป
ฉันจะไปข้างหน้า และคลิกที่ธงสีเขียว
>> [เพลงเกม]
>> [MUSIC MC HAMMER "U ไม่สามารถสัมผัสตัวนี้"]
>> ฟิลลิป: [ไม่ได้ยิน]
เดวิดเจลัน: [ไม่ได้ยิน]
ฟิลลิป: [ไม่ได้ยิน]
[หัวเราะ]
[MUSIC MC HAMMER "U ไม่สามารถสัมผัสตัวนี้"]
เดวิดเจลัน: [ไม่ได้ยิน] ไถผ่านมัน
ฟิลลิป: [ไม่ได้ยิน]
เดวิดเจลัน: ไปข้างหน้า
[MUSIC MC HAMMER "U ไม่สามารถสัมผัสตัวนี้"]
เดวิดเจลัน: ทั้งหมดขวา
ขอแสดงความยินดี
>> [APPLAUSE]
>> เดวิดเจลัน: เราจะ โพสต์ที่ออนไลน์ในภายหลังเพื่อให้
ที่คุณสามารถเลื่อน ด้วยเช่นกัน
พรินซ์ตันขึ้นมาต่อไปหลังจากนั้น
>> ดังนั้นตอนนี้เราจะมาดำเนินการจริง ที่จะเริ่มต้นจากรอยขีดข่วน
จึงจะพูดจริงและสร้างขึ้นจน เราสามารถหยอกล้อกันบางส่วนของความคิดเหล่านี้
และได้รับบางสิ่งบางอย่างได้ ที่ซับซ้อนมากขึ้นในช่วงปลาย
ฉันจะไปกว่าที่นี่และฉันจะ ไปข้างหน้าและสร้างไฟล์ใหม่
ดังนั้นอีกครั้งชุดปัญหาจะเดิน คุณผ่านบางส่วนของขั้นตอนเหล่านี้
แต่ทั้งหมดที่ฉันไม่ได้ไป ที่เมนู File และฉัน
กล่าวว่า "ใหม่" มากเช่นไมโครซอฟท์ Word, หรือโปรแกรมใด ๆ ที่ต้องการที่
>> และขอให้ไปข้างหน้าและเรา now-- ใช้ "สวัสดีชาวโลก" ช่วงเวลาที่ผ่านมา
แต่ขอทำอะไรเล็ก ๆ น้อย ๆ น่ารัก
ฉันจะไปถึงเหตุการณ์ที่เกิดขึ้น
และฉันจะทำ "เมื่อ ธงสีเขียวคลิก ".
แล้วฉันจะใช้ เราจะว่าสาขา
ดังนั้นฉันจะใช้ "ถ้า" เงื่อนไข
และแจ้งให้ทราบว่าทันทีที่ฉันได้ใกล้ชิด มันก็ต้องการที่จะเก็บเข้า
ดังนั้นผมจึงปล่อยให้ไปและยึดเข้​​าด้วยกัน
และตอนนี้ฉันสามารถทำสิ่งที่น่าสนใจ
ถ้าผมเลื่อนไปที่นี่ผมจะ ที่จะเห็นทั้งกลุ่มของบล็อก
ถ้าผมไปที่ "ข้อมูล" - ให้ฉันซูม in-- มีอะไรบางอย่างเกี่ยวกับตัวแปร
ถ้าผมไปที่ "การเคลื่อนไหว" ที่คุณสามารถ เห็นได้ชัดเปิดสิ่งรอบ
ถ้าผมไปที่ "ผู้ประกอบการ" - โอ้นี้เป็นที่น่าสนใจ
ฉันสามารถเลือกตัวเลขสุ่ม
เพื่อให้ฉันทำบางสิ่งที่มีเพียง ความน่าจะเป็นบางอย่างเพียงเพราะ
ฉันจะไปข้างหน้าและ ลากชิ้นส่วนปริศนานี้
นี้ก็คือน้อยกว่า บล็อกจึงเป็นเพียง
"เป็นตัวเลขนี้น้อยกว่าหนึ่งที่?"
แต่ฉันไม่ต้องการยากรหัสหมายเลข เพราะนั่นจะไม่มีจุดหมายสวย
ดังนั้นฉันจะลากชิ้นนี้ ที่นี่และแจ้งให้ทราบว่าล็อคใน
และตอนนี้ให้ฉันไปข้างหน้าและบอกว่า "ถ้า ตัวเลขที่ได้รับการสุ่ม
น้อยกว่าหกดำเนินการต่อไป ".
ตอนนี้ทำไมน้อยกว่าหก?
สิ่งที่น่าจะเป็นแบบนี้ได้อย่างมีประสิทธิภาพ จะให้ฉันเพียงแค่สังหรณ์ใจ?
ประมาณ 50% ใช่มั้ย?
หากตัวเลขที่สุ่มเดา ระหว่างวันที่ 1 และ 10 มีค่าน้อยกว่าหก
เห็นได้ชัดว่ามันเป็นหนึ่งในสอง สามสี่หรือห้า
และเพื่อที่จะให้ฉัน 50% น่าจะเป็นของสิ่งที่เกิดขึ้น?
>> ดีขอทำสิ่งที่ชอบ นี้ "เล่นเสียงแมว".
และแจ้งให้ทราบอีกครั้ง ชิ้นส่วนปริศนาเติบโต
เพื่อให้พอดีกับตราบเท่าที่รูปร่างตรง
นั่นคือสิ่งที่เป็นสิ่งสำคัญ
ผมขอไปกว่าที่จะเกา ที่นี่และคลิกที่ "เล่น".
ไม่มีอะไรเกิดขึ้น
คือข้อผิดพลาดหรือไม่
ไม่มีไม่จำเป็น
มันก็อาจจะเป็นที่ จำนวนที่ใหญ่กว่าได้รับการคัดเลือก
จึงขอทำมันอีกครั้ง
ไม่มีอะไร
>> [MEOW]
เดวิดเจลัน: มีมันเป็น
[MEOW]
เดวิดเจลัน: อีกครั้ง
ฉบับที่
>> [meowing]
เดวิดเจลัน: ดังนั้นถ้าคุณได้ เคยเล่นเกมแน่นอน
ที่ที่สิ่งที่เกิดขึ้นแบบสุ่ม เช่นคนเลวจะมาหรือไม่
มาบนหน้าจอหรือ สิ่งที่จะล้มหรือไม่ล้ม
นั่นเป็นเพียงเพราะสิ่งที่ซุปเปอร์ ง่ายๆเช่นนี้เกิดขึ้น
รับจำนวนสุ่มและถ้า มันน้อยกว่าค่าบางอย่าง
อาจจะทำเช่นนี้หรืออาจจะทำอย่างนั้น
เราสามารถนำมารวมกัน ที่เป็นเงื่อนไข
ลองทำอะไรบางอย่างที่แตกต่างกัน
>> ให้ฉันโยนออกไป
คุณสามารถกำจัดของสิ่งโดย เพียงแค่ลากมันออกไปทางซ้าย
และให้ไป
ให้ฉันไปข้างหน้าและทำบล็อกตลอดไป อย่างรวดเร็วและทำอะไรบางอย่างที่น่ารำคาญ
ให้ฉันไปข้างหน้าและ บอกว่า "เล่นเสียงแมว".
แต่ผมไม่อยากให้เรื่องนี้มากเกินไป น่ารำคาญเพื่อให้ฉันคว้าบล็อกนี้
"รอคนที่สอง" และแจ้งให้ทราบล่วงหน้า ไม่มีห้องพักมากขึ้นสำหรับมัน
แต่ถ้าคุณไปใกล้พอ มันอยากจะไปที่นั่น
ดังนั้นผมจึงปล่อยให้ไปและมันจะ เติบโตที่จะเติมบล็อก
ดังนั้นตอนนี้เป็นห่วง
[meowing]
เดวิดเจลัน: ฉัน แท้จริงการทำเช่นนี้ตลอดไป
อีกครั้งและอีกครั้ง
ที่เป็นเพียงไม่ทำให้เกิดเสียงที่เป็นธรรมชาติ
ให้ฉันไปข้างหน้าและการเปลี่ยนแปลงนี้ ที่จะไม่ได้เป็นหนึ่งที่สองถึงสองวินาที
และกด Enter
และสิ่งที่ดีเกี่ยวกับการเป็นรอยขีดข่วน ที่คุณสามารถเขียนโปรแกรมโต้ตอบ
ทำให้เกิดการเปลี่ยนแปลงอาจจะกด Enter หรือเล่น อีกครั้งและมันก็จะเก็บไป
ดีตอนนี้เราไม่ทำทำไม สิ่งที่น่ารักเล็ก ๆ น้อย ๆ ?
มากกว่าที่จะทำทุกอย่างตั้งแต่เริ่มต้น ให้ฉันไปข้างหน้าและเปิดขึ้นล่วงหน้า
ทำอย่างใดอย่างหนึ่งที่ฉันก่อนอบ เรียกว่า "สัตว์เลี้ยงแมว".
และเราจะโพสต์ทั้งหมดของ ไฟล์เหล่านี้ออนไลน์
และปัญหาการตั้งศูนย์จะบอกคุณ วิธีการเข้าถึงพวกเขาและเปิดพวกเขาขึ้น
และแจ้งให้ทราบนี้เป็นสวยเรียบง่าย
แต่ในอนาคตผมดูเหมือนจะมีการคว้า "ตลอดไป" บล็อกเพื่อให้ฉันได้มีห่วง
แล้วฉันมี "ถ้า" เงื่อนไข
ฉันมีนิพจน์บูลีน
>> ดังนั้นในภาษาอังกฤษเพียงแค่ glancing ที่ นี้โดยเฉพาะอย่างยิ่งถ้าคุณไม่เคย
โปรแกรมก่อนที่จะเพียงแค่สัญชาตญาณ สิ่งที่นี้จะทำโปรแกรมนี้
>> [ผู้ชม CHATTER]
>> เดวิดเจลัน: ถ้าคุณเลี้ยงแมว แมวจะแมวใช่มั้ย?
เพราะ "ตลอดไปยกเลิกการเลือก" คือ ตัวชี้เมาส์ไปสัมผัสแมว
ดังนั้นเพื่อให้มีความชัดเจนและผมไม่ได้พูด นี้มาก่อนของปริศนาเหล่านี้
ชิ้นและสคริปต์ที่ว่า เราได้รวมพวกเขาเข้าไป
จึงจะพูดสคริปต์คือตรงกันกับ โปรแกรมจริงๆเป็นแมวตัวนี้
และเหตุผลที่ค่าเท่าใดเพราะแจ้งให้ทราบล่วงหน้า วิธีแมวเดียวกันนี้ที่นี่เป็นไฮไลต์
ลงที่นี่คุณสามารถสร้าง แมวหรือสุนัขที่สองหรือจริงๆ
สิ่งที่คุณต้องการกราฟิก
คุณสามารถนำบางสิ่งบางอย่าง จาก Photoshop หรือสิ่งที่คล้ายกัน
และบูรณาการสิ่งที่ถ้าคุณ ต้องการที่จะให้มันสำหรับโครงการ
และสิ่งที่คุณจะพบ ท้ายที่สุดคือการที่คุณ
สามารถเพิ่มสคริปต์เพิ่มปริศนา ชิ้นกับตัวละครแต่ละคน
ดังนั้นเหล่านี้ทั้งหมดเป็นของ แมวตัวนี้โดยเฉพาะอย่างยิ่ง
ดังนั้นตอนนี้ถ้าผมไปข้างหน้าและเล่น โปรแกรมนี้ไม่มีอะไรที่เกิดขึ้น
แต่มีการทำงาน
โปรแกรมที่อยู่ในวงนี้ตลอดไป ชนิดของการรอคอยสิ่งที่จะเกิดขึ้นได้อย่างไร
>> [ผู้ชม CHATTER]
>> เดวิดเจลัน: เพื่อสัตว์เลี้ยงแมว
ดังนั้นถ้าผมเลื่อนเมาส์ของฉันที่มีต่อ him--
>> [meowing]
>> เดวิดเจลัน: ดังนั้นตอนนี้ ฉันลูบคลำแมว
ในขณะเดียวกันเราสามารถมีสาขาสอง
ให้ฉันไปข้างหน้าและเปิด ขึ้นไม่ได้เลี้ยงแมว
เราจะโพสต์ออนไลน์นี้ได้เป็นอย่างดี
นี้เป็นเพียงเล็กน้อยมากขึ้น ซับซ้อน แต่โดยไม่บอก
คุณสามารถคาดเดาอาจจะ สิ่งที่จะเกิดขึ้น
>> [meowing]
>> เดวิดเจลัน: แมวเป็น meowing เวลาเก่าแกรนด์
แต่โปรแกรมนี้เป็นแน่นอน เรียกว่า "อย่าเลี้ยงแมว"
เพื่อให้ชัดเจนผมอยากจะเลี้ยงแมว
>> [ROARING]
>> เดวิดเจลัน: อย่าเลี้ยงแมว
ตอนนี้ขอใช้เวลาดู ตัวอย่างอื่นที่นี่
หนึ่งนี้จะถูกเรียกว่า "สวัสดีสวัสดีสวัสดี" สำหรับเหตุผลที่
ว่าจะมีความชัดเจนเพราะ เร็วที่สุดเท่าที่ฉันทำงาน thing-- นี้
>> [ซีล BARKING]
เดวิดเจลัน: ง่ายมากที่จะ เขียนโปรแกรม Scratch ที่น่ารำคาญ
[ซีล BARKING]
เดวิดเจลัน: ตอนนี้เราจะไม่ไป เข้าไปดูรายละเอียดที่ดีกับสิ่งเหล่านี้
แต่สังเกตเห็นมี คู่ของคุณสมบัติใหม่ที่นี่
มีตัวแปรที่เรียกว่าเป็น "เงียบ" แล้วมีพวงของเงื่อนไข
และสำหรับตอนนี้ให้ฉัน เพียงแค่หยอกล้อคุณด้วยการพูดว่า
ว่าถ้าผู้ชายคนนี้ได้รับน่ารำคาญเกินไป ฉันสามารถกดสเปซบาร์และเขาหยุด
เพราะบทบาทที่เล่นโดย ทั้งสองสคริปต์เป็นดังนี้
หนึ่งของพวกเขาจะทำ เห่าท​​ุกไม่กี่วินาที
อีกคนหนึ่งเป็นเพียงการรอคอย สำหรับผมที่จะตีสเปซบาร์
และถ้าผมทำตีสเปซบาร์, มันจะเปลี่ยน
สถานะของตัวแปรนี้ค่า ของตัวแปรนี้ที่เห็นได้ชัด
เรียกว่า "เงียบ" ผมไม่ได้โทร มันเป็นสิ่งที่น่าเบื่อเหมือน n,
ฉันเรียกว่าภาษาอังกฤษคำว่า "เงียบ".
จาก 1-0 หรือ 0-1
จากความจริงเป็นเท็จหรือเท็จเป็นจริง
และเพื่อให้คุณสามารถจริง เห็นตอนนี้ที่คุณ
อาจมีสองสคริปต์สอง โปรแกรมที่ทำงานพร้อมกัน
และทั้งสองของพวกเขาอาจจะนั่งอยู่ ในวงทำอะไรบางอย่าง
รอให้คนที่จะทำ สิ่งที่ต้องการกดปุ่มสเปซบาร์
[ซีล BARKING]
เดวิดเจลัน: และตอนนี้ เขาเป็นในทางของเขาอีกครั้ง
[ซีล BARKING]
เดวิดเจลัน: ดังนั้นอะไรที่ เราอาจจะทำอย่างไรกับตัวอย่างเหล่านี้หรือไม่
ดีขอไปข้างหน้าและทำ เช่นกับแกะนับ
เราจะยังคงไปตามเส้นนี้ที่นี่ เเล้ขอเปิดตัวอย่างแกะ
และแจ้งให้ทราบล่วงหน้ามากเหมือนก่อนหนึ่งนี้ โชคดีที่เป็นเพียงเล็กน้อยที่น่ารำคาญน้อย
เมื่อฉันตีเล่นตรงนี้ โอ้ไม่นี้เป็นที่น่ารำคาญ
เขาจะ Baa มีความน่าจะเป็นบางส่วน
ให้เล่นนี้อีกครั้ง
>> [แกะ BLEETING]
เดวิดเจลัน: ความแตกต่างเพียงอย่างเดียวคือ เราได้เปลี่ยนเครื่องแต่งกายเพื่อที่จะพูด
และเรากำลังลดลงครึ่งหนึ่งและพูดว่า สิ่งที่เกิดขึ้นจริงเป็นจำนวน
ดีขอไปข้างหน้าและ ใช้เวลานี้ขั้นตอนต่อไป
และแจ้งให้เราหยอกล้อคุณกับ คุณสมบัติอื่น ๆ ที่นี่
ให้เป็นไปข้างหน้าและเปิดขึ้น โปรแกรมที่เรียกว่ากระทู้
มากเหมือนที่คุณสามารถมีหนึ่ง สไปรต์มีหลายสคริปต์
คุณสามารถมีสองสไปรท์, นก แมวแต่ละคนมีสคริปต์ของตัวเอง
และแต่ละคนสามารถ ดำเนินการพร้อมกัน
ถ้าคุณเคยได้ยิน คำว่า "มัลติเธรด"
คอมพิวเตอร์คือ "มัลติเธรด" หมายความว่า มันสามารถทำสิ่งหลายครั้ง
และจริงเพื่อให้สามารถรอยขีดข่วน
>> และตอนนี้สังเกตเห็นนกเป็นชนิดของใบ้
มันก็แค่ทำสิ่งที่สุ่ม กระดอนออกมานอกจอ
เห็นได้ชัดว่าแมวได้รับการตั้งโปรแกรม ชนิดของมีความสามารถในการแสวงหา
ไปที่บ้านในนกเพราะ เขามักจะชี้ไปที่เขา
จนในที่สุดเขา จับนกที่เกิดขึ้นจริง
ดังนั้นฉันจะไม่อาศัยอยู่ในรายละเอียด ที่นี่ แต่คุณสามารถชนิดของ
เหลือบรูปทรงเดียวกันบาง "ถ้า" เงื่อนไขตัวแปรบาง
อาจจะห่วงบางอย่างอยู่ ในที่สุดทำในสิ่งเดียวกัน
>> ตอนนี้ให้ฉันไปข้างหน้าและเปิด ขึ้นอย่างอื่นทั้งหมด
แซวบางท่านโดยเฉพาะอย่างยิ่ง ที่สะดวกสบายมากขึ้น
สิ่งที่คุณจริงสามารถทำอะไรกับเรื่องนี้
ฉันจะไปข้างหน้า และเปิดปุ่มที่นี่
และนี่คือซุปเปอร์ โปรแกรมง่ายที่เห็น,
แต่ดูสิ่งที่เกิดขึ้น เมื่อ I-- ดูสิ่งที่
ที่เกิดขึ้นเมื่อฉันเปิดรุ่นของมันนี้ ที่นี่ในเบราว์เซอร์ scratch.mit.edu
และเมื่อฉันคลิกสีแดงขนาดใหญ่นี้ ปุ่มแจ้งให้ทราบว่าเกิดอะไรขึ้น
ดังนั้นสิ่งที่เกิดขึ้นที่นี่?
มีจริงเป็นความซับซ้อนมากขึ้น ที่เกิดขึ้นภายใต้กระโปรงหน้ารถ
แม้ว่าฉันได้ดำเนินการ นี้หรือตรงไปตรงมาแดนแบรดลีย์
ได้ดำเนินการนี​​้เพื่อให้เพียงแค่
เขาได้รับการออกแบบปริศนา Scratch ที่กำหนดเอง ชิ้นที่รู้จักกันเป็นส่วนขยาย Scratch,
เขาเรียกมันว่าสลับ
>> และสิ่งที่จะเป็นแบบก้านยาวมันจะส่ง ข้อความผ่านทางอินเทอร์เน็ต
และข้อความของตัวเองว่า มีลักษณะที่เป็นความลับเล็ก ๆ น้อย ๆ
แต่เรื่องนี้ก็เช่นกันที่คุณจะ เข้าใจในตอนท้ายของคำ
ข้อความที่เขาส่งจริง มีลักษณะบางสิ่งบางอย่างเล็ก ๆ น้อย ๆ เช่นนี้
มันเป็นเพียงแค่ตัวอักษร
ความลับ
คุณจะเข้าใจว่ามันถึงเวลาที่ เราได้รับปัญหาที่กำหนดเจ็ด
มันเป็นเพียงแค่การส่งข้อความเกี่ยวกับใจ ผ่านทางอินเทอร์เน็ตไปยังเซิร์ฟเวอร์
และเซิร์ฟเวอร์ที่เป็นที่สุด พูดคุยกับหลอดไฟนี้ซึ่ง
มีหนึ่งในบรรดาหลอดไฟแฟนซี ในนั้นที่ตัวเองพูด
กับ Wi-Fi ในเครือข่ายที่นี่ ที่อุปกรณ์ในท้องถิ่นลงตรงนี้
และในที่สุดก็จริง การเปลี่ยนแสงที่เปิดและปิด
แต่เราสามารถทำขึ้น สิ่งที่น่าสนใจยังคง
สังเกตเห็นสิ่งที่แดนยังทำเพื่อเรา
เขาทำสไปรท์หลายแต่ละของ ซึ่งได้สคริปต์รอสำหรับการคลิก
และถ้าฉันคลิกสีแดงมันไปสีแดง
ถ้าฉันได้รับสีฟ้ามันจะไปอม
สีเขียว, สีเหลือง, สีส้ม
และทั้งหมดนี้เกิดขึ้นโดย ไปทางออกไปยังอินเทอร์เน็ต
กลับลงมาที่นี่เพื่อ หลอดไฟและปิด
>> และถ้าคุณสามารถเชื่อว่าพูดไปและนี่คือ บางทีหนึ่งใน Scratch ที่ซับซ้อนที่สุด
โครงการที่มีคน implemented-- เขาทำมันในความเป็นธรรมในวัน
และนั่นคือความท้าทายที่เราโยนลง แดนเมื่อเราเห็นมีหลอดไฟไบนารี
เรามีรอยขีดข่วนวิธี เราสามารถรวมได้อย่างไร
และแน่นอนนี้เป็นอย่าง สิ่งที่ทุกคนในห้องนี้
สามารถทำได้โดย end-- ภาคการศึกษาของเขาเป็น การปรับใช้หลอดไฟไบนารีโดยใช้
อินเตอร์เฟซเดียวกันนั่นคือ ใน iPad ของเราในวันพุธที่
เพื่อที่ว่าตอนนี้ถ้าฉันจริง คลิกที่เครื่องหมายบวกกว่าที่นี่
เรามีหนึ่งสองสาม
ฉันสามารถตี 16 และเปิดหนึ่งที่เกี่ยวกับ
128 และอื่น ๆ
>> ตอนนี้ถ้ามีที่อยู่คนเดียว และพัดใจของคุณ
คุณสามารถทำสิ่งที่ไกลเข้าถึงได้มากขึ้น ที่ไม่เกี่ยวข้องกับฮาร์ดแวร์ใด ๆ อย่างแน่นอน
สิ่งที่เพียงแค่บนหน้าจอของตัวเอง
และแน่นอนสิ่งที่นักเรียนส่วนใหญ่ สิ้นสุดการทำเป็นชนิดของเกมบางอย่าง
ชิ้นส่วนบางส่วนของงานศิลปะหรือ ชนิดของภาพเคลื่อนไหวแบบโต้ตอบบาง
และผมจะบอกว่าหนึ่งในของเรา โปรดได้รับการอย่างใดอย่างหนึ่ง
และฉันคิดว่าถ้าเรา สามารถหรี่ไฟ
เราจะเหลือบที่สุดท้ายนี้ โครงการเริ่มต้นในการสรุป
แต่สิ่งที่คุณจะต้องเก็บไว้ในใจเป็น ฉันสามารถหยอกล้อคุณกับหนึ่งในรายละเอียดที่ผ่านมา
sectioning จะเริ่มต้นในสัปดาห์หน้า
เวลาทำงานจะเริ่มต้นในสัปดาห์หน้า
ปัญหาการตั้งศูนย์จะโพสต์ CS50.harvard.edu ต่อมาวันนี้
และคุณจะได้รับการต้อนรับ ในปัญหาการตั้งศูนย์
เพื่อ CS50 ของตัวเอง Zamyla จันทร์ที่ แนะนำที่สุดของเกมส์ของเรา
เหล่านี้เป็นวิดีโอที่ฝังตัว ในชุดปัญหา
ที่จะจับมือของคุณผ่านจำนวนมาก ของชุดเริ่มต้นและผ่านหลาย
ของการตัดสินใจการออกแบบที่เป็นไปได้
ดังนั้นหากคุณเคยมีความรู้สึกว่า เมื่อหยิบขึ้นมามอบหมายการบ้าน
และสงสัยที่ฉันจะเริ่มต้น?
เธอจะมีคำตอบสำหรับคุณที่
และตอนนี้เป็นโปรแกรมสุดท้าย จากหนึ่งในรุ่นก่อนหน้าของคุณ
ในการตอบคำถาม "สิ่งที่ไม่สุนัขจิ้งจอกพูด?"
[MUSIC YLVIS "อะไร FOX SAY?]
>> YLVIS: (ร้องเพลง) สุนัขไปโฮ่ง
แมวแมวไป
นกไปทวีตและเมาส์ไปสารภาพ
วัวไปหมู่
กบจะไปบ่น
และช้างไปตุ๊ด
เป็ดบอกว่าหมอเถื่อนและปลาไปร้องไห้สะอึกสะอื้น
และตราประทับไปโอ๊ยโอ๊ยโอ๊ย แต่ มีหนึ่งเสียงที่ไม่มีใครรู้
สิ่งที่ไม่สุนัขจิ้งจอกพูด?
และ
>> เดวิดเจลัน: นั่นมันสำหรับ CS50
เราจะเห็นคุณที่ ปริศนาวันและในวันจันทร์ที่
>> [APPLAUSE]
>> [MUSIC YLVIS "สิ่งที่ไม่ฟ็อกซ์พูด?"]
>> บรรยาย: และตอนนี้ลึก ความคิดโดย Daven อัม
วันนี้ผมได้รับการตีใน เผชิญกับสมุดโทรศัพท์
สับสนเป็นฉันที่ บ้านดูออนไลน์